轨迹规划入门:关节空间与笛卡尔空间
轨迹规划,说白了就是让机械臂知道怎么从A点走到B点。不是简单的直线运动,而是要考虑速度、加速度、甚至关节的物理限制。我刚开始接触这个领域时,总觉得不就是插值嘛,后来在项目里吃过亏才明白——选错规划方式,轻则抖动,重则撞机。
这一章我们聚焦两个核心问题:在哪个空间规划,以及用什么速度曲线。掌握了这些,你就能让机械臂走出平滑、可控的轨迹。
关节空间 vs 笛卡尔空间
先看一个直观对比。假设机械臂要从抓取位置移动到放置位置:
| 对比维度 | 关节空间规划 | 笛卡尔空间规划 |
|---|---|---|
| 控制对象 | 每个关节的角度 | 末端位姿(位置+姿态) |
| 路径形状 | 关节角度的平滑变化 | 末端在空间中的直线/圆弧 |
| 计算量 | 低(无需逆解) | 高(每个插值点都要逆解) |
| 典型应用 | 点对点搬运、避障 | 焊接、涂胶、装配 |
我个人习惯这样区分:关节空间只关心关节角度从θ₁变到θ₂,末端走什么路径不管;笛卡尔空间则强制末端走直线或圆弧,关节怎么动是逆解算出来的。
核心原则:如果任务只要求起点和终点准确(比如码垛),用关节空间;如果要求中间路径也准确(比如焊缝),用笛卡尔空间。
梯形速度规划
梯形速度曲线是最常用的速度规划方法。名字很形象——速度随时间的变化像一个梯形:先匀加速,再匀速,最后匀减速。
为什么用梯形?因为简单、可靠。我在调试第一台六轴机器人时,用的就是梯形规划。它有三个关键参数:
- 最大速度 v_max —— 受电机额定转速和减速比限制
- 最大加速度 a_max —— 受电机扭矩和负载惯性限制
- 总位移 S —— 起点到终点的关节角度差(或笛卡尔距离)
梯形规划有个经典问题:如果位移太短,还没加速到最大速度就要减速了。这时候梯形退化成三角形。嗯,这里要注意——必须判断是否存在匀速段。
避坑指南:我曾经在项目里直接套用梯形公式,没检查位移是否足够。结果加速段和减速段重叠,速度曲线变成了一个尖峰,电机直接过流报警。后来我加了一段判断逻辑:如果 v_max² / a_max > S,就按三角形规划处理。
梯形规划的数学表达很简单:
// 梯形速度规划核心逻辑
// 输入:总位移 S,最大速度 v_max,最大加速度 a_max
// 输出:加速时间 t_acc,匀速时间 t_const,减速时间 t_dec
t_acc = v_max / a_max;
S_acc = 0.5 * a_max * t_acc * t_acc; // 加速段位移
if (2 * S_acc >= S) {
// 三角形规划:没有匀速段
t_acc = sqrt(S / a_max);
t_const = 0;
t_dec = t_acc;
} else {
// 标准梯形
S_const = S - 2 * S_acc;
t_const = S_const / v_max;
t_dec = t_acc;
}
你想想看,这个逻辑其实很直观。加速到最大速度需要时间和距离,如果总距离不够,那就只能加速到一半就开始减速。
五次多项式插值
梯形规划的缺点是加速度不连续——在加速结束和减速开始的瞬间,加速度会突变。这会导致机械臂产生冲击和振动。对于精密装配或高速搬运,这种冲击可能造成零件损坏或定位超差。
五次多项式插值就是为了解决这个问题。它保证位置、速度、加速度都连续。为什么是五次?因为我们需要六个边界条件:起点和终点的位置、速度、加速度,正好确定五个系数。
数学形式是这样的:
θ(t) = a₀ + a₁·t + a₂·t² + a₃·t³ + a₄·t⁴ + a₅·t⁵
边界条件:
θ(0) = θ_start, θ(T) = θ_end
θ'(0) = v_start, θ'(T) = v_end
θ''(0) = a_start, θ''(T) = a_end
解这个方程组,得到系数:
a₀ = θ_start
a₁ = v_start
a₂ = a_start / 2
a₃ = (20·Δθ - 8·v_end·T - 12·v_start·T - 3·a_start·T² + a_end·T²) / (2·T³)
a₄ = (30·Δθ + 14·v_end·T + 16·v_start·T + 3·a_start·T² - 2·a_end·T²) / (2·T⁴)
a₅ = (12·Δθ - 6·v_end·T - 6·v_start·T - a_start·T² + a_end·T²) / (2·T⁵)
其中 Δθ = θ_end - θ_start
注意:五次多项式的计算量比梯形大得多。在嵌入式控制器上,如果规划频率是1kHz,每次插值都要算一遍多项式,CPU开销不可忽视。我建议在离线规划时用五次多项式,在线实时规划时用梯形或S形曲线。
两种规划方式的对比总结
| 特性 | 梯形速度规划 | 五次多项式插值 |
|---|---|---|
| 加速度连续性 | 不连续(有突变) | 连续(平滑) |
| 计算复杂度 | O(1),极低 | O(n),较高 |
| 运动时间可控性 | 直接指定v_max和a_max | 需要迭代求解时间T |
| 适用场景 | 粗定位、快速搬运 | 精密装配、轨迹跟踪 |
我个人在实际项目中是这样用的:粗定位用梯形,精定位用五次多项式。比如码垛机器人,抓取和放置的粗运动用梯形,最后接近目标位置时切换成五次多项式,既保证了效率,又避免了冲击。
本章知识体系
下面这张图总结了轨迹规划的完整脉络:
从图中可以看到,轨迹规划的核心是先选空间,再选速度曲线。关节空间和笛卡尔空间决定了路径的几何形状,梯形和五次多项式决定了运动的动态特性。两者组合,就能覆盖绝大多数工业场景。
我的建议:初学者先从关节空间+梯形规划入手,跑通一个点到点的运动。然后换成五次多项式,感受加速度连续带来的平滑效果。最后再尝试笛卡尔空间直线规划。一步一步来,别想一口吃成胖子。
这一章的内容就到这里。记住,轨迹规划不是数学游戏,而是工程实践。你写的每一行代码,最终都会变成机械臂真实的运动。所以,多调试、多观察、多总结。