2. 避障决策与局部规划的核心概念体系
无人系统要在复杂环境中安全到达目标,必须同时回答两个层次的问题:“整体上怎么走”与“眼前这一步怎么躲”。前者由全局规划负责,后者由局部规划负责。理解二者的分工,以及支撑它们的概念体系——反应式与 deliberative 决策、障碍物表示、自由空间、配置空间、碰撞检测与安全距离——是学习避障决策的起点。
一、全局规划与局部规划的分工
全局规划在已知或先验地图上进行,输入是起点、目标点与环境地图,输出是一条从起点到目标的路径或轨迹。它关注的是“可达性”与“整体最优性”,例如路径最短、能耗最低或远离危险区域。全局规划通常离线或低频执行,一旦环境发生较大变化才重新计算。
局部规划在全局路径的引导下,结合实时传感器数据,在每个控制周期内生成短时、可执行的局部轨迹或速度指令。它关注的是“实时避障”与“动态可行性”,例如遇到突然出现的行人、移动的车辆或临时障碍时,如何在不偏离全局路径太远的前提下安全绕行。局部规划频率高,通常为 10~50 Hz。
二者是引导与修正的关系:全局路径提供方向性参考,局部规划负责在动态环境中落地执行。若局部规划长期无法回到全局路径,往往需要触发全局重规划。
二、反应式与 deliberative 决策
从决策方式看,避障可分为两类。反应式决策直接根据当前传感器信息产生动作,如势场法、向量场直方图、动态窗口法,特点是响应快、计算轻,但容易陷入局部极小或产生震荡。deliberative 决策则基于模型进行推理与搜索,如 A*、RRT、模型预测控制,特点是考虑长远、能处理复杂约束,但计算量大、对模型依赖强。
实际系统多采用分层混合结构:上层用 deliberative 方法生成全局路径或行为决策,下层用反应式方法做实时避障与速度调整。这样既保证全局合理性,又保证局部安全性。
三、障碍物表示与自由空间
要让算法“看见”障碍,必须先把环境转化为可计算的形式。常见的障碍物表示包括:
- 栅格地图:将空间离散为网格,每个格子标记为占据、空闲或未知,适合 A*、D* 等搜索算法。
- 几何表示:用多边形、圆、圆柱等描述障碍边界,适合连续空间中的碰撞检测。
- 点云/体素:直接使用激光雷达或深度相机的三维点云,或将其体素化,适合三维避障。
- 代价地图:在栅格基础上叠加膨胀层与代价,使路径远离障碍,常用于 ROS 导航栈。
与障碍物相对的是自由空间,即无人系统可以安全通行的区域。自由空间是规划算法的搜索域,其边界由障碍物膨胀后的安全边界决定。自由空间越大,可行路径越多;但若膨胀过度,狭窄通道可能被完全封闭,导致无解。
四、配置空间与碰撞检测
对于具有姿态的无人系统,仅用二维位置描述不够,需要引入配置空间(C-space)。配置空间把系统的位姿(如 x、y、yaw)映射为一个点,障碍物在配置空间中对应为配置空间障碍。这样,运动规划就转化为在配置空间中寻找从起点到目标点的无碰撞路径。
碰撞检测是判断某个配置是否与障碍物相交的过程。常用方法包括包围盒层次树、分离轴定理、GJK 算法等。碰撞检测的精度与效率直接影响规划速度。工程上常采用“粗检测 + 精检测”两级策略:先用包围盒快速排除,再用精确几何判断。
五、安全距离与膨胀
安全距离是无人系统与障碍物之间必须保持的最小间隔,用于吸收定位误差、控制误差与传感器噪声。工程上通常将障碍物按安全距离向外膨胀,形成膨胀障碍,规划时把无人系统视为质点,从而简化碰撞检测。
安全距离的取值需权衡:过小则风险高,过大则可行空间被压缩。例如室内移动机器人常用 0.2~0.5 m,室外低速无人车常用 0.5~1.0 m,高速场景需更大。膨胀半径还应考虑系统最大速度与制动距离。
六、工程示例:安全距离与膨胀参数
假设一台室内移动机器人,最大速度 1.0 m/s,定位误差约 ±0.05 m,控制周期 50 ms。取安全距离 d_safe = 0.3 m,则障碍物膨胀半径 r_inflate = d_safe + r_robot。若机器人半径 0.25 m,则膨胀半径约 0.55 m。在 0.05 m 分辨率的栅格地图上,膨胀层约为 11 个栅格。若某通道宽度小于 1.1 m,膨胀后可能被封闭,此时需要减小安全距离或改用更精细的局部避障策略。
七、概念之间的整体关系
可以把整个体系理解为一条从环境到动作的链条:环境经障碍物表示与自由空间建模,进入配置空间;碰撞检测与安全距离约束可行域;全局规划在可行域中搜索全局路径;局部规划在全局路径引导下,结合反应式或 deliberative 决策,输出实时速度指令。任一环节的参数变化都会影响最终避障效果,因此调参时应从安全距离、膨胀半径、规划频率三个最敏感的变量入手。