一、轨迹规划概述:从定义到工程落地
大家好,欢迎来到《轨迹规划算法进阶与工程应用》的第一章。
轨迹规划这个词,搞机器人的应该都不陌生。但说实话,我面试过不少候选人,能把「轨迹规划」和「路径规划」说清楚区别的,真不多。很多人一上来就混着用,结果到了写代码、调参数的时候,才发现根本不是一回事。
这一章,我们就先把地基打牢。我会结合自己这些年做项目踩过的坑,把轨迹规划的定义、它在机器人系统里的位置、跟路径规划的区别,以及常见的应用场景,一次性讲透。
1.1 轨迹规划到底是什么?
先给个最直白的定义:轨迹规划,就是生成一条带时间信息的运动曲线。
你想想看,一个机械臂要从A点抓个零件放到B点,光知道A和B的位置够吗?不够。你还要知道它什么时候出发、中间怎么走、速度多快、加速度多大。这些信息合在一起,才叫一条完整的轨迹。
用数学语言说,轨迹规划的输出是一个函数:
q(t) : [t₀, t_f] → ℝⁿ
其中 q(t) 是机器人在 t 时刻的关节位置(或末端位姿),t₀ 是起始时间,t_f 是终止时间。这个函数通常还要保证一阶、二阶甚至三阶连续——说白了,就是运动要平滑,不能有突变。
核心要点:轨迹 = 路径 + 时间律。路径只关心空间几何,轨迹还要告诉你什么时候到、怎么加速减速。
我在做第一个工业机器人项目时,就犯过这个错。当时只规划了路径,没考虑速度曲线,结果机器人一启动就猛冲,末端抖得像筛糠一样。嗯,从那以后,我再也不敢轻视轨迹规划了。
1.2 轨迹规划在机器人系统中的位置
一个典型的机器人软件架构,从上到下大概分这么几层:
- 任务层:决定「做什么」——比如「把螺丝拧到孔里」
- 规划层:决定「怎么做」——生成运动轨迹
- 控制层:决定「怎么执行」——跟踪轨迹,输出力矩
- 执行层:电机、驱动器、传感器
轨迹规划就卡在规划层。它上接任务层,下连控制层。任务层告诉你目标,轨迹规划算出怎么运动,控制层再去跟踪这条轨迹。
我个人习惯把轨迹规划比作「翻译官」——把高层任务翻译成底层能执行的连续运动指令。这个位置非常关键,一旦翻译错了,控制层再牛也白搭。
下面这张图,是我自己总结的轨迹规划在机器人系统中的位置关系:
1.3 轨迹规划 vs 路径规划:别再搞混了
这是面试高频题,也是实际开发中最容易混淆的概念。我直接列个表,一目了然:
| 对比维度 | 路径规划 | 轨迹规划 |
|---|---|---|
| 输出内容 | 空间点序列(无时间) | 带时间的位置/速度/加速度曲线 |
| 核心约束 | 避障、连通性、最短路径 | 运动学/动力学约束、平滑性、时间最优 |
| 典型算法 | A*、RRT、PRM、Dijkstra | 多项式插值、样条曲线、梯形速度规划 |
| 是否考虑时间 | ❌ 不考虑 | ✅ 必须考虑 |
| 工程关注点 | 能否到达、是否撞墙 | 运动是否平滑、电机是否跟得上 |
举个例子你就明白了。假设你家扫地机器人要从客厅去卧室:
- 路径规划告诉你:先绕过沙发,再穿过门,最后停在床边——这是空间路线。
- 轨迹规划告诉你:前2秒加速到0.5m/s,中间5秒匀速,最后3秒减速到0——这是运动过程。
两者缺一不可。路径规划管「能不能到」,轨迹规划管「怎么到得稳、到得快」。
⚠️ 我曾经踩过的坑:有一次做AGV调度,我只做了路径规划,没做轨迹规划。结果两辆车在交叉口同时到达,路径不冲突,但速度没协调好,直接撞上了。从那以后,我所有项目都强制要求:路径规划 + 轨迹规划必须一起上。
1.4 应用场景概览
轨迹规划不是实验室里的玩具,它在工业界遍地开花。我挑几个典型的说说:
1.4.1 工业机械臂
这是最传统的应用。焊接、喷涂、搬运、装配,都需要轨迹规划。我记得有个汽车焊装项目,要求机械臂在6秒内完成一条3米长的焊缝,同时末端抖动不能超过0.1mm。这种场景下,光用梯形速度规划根本不够,得上S形曲线甚至高阶多项式。
1.4.2 移动机器人(AGV/AMR)
仓库里的AGV,不仅要规划路径,还要规划速度曲线。转弯时减速、直道加速、遇到行人紧急制动——这些都是轨迹规划的活。我做过一个电商仓库的项目,200台AGV同时运行,轨迹规划的好坏直接决定了会不会「堵车」。
1.4.3 无人机/四旋翼
无人机航迹规划,本质上也是轨迹规划。但这里多了个维度——高度。而且无人机动力学更复杂,加速度不能太大,否则会翻。我见过一个航拍项目,因为轨迹规划没考虑最大倾斜角,无人机一转弯就侧翻,直接炸机了。
1.4.4 人形机器人/双足机器人
这个领域最近很火。双足行走的轨迹规划,不仅要规划质心的位置,还要规划脚掌的落点、摆动腿的轨迹。每一步都是一个小型轨迹规划问题。说实话,这个我还在学习中,但趋势很明显——未来人形机器人会越来越多。
1.4.5 自动驾驶
自动驾驶里的轨迹规划,通常叫「运动规划」。它要结合道路结构、交通规则、障碍物预测,生成一条安全舒适的行驶轨迹。我记得特斯拉的Autopilot团队公开说过,他们的轨迹规划模块用了五次多项式,就是为了保证乘坐舒适性。
💡 我的建议:如果你是初学者,先从工业机械臂的轨迹规划入手。因为机械臂的运动学模型相对简单,约束也清晰,适合打基础。等搞懂了多项式插值、速度规划这些核心概念,再扩展到移动机器人、无人机,会轻松很多。
1.5 本章小结
这一章我们聊了:
- 轨迹规划的定义——带时间信息的运动曲线
- 它在机器人系统中的位置——任务层和控制层之间的桥梁
- 跟路径规划的区别——路径管空间,轨迹管时间+空间
- 五大应用场景——机械臂、AGV、无人机、人形机器人、自动驾驶
说白了,轨迹规划就是让机器人「动得聪明」。没有它,机器人要么不会动,要么动得像个醉汉。