1. 轨迹规划概述:从“怎么走”到“怎么走得好”
大家好,欢迎来到《轨迹规划算法原理解析》的第一章。
我是你们这门课的老朋友。在机器人这行摸爬滚打了十几年,我见过太多项目在“动起来”这一步就卡住了。说白了,轨迹规划就是解决一个核心问题:机器人怎么从A点优雅地走到B点。
你可能会说:“这还不简单?直接走过去不就行了?”嗯,要是真这么简单,我们这些工程师早就失业了。实际场景里,你得考虑关节会不会撞到自己、末端执行器能不能避开障碍物、运动够不够平滑、时间能不能再短一点……这些,都是轨迹规划要干的事。
一句话总结:轨迹规划 = 在满足运动学和动力学约束的前提下,生成一条从起点到终点的、时间参数化的位置、速度、加速度曲线。
1.1 什么是轨迹规划?
先拆开看。“轨迹”和“路径”在咱们这行是有区别的。
- 路径(Path):只描述空间中的几何形状,不关心时间。比如“从门口到桌子前画一条直线”。
- 轨迹(Trajectory):路径 + 时间信息。比如“从门口到桌子前,用2秒走完,中间速度先快后慢”。
所以,轨迹规划就是给路径加上“时间轴”。它输出的不是一串点,而是一组函数:q(t)、q̇(t)、q̈(t),分别代表位置、速度、加速度随时间的变化。
我记得刚入行时带我的老工程师说过一句话,我一直记到现在:“路径决定你去哪,轨迹决定你怎么去。” 这句话虽然简单,但每次做项目遇到抖动或者冲击时,我都会回头想想——是不是轨迹没规划好?
一个小技巧:在调试阶段,我习惯先把轨迹的速度和加速度设得很保守(比如最大速度的20%),等路径验证没问题了,再慢慢往上提。这样能避免机器人“飞出去”砸坏东西。
1.2 轨迹规划在机器人系统中的地位
如果把机器人系统比作一个人,那各个模块的分工大概是这样的:
| 模块 | 类比 | 职责 |
|---|---|---|
| 感知 | 眼睛 | 看世界,识别物体和障碍 |
| 决策/规划 | 大脑 | 想清楚去哪、怎么走 |
| 轨迹规划 | 小脑 + 运动神经 | 把“想法”变成具体的“动作指令” |
| 控制 | 肌肉 | 执行指令,克服干扰 |
| 执行器 | 手脚 | 产生实际的力/运动 |
你看,轨迹规划正好卡在“决策”和“控制”中间。它是个承上启下的关键环节。决策层说“去抓那个杯子”,轨迹规划就得算出来:每个关节在什么时间转到什么角度、转多快。控制层才能照着这个去驱动电机。
我在项目里遇到过好几次这样的情况:上层路径规划得很好,避障也完美,但到了轨迹规划这步,因为没考虑电机最大加速度限制,结果一启动就触发驱动器过流报警。嗯,这就是典型的“大脑想得很好,小脑没跟上”。
避坑指南:我曾经在一个焊接机器人项目里,直接用了路径规划输出的折线作为轨迹输入。结果每个拐角处速度突变,焊枪抖动得厉害,焊缝质量完全不合格。后来老老实实加了圆弧过渡和速度平滑,才解决问题。所以记住:路径规划的输出,不能直接喂给控制器,中间必须经过轨迹规划这层处理。
1.3 轨迹规划的分类:关节空间 vs 笛卡尔空间
这是轨迹规划里最基础、也最重要的一个分类。说白了,就是你在哪个坐标系里描述运动。
1.3.1 关节空间轨迹规划
直接在关节角度(或位置)空间里规划。比如六轴机器人,就是规划 θ₁(t), θ₂(t), ..., θ₆(t) 这六个函数。
优点:
- 计算简单,不需要做逆运动学(IK)
- 天然避免关节奇异位形
- 容易满足关节自身的物理限制(速度、加速度极限)
缺点:
- 末端执行器的运动路径不可控——你只知道起点和终点的位姿,中间怎么走的,完全取决于机器人构型
- 可能走出一条在笛卡尔空间里很奇怪的曲线
我个人习惯在以下场景优先使用关节空间规划:
- 点到点运动(比如从A点抓取到B点放置,中间不关心路径形状)
- 对末端路径没有严格要求的场合
- 需要快速计算、实时性要求高的场景
1.3.2 笛卡尔空间轨迹规划
在末端执行器的位姿空间里规划。规划的是 x(t), y(t), z(t), roll(t), pitch(t), yaw(t) 或者齐次变换矩阵 T(t)。
优点:
- 末端路径直观可控——你可以指定走直线、圆弧、或者任意曲线
- 便于避障和工艺要求(比如焊接必须走直线)
缺点:
- 每个轨迹点都需要做逆运动学求解,计算量大
- 可能遇到奇异点——在奇异位形附近,关节速度会突变甚至趋于无穷
- 关节空间的约束(如关节限位)需要额外检查
你想想看,如果让机器人用毛笔写字,你肯定得用笛卡尔空间规划——因为你要精确控制笔尖的轨迹。但如果只是让机器人把零件从传送带搬到料箱里,关节空间规划就够用了,还省事。
1.3.3 对比总结
| 对比维度 | 关节空间规划 | 笛卡尔空间规划 |
|---|---|---|
| 规划对象 | 关节角度/位置 | 末端位姿 |
| 是否需要逆运动学 | 不需要(只在起点终点算一次) | 每个插补点都需要 |
| 计算复杂度 | 低 | 高 |
| 末端路径可控性 | 不可控 | 完全可控 |
| 奇异点问题 | 不易遇到 | 容易遇到,需特殊处理 |
| 典型应用 | 搬运、码垛、简单装配 | 焊接、涂胶、打磨、写字 |
1.4 本章知识体系总览
下面这张图,是我自己梳理的本章知识结构。你可以把它当作一个“地图”,后面每学一个新概念,都能在这张图上找到它的位置。
这张图把本章的核心脉络都串起来了。你可以看到,轨迹规划往下分,就是关节空间和笛卡尔空间两大流派。每个流派又有自己经典的规划方法。后面的章节,我们会一个一个地深入拆解。
好了,第一章就到这里。内容不多,但都是基础中的基础。搞清楚了“在哪个空间规划”,后面学具体算法时就不会迷路。