3. 轨迹规划基础:轨迹与路径的区别、关节空间 vs 笛卡尔空间规划、轨迹插值
大家好,我是你们的老朋友。今天咱们聊聊轨迹规划的基础。说实话,很多新手一上来就把“路径”和“轨迹”混为一谈,这在工程里可是要出大问题的。我当年刚入行时也犯过这个错,调试时机器人动作看着没问题,一抓取就撞工件,后来才发现是轨迹没规划好。
3.1 轨迹与路径:一字之差,天壤之别
先搞清楚这两个概念。你想想看:
- 路径(Path):只描述空间位置序列。比如从A点到B点,中间经过哪些点。它不管速度、加速度,纯粹是几何信息。
- 轨迹(Trajectory):路径 + 时间信息。每个点都带上了时间戳,告诉你什么时候到、速度多快、加速度多大。
说白了,路径是“死”的,轨迹是“活”的。路径告诉机器人“去哪里”,轨迹告诉机器人“怎么去”。
核心区别速览:
| 维度 | 路径 | 轨迹 |
|---|---|---|
| 包含信息 | 位置序列 | 位置 + 时间 + 速度 + 加速度 |
| 是否连续 | 几何连续 | 时间连续 + 运动学连续 |
| 工程意义 | 避障参考 | 实际控制指令 |
我在做多任务抓取时,经常遇到这种情况:路径规划好了,但机器人一跑就抖动。为什么?因为路径只保证了位置连续,没保证速度连续。轨迹规划就是要解决这个“平滑”问题。
3.2 关节空间 vs 笛卡尔空间:两条路,各有千秋
规划轨迹时,我们有两个选择:在关节空间里算,或者在笛卡尔空间里算。嗯,这里要注意,选错了空间,轻则效率低,重则任务失败。
3.2.1 关节空间规划
直接在关节角度上做插值。比如从关节角q1到q2,中间插出平滑的曲线。
- 优点:计算快,没有奇异性问题,适合点到点运动。
- 缺点:末端执行器的路径不可控,可能走弧线、绕远路。
我个人习惯在码垛、搬运这类任务中用关节空间规划。因为末端路径不重要,只要起点终点对就行,中间怎么走无所谓。
3.2.2 笛卡尔空间规划
在工具坐标系下规划末端位姿的轨迹。比如让末端走直线、画圆弧。
- 优点:路径可控,适合精密装配、焊缝跟踪。
- 缺点:计算量大,可能遇到奇异点,需要逆解算关节角。
我曾经在打磨任务中吃过亏——用关节空间规划,结果末端路径是个大弧线,把工件边缘磨坏了。后来换成笛卡尔空间直线插补,问题才解决。
我的经验法则:
- 点到点运动(如抓取-放置)→ 关节空间
- 路径敏感运动(如涂胶、切割)→ 笛卡尔空间
- 复杂任务 → 混合使用:粗规划用关节空间,精调用笛卡尔空间
3.3 轨迹插值:让运动丝般顺滑
有了路径,怎么生成轨迹?靠插值。插值的本质是“猜”出中间点的位置和速度。我见过不少同学直接用线性插值,结果机器人启动和停止时猛冲猛停,看着都心疼。
3.3.1 多项式插值
最常用的是三次多项式。为什么是三次?因为它能同时约束位置和速度。
// 三次多项式插值示例
// 已知:起点q0, 终点q1, 起点速度v0=0, 终点速度v1=0
// 求解:q(t) = a0 + a1*t + a2*t^2 + a3*t^3
// 边界条件:
// q(0) = q0
// q(T) = q1
// q'(0) = 0
// q'(T) = 0
// 解系数:
a0 = q0
a1 = 0
a2 = 3*(q1 - q0) / T^2
a3 = -2*(q1 - q0) / T^3
你看,四个方程解四个未知数,刚好。如果还要约束加速度,就得用五次多项式。我在项目中一般用三次就够了,除非对加速度有严格要求。
3.3.2 样条插值
当路径点很多时,用多项式分段插值,就形成了样条。B样条、三次样条是工业界的主流。
- 三次样条:保证位置、速度、加速度连续。适合高速运动。
- B样条:局部可控,修改一个点不影响全局。适合在线调整。
避坑指南:
我曾经在一条产线上用三次样条插值,结果机器人末端在拐点处出现了“过冲”。后来发现是样条曲线在边界处没有处理好。解决方案是加虚拟点,让曲线在边界处更平滑。记住:样条不是万能的,边界条件一定要检查。
3.4 知识体系总览
下面这张图是我自己整理的轨迹规划知识框架,帮你理清思路:
3.5 实战中的选择逻辑
最后,我分享一个实际决策流程。在多任务抓取中,我一般这样选:
- 先看任务类型:如果是简单的抓取-放置,直接上关节空间三次多项式插值,又快又稳。
- 再看路径要求:如果末端必须走直线(比如从传送带上取工件),必须用笛卡尔空间。
- 最后看性能:如果机器人抖动或过冲,检查加速度是否连续,考虑升级到五次多项式或样条。
一个小技巧:
我习惯在仿真阶段先用关节空间快速验证逻辑,等所有点位确认无误后,再切换到笛卡尔空间做精细路径。这样既保证了开发效率,又保证了最终精度。
好了,轨迹规划的基础就聊到这儿。记住:路径是骨架,轨迹是血肉。选对空间、用好插值,你的机器人才能跑得又快又稳。