一、轨迹规划概述
1.1 什么是轨迹规划
轨迹规划,说白了就是让机器人或自动驾驶车辆知道「怎么走」。
我经常跟新人说,别把它想得太玄乎。你想想看,你从家走到公司,大脑其实就在做轨迹规划——先确定起点和终点,再避开路上的坑坑洼洼,最后迈开腿走起来。机器人也是一样。
从技术上讲,轨迹规划要解决三个问题:
- 去哪里——目标位置和姿态
- 怎么去——路径的形状和走向
- 什么时候到——速度、加速度随时间的变化
嗯,这里要注意:路径规划和轨迹规划是两码事。路径只关心「走哪条线」,轨迹还要管「怎么走这条线」。我见过不少新手把这两个概念混在一起,结果做出来的东西要么撞墙,要么急刹车把人晃吐了。
核心定义:轨迹规划 = 路径规划 + 时间规划。它输出的是位置、速度、加速度随时间变化的序列。
1.2 轨迹规划在机器人/自动驾驶中的应用
我在项目中接触过不少场景,挑几个典型的说说:
工业机械臂
工厂里的机械臂要抓取零件、焊接、喷涂。轨迹规划决定了它能不能又快又稳地完成任务。我记得有一次调试焊接机器人,轨迹没规划好,焊出来的焊缝歪歪扭扭,被质检打回来三次。后来把轨迹的平滑性调好了,一次过。
移动机器人(AGV/AMR)
仓库里的搬运机器人,要在货架之间穿梭。轨迹规划要保证它不撞货架、不卡在死角、还能准时把货送到。我见过一个项目,机器人老是卡在走廊拐角,后来发现是轨迹的曲率约束没设对。
自动驾驶车辆
这个大家应该不陌生。车辆要在道路上行驶,轨迹规划要处理变道、转弯、避让行人等场景。说实话,自动驾驶的轨迹规划比机器人难得多——因为道路环境太复杂了,而且车速快,反应时间短。
| 应用场景 | 轨迹规划特点 | 典型要求 |
|---|---|---|
| 工业机械臂 | 高精度、重复性 | 位置精度 ±0.1mm |
| 移动机器人 | 动态避障、多机协同 | 实时性 50ms 以内 |
| 自动驾驶 | 高速、复杂交通场景 | 安全性第一,实时性 100ms |
1.3 轨迹规划的核心挑战
做轨迹规划这么多年,我觉得最难的就是三个字:安、平、快。
安全性——这是底线
轨迹不能撞到任何障碍物,这是硬约束。我曾经在一个项目中,因为障碍物检测的延迟没处理好,轨迹规划出来的路径穿过了障碍物。还好是在仿真阶段发现的,要是真机跑起来,后果不敢想。
安全性的难点在于:
- 障碍物位置有误差
- 机器人自身定位有偏差
- 动态障碍物会移动
避坑指南:我曾经吃过亏——只考虑了静态障碍物,结果动态障碍物突然出现,机器人来不及反应。后来我养成了习惯:轨迹规划一定要留安全裕量,至少 10cm 的缓冲距离。
平滑性——决定体验
你想想看,坐一辆急加速急刹车、方向盘乱晃的车,是什么感觉?轨迹不平滑,轻则让乘客不舒服,重则损坏机械结构。
平滑性体现在:
- 位置曲线连续(C0)
- 速度曲线连续(C1)
- 加速度曲线连续(C2)
- 加加速度(Jerk)尽量小
我个人的习惯是,至少保证加速度连续。如果条件允许,把加加速度也约束住。这样出来的轨迹,人坐着才舒服。
实时性——决定可用性
轨迹规划不能算太久。工业场景一般要求 10-50ms 内出结果,自动驾驶要求 100ms 以内。如果算太久,机器人就只能停下来等,效率就没了。
实时性的挑战在于:
- 搜索空间太大(高维空间)
- 约束条件太多(运动学、动力学、障碍物)
- 计算资源有限(嵌入式设备)
我的经验:别一上来就用最复杂的算法。先试试简单的,比如直线插补、圆弧过渡。如果满足不了需求,再上样条曲线、优化方法。很多时候,简单的方法反而更可靠。
知识体系总览
下面这张图,是我自己总结的轨迹规划知识体系。每次带新人,我都会先让他们看这张图,心里有个全局观。
这张图把轨迹规划的核心要素串起来了。中心是轨迹规划本身,往外发散是三大挑战,再往下是每个挑战的具体子项,最下面是典型应用场景。做项目的时候,对着这张图检查,基本不会漏掉关键点。