1. 课程导入
机器人从“能运动”走向“会决策”,核心跨越在于控制层能否在约束条件下持续寻找最优动作。优化控制与模型预测控制(Model Predictive Control, MPC)正是这一跨越的两条主线:前者提供“如何定义最优”的数学语言,后者提供“如何在线滚动求解”的工程框架。本课程的目标,是让学习者既能写出机器人的动力学与约束模型,又能把它们转化为可实时求解的优化问题,并在仿真与实机上验证闭环性能。
1. 用状态空间、代价函数与约束三要素描述一个机器人控制问题;
2. 区分LQR、iLQR、DDP、MPC、WBC等方法的适用边界;
3. 针对机械臂、移动机器人、四足等对象搭建预测模型并设计代价;
4. 使用QP/NLP求解器完成滚动优化,并处理实时性与可行性问题;
5. 通过仿真与实验复盘控制器的跟踪误差、约束满足率与计算耗时。
1.1 核心概念:从“反馈”到“预测”
经典PID控制只根据当前误差调整输入,不显式考虑未来。优化控制则把控制问题写成:在系统动力学约束下,最小化一段未来时间内的累积代价。其一般形式可写为:
min J = Σ_{k=0}^{N-1} [ x_k^T Q x_k + u_k^T R u_k ] + x_N^T Q_f x_N
s.t. x_{k+1} = f(x_k, u_k) // 动力学约束
x_k ∈ X, u_k ∈ U // 状态与输入约束
x_0 = x_current // 当前状态
其中 N 为预测时域,Q、R、Q_f 为权重矩阵,X、U 为可行域。MPC 的关键特征是“滚动时域”:每个控制周期只执行优化解的第一个输入,然后以新状态重新求解。这种“预测—优化—执行—再预测”的闭环结构,使机器人能够提前规避障碍、满足关节限位,并在模型失配时保持鲁棒。
1.2 方法流程:一次MPC控制周期做了什么
理解MPC最有效的方式,是跟踪一个控制周期内的数据流。假设机器人当前状态为 x_current,控制器需要完成以下步骤:
- 状态估计:从编码器、IMU、视觉等传感器融合得到当前状态;
- 预测建模:用离散动力学
x_{k+1}=f(x_k,u_k)展开未来N步; - 构造优化问题:将代价、动力学、状态/输入约束写成QP或NLP;
- 在线求解:调用求解器,得到最优输入序列
u_0*, u_1*, ..., u_{N-1}*; - 执行首项:只把
u_0*发给底层执行器; - 滚动更新:等待下一个周期,用新状态重复上述过程。
N 越长,前瞻能力越强,但计算量近似线性增长;控制周期越短,实时性要求越高。工程上常用“短时域+热启动”平衡性能与算力。
1.3 典型应用场景与参数直觉
不同机器人对象对MPC的诉求差异明显。下表给出常见场景与关键参数的关系,便于建立工程直觉:
| 应用场景 | 预测模型 | 主要约束 | 典型时域N | 控制周期 |
|---|---|---|---|---|
| 机械臂抓取 | 刚体动力学 | 关节限位、力矩上限 | 10~20 | 5~20 ms |
| 移动机器人导航 | 差速/阿克曼模型 | 速度、障碍距离 | 15~30 | 20~50 ms |
| 四足行走 | 浮动基动力学 | 接触力锥、摩擦 | 10~25 | 2~10 ms |
| 无人机轨迹跟踪 | 线性化姿态模型 | 推力、倾角 | 20~40 | 5~20 ms |
可以看到,控制周期越短、模型越复杂,对求解器的实时性要求越高。这也是为什么工程中常把非线性MPC近似为线性MPC或QP,并配合热启动、稀疏结构利用等技巧。
1.4 常见误区与复盘要点
误区二:忽略可行性。 约束过紧或初始状态不可行时,求解器可能无解,必须设计软约束或可行性恢复策略。
误区三:只调权重不看物理量纲。
Q与R的量纲不一致会导致某一项主导,建议先归一化再调参。误区四:忽视计算耗时。 仿真中跑得通不代表实机实时,必须测量单周期求解时间并留出余量。
复盘时建议记录三组数据:跟踪误差(RMSE)、约束违反次数、单周期求解耗时。三者共同决定控制器是否真正可用。若误差大,先检查模型与代价;若约束频繁违反,检查约束设置与求解器容差;若耗时超标,优先简化模型或缩短时域,再考虑代码级优化。
本课程后续将沿着“建模—优化—求解—部署—复盘”的主线展开:先建立机器人动力学与约束的数学描述,再学习LQR、iLQR、DDP等基础优化方法,随后进入线性MPC与非线性MPC的推导与实现,最后结合机械臂、移动机器人和四足平台完成综合案例。掌握这条主线,你就能把“预测—优化—执行”的闭环真正落到机器人系统上。