运动规划RRT*算法图解

RRT*算法:

运动规划RRT*算法图解_第1张图片
运动规划RRT*算法图解_第2张图片

具体过程:

1. 产生一个随机点xrand

运动规划RRT*算法图解_第3张图片

2. 在树上找到与xrand最近的节点xnearest

运动规划RRT*算法图解_第4张图片

3. 连接xrand与xnearest

运动规划RRT*算法图解_第5张图片

4. 以xrand为中心,ri为半径,在树上搜索节点。

运动规划RRT*算法图解_第6张图片

5. 找出潜在的父节点集合Xpotential_parent,其目的是要更新xrand,看看有没有比它更好的父节点。

运动规划RRT*算法图解_第7张图片

6. 从某一个潜在的父节点xpotential_parent开始考虑。

运动规划RRT*算法图解_第8张图片

7. 计算出xparent作为父节点时的代价。

运动规划RRT*算法图解_第9张图片

8. 先不进行碰撞检测,而是将xpotential_parent与xchild(也就是xrand)连接起来。

运动规划RRT*算法图解_第10张图片

9. 计算出这条路径的代价。

运动规划RRT*算法图解_第11张图片

10. 将新的这条路径的代价与原路径的代价作比较,如果新的这条路径的代价更小则进行碰撞检测,如果新的这条路径代价更大则换为下一个潜在的父节点。

运动规划RRT*算法图解_第12张图片

11. 碰撞检测失败,该潜在父节点不作为新的父节点。

运动规划RRT*算法图解_第13张图片

12. 开始考虑下一个潜在父节点。

运动规划RRT*算法图解_第14张图片

13. 将潜在父节点和xchild连接起来

运动规划RRT*算法图解_第15张图片

14. 计算出这条路径的代价。

运动规划RRT*算法图解_第16张图片

15. 将新的这条路径的代价与原路径的代价作比较,如果新的这条路径的代价更小则进行碰撞检测,如果新的这条路径代价更大则换为下一个潜在的父节点。

运动规划RRT*算法图解_第17张图片

16. 碰撞检测通过。

运动规划RRT*算法图解_第18张图片

17. 在树中将之前的边删掉。

运动规划RRT*算法图解_第19张图片

18. 在树中将新的边添加进去,将xpotential_parent作为xparent

运动规划RRT*算法图解_第20张图片

19. 遍历所有的潜在父节点,得到更新后的树。

运动规划RRT*算法图解_第21张图片
以上内容来源于CMU机器人规划与决策课程的课件,课程的全套课件我上传在了CSDN上,需要的可以点击下载:CMU卡内基梅隆大学机器人规划与决策课程课件

你可能感兴趣的:(机器人运动规划)