一、轨迹规划概述:从“怎么走”到“怎么走得好”

大家好,欢迎来到《轨迹规划:从零到精讲》的第一章。

我是你们这门课的主讲。在机器人这行摸爬滚打了十来年,我见过太多新手一上来就啃最优控制、微分平坦,结果被数学公式劝退。其实,轨迹规划没那么玄乎。说白了,它就是解决一个问题:“让机器人怎么动,才能又快、又稳、还不撞墙?”

嗯,咱们今天就把这个“怎么动”彻底聊透。

1.1 什么是轨迹规划?

先别急着翻书。我问你一个场景:你让家里的扫地机器人去扫茶几底下。它得先知道茶几在哪儿(定位),然后决定怎么绕开沙发腿(路径规划),最后——以多快的速度、多大的转弯半径、什么时候加速、什么时候减速——这就是轨迹规划。

所以,轨迹规划 ≠ 路径规划。

  • 路径规划:只关心“走哪条路”,不关心“怎么走”。比如 A* 算法给你一串离散点。
  • 轨迹规划:在路径的基础上,加上时间信息。它输出的是:位置 q(t)、速度 q̇(t)、加速度 q̈(t),甚至加加速度 jolt。

核心公式(记住这个就够了):

轨迹 = 路径 + 时间律

路径是几何的,轨迹是时间的。

我个人习惯把轨迹规划比作“编舞”。路径是舞步的脚印,轨迹是舞者什么时候抬腿、什么时候转圈、什么时候定格。你想想看,一个机器人如果只有路径没有轨迹,它就会像刚学会走路的孩子——要么突然急刹,要么猛地一冲,浑身抖得像筛糠。

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

我经常跟团队里的新人说:轨迹规划是机器人系统的“腰”。为什么是腰?

  • 上层:感知、定位、决策、路径规划。它们告诉你“去哪儿”。
  • 下层:运动学、动力学、电机控制、伺服驱动。它们负责“执行”。
  • 中间层(腰):轨迹规划。它把上层的“去哪儿”翻译成下层能理解的“怎么动”。

腰不好,上下脱节。我在项目中遇到过好几次:路径规划给了一条完美的避障路径,但轨迹规划没做好,加速度跳变太大,导致机械臂末端抖动,抓取精度直接掉了 0.5mm。嗯,0.5mm 在精密装配里就是废品。

所以,轨迹规划的质量直接决定了:

  • 安全性:会不会急停、会不会超速、会不会撞到人。
  • 舒适性(尤其是人机协作):乘客/操作员会不会觉得晕。
  • 精度:末端执行器能不能准确定位。
  • 效率:能不能在满足约束的前提下跑得最快。

一个小技巧: 判断一个机器人系统“成熟不成熟”,别光看它能不能走,看它启动和停止的那一瞬间——如果加速度曲线是平滑的,说明轨迹规划到位了;如果加速度有尖峰,说明还在“裸奔”。

1.3 常见应用场景

轨迹规划不是某个细分领域的专属。我这些年做过的项目,几乎每个机器人类型都离不开它。咱们挑三个最典型的说说。

1.3.1 机械臂

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

  • 关节空间规划:只关心每个关节从角度 A 转到角度 B,不考虑末端走了什么形状。优点是计算快,适合点焊、码垛。
  • 笛卡尔空间规划:要求末端走直线、圆弧或者样条曲线。适合涂胶、切割、精密装配。

我曾经给一个 6 轴机器人做涂胶轨迹。客户要求胶线宽度误差不超过 0.2mm。关节空间规划根本不行——末端走的是一条弧线,胶线粗细不均。后来换成笛卡尔空间的 S 型速度规划,配合前瞻算法,才把问题搞定。

1.3.2 移动机器人(AGV/AMR)

移动机器人的轨迹规划,难点在于非完整约束。说白了,车不能横着走,也不能原地掉头(除非是麦克纳姆轮)。

常见的轨迹形式:

  • Dubins 曲线:最短路径,但曲率不连续,需要停车换向。
  • Reeds-Shepp 曲线:允许倒车,适合狭窄空间。
  • 多项式/贝塞尔曲线:平滑性好,适合高速行驶。

我记得有一次做仓储 AGV,路径规划给了个直角转弯。如果直接用梯形速度规划,车在转弯处会急刹,货物全倒了。后来加了回旋线(Clothoid)过渡,曲率连续变化,转弯稳得像老司机。

1.3.3 无人机(UAV)

无人机的轨迹规划,比地面机器人多了一个维度——Z 轴。而且动力学更复杂:有俯仰、滚转、偏航,还有推力限制。

无人机轨迹规划的几个关键点:

  • 时间最优:穿越机竞速,要在满足推力约束下飞得最快。
  • 能量最优:巡检无人机,要省电,延长续航。
  • 避障:动态环境下的重规划,比如躲避飞鸟。

我参与过一个编队飞行项目。单机轨迹规划还好说,多机编队要考虑碰撞避免和通信延迟。我们用的是Minimum Snap轨迹生成,把轨迹表示成多项式,然后优化高阶导数。效果不错,但调参调得我头秃。

1.4 课程大纲与学习路径

这门课一共 30 章。我把它分成四个阶段,像打游戏一样,层层递进。

阶段 章节 核心内容 难度
基础篇 1-8 数学基础、运动学、插值、多项式轨迹、梯形/S 型速度规划 ⭐⭐
进阶篇 9-16 最优控制、Minimum Snap/Jerk、B 样条、贝塞尔曲线、时间最优 ⭐⭐⭐
实战篇 17-24 机械臂笛卡尔规划、移动机器人路径平滑、无人机轨迹生成、避障重规划 ⭐⭐⭐⭐
专题篇 25-30 非线性优化、MPC 轨迹跟踪、学习型轨迹规划、工程落地与调参 ⭐⭐⭐⭐⭐

避坑指南: 我曾经见过不少同学,基础篇没学扎实就直接跳到 Minimum Snap。结果连多项式求导都算错,优化出来的轨迹加速度直接爆表。我的建议是:前 8 章,一章都不要跳。 尤其是第 3 章的样条插值和第 5 章的 S 型速度规划,这是后面所有高级算法的地基。

学习路径上,我建议你:

  1. 先动手:每章都有配套的 Python 示例。别光看,跑一遍,改参数,看效果。
  2. 再理解:公式推导我会带着你一步步走,但你要自己推一遍。
  3. 后总结:每章结束,用你自己的话写一段总结。写不出来,说明没真懂。

1.5 本章知识体系

下面这张图,把本章的核心逻辑串起来了。你可以把它当作整个课程的“导航图”。

轨迹规划知识体系(第1章) 轨迹规划 机械臂 移动机器人 无人机 关节空间 笛卡尔空间 非完整约束 曲率连续 时间/能量最优 动态避障 核心:路径 + 时间 = 轨迹 输出:位置、速度、加速度、加加速度

这张图里,我把轨迹规划拆成了三个应用分支。每个分支下面,又列出了它们最核心的挑战。你注意看底部的总结框——“路径 + 时间 = 轨迹”,这是贯穿整门课的第一性原理。

1.6 写在第一章结尾

好了,第一章就到这里。内容不多,但都是干货。

我特意没在这一章塞太多公式。因为我觉得,在动手之前,先搞清楚“我们为什么要学这个”、“学了这个能解决什么问题”,比什么都重要。

从下一章开始,我们会正式进入数学基础。别怕,我会用最直观的方式讲给你听。

嗯,咱们第二章见。