无人机路径规划算法 RRG
RRT 和 RRG
RRT 算法在搜索的过程中产生一条通向终点的树,RRT 的基本步骤是:
1. 起点作为一颗种子,从它开始生长枝丫;
2. 在机器人的“构型”空间中,生成一个随机点X;
3. 在树上找到距离X最近的那个点,记为Y吧;
4. 朝着X的方向生长,如果没有碰到障碍物就把生长后的树枝和端点添加到树上,返回 2;
在这个路径中,产生的一系列的节点作为无人机或者机器人的路径点。
而RRG算法产生的是一系列的安全球体,有球心和半径。考虑了障碍物的距离。
RRG 算法伪代码讲解
在实时搜地图的路径规划中,RRG主要用于产生一系列的安全区域球体,即无人机在飞行过程中周围的安全区域。
在RRG算法伪代码中,
n
n
n 代表一个球体,
G
G
G 表示一个安全球体序列,
N
N
N 表示最大采样点数。
- 首先初始化将起始点 n s ns ns 加入安全球体序列。
- 通过sample() 函数在空间中采样一个新的点给 c r cr cr 。
- 在安全球体序列 G G G 中找到一个与采样点最近的安全球体 n c nc nc 。
- 求最近的安全球体 n c nc nc 的球心 n c . c nc.c nc.c 沿采样点 c r cr cr 射线方向上一段距离的点作为新的安全球体的球心 n n . c nn.c nn.c 。
- 通过radius_search() 函数求离新的安全球体的球心 n n . c nn.c nn.c 最近的障碍物距离,作为新的安全球体的半径 n n . r nn.r nn.r 。
- 判断 半径 n n . r nn.r nn.r 大于设定的阈值时,将新的安全球体加入安全球体序列 G G G ,并且球心与最近的安全球体球心连接。
- 找到在新的安全球体一定阈值距离内的球体,判断它们之间的重叠空间体积,若大于一定阈值,这个重叠空间要使无人机能够安全穿过,就将它们的球心连接起来。
在实时搜地图的路径规划中,就可以利用RRG产生的安全球体,再通过A*启发式搜索选择一条安全球体路径,形成了无人机的安全飞行走廊。这个实时路径规划思想是在论文 Online Quadrotor Trajectory Generation and Autonomous Navigation on Point Clouds 中被提出。