组合运动规划:原理、算法与应用
1. 计算分解
在不考虑效率的情况下,计算分解的问题看似简单,可以通过暴力计算完成所有必要步骤。若障碍物空间 (C_{obs}) 有 (n) 个顶点,由于要对每条垂直射线和每条线段进行相交测试,这种方法至少需要 (O(n^2)) 的时间,而且还未考虑查找包含查询点的单元格以及构建保存连通性信息的路线图时涉及的数据结构问题。
通过精心组织计算,可以很好地处理这些问题,最终运行时间仅为 (O(n \lg n))。具体采用的是计算几何中的平面扫描(或线扫描)原理,许多组合运动规划算法以及其他算法都以此为基础。
2. 平面扫描原理
平面扫描原理可想象为一条线(或平面等)扫过空间,仅在信息发生关键变化的地方停止,但算法中并不显式表示这条扫描线。为构建垂直分解,假设一条垂直线从 (x = -\infty) 扫到 (x = \infty),用 ((x, y)) 表示 (C = R^2) 中的点。
2.1 具体步骤
- 排序顶点 :将 (C_{obs}) 顶点集 (P) 按 (X) 坐标升序排序,假设处于一般位置,即没有两个点的 (X) 坐标相同。按 (x) 值递增顺序访问 (P) 中的点,每次访问一个点称为一个事件。
- 维护列表 (L) :在每个事件之前、之后和之间,维护一个 (C_{obs}) 边的列表 (L),该列表需始终按垂直扫描线刺穿边的顺序排列,从下到上。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



