本文是一些机器人算法(特别是自动导航算法)的Python代码合集。
其主要特点有以下三点:选择了在实践中广泛应用的算法;依赖最少;容易阅读,容易理解每个算法的基本思想。希望阅读本文后能对你有所帮助。
前排友情提示,文章较长,建议收藏后再看。在这里给大家推荐一个python系统学习q群:250933691有免费开发工具以及初学资料,(数据分析,爬虫,AI, 机器学习,神经网络)每天有老师给大家免费授课,欢迎一起交流学习。
目录
一、环境需求
二、怎样使用
三、本地化
3.1 扩展卡尔曼滤波本地化
3.2 无损卡尔曼滤波本地化
3.3 粒子滤波本地化
3.4 直方图滤波本地化
四、映射
4.1 高斯网格映射
4.2 光线投射网格映射
4.3 k均值物体聚类
4.4 圆形拟合物体形状识别
五、SLAM
5.1 迭代最近点匹配
5.2 EKF SLAM
5.3 FastSLAM 1.0
5.4 FastSLAM 2.0
5.5 基于图的SLAM
六、路径规划
6.1 动态窗口方式
6.2 基于网格的搜索
迪杰斯特拉算法
A*算法
势场算法
6.3 模型预测路径生成
路径优化示例
查找表生成示例
6.4 状态晶格规划
均匀极性采样(Uniform polar sampling)
偏差极性采样(Biased polar sampling)
路线采样(Lane sampling)
6.5 随机路径图(PRM)规划
6.6 Voronoi路径图规划
6.7 快速搜索随机树(RRT)
基本RRT
RRT*
基于Dubins路径的RRT
基于Dubins路径的RRT*
基于reeds-shepp路径的RRT*
Informed RRT*
批量Informed RRT*
闭合回路RRT*
LQR-RRT*
6.8 三次样条规划
6.9 B样条规划
6.10 Eta^3样条路径规划
6.11 贝济埃路径规划
6.12 五次多项式规划
6.13 Dubins路径规划
6.14 Reeds Shepp路径规划
6.15 基于LQR的路径规划
6.16 Frenet Frame中的最优路径
七、路径跟踪
7.1 姿势控制跟踪
7.2纯追迹跟踪
7.3 史坦利控制
7.4 后轮反馈控制
7.5 线性二次regulator(LQR)转向控制
7.6 线性二次regulator(LQR)转向和速度控制
7.7 模型预测速度和转向控制
八、项目支持
一、环境需求
Python 3.6.x
numpy
scipy
matplotlib
pandas
cvxpy 0.4.x
二、怎样使用
1.安装必要的库;
2.克隆本代码仓库;
3.执行每个目录下的python脚本;
4.如果你喜欢,则收藏本代码库:
三、本地化
3.1 扩展卡尔曼滤波本地化
该算法利用扩展卡尔曼滤波器(Extended Kalman Filter, EKF)实现传感器混合本地化。
蓝线为真实路径,黑线为导航推测路径(dead reckoning trajectory),绿点为位置观测(如GPS),红线为EKF估算的路径。
红色椭圆为EKF估算的协方差。
3.2 无损卡尔曼滤波本地化
在这里给大家推荐一个python系统学习q群:250933691有免费开发工具以及初学资料,(数据分析,爬虫,AI, 机器学习,神经网络)每天有老师给大家免费授课,欢迎一起交流学习。
该算法利用无损卡尔曼滤波器(Unscented Kalman Filter, UKF)实现传感器混合本地化。
线和点的含义与EKF模拟的例子相同。