python 三次曲线拟合算法_这可能是史上最全的 Python 算法集(建议收藏)

导读:本文是一些机器人算法(特别是自动导航算法)的Python代码合集。

其主要特点有以下三点:

选择了在实践中广泛应用的算法;

依赖最少;

容易阅读,容易理解每个算法的基本思想。

希望阅读本文后能对你有所帮助。

前排友情提示,文章较长,建议收藏后再看。

本文经授权转自公众号CSDN(ID:CSDNnews),译者:弯月

00 目录

环境需求

怎样使用

本地化

扩展卡尔曼滤波本地化

无损卡尔曼滤波本地化

粒子滤波本地化

直方图滤波本地化

映射

高斯网格映射

光线投射网格映射

k均值物体聚类

圆形拟合物体形状识别

SLAM

迭代最近点匹配

EKF SLAM

FastSLAM 1.0

FastSLAM 2.0

基于图的SLAM

路径规划

动态窗口方式

基于网格的搜索

迪杰斯特拉算法

A*算法

势场算法

模型预测路径生成

路径优化示例

查找表生成示例

状态晶格规划

均匀极性采样(Uniform polar sampling)

偏差极性采样(Biased polar sampling)

路线采样(Lane sampling)

随机路径图(PRM)规划

Voronoi路径图规划

快速搜索随机树(RRT)

基本RRT

RRT*

基于Dubins路径的RRT

基于Dubins路径的RRT*

基于reeds-shepp路径的RRT*

Informed RRT*

批量Informed RRT*

三次样条规划

B样条规划

贝济埃路径规划

五次多项式规划

Dubins路径规划

Reeds Shepp路径规划

基于LQR的路径规划

Frenet Frame中的最优路径

路径跟踪

纯追迹跟踪

史坦利控制

后轮反馈控制

线性二次regulator(LQR)转向控制

线性二次regulator(LQR)转向和速度控制

项目支持

01 环境需求

Python 3.6.x

numpy

scipy

matplotlib

pandas

cvxpy 0.4.x

02 怎样使用

安装必要的库;

克隆本代码仓库;

执行每个目录下的python脚本;

如果你喜欢,则收藏本代码库:)

03 本地化

1. 扩展卡尔曼滤波本地化

13a378d7279984d436a9903fe7d8af69.png

该算法利用扩展卡尔曼滤波器(Extended Kalman Filter, EKF)实现传感器混合本地化。

蓝线为真实路径,黑线为导航推测路径(dead reckoning trajectory),绿点为位置观测(如GPS),红线为EKF估算的路径。

红色椭圆为EKF估算的协方差。

概率机器人学

http://www.probabilistic-robotics.org/

2. 无损卡尔曼滤波本地化

2d1f951032a83e05730d127bf1a1d02a.png

该算法利用无损卡尔曼滤波器(Unscented Kalman Filter, UKF)实现传感器混合本地化。

线和点的含义与EKF模拟的例子相同。

利用无差别训练过的无损卡尔曼滤波进行机器人移动本地化

https://www.researchgate.net/publication/267963417_Discriminatively_Trained_Unscented_Kalman_Filter_for_Mobile_Robot_Localization

3. 粒子滤波本地化

8a5acb413532f804581def8bbd6ade54.png

该算法利用粒子滤波器(Particle Filter, PF)实现传感器混合本地化。

蓝线为真实路径,黑线为导航推测路径(dead reckoning trajectory),绿点为位置观测(如GPS),红线为PF估算的路径。

该算法假设机器人能够测量与地标(RFID)之间的距离。

PF本地化会用到该测量结果。

概率机器人学

http://www.probabilistic-robotics.org/

4. 直方图滤波本地化

eab782d5179626a698f1c4f8718597f0.png

该算法是利用直方图滤波器(Histogram filter)实现二维本地化的例子。

红十字是实际位置,黑点是RFID的位置。

蓝色格子是直方图滤波器的概率位置。

在该模拟中,x,y是未知数,yaw已知。

滤波器整合了速度输入和从RFID获得距离观测数据进行本地化。

不需要初始位置。

概率机器人学

http://www.probabilistic-robotics.org/

04 映射

1. 高斯网格映射

本算法是二维高斯网格映射(Gaussian grid mapping)的例子。

c914e9da2d5ae388439b57292a882314.gif

2. 光线投射网格映射

本算法是二维光线投射网格映射(Ray casting grid map)的例子。

592cd996c106517fc1910311e8e25fb3.gif

3. k均值物体聚类

本算法是使用k均值算法进行二维物体聚类的例子。

  • 8
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值