/RRT_combined

rrt算法,结合了rrt*, kd-tree, skip-tree, informed rrt;考虑了动力学约束(后端优化)

Primary LanguagePython

RRT_combined

1.rrt算法是通过采样来进行路径规划的方法,优点为可以较快地得到一条可行解,但它在狭窄路径下的应用效果比较差。 2.考虑了实体机器人的体积大小(障碍物膨胀);前段生成路径点时,仅考虑了最大步长和障碍物的限制;后端进行优化时,采用的是minimum jerk,用五次多项式去模拟时间线上机器人的运动。 3.rrt*:每次生成新的点时,会去更新该点周围的点的父亲节点。 4.kd-tree:双向生成树,每生成一个新的点,会先和tree1交互,之后在tree2中选择离新的点最近的树上点,沿着从树上点到新点的方向持续生成新点,直至遇到障碍物或两点间形成通路。 5.skip-tree:在一个完整路径生成后,考虑可否略过中间的一些点。 6.informed rrt:生成一个可行路径后,以起始点和终止点为椭圆的焦点,路径长度为2a,构建一个椭圆,在构建下条路径时,只在该椭圆内random新点。 7.通过tkinter实现了GUI,详细内容见代码。rrt_line为前段生成路径点,rrt_crooked为后端进行优化后,得到路径。

视频展示见show.mp4或https://youtu.be/N4fH9KNgiVY