机器人控制理论
概述
机器人控制的目标是使机器人精确执行期望的运动或施加期望的力。控制器需要基于 动力学模型 计算驱动力矩,实现对位置、速度、力的精确跟踪。
graph TB
subgraph "控制架构"
A["轨迹规划器"] --> B["控制器"]
B --> C["机器人"]
C -->|"关节编码器"| D["状态估计"]
C -->|"力/力矩传感器"| E["力反馈"]
D --> B
E --> B
end
style A fill:#e8f4fd,stroke:#2196F3
style B fill:#fff3e0,stroke:#FF9800
style C fill:#f3e5f5,stroke:#9C27B0
1 PID 控制
1.1 基本形式
PID 是最基础也最广泛使用的控制方法。对单关节:
其中误差 \(e(t) = q_d(t) - q(t)\)。
各项作用:
| 项 | 作用 | 调参影响 |
|---|---|---|
| P(比例) | \(K_p e\) | 减小稳态误差,过大引起振荡 |
| I(积分) | \(K_i \int e \, dt\) | 消除稳态误差,过大引起超调和振荡 |
| D(微分) | \(K_d \dot{e}\) | 增加阻尼,抑制振荡,对噪声敏感 |
1.2 独立关节 PID
将每个关节视为独立系统,分别设计 PID:
局限性:
- 忽略关节间的动力学耦合
- 忽略重力补偿
- 在高速运动时跟踪精度下降
1.3 PD + 重力补偿
在实践中最常用的简单控制律之一:
其中 \(g(q)\) 为重力补偿项。该控制律保证在静态和低速运动下的精度。
渐近稳定性证明
选择 Lyapunov 函数 \(V = \frac{1}{2}e^T K_p e + \frac{1}{2}\dot{q}^T M(q)\dot{q}\),可以证明在 PD + 重力补偿下系统渐近稳定。
2 计算力矩控制(Computed Torque Control)
2.1 基本思想
利用完整的动力学模型进行 非线性反馈线性化,将非线性系统转化为线性系统。
控制律:
更紧凑地写为:
2.2 闭环分析
将控制律代入运动方程 \(M\ddot{q} + C\dot{q} + g = \tau\):
由于 \(M(q)\) 正定,得到误差动力学:
这是一个线性二阶系统!选择 \(K_p, K_d > 0\) 即可保证指数稳定。
2.3 实践考虑
| 问题 | 描述 | 解决方法 |
|---|---|---|
| 模型不确定性 | \(M, C, g\) 与真实值有偏差 | 鲁棒控制、自适应控制 |
| 计算延迟 | 实时计算逆动力学 | Newton-Euler \(O(n)\) 递推 |
| 关节摩擦 | 未建模的摩擦力 | 摩擦补偿项 |
| 传感器噪声 | 速度估计不准 | 滤波、观测器 |
3 阻抗控制(Impedance Control)
3.1 动机
在与环境交互时(如装配、擦拭),纯位置控制过于"刚性"。阻抗控制通过调节末端执行器的动态行为来实现柔顺交互。
3.2 目标阻抗
期望末端执行器表现出如下动力学行为:
其中:
| 参数 | 含义 | 效果 |
|---|---|---|
| \(M_d\) | 期望惯量 | 控制加速度响应 |
| \(D_d\) | 期望阻尼 | 控制速度响应 |
| \(K_d\) | 期望刚度 | 控制位移响应 |
| \(e = x_d - x\) | 末端位置误差 | |
| \(F_{\text{ext}}\) | 外部接触力 |
3.3 实现
关节空间阻抗控制:
其中参考加速度 \(\ddot{q}_r\) 由阻抗关系确定。
简化实现(无力传感器时):
此时阻抗由 \(K_d\) 和 \(D_d\) 确定,不需要力传感器。
3.4 导纳控制
阻抗控制的对偶形式:
- 阻抗控制:输入运动偏差,输出力 → 适合力控制的执行器
- 导纳控制:输入力偏差,输出运动 → 适合位置控制的执行器
4 力控制
4.1 力/位混合控制
Raibert-Craig 方法(1981):在不同方向上分别控制力和位置。
定义选择矩阵 \(S\)(对角矩阵,元素为 0 或 1):
- \(S_{ii} = 1\):第 \(i\) 方向做力控制
- \(S_{ii} = 0\):第 \(i\) 方向做位置控制
例如:垂直于工件表面方向做力控制,平行方向做位置控制。
4.2 力控制器设计
PI 力控制:
力控制的挑战
- 接触/非接触状态切换导致不连续
- 环境刚度未知时稳定性难保证
- 力传感器噪声和延迟
5 操作空间控制
5.1 基本思想
直接在任务空间(笛卡尔空间)设计控制律,通过雅可比映射到关节空间。
操作空间动力学(Khatib, 1987):
其中:
5.2 控制律
映射到关节力矩:
等价地:
5.3 冗余机器人的零空间控制
对冗余机器人(\(n > 6\)),可以在满足主任务的同时利用零空间完成辅助任务:
其中 \(\tau_0\) 是零空间力矩,可用于:
- 关节极限回避
- 奇异性回避
- 自碰撞回避
- 姿态优化
6 自适应控制
6.1 动机
当动力学参数(质量、惯量、摩擦系数等)未知或变化时,需要在线估计并补偿。
6.2 自适应计算力矩
利用动力学方程的线性参数化性质:
控制律:
其中 \(s = \dot{e} + \Lambda e\) 为滑模变量,\(\hat{\pi}\) 为参数估计值。
参数更新律:
其中 \(\Gamma > 0\) 为学习率矩阵。
稳定性保证
通过 Lyapunov 分析可以证明:\(s \to 0\)(跟踪误差收敛),但不保证 \(\hat{\pi} \to \pi\)(参数不一定收敛到真实值,除非持续激励条件满足)。
7 鲁棒控制
7.1 滑模控制
设计滑模面 \(s = \dot{e} + \lambda e\),控制律保证 \(s\) 快速到达零并保持:
其中 \(K\) 足够大以克服模型不确定性。
抖振问题
符号函数 \(\text{sgn}(s)\) 在 \(s=0\) 附近产生高频抖振。实践中用饱和函数 \(\text{sat}(s/\phi)\) 替代,\(\phi\) 为边界层厚度。
7.2 \(H_\infty\) 控制
在频域设计,最小化干扰到性能输出的传递函数的 \(\infty\)-范数:
适合处理结构化不确定性和外部干扰。
8 学习型控制
8.1 迭代学习控制(ILC)
对重复任务,利用前一次执行的误差改进下一次的控制输入:
8.2 强化学习控制
直接学习控制策略,不依赖精确模型:
- 模型无关:PPO、SAC 直接优化策略
- 模型基础:学习动力学模型 + MPC
- Sim-to-Real:仿真中训练,迁移到真实机器人
8.3 实时系统要求
机器人控制对实时性有严格要求(参见 实时系统):
| 控制层 | 频率 | 延迟要求 |
|---|---|---|
| 关节伺服 | 1-10 kHz | < 1 ms |
| 力控制 | 500 Hz - 1 kHz | < 2 ms |
| 运动控制 | 100-500 Hz | < 10 ms |
| 规划层 | 1-50 Hz | < 100 ms |
9 控制架构总结
graph TB
A["任务规划"] --> B["轨迹生成"]
B --> C{"控制策略选择"}
C -->|"已知模型"| D["计算力矩控制"]
C -->|"模型不确定"| E["自适应控制"]
C -->|"有干扰"| F["鲁棒控制"]
C -->|"需要交互"| G["阻抗/力控制"]
C -->|"无模型"| H["学习型控制"]
D --> I["关节伺服"]
E --> I
F --> I
G --> I
H --> I
I --> J["机器人"]
style C fill:#fff3e0,stroke:#FF9800
style I fill:#e8f4fd,stroke:#2196F3
10 常用工具与框架
| 工具 | 用途 |
|---|---|
| Simulink / MATLAB | 经典控制设计与仿真 |
| Drake | 模型预测控制、轨迹优化 |
| ros2_control | ROS2 控制框架 |
| MuJoCo | 动力学仿真(含接触) |
| IsaacGym / IsaacSim | GPU 并行仿真 + RL 训练 |
参考文献
- Siciliano, B. et al. (2009). Robotics: Modelling, Planning and Control. Springer.
- Slotine, J.-J. E. & Li, W. (1991). Applied Nonlinear Control. Prentice-Hall.
- Khatib, O. (1987). A unified approach for motion and force control of robot manipulators. IEEE RA.
- Craig, J. J. (2005). Introduction to Robotics: Mechanics and Control. Pearson.
- Spong, M. W. et al. (2006). Robot Modeling and Control. Wiley.