基于人工势场法和启发式采样的最优路径收敛方法
主要方法
[1]李伟,金世俊.基于人工势场法和启发式采样的最优路径收敛方法[J].计算机应用,2021,41(10):2912-2918.
本文方法
- 利用人工势场法构建出一条由起点到目标点的初始路径;
- 采用单一距离平方正比关系的引力方程
- 一旦路径点进入目标点范围,则直接结束算法
- 用 RRT中路径重写的思想,在人工势场法生成路径的过程中优化路径
人工势场法建立初始路径所需的采样点数以及最终的路径长度明显优于RRT建立的初始路径。
限制 RRT算法在 imp内采样(需要估计集合),并通过父节点重选和路径重写,则能够保证路径趋向于最优路径。
- 以起点和目标点的位置和之间的距离以及初始路径的路径代价作为参数来构建初始启发采样集合;
- 通过人工势场法获取环境中一条初始路径,并利用这条路径建立启发集合,通过启发集合内的均匀采样减少冗余采样点
- 将人工势场法的节点和路径边作为RRT搜索树的节点和路径边,构成初始的 RRT 搜索树
- 限定在启发集合内进行采样,并且在算法进行的过程中调整启发采样集合的范围,进而加快路径收敛速度。
- 相较于RRT*算法,采样点数减少了约67%,算法运行时间平均缩短了约74. 5%;
- 相较于启发式RRT(Informed-RRT*)算法,采样点数减少了约40~50%,算法运行时间平均缩短了约62. 5%。
RRT*算法详细步骤
-
初始化随机树G,节点集合V,边集合E,起点加入V
-
判断采样次数是否限制n,输出或继续
-
Sampling:在状态空间X均匀随机采样rand
-
Nearest:获取G中离rand最近的点nearest
-
Steer:nearest向rand扩展步长e,生成新节点new
-
Collision:判断nearest到new的路径是否碰撞,碰撞后循环迭代(采样+碰撞检测)
-
Neighbors:在V中找到new附近的节点集合Near
-
chooseParent:选择Near中离new最近的父节点parent
-
Update:将new加入V,将parent到new的路径加入E,更新G
-
重新调整new领域里所有节点的最短路径
-
返回循环迭代(采样+碰撞检测),知道最大采样次数。
估计启发式采样集合、并均匀采样
- 拒绝式采样(Rejection Sampling):全环境内随机采样,判断点是否在椭圆形内
启发集合内的概率取决于启发采样集合占据整个环境的比例,后期比例变小可能无法采集有效样本 - 单位圆均匀采样Informed-Set-Sampling:坐标变换,转化为椭圆区域内随机点
伪代码
对比实验仿真