本章将带您踏入机器人控制的世界,从历史演进的视角理解控制理论如何塑造了现代机器人系统。我们将探讨从经典PID控制到现代智能控制的技术演进,理解不同控制范式的本质差异,并为后续章节的深入学习建立概念框架。通过波士顿动力Atlas的案例分析,您将看到这些理论如何在世界顶尖的机器人系统中得到应用和验证。
机器人控制的历史始于20世纪50年代的工业自动化需求。这一时期,控制理论正从经典的频域方法向现代状态空间方法转变,为机器人控制奠定了理论基础。
技术背景与驱动力
50年代的制造业面临劳动力短缺和危险作业环境的挑战。汽车工业尤其需要自动化解决方案来处理焊接、喷漆等重复性且有害的工作。同时期,数字计算机的出现为可编程控制提供了可能性。
开环控制的特征
最早的机器人控制系统采用简单的开环控制架构。这种方法的核心思想是通过精确的机械设计和严格的环境控制来保证重复精度:
控制器 执行器 机械臂
┌────────┐ ┌─────────┐ ┌─────────┐
│ 时序 │───────> │ 液压 │──────> │ 关节 │
│ 逻辑 │ │ 阀门 │ │ 运动 │
└────────┘ └─────────┘ └─────────┘
开环控制系统:无反馈,精度依赖机械加工
里程碑:Unimate的诞生
1961年,George Devol和Joseph Engelberger开发的Unimate在General Motors的Trenton工厂投入使用,标志着工业机器人时代的开始。Unimate的技术特点包括:
局限性分析
开环控制虽然简单可靠,但存在根本性限制:
这些局限性推动了反馈控制技术的发展,为70年代的技术突破铺平了道路。
70年代引入的反馈控制彻底改变了机器人控制的面貌,标志着从开环到闭环控制的范式转变。这一时期见证了控制理论与机器人学的深度融合。
关键技术突破
PID控制的普及
PID控制器成为工业机器人的标准配置,其简单性和鲁棒性使其至今仍广泛应用:
\[\tau_i(t) = K_p e_i(t) + K_i \int_0^t e_i(\tau)d\tau + K_d \frac{de_i(t)}{dt}\]关键优势:
计算力矩控制
1978年,Markiewicz提出的计算力矩控制通过动力学前馈实现了精确轨迹跟踪:
\[\boldsymbol{\tau} = \mathbf{M}(\mathbf{q})(\ddot{\mathbf{q}}_d + \mathbf{K}_v\dot{\mathbf{e}} + \mathbf{K}_p\mathbf{e}) + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}})\dot{\mathbf{q}} + \mathbf{g}(\mathbf{q})\]其中 $\mathbf{e} = \mathbf{q}_d - \mathbf{q}$ 为位置误差。这种方法将非线性系统转换为线性误差动力学:
\[\ddot{\mathbf{e}} + \mathbf{K}_v\dot{\mathbf{e}} + \mathbf{K}_p\mathbf{e} = \mathbf{0}\]自适应控制
Slotine和Li在1987年提出的自适应控制器能够在线估计未知参数:
\[\boldsymbol{\tau} = \hat{\mathbf{Y}}(\mathbf{q}, \dot{\mathbf{q}}, \mathbf{v}_r, \dot{\mathbf{v}}_r)\hat{\boldsymbol{\theta}} - \mathbf{K}_D\mathbf{s}\]其中 $\hat{\boldsymbol{\theta}}$ 是参数估计,$\mathbf{s} = \dot{\mathbf{e}} + \boldsymbol{\Lambda}\mathbf{e}$ 是滑模变量。
力控制与阻抗控制
1985年,Hogan提出阻抗控制概念,统一了位置和力控制:
\[\mathbf{M}_d(\ddot{\mathbf{x}} - \ddot{\mathbf{x}}_d) + \mathbf{B}_d(\dot{\mathbf{x}} - \dot{\mathbf{x}}_d) + \mathbf{K}_d(\mathbf{x} - \mathbf{x}_d) = \mathbf{f}_{ext}\]这使机器人能够安全地与环境交互。
代表性系统
技术影响
这一时期奠定的控制理论基础至今仍是机器人控制的核心:
90年代开始,机器人控制进入智能化时代,人工智能技术的快速发展为机器人控制带来了新的可能性。这一时期的特征是从模型驱动向数据驱动的逐步转变。
核心技术革新
视觉伺服(Visual Servoing)
视觉伺服实现了直接从图像特征到控制命令的映射,分为两种主要方法:
基于位置的视觉伺服(PBVS): \(\mathbf{v}_c = -\lambda \mathbf{L}_s^+ (\mathbf{s} - \mathbf{s}^*)\) 其中 $\mathbf{L}_s$ 是图像雅可比矩阵,$\mathbf{s}$ 是图像特征
基于图像的视觉伺服(IBVS): 直接在图像空间定义控制律,避免了3D重建误差
行为基控制架构
1986年,Rodney Brooks提出的包容架构(Subsumption Architecture)颠覆了传统范式:
层级3: 探索行为 ────────────────────┐
↓
层级2: 避障行为 ──────────┐ 抑制
↓ ↓
层级1: 移动行为 ────┐ 抑制 抑制
↓ ↓ ↓
传感器 ─────────> [行为仲裁器] ─────> 执行器
包容架构:高层行为可以抑制低层行为
关键创新:
神经网络控制
90年代,神经网络开始用于机器人控制的各个方面:
典型的神经网络控制器结构: \(\boldsymbol{\tau} = \mathbf{W}^T\boldsymbol{\sigma}(\mathbf{V}^T\mathbf{x}) + \boldsymbol{\epsilon}\) 其中 $\mathbf{W}, \mathbf{V}$ 是权重矩阵,$\boldsymbol{\sigma}$ 是激活函数
强化学习的早期应用
2000年代,强化学习开始在机器人领域展现潜力:
里程碑项目
技术融合趋势
这一时期最重要的趋势是混合控制架构的出现:
反应层(Reactive) 慎思层(Deliberative)
↓ ↓
行为基控制 符号规划
神经网络 搜索算法
模糊逻辑 专家系统
↓ ↓
────────────────┬────────────────
↓
执行层(Executive)
行为选择与协调
这种架构结合了反应式控制的快速响应和慎思式规划的全局优化能力。
2010年代以来,机器人控制进入了高度集成的新阶段。深度学习的突破、计算能力的提升、以及优化算法的进步共同推动了这一变革。
分层控制架构的成熟
现代机器人系统普遍采用多层级架构,每层解决不同时间和空间尺度的问题:
优化基控制的核心地位
现代控制的本质是实时求解优化问题。以全身控制为例:
\[\begin{aligned} \min_{\mathbf{x}} \quad & \sum_{i} w_i \|\mathbf{J}_i\ddot{\mathbf{q}} + \dot{\mathbf{J}}_i\dot{\mathbf{q}} - \ddot{\mathbf{x}}_{i,\text{des}}\|^2 \\ \text{s.t.} \quad & \mathbf{M}\ddot{\mathbf{q}} + \mathbf{h} = \mathbf{S}^T\boldsymbol{\tau} + \sum_c \mathbf{J}_c^T\mathbf{f}_c \\ & \mathbf{f}_c \in \mathcal{FC}_c, \quad \boldsymbol{\tau} \in [\boldsymbol{\tau}_{\min}, \boldsymbol{\tau}_{\max}] \end{aligned}\]关键进展:
深度学习的深度集成
深度学习不再是独立模块,而是深度嵌入控制流程:
原始传感器数据 → 深度网络 → 语义理解
↓ ↓
点云/图像 物体检测、场景理解
实时性突破
现代系统通过多种技术实现实时控制:
| 技术 | 加速比 | 应用场景 |
|---|---|---|
| 预计算 | 10-100x | 轨迹库、接触模式 |
| 并行化 | 5-20x | 多接触点、多任务 |
| 近似算法 | 2-10x | MPC、轨迹优化 |
| 硬件加速 | 10-50x | GPU/FPGA优化求解 |
| 模型简化 | 2-5x | 降阶模型、线性化 |
代表性系统与成就
这些系统展示了现代控制技术的成熟度:稳定性、效率和智能性的完美结合。
控制范式的演进反映了我们对”智能”理解的深化。从依赖完美模型到拥抱不确定性,这一转变具有深刻的理论和实践意义。
经典控制范式的特征
经典控制建立在确定性和可预测性的基础上:
| 可达性分析:$\mathcal{R} = {\mathbf{x} | \exists \mathbf{u}(t), \mathbf{x}(T) = \mathbf{x}_f}$ |
智能控制范式的特征
智能控制拥抱复杂性和不确定性:
两种范式的对比
| 维度 | 经典控制 | 智能控制 |
|---|---|---|
| 模型需求 | 精确数学模型 | 数据或经验 |
| 不确定性 | 有界扰动 | 未知分布 |
| 适应性 | 预设鲁棒性 | 在线学习 |
| 性能保证 | 最坏情况 | 平均/概率 |
| 计算需求 | 实时可预测 | 可能需要大量计算 |
| 可解释性 | 完全透明 | 可能是黑箱 |
| 泛化能力 | 局部有效 | 潜在的广泛泛化 |
范式融合的必然性
现代机器人系统需要两种范式的优势:
输入 ──> [感知模块] ──> [决策层] ──> [控制层] ──> 输出
↑ ↑ ↑
智能控制主导 混合区域 经典控制主导
(学习、适应) (优化、规划) (稳定、精确)
关键洞察:
混合架构的设计哲学是”在正确的层级使用正确的方法”。这种分层设计不仅提高了系统性能,也增强了可维护性和可扩展性。
典型的混合控制架构
感知输入 高层决策
│ │
↓ ↓
┌─────────────────────────────────┐
│ 学习基感知模块 │ ← 深度学习主导
│ (深度学习、点云处理等) │ 不确定性量化
└─────────────────┬───────────────┘
↓
┌─────────────────────────────────┐
│ 规划与决策层 │ ← 混合方法
│ (强化学习、轨迹优化等) │ 学习+优化
└─────────────────┬───────────────┘
↓
┌─────────────────────────────────┐
│ 模型基控制层 │ ← 经典控制主导
│ (MPC、WBC、最优控制等) │ 硬实时保证
└─────────────────┬───────────────┘
↓
执行器命令
层间接口设计
每层之间的接口需要精心设计以确保信息有效传递:
语义地图 = {
objects: [{类型, 位置, 置信度}],
traversability: 2D栅格地图,
uncertainty: 协方差矩阵
}
参考轨迹 = {
states: [(位置, 速度, 加速度), ...],
contacts: [(接触点, 法向力), ...],
timing: [t0, t1, ..., tN]
}
关节命令 = {
torques: [τ1, τ2, ..., τn],
gains: {kp, kd},
safety_limits: {τ_max, q_limits}
}
信息流与反馈回路
混合架构中存在多个反馈回路,运行在不同频率:
外环(1-10 Hz):任务完成反馈
↑ ↓
中环(10-100 Hz):轨迹跟踪反馈
↑ ↓
内环(100-1000 Hz):状态反馈
↑ ↓
底层(1000+ Hz):电机电流反馈
方法选择准则
在每个层级选择控制方法的准则:
| 层级 | 优先使用学习方法的情况 | 优先使用模型方法的情况 |
|---|---|---|
| 感知 | 复杂场景理解、物体识别 | 几何特征提取、SLAM |
| 规划 | 长期策略、复杂环境 | 短期轨迹、已知环境 |
| 控制 | 模型误差补偿、参数适应 | 稳定性保证、安全约束 |
| 执行 | 很少使用 | 几乎总是使用 |
案例:抓取任务的混合控制
以机械臂抓取为例说明混合架构的工作:
近年来的一个重要趋势是数据驱动方法与模型驱动方法的深度融合:
例如,在接触丰富的操作任务中,可以将刚体动力学作为归纳偏置(inductive bias)嵌入策略学习:
\[\mathbf{a}_t = \pi_\theta(\mathbf{o}_t) + \alpha \cdot \text{PhysicsCorrection}(\mathbf{o}_t, \mathbf{a}_{t-1})\]其中 $\pi_\theta$ 是学习的策略,PhysicsCorrection 项确保动作满足物理约束。
本教程构建了从基础到前沿的完整知识体系:
基础层
┌─────────────────────────────────────┐
│ 数学基础 | 运动学 | 动力学 │
└────────────────┬────────────────────┘
│
核心技术层
┌─────────────────────────────────────┐
│ 接触规划 | 运动规划 | MPC | WBC │
└────────────────┬────────────────────┘
│
系统集成层
┌─────────────────────────────────────┐
│ 实时实现 | 虚实迁移 | 系统优化 │
└────────────────┬────────────────────┘
│
前沿探索层
┌─────────────────────────────────────┐
│ 基础模型 | 具身智能 | 通用控制 │
└─────────────────────────────────────┘
根据您的背景和目标,可以选择不同的学习路径:
路径A - 理论深入型:
路径B - 工程实践型:
路径C - 前沿探索型:
本教程涉及的核心概念及其关联:
接触力学 ──────┐
│ ↓
约束处理 ← 接触规划 → 混合系统
│ │ │
↓ ↓ ↓
QP求解 ← 轨迹优化 → 非凸优化
│ │ │
↓ ↓ ↓
实时求解 ←── MPC ──→ 预测模型
│ │ │
↓ ↓ ↓
任务优先级 ← WBC → 冗余解析
│ │ │
↓ ↓ ↓
力/位控制 ← 执行 → 稳定性
波士顿动力的Atlas人形机器人代表了当今机器人控制技术的最高水平。其控制架构经历了三个主要阶段:
第一代(2013-2016):基于优化的全身控制
第二代(2016-2020):模型预测控制集成
第三代(2020-至今):感知-控制深度融合
Atlas的现代控制架构可以分解为以下层级:
视觉/激光雷达 IMU/关节编码器
│ │
↓ ↓
┌────────────────────────────────────┐
│ 状态估计器 │ 1kHz
│ (EKF融合、接触检测) │
└──────────────┬─────────────────────┘
↓
┌────────────────────────────────────┐
│ Centroidal MPC │ 200Hz
│ (质心动力学、接触规划) │
└──────────────┬─────────────────────┘
↓
┌────────────────────────────────────┐
│ 全身控制器(WBC) │ 1kHz
│ (任务空间控制、约束处理) │
└──────────────┬─────────────────────┘
↓
┌────────────────────────────────────┐
│ 关节级控制器 │ 10kHz
│ (力矩控制、安全监控) │
└────────────────────────────────────┘
1. 质心动力学MPC (Centroidal MPC)
Atlas使用简化的质心动力学模型进行轨迹规划:
\[\begin{aligned} \dot{\mathbf{c}} &= \mathbf{v} \\ m\dot{\mathbf{v}} &= m\mathbf{g} + \sum_{i} \mathbf{f}_i \\ \dot{\mathbf{L}} &= \sum_{i} (\mathbf{p}_i - \mathbf{c}) \times \mathbf{f}_i \end{aligned}\]其中 $\mathbf{c}$ 为质心位置,$\mathbf{L}$ 为角动量,$\mathbf{f}_i$ 为接触力。MPC在线求解优化问题:
\[\min_{\mathbf{x}, \mathbf{u}} \sum_{k=0}^{N-1} \ell(\mathbf{x}_k, \mathbf{u}_k) + \ell_f(\mathbf{x}_N)\]受动力学约束、接触约束(摩擦锥)、运动学限制等。
2. 动量基全身控制
WBC层将MPC的质心轨迹转换为关节力矩命令:
\[\begin{bmatrix} \mathbf{M} & -\mathbf{J}_c^T \\ \mathbf{J}_c & \mathbf{0} \end{bmatrix} \begin{bmatrix} \ddot{\mathbf{q}} \\ \mathbf{f}_c \end{bmatrix} = \begin{bmatrix} -\mathbf{h} + \mathbf{S}^T\boldsymbol{\tau} \\ -\dot{\mathbf{J}}_c\dot{\mathbf{q}} \end{bmatrix}\]通过优先级任务管理实现多目标协调:
3. 学习增强的地形适应
最新版本集成了深度学习模块用于:
Atlas的控制系统达到了令人印象深刻的性能:
| 指标 | 数值 | 备注 |
|---|---|---|
| 控制频率 | 1kHz (WBC) | 低延迟响应 |
| 规划视野 | 1.5秒 | MPC预测范围 |
| 最大速度 | 2.5 m/s | 跑步模式 |
| 跳跃高度 | 0.8 m | 垂直跳跃 |
| 负载能力 | 11 kg | 双手搬运 |
| 地形坡度 | ±30° | 稳定行走 |
Atlas的成功给我们以下启示:
本章系统回顾了机器人控制从早期开环系统到现代智能集成架构的演进历程。关键要点包括:
历史演进:机器人控制经历了开环控制→反馈控制→智能控制→集成控制的发展路径
范式转变:从依赖精确模型的经典控制到数据驱动的智能控制,现代系统采用混合架构结合两者优势
Atlas案例:展示了分层控制架构、实时优化、模型与学习结合等现代控制技术的成功应用
下一章我们将深入探讨支撑这些控制方法的数学基础,包括李群理论、优化理论和最优控制原理。
习题1.1 比较PID控制器与计算力矩控制器的结构差异。说明为什么计算力矩控制在机器人应用中性能更优?
习题1.2 解释为什么现代机器人系统普遍采用分层控制架构?列举每层的典型更新频率。
习题1.3 在质心动力学模型中,为什么可以忽略机器人的关节配置?这种简化在什么条件下有效?
习题1.4 设计一个简化的二维倒立摆机器人的分层控制架构。假设机器人有质心高度$h$,质量$m$,足部可以施加水平力$f_x$。写出每层的数学表述。
习题1.5 波士顿动力在Atlas的后空翻控制中,需要协调哪些关键的控制目标?如何设计优先级来确保成功执行?
习题1.6 [开放性问题] 未来10年,机器人控制领域最可能出现哪些突破性进展?这些进展将如何改变机器人的应用场景?
习题1.7 比较Atlas、Digit和Optimus三个人形机器人的控制策略差异,分析各自的技术选择背后的考量。
错误:认为更复杂的模型总是带来更好的控制性能
正确理解:
调试技巧:
# 先用简单模型验证算法
simple_model_result = plan_with_LIPM()
if validate(simple_model_result):
# 再考虑是否需要复杂模型
complex_model_result = plan_with_full_dynamics()
错误:所有控制层都运行在最高频率
正确理解:
经验法则:
错误:将所有任务设置为同等优先级
正确理解:
调试方法:
错误:混用世界坐标系、机体坐标系和关节坐标系
正确做法:
# Bad
force = get_force() # 什么坐标系?
# Good
force_world = get_force_in_world_frame()
force_body = T_body_world @ force_world
错误:在仿真中工作的控制器可以直接部署到实际系统
正确理解:
解决策略:
错误:直接求解病态矩阵的逆
正确做法:
错误:混用角度制和弧度制,或不同的力/力矩单位
预防措施:
通过理解这些常见陷阱,您将能够更有效地设计和调试机器人控制系统。记住,优秀的控制系统不仅需要理论知识,更需要工程实践中的经验积累。