一、轨迹规划概述:到底什么是轨迹规划?

各位同学好,我是这门课的主讲。在正式开始之前,我想先问大家一个问题:你让机器人从A点走到B点,它真的会走吗?

很多人觉得这很简单——给个目标位置不就行了?但实际做起来,远没那么轻松。我早年做第一个机械臂项目时,就踩过这个坑。直接给电机发位置指令,结果手臂“哐”地一声甩过去,差点把旁边的示教器砸了。嗯,从那以后我才真正理解:让机器人动起来容易,让它“好好动”才是本事。

轨迹规划,说白了就是解决这个问题的。它要回答三个核心问题:去哪儿?怎么去?路上别撞到啥?

轨迹规划的定义:根据任务需求,在满足机器人运动学、动力学约束以及环境障碍约束的前提下,生成一条从起始状态到目标状态的、连续且平滑的运动序列。这条序列通常包含位置、速度、加速度,甚至力矩信息。

1.1 轨迹规划在机器人系统中的地位

我习惯把机器人软件系统分成三层:决策层、规划层、执行层。轨迹规划就卡在中间,承上启下。

  • 决策层:告诉机器人“你要去抓那个杯子”。这是任务级指令。
  • 规划层:把“抓杯子”拆解成“手臂先抬到安全高度→移动到杯子上方→下降→闭合夹爪→抬起”。这一步就是轨迹规划。
  • 执行层:把规划好的轨迹转成电机电流,让关节转起来。

你看,如果没有轨迹规划,决策层的指令太粗糙,执行层根本没法干。反过来,如果轨迹规划做得不好,执行层再好的硬件也白搭。我曾经在一个项目中见过,电机响应带宽很高,但轨迹里加速度跳变太大,末端抖得像筛糠——这就是规划层没扛住。

我的经验:很多初学者把精力全花在控制算法上,忽略了轨迹规划。但实际工程中,一个平滑的轨迹比一个高增益的PID控制器更能提升运动质量。先规划好,再谈控制,顺序别搞反。

1.2 常见应用场景

轨迹规划不是某个领域的专属,它几乎出现在所有需要“动”的机器人里。我挑三个最典型的场景聊聊。

1.2.1 机械臂:从点焊到精密装配

机械臂的轨迹规划,核心是关节空间和笛卡尔空间两条路。

  • 关节空间规划:只关心每个关节从角度A转到角度B,中间怎么走。计算快,但末端轨迹不可控——你没法保证它走直线。
  • 笛卡尔空间规划:直接规划末端在三维空间里的路径,比如走一条直线或圆弧。直观,但计算量大,还可能出现奇异点。

我做过一个汽车产线的点焊项目,要求焊枪末端走直线,而且速度要恒定。当时用了笛卡尔空间的梯形速度规划,配合S型加减速,才把焊缝质量稳住。如果只做关节空间规划,焊枪末端会画弧线,焊点位置全偏了。

规划空间 优点 缺点 典型场景
关节空间 计算快、无奇异点 末端路径不可控 码垛、搬运
笛卡尔空间 路径直观、精度高 计算量大、有奇异点 焊接、涂胶、装配

1.2.2 移动机器人:从扫地到仓储物流

移动机器人的轨迹规划,比机械臂多了一层——环境地图。你想想看,机械臂的工作空间通常是固定的,障碍物位置也基本已知。但移动机器人得边走边看,地图可能不完整,障碍物可能突然出现。

这里有两个经典问题:

  • 全局路径规划:在地图上找一条从起点到终点的无碰撞路径。常用A*、Dijkstra、RRT等算法。
  • 局部轨迹规划:在全局路径的基础上,考虑机器人运动学约束(比如不能原地掉头),生成平滑的速度指令。常用DWA、TEB、MPC等。

我记得做AGV项目时,全局路径用A*跑出来一条折线,直接发给底盘的话,车会在每个拐角急停急转,货物全甩下来。后来加了B样条曲线做平滑,才把运动搞顺。说白了,全局规划管“能不能到”,局部规划管“好不好到”。

避坑指南:我曾经在仓库项目里只做了全局规划,没做局部轨迹平滑。结果AGV在拐弯时因为加速度过大,轮子打滑,里程计积分全漂了。从那以后,我任何移动机器人的项目都会把运动学约束写进规划器里。

1.2.3 自动驾驶:从车道保持到避障换道

自动驾驶是轨迹规划的“终极考场”。它不仅要考虑运动学、动力学,还要考虑交通规则、行人意图、实时性。你想想看,高速上100km/h的车,规划周期必须控制在50ms以内,否则就是生死之差。

自动驾驶的轨迹规划通常分三层:

  1. 路由规划:从地图上找一条从A到B的道路序列。类似导航。
  2. 行为规划:决定下一步做什么——跟车、换道、停车、避让。
  3. 运动规划:生成具体的轨迹,包含位置、速度、曲率,确保车辆能平稳执行。

我在参与一个园区无人车项目时,最头疼的不是算法本身,而是实时性。用Frenet坐标系做轨迹采样,每帧要生成几百条候选轨迹,再选最优。当时优化了很久,才把单帧计算压到30ms以内。嗯,这里要注意:自动驾驶的轨迹规划,算法精度和计算速度必须同时抓。

1.3 本章知识体系总览

下面这张图,是我自己梳理的本章知识结构。你可以把它当成一张地图,后面每讲一个算法,都能在这张图上找到它的位置。

轨迹规划知识体系总览 轨迹规划 机械臂轨迹规划 移动机器人轨迹规划 自动驾驶轨迹规划 关节空间 笛卡尔空间 全局路径 局部轨迹 路由规划 行为规划 运动规划 核心共性:运动学约束 + 动力学约束 + 避障 + 平滑性 不同场景的差异在于:约束类型、实时性要求、环境不确定性程度

1.4 本章小结

这一章我们聊了三个事:

  • 轨迹规划是什么——生成一条平滑、安全、可执行的运动序列。
  • 它在系统里的位置——连接决策和执行的关键桥梁。
  • 三个典型场景——机械臂、移动机器人、自动驾驶,各有各的难点。

我个人觉得,学轨迹规划最好的方式就是“先见森林,再见树木”。这一章就是那片森林。后面我们会一棵树一棵树地爬,从最简单的梯形速度规划,到复杂的MPC、RRT*,一步步来。