0. 控制器导览
控制器是机器人系统里最靠近执行器的一层。上层模型负责“想做什么”,运动规划负责“应该怎么走”,控制器负责让电机、关节和末端执行器真的按期望轨迹稳定运动。
这套教程的目标不是把控制理论讲成数学课,而是帮你建立一条工程学习线:
误差反馈
-> PID / PD
-> 离散控制与限幅
-> 状态空间与 LQR
-> 轨迹跟踪
-> MPC
-> 阻抗控制与力控
-> ROS2 / 仿真 / RL / VLA 集成
学完后,你应该能回答这些问题:
- 为什么机器人任务一定要闭环控制?
- PID 三项分别解决什么问题,调参时为什么会振荡、超调、慢响应?
- 为什么真实工程里要关心采样频率、单位、限幅、滤波和积分饱和?
- LQR 和 MPC 相比 PID 多利用了哪些模型信息?
- 接触任务为什么不能只做位置控制?
- 控制器怎样接到 MoveIt 2、
ros2_control、MuJoCo、强化学习策略和 VLA 动作上?
课程章节
| 章节 | 主题 | 你会学到什么 |
|---|---|---|
| 1. 闭环与 PID | 从误差反馈建立控制直觉 | 开环 / 闭环、P / I / D 三项、PD 关节控制 |
| 2. PID 工程 | 把公式变成可靠代码 | 离散化、限幅、抗积分饱和、微分滤波、调参流程 |
| 3. LQR | 从单误差到系统状态 | 状态变量、线性化、Q R 权重、反馈增益 |
| 4. 轨迹跟踪 | 跟踪一条随时间变化的轨迹 | 位置 / 速度 / 加速度目标、前馈反馈、时序同步 |
| 5. MPC | 在约束下滚动优化 | 预测时域、代价函数、动力学约束、实时求解 |
| 6. 阻抗控制与力控 | 让机器人安全接触环境 | 刚度、阻尼、顺从性、末端接触力 |
| 7. 系统集成 | 接到真实机器人软件栈 | ros2_control、MoveIt 2、MuJoCo、RL / VLA 动作接口 |
| 8. 练习路线 | 从仿真到项目的训练安排 | 练习题、排错清单、面试问题 |
控制栈位置
一个典型机器人系统可以拆成四层:
| 层级 | 输入 | 输出 | 常见模块 |
|---|---|---|---|
| 任务层 | 指令、目标物体、场景状态 | 子任务或目标位姿 | VLA、LLM planner、有限状态机 |
| 规划层 | 目标位姿、地图、机器人模型 | 路径、轨迹、接触序列 | MoveIt 2、RRT、CHOMP、步态规划 |
| 控制层 | 期望轨迹、当前状态 | 位置 / 速度 / 力矩命令 | PID、LQR、MPC、阻抗控制 |
| 执行层 | 控制命令 | 电机电流、关节运动 | 电机驱动器、MCU、CAN、EtherCAT |
控制器最核心的职责是缩小期望状态和真实状态之间的差距。这个差距可能是关节角误差、末端位姿误差、质心速度误差,也可能是接触力误差。
常见闭环形式可以写成:
其中
前置基础
开始这套教程前,不需要先完整学完经典控制理论,但最好具备:
- 能读懂 Python / C++ 里的数组、循环和函数。
- 知道关节角、关节速度、力矩、末端位姿这些机器人基本量。
- 看过 MuJoCo 快速上手 或至少知道仿真器如何推进一步。
- 如果做机械臂,建议先了解 运动学与坐标变换。
如果你想先动手,可以从 执行器与 PD 控制 开始。那一章会把单关节闭环响应、过冲、阻尼和稳态误差跑出来,是理解控制器最好的第一块积木。