一、轨迹规划概述
大家好,我是你们这门课的老朋友。今天咱们聊聊轨迹规划——这个在机器人系统里,说实话,挺核心的东西。
我刚开始接触机器人那会儿,总觉得“规划”不就是让机器人动起来嘛,有啥难的?后来真上手做项目,才发现这里面的门道深着呢。你想想看,一个机械臂要从A点抓个杯子放到B点,怎么走?直接直线怼过去?万一中间有障碍物呢?就算没障碍,电机能不能受得了那种急停急转?
嗯,这就是轨迹规划要解决的事。
什么是轨迹规划
简单说,轨迹规划就是给机器人设计一条“路”,并且告诉它这条路怎么走。
但这里有个关键点——它不光管“走哪条路”,还管“怎么走”。比如速度多快、加速度多大、什么时候该减速、什么时候该拐弯。说白了,就是让机器人的运动既安全又平滑。
我个人习惯把轨迹规划比作开车导航:
- 路径规划 = 导航告诉你“走哪条路”
- 轨迹规划 = 导航告诉你“什么时候加速、什么时候刹车、转弯打多少方向盘”
我在做AGV(自动导引车)项目时遇到过一个问题:车明明走对了路径,但一到拐弯就晃得厉害,货物都差点翻掉。后来排查发现,就是轨迹规划没做好——速度曲线太陡,加速度变化太剧烈。
轨迹规划在机器人系统中的作用
说实话,轨迹规划在机器人系统里,就像人的“小脑”一样。它不负责“想做什么”(那是任务规划的事),但负责“怎么做得稳、做得好”。
具体来说,它的作用有这几个:
- 保证运动安全:避免碰撞、避免超出关节限位、避免奇异点
- 提高运动质量:减少抖动、降低冲击、延长机械寿命
- 优化执行效率:在满足约束的前提下,尽量缩短运动时间
- 满足任务约束:比如焊接时要匀速、喷涂时路径要连续
避坑指南:我曾经在一个焊接机器人项目里,只做了路径规划没做轨迹规划,结果焊出来的焊缝粗细不均,直接被客户退货。后来老老实实把速度规划和加速度约束加上,问题才解决。所以,路径规划只是“及格线”,轨迹规划才是“高分项”。
常见轨迹规划方法分类
这里我要强调一个很多新手容易搞混的概念——路径规划 vs 轨迹规划。它们俩虽然名字像,但干的活完全不一样。
| 对比维度 | 路径规划 | 轨迹规划 |
|---|---|---|
| 关注点 | 空间中的几何路径 | 时间上的运动规律 |
| 输出 | 一系列位置点(路径点) | 位置、速度、加速度随时间的变化 |
| 约束 | 障碍物、关节限位 | 速度极限、加速度极限、力矩极限 |
| 典型算法 | A*、RRT、Dijkstra | 梯形速度规划、S形速度规划、多项式插值 |
你想想看,路径规划告诉你“从A到B要绕过这个桌子”,但怎么绕过?是快速冲过去还是慢慢挪过去?这就是轨迹规划的事了。
常见的轨迹规划方法,我按应用场景分了这么几类:
1. 关节空间轨迹规划
直接在关节角度上做规划。每个关节独立规划自己的运动轨迹,然后同步执行。这种方法计算简单,适合点到点运动,比如码垛机器人。
// 关节空间梯形速度规划示例(伪代码)
function jointTrajectory(q_start, q_end, v_max, a_max) {
// 计算运动距离
delta_q = q_end - q_start;
// 计算加速段和减速段
t_acc = v_max / a_max;
// ... 具体计算略
return trajectory; // 返回时间-位置-速度序列
}
2. 笛卡尔空间轨迹规划
在工具坐标系下规划末端执行器的运动轨迹。比如让焊枪沿着一条直线匀速移动,或者让吸盘走一个圆弧轨迹。这种方法更直观,但计算量也更大。
注意:笛卡尔空间规划出来的路径,在关节空间可能不是平滑的。我遇到过的情况是:末端走直线,但某个关节突然要转很大角度,导致电机过载。所以实际项目中,我一般会先做笛卡尔规划,再映射到关节空间做二次优化。
3. 时间最优轨迹规划
在满足速度、加速度、力矩约束的前提下,让运动时间最短。说白了就是“在不违反规则的前提下,能跑多快跑多快”。
我记得有个项目是做高速分拣机器人,客户要求每分钟抓取120次。一开始用梯形速度规划,死活达不到。后来换成时间最优规划,把加速段和减速段压到极限,才勉强达标。不过代价是电机发热比较严重——这就是取舍。
4. 平滑轨迹规划
用多项式、B样条、贝塞尔曲线等方法,生成连续可导的平滑轨迹。这种轨迹对机械臂的冲击小,适合精密装配、医疗手术等场景。
举个例子,S形速度规划就是典型的平滑轨迹——它把加速度的变化率(加加速度)也约束了,运动起来特别柔顺。
// S形速度规划的核心思想
// 分为7段:加加速、匀加速、减加速、匀速、加减速、匀减速、减减速
function sCurveProfile(total_distance, v_max, a_max, j_max) {
// j_max 是加加速度限制
// 计算各段时间
// ... 具体实现略
}
我的建议:新手入门,先掌握梯形速度规划和三次多项式插值就够了。这两个方法虽然简单,但能覆盖80%以上的应用场景。等遇到高精度或高速场景,再学S形规划和时间最优规划。
本章知识体系
下面这张图,是我自己总结的轨迹规划知识框架。你看一眼,心里就有谱了。
这张图把轨迹规划的核心内容串起来了。从上到下,先理解“是什么”,再明白“有什么用”,最后掌握“有哪些方法”。你照着这个框架去学,不会乱。
好了,这一章就聊到这儿。记住一句话:路径规划解决“能不能到”,轨迹规划解决“到得好不好”。后面我们会一步步深入,把每种方法都掰开揉碎了讲清楚。
课后小作业:想想你身边有没有机器人应用的例子?比如扫地机器人、自动售货机的取货机械臂。试着分析一下,它们用了路径规划还是轨迹规划?或者两者都用到了?想明白了,下一章你会学得更轻松。