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 知识体系总览

下面这张图是我自己整理的轨迹规划知识框架,帮你理清思路:

轨迹规划基础 轨迹 vs 路径 路径:几何信息(位置序列) | 轨迹:路径 + 时间(速度、加速度) 两个规划空间 关节空间:计算快,无奇异点 笛卡尔空间:路径可控,有奇异点 轨迹插值方法 多项式插值 三次/五次多项式 样条插值 三次样条 / B样条 梯形速度 S曲线 / T曲线 工程应用选择 码垛搬运 → 关节空间 精密装配 → 笛卡尔空间 多任务抓取 → 混合规划

3.5 实战中的选择逻辑

最后,我分享一个实际决策流程。在多任务抓取中,我一般这样选:

  1. 先看任务类型:如果是简单的抓取-放置,直接上关节空间三次多项式插值,又快又稳。
  2. 再看路径要求:如果末端必须走直线(比如从传送带上取工件),必须用笛卡尔空间。
  3. 最后看性能:如果机器人抖动或过冲,检查加速度是否连续,考虑升级到五次多项式或样条。

一个小技巧:

我习惯在仿真阶段先用关节空间快速验证逻辑,等所有点位确认无误后,再切换到笛卡尔空间做精细路径。这样既保证了开发效率,又保证了最终精度。

好了,轨迹规划的基础就聊到这儿。记住:路径是骨架,轨迹是血肉。选对空间、用好插值,你的机器人才能跑得又快又稳。

可可精品资料库