一句话定义:避障(Obstacle Avoidance)是机器在移动过程中实时感知周围障碍物、并找出一条不会与之相撞的路线的能力;而在有人有车的环境里,真正合格的避障还得满足第二个条件:让旁边的人一眼就看懂它下一步要干什么。
原理:从“钻空子”到“讲礼貌”
最朴素的避障是几何层面的:激光雷达(LiDAR)、摄像头、超声波、毫米波雷达负责“看”,把障碍物的位置、速度告诉规划模块,再由人工势场法、动态窗口法(DWA)这类局部规划算法算出一条能通行的轨迹。这类做法里,成功与否只看一件事:路径有没有穿过障碍物。
打个比方,几何避障就像一个赶时间的人在人群里钻空子,见缝就插。他确实一下都没碰到别人,但忽左忽右、贴着人擦过去、走两步突然停住,周围人被吓得一激灵,也不知道该往哪边让。结果就是:他没撞人,但整条路上的人都得为他改道。
社会性避障(socially-aware navigation)想解决的正是这件事。除了别撞上,它还要求机器人的行为可预测、可解释,并且符合人的社交习惯:和人保持让人舒服的距离,尽量从对方视线能扫到的一侧绕行,不横穿别人正在走的路线,变道前给出明确信号,比如先减速、先微微转向。换句话说,机器人得像一个会打转向灯、会先探头看的司机,而不是一个闷头乱窜的醉汉。
和相邻概念的区别
| 概念 | 回答的问题 | 时间尺度 |
|---|---|---|
| 全局路径规划(Path Planning) | 从 A 到 B 大致走哪条路 | 出发前,低频更新 |
| 局部避障 | 眼前这辆车、这个人怎么绕过去 | 毫秒级实时 |
| 碰撞检测(Collision Detection) | 这一帧会不会撞上 | 每帧 |
| 轨迹预测(Trajectory Prediction) | 对方接下来几秒往哪走 | 未来 1–5 秒 |
| 运动控制(Motion Control) | 怎么把轨迹变成轮子和关节的动作 | 毫秒级 |
可以看出,避障处在“感知”和“控制”中间:它接收碰撞检测和轨迹预测的结果,又要把决策交给运动控制。轨迹预测尤其关键,你要是猜不准旁边那个人的意图,就只能靠急刹和猛打方向来补救,而这恰恰最不可预测。
对从业者与普通人的意义
做算法的人要注意:评价避障不能只统计“零碰撞”。还要看轨迹的平滑度,也就是曲率和加速度抖不抖;看与行人的最小距离分布;看“让路率”,也就是别人被你逼得绕道的比例。一个总让人绕道的机器人,哪怕一次没撞,也是失败的。自动驾驶里的“鬼探头”、匝道汇入时的博弈,本质都是可预测性问题:你的动作得让对方司机读得懂,他才敢做决定。
对普通人来说,理解这一点就能解释一个常见困惑:为什么有些配送车、扫地机器人看起来“笨笨的”、老是停下来等。它很可能是在用保守和迟疑来换取你可预测,而这也正是它安全的方式。
