一、轨迹优化概述
1.1 什么是轨迹优化
轨迹优化,说白了就是让机器人走一条「好路」。
什么叫好路?
我个人的理解是:在满足所有约束的前提下,找到一条让某个指标最优的路径。
这个指标可以是时间最短、能耗最小、或者运动最平滑。
举个例子你就明白了。
你让机械臂去抓一个杯子。如果随便规划一条轨迹,它可能「哐」地一声撞到桌子。
但如果你做了轨迹优化,它会自动绕开障碍物,同时保证运动平稳、不抖动。
嗯,这里要注意:
轨迹优化 ≠ 路径规划。
路径规划只关心「走哪条路」,不关心「怎么走」。
轨迹优化则要同时考虑位置、速度、加速度,甚至力矩。
核心公式(简化版):
min J(x) ← 目标函数(比如能耗)
s.t. g(x) ≤ 0 ← 不等式约束(比如速度上限)
h(x) = 0 ← 等式约束(比如起点终点固定)
这就是轨迹优化的数学本质——一个带约束的优化问题。
1.2 应用场景
我这些年做过的项目,几乎都离不开轨迹优化。
给你列三个最常见的场景:
无人机
无人机在树林里穿行,既要避开树枝,又要保持姿态稳定。
我记得有一次做巡检项目,无人机差点撞上高压线。
后来加了避障约束和动力学约束,轨迹才变得安全可靠。
- 约束:障碍物距离、最大倾斜角、电机转速上限
- 目标:飞行时间最短 或 能耗最低
机械臂
机械臂的轨迹优化,我建议重点关注「平滑性」。
为什么?因为不光滑的轨迹会导致关节抖动,加速磨损。
- 约束:关节角度限制、速度/加速度极限、避免奇异位形
- 目标:运动时间最短 或 冲击最小
自动驾驶
自动驾驶里的轨迹优化,说白了就是「怎么打方向盘最舒服」。
你想想看,如果车子突然急转弯,乘客肯定晕车。
- 约束:道路边界、最大曲率、速度限制
- 目标:乘坐舒适度 或 通行效率
避坑指南:
我曾经在无人机项目里忽略了「执行器饱和」约束。
结果轨迹算出来很漂亮,但实际飞的时候电机根本跟不上。
嗯,从那以后我每次都会检查:我的约束是否覆盖了物理极限?
1.3 课程目标
这门课,我希望帮你做到三件事:
- 看懂问题——拿到一个轨迹优化任务,能快速写出数学形式
- 选对方法——知道什么时候用凸优化,什么时候用数值优化
- 动手实现——从零写出一个可运行的轨迹优化器
我个人习惯把学习路径分成四个阶段:
| 阶段 | 内容 | 产出 |
|---|---|---|
| 基础 | 优化理论、约束建模 | 能看懂论文里的公式 |
| 进阶 | 数值求解器、SQP、内点法 | 能调通一个优化库 |
| 实战 | 无人机/机械臂案例 | 能独立完成一个项目 |
| 深入 | 实时优化、MPC | 能部署到嵌入式平台 |
注意:
不要一上来就啃论文。
我见过太多人卡在「看不懂」然后放弃了。
建议先动手跑通一个最简单的例子,比如「两点之间的最小时间轨迹」。
1.4 知识体系总览
下面这张图,是我自己梳理的轨迹优化知识框架。
你可以把它当作整个课程的地图。
这张图里,我把轨迹优化拆成了三大块:
问题建模、求解方法、工程实现。
我个人建议你按照这个顺序来学。
先学会「怎么描述问题」,再学「怎么求解」,最后才是「怎么落地」。
一个小建议:
刚开始学的时候,别贪多。
先把「凸优化」这一块吃透。
因为大部分轨迹优化问题,最终都可以转化成凸问题来解。
我当年就是先啃了《Convex Optimization》的前五章,后面就顺多了。
好了,这一章就到这里。
下一章我们会正式进入「问题建模」,聊聊怎么把实际需求写成数学公式。