Dynamic RRT和Extended RRT一样,也是用来解决动态路径规划问题,它们的思想有一点是共通的,那就是不要完全放弃初始RRT生成的树或初始路径的信息,而是在此基础上重新规划。Dynamic RRT和Extended RRT的区别在于,Extended RRT利用的是RRT生成的初始路径的信息,而Dynamic RRT利用的是RRT生成的初始RRT树的信息。
思路如下:
在老地图中,用RRT算法生成了一个RRT树,在新地图中,原始RRT树的节点信息(坐标、父节点)存储在一个节点集合中。在新地图中,先检测新地图中比老地图多出的障碍物,然后,以碰撞检测为评判根据,删除老节点集合中与新障碍物无法通过碰撞检测的节点和边。的到一颗修建过后的与新地形无碰撞的修剪后RRT树,然后再在这颗修剪后的额RRT树的基础上,继续生长这棵树,直到这棵树连接起点和终点,然后回溯路径,得出新路径。
①从从初始配置到目标配置生成的 RRT 开始(图(a))。
②当配置空间发生变化时(例如通过接收新信息),将RRT中因这些变化而失效的所有部分标记为无效(图(b)和(c))。
③然后我们修剪树以去除所有这些无效部分(图(d))。
④此时,保证树中剩余的所有节点和边都是有效的,但树可能不再达到目标。最后,我们把树长出来,直到再次达到目标
加入新的障碍物后,被该障碍物折断的剩余的图:
在原来的树的基础上,继续生长后的图:
Replanning with RRTs