一 PRM 概率路图![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4264752d75e105f04e9fdaea3372dc51.png)
1. 算法分为学习阶段和查询阶段:
学习阶段
第一步在图中随机撒点(删除障碍物里的点)
第二步将所有的点连接起来(按照一定距离)
查询阶段
通过例如A*算法等进行搜索路径(也可以边界值连接) 找到终点
2.特点:
适合高维空间 障碍物较多 复杂环境
3. 改进
- 改进撒点规则 启发式撒点
- 采用lazy checking (先连接所有点,在搜索路径,当路径上有障碍物时,放弃,再进行下一次搜索)
- 连接点用曲线(OBVP等方法)
二 RRT算法
分析:
优点
1.相对于PRM更针对性,快
缺点
1.不一定最优
2.不光滑 不利于控制
3. 对于狭窄环境 不那么高效
改进思路
1.KD-Tree
Xrand找最近的点Xnear时 能更快
2.Bidirection RRT/RRT Connect
撒点一次 两侧同时构建(起点和终点) —解决了狭窄空间问题
3.对于狭窄问题
大多通过改进采样解决
三 RRT*
改进RRT不是最优问题
一 对于RRT改进的几种算法
RRT*
1.选择父节点choose:选择父节点时不直接选择最近节点
画个圈 从多个节点中选择
2.剪枝rewire:修改父节点
Kinodynamic-RRT*
因为RRT点与点之间的连接是通过直线连接 不平滑 不利于控制执行;
改进Steer()函数 通过曲线进行连接
Anytime-RRT*
树在实时构建更新 实时改变起点
二 高级的基于采样的算法
informed RRT*
改进思想:
改进采样方式: 把采样过程限制在椭圆内
算法过程:
1.RRT*先生成路径
2.以起点终点为焦点 以路径长度维持常数 生成椭圆
3.在椭圆内采样
Cross-entropy motion planning
改进思想:
在生成轨迹节点周围采样
算法过程:
1.生成路径
2.在轨迹节点周围采样(包括s 和 g ) 这些节点构成多高斯模型 每一个部分以节点为均值以指定的方差为方差 在圈内采样
3.生成多条轨迹 对多个轨迹多个节点求均值 重复2 不断迭代优化
其他改进算法
总结
在不改变算法大的框架下 可以进行多角度改进
三 应用
OMPL库
Moveit with ros
Tutorial
Navigation stick -ROS