一、轨迹规划概述

1.1 什么是轨迹规划

轨迹规划,说白了就是让机器人或自动驾驶车辆知道「怎么走」。

我经常跟新人说,别把它想得太玄乎。你想想看,你从家走到公司,大脑其实就在做轨迹规划——先确定起点和终点,再避开路上的坑坑洼洼,最后迈开腿走起来。机器人也是一样。

从技术上讲,轨迹规划要解决三个问题:

  • 去哪里——目标位置和姿态
  • 怎么去——路径的形状和走向
  • 什么时候到——速度、加速度随时间的变化

嗯,这里要注意:路径规划和轨迹规划是两码事。路径只关心「走哪条线」,轨迹还要管「怎么走这条线」。我见过不少新手把这两个概念混在一起,结果做出来的东西要么撞墙,要么急刹车把人晃吐了。

核心定义:轨迹规划 = 路径规划 + 时间规划。它输出的是位置、速度、加速度随时间变化的序列。

1.2 轨迹规划在机器人/自动驾驶中的应用

我在项目中接触过不少场景,挑几个典型的说说:

工业机械臂

工厂里的机械臂要抓取零件、焊接、喷涂。轨迹规划决定了它能不能又快又稳地完成任务。我记得有一次调试焊接机器人,轨迹没规划好,焊出来的焊缝歪歪扭扭,被质检打回来三次。后来把轨迹的平滑性调好了,一次过。

移动机器人(AGV/AMR)

仓库里的搬运机器人,要在货架之间穿梭。轨迹规划要保证它不撞货架、不卡在死角、还能准时把货送到。我见过一个项目,机器人老是卡在走廊拐角,后来发现是轨迹的曲率约束没设对。

自动驾驶车辆

这个大家应该不陌生。车辆要在道路上行驶,轨迹规划要处理变道、转弯、避让行人等场景。说实话,自动驾驶的轨迹规划比机器人难得多——因为道路环境太复杂了,而且车速快,反应时间短。

应用场景 轨迹规划特点 典型要求
工业机械臂 高精度、重复性 位置精度 ±0.1mm
移动机器人 动态避障、多机协同 实时性 50ms 以内
自动驾驶 高速、复杂交通场景 安全性第一,实时性 100ms

1.3 轨迹规划的核心挑战

做轨迹规划这么多年,我觉得最难的就是三个字:安、平、快

安全性——这是底线

轨迹不能撞到任何障碍物,这是硬约束。我曾经在一个项目中,因为障碍物检测的延迟没处理好,轨迹规划出来的路径穿过了障碍物。还好是在仿真阶段发现的,要是真机跑起来,后果不敢想。

安全性的难点在于:

  • 障碍物位置有误差
  • 机器人自身定位有偏差
  • 动态障碍物会移动

避坑指南:我曾经吃过亏——只考虑了静态障碍物,结果动态障碍物突然出现,机器人来不及反应。后来我养成了习惯:轨迹规划一定要留安全裕量,至少 10cm 的缓冲距离。

平滑性——决定体验

你想想看,坐一辆急加速急刹车、方向盘乱晃的车,是什么感觉?轨迹不平滑,轻则让乘客不舒服,重则损坏机械结构。

平滑性体现在:

  • 位置曲线连续(C0)
  • 速度曲线连续(C1)
  • 加速度曲线连续(C2)
  • 加加速度(Jerk)尽量小

我个人的习惯是,至少保证加速度连续。如果条件允许,把加加速度也约束住。这样出来的轨迹,人坐着才舒服。

实时性——决定可用性

轨迹规划不能算太久。工业场景一般要求 10-50ms 内出结果,自动驾驶要求 100ms 以内。如果算太久,机器人就只能停下来等,效率就没了。

实时性的挑战在于:

  • 搜索空间太大(高维空间)
  • 约束条件太多(运动学、动力学、障碍物)
  • 计算资源有限(嵌入式设备)

我的经验:别一上来就用最复杂的算法。先试试简单的,比如直线插补、圆弧过渡。如果满足不了需求,再上样条曲线、优化方法。很多时候,简单的方法反而更可靠。

知识体系总览

下面这张图,是我自己总结的轨迹规划知识体系。每次带新人,我都会先让他们看这张图,心里有个全局观。

轨迹规划 安全性 平滑性 实时性 静态障碍物 动态障碍物 安全裕量 C0 位置连续 C1 速度连续 C2 加速度连续 Jerk 约束 计算效率 算法复杂度 硬件资源 工业机械臂 移动机器人 自动驾驶

这张图把轨迹规划的核心要素串起来了。中心是轨迹规划本身,往外发散是三大挑战,再往下是每个挑战的具体子项,最下面是典型应用场景。做项目的时候,对着这张图检查,基本不会漏掉关键点。


专注资料整理