一、轨迹优化概述

1.1 什么是轨迹优化

轨迹优化,说白了就是让机器人走一条「好路」。

什么叫好路?
我个人的理解是:在满足所有约束的前提下,找到一条让某个指标最优的路径。
这个指标可以是时间最短、能耗最小、或者运动最平滑。

举个例子你就明白了。
你让机械臂去抓一个杯子。如果随便规划一条轨迹,它可能「哐」地一声撞到桌子。
但如果你做了轨迹优化,它会自动绕开障碍物,同时保证运动平稳、不抖动。

嗯,这里要注意:
轨迹优化 ≠ 路径规划。

路径规划只关心「走哪条路」,不关心「怎么走」。
轨迹优化则要同时考虑位置、速度、加速度,甚至力矩。

核心公式(简化版):

min  J(x)    ← 目标函数(比如能耗)
s.t. g(x) ≤ 0  ← 不等式约束(比如速度上限)
     h(x) = 0  ← 等式约束(比如起点终点固定)

这就是轨迹优化的数学本质——一个带约束的优化问题。

1.2 应用场景

我这些年做过的项目,几乎都离不开轨迹优化。
给你列三个最常见的场景:

无人机

无人机在树林里穿行,既要避开树枝,又要保持姿态稳定。
我记得有一次做巡检项目,无人机差点撞上高压线。
后来加了避障约束和动力学约束,轨迹才变得安全可靠。

  • 约束:障碍物距离、最大倾斜角、电机转速上限
  • 目标:飞行时间最短 或 能耗最低

机械臂

机械臂的轨迹优化,我建议重点关注「平滑性」。
为什么?因为不光滑的轨迹会导致关节抖动,加速磨损。

  • 约束:关节角度限制、速度/加速度极限、避免奇异位形
  • 目标:运动时间最短 或 冲击最小

自动驾驶

自动驾驶里的轨迹优化,说白了就是「怎么打方向盘最舒服」。
你想想看,如果车子突然急转弯,乘客肯定晕车。

  • 约束:道路边界、最大曲率、速度限制
  • 目标:乘坐舒适度 或 通行效率

避坑指南:

我曾经在无人机项目里忽略了「执行器饱和」约束。
结果轨迹算出来很漂亮,但实际飞的时候电机根本跟不上。
嗯,从那以后我每次都会检查:我的约束是否覆盖了物理极限?

1.3 课程目标

这门课,我希望帮你做到三件事:

  1. 看懂问题——拿到一个轨迹优化任务,能快速写出数学形式
  2. 选对方法——知道什么时候用凸优化,什么时候用数值优化
  3. 动手实现——从零写出一个可运行的轨迹优化器

我个人习惯把学习路径分成四个阶段:

阶段 内容 产出
基础 优化理论、约束建模 能看懂论文里的公式
进阶 数值求解器、SQP、内点法 能调通一个优化库
实战 无人机/机械臂案例 能独立完成一个项目
深入 实时优化、MPC 能部署到嵌入式平台

注意:

不要一上来就啃论文。
我见过太多人卡在「看不懂」然后放弃了。
建议先动手跑通一个最简单的例子,比如「两点之间的最小时间轨迹」。

1.4 知识体系总览

下面这张图,是我自己梳理的轨迹优化知识框架。
你可以把它当作整个课程的地图。

轨迹优化 问题建模 求解方法 工程实现 目标函数 约束条件 凸优化 数值优化 求解器选型 代码实现 时间/能耗/平滑 避障/动力学/边界 QP / SOCP SQP / 内点法 OSQP / Ipopt C++ / Python 图:轨迹优化知识体系总览 每个分支将在后续章节中逐一展开

这张图里,我把轨迹优化拆成了三大块:
问题建模、求解方法、工程实现。

我个人建议你按照这个顺序来学。
先学会「怎么描述问题」,再学「怎么求解」,最后才是「怎么落地」。

一个小建议:

刚开始学的时候,别贪多。
先把「凸优化」这一块吃透。
因为大部分轨迹优化问题,最终都可以转化成凸问题来解。
我当年就是先啃了《Convex Optimization》的前五章,后面就顺多了。

好了,这一章就到这里。
下一章我们会正式进入「问题建模」,聊聊怎么把实际需求写成数学公式。

可可精品资料库