第1章:机器人控制导论
本章将带您踏入机器人控制的世界,从历史演进的视角理解控制理论如何塑造了现代机器人系统。我们将探讨从经典PID控制到现代智能控制的技术演进,理解不同控制范式的本质差异,并为后续章节的深入学习建立概念框架。通过波士顿动力Atlas的案例分析,您将看到这些理论如何在世界顶尖的机器人系统中得到应用和验证。
1.1 机器人控制的演进历程
1.1.1 早期探索(1950s-1970s)
机器人控制的历史始于20世纪50年代的工业自动化需求。这一时期,控制理论正从经典的频域方法向现代状态空间方法转变,为机器人控制奠定了理论基础。
技术背景与驱动力
50年代的制造业面临劳动力短缺和危险作业环境的挑战。汽车工业尤其需要自动化解决方案来处理焊接、喷漆等重复性且有害的工作。同时期,数字计算机的出现为可编程控制提供了可能性。
开环控制的特征
最早的机器人控制系统采用简单的开环控制架构。这种方法的核心思想是通过精确的机械设计和严格的环境控制来保证重复精度:
控制器 执行器 机械臂
┌────────┐ ┌─────────┐ ┌─────────┐
│ 时序 │───────> │ 液压 │──────> │ 关节 │
│ 逻辑 │ │ 阀门 │ │ 运动 │
└────────┘ └─────────┘ └─────────┘
开环控制系统:无反馈,精度依赖机械加工
里程碑:Unimate的诞生
1961年,George Devol和Joseph Engelberger开发的Unimate在General Motors的Trenton工厂投入使用,标志着工业机器人时代的开始。Unimate的技术特点包括:
- 存储技术:磁鼓存储器,可存储200个动作步骤
- 驱动方式:液压驱动,提供2000磅的举力
- 控制精度:±1.25mm的重复定位精度
- 编程方式:示教再现(teach-and-playback)
局限性分析
开环控制虽然简单可靠,但存在根本性限制:
- 累积误差:每个动作的微小偏差会逐步累积
- 环境敏感:温度、负载变化直接影响精度
- 缺乏适应性:无法处理意外情况
- 标定困难:需要频繁的手动校准
这些局限性推动了反馈控制技术的发展,为70年代的技术突破铺平了道路。
1.1.2 反馈控制时代(1970s-1990s)
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}$$ 这使机器人能够安全地与环境交互。
代表性系统
- PUMA 560(1978):第一个采用DC电机和编码器的全电动机械臂
- Stanford Arm(1979):早期采用力控制的研究平台
- SCARA机器人(1981):专为装配设计的选择顺应性机械臂
技术影响
这一时期奠定的控制理论基础至今仍是机器人控制的核心:
- 建立了稳定性分析的李雅普诺夫框架
- 发展了鲁棒控制理论处理模型不确定性
- 形成了任务空间控制的概念基础
1.1.3 智能控制兴起(1990s-2010s)
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年代,神经网络开始用于机器人控制的各个方面:
- 逆运动学求解:多层感知器(MLP)学习非线性映射
- 动力学补偿:径向基函数网络(RBF)逼近未知动力学
- 自适应控制:在线学习调整控制参数
典型的神经网络控制器结构: $$\boldsymbol{\tau} = \mathbf{W}^T\boldsymbol{\sigma}(\mathbf{V}^T\mathbf{x}) + \boldsymbol{\epsilon}$$ 其中 $\mathbf{W}, \mathbf{V}$ 是权重矩阵,$\boldsymbol{\sigma}$ 是激活函数
- 强化学习的早期应用
2000年代,强化学习开始在机器人领域展现潜力:
- 策略梯度方法:直接优化控制策略参数
- 值函数近似:Q-learning用于离散动作空间
- 模仿学习:从人类演示中学习初始策略
里程碑项目
- MIT的Cog项目(1993-2003):探索认知机器人架构
- Sony AIBO(1999):第一个商用智能机器人宠物
- DARPA大挑战(2004-2007):推动自主导航技术发展
- RoboCup(1997-至今):促进多机器人协作研究
技术融合趋势
这一时期最重要的趋势是混合控制架构的出现:
反应层(Reactive) 慎思层(Deliberative)
↓ ↓
行为基控制 符号规划
神经网络 搜索算法
模糊逻辑 专家系统
↓ ↓
────────────────┬────────────────
↓
执行层(Executive)
行为选择与协调
这种架构结合了反应式控制的快速响应和慎思式规划的全局优化能力。
1.1.4 现代集成控制(2010s-至今)
2010年代以来,机器人控制进入了高度集成的新阶段。深度学习的突破、计算能力的提升、以及优化算法的进步共同推动了这一变革。
分层控制架构的成熟
现代机器人系统普遍采用多层级架构,每层解决不同时间和空间尺度的问题:
-
任务规划层(1-10 Hz) - 符号推理与任务分解 - 大语言模型辅助决策 - 长期目标规划
-
轨迹优化层(10-100 Hz) - 非线性轨迹优化 - 接触序列规划 - 可达性分析
-
模型预测控制层(100-500 Hz) - 短时域最优控制 - 约束处理 - 扰动补偿
-
全身控制层(500-1000 Hz) - 任务空间控制 - 动力学一致性 - 接触力分配
-
底层伺服层(1000-10000 Hz) - 关节力矩控制 - 电机电流控制 - 安全监控
优化基控制的核心地位
现代控制的本质是实时求解优化问题。以全身控制为例: $$\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}$$ 关键进展:
- 高效QP求解器:OSQP、qpOASES等实现微秒级求解
- 自动微分:JAX、PyTorch实现梯度自动计算
- GPU加速:并行化大规模优化问题
深度学习的深度集成
深度学习不再是独立模块,而是深度嵌入控制流程:
- 感知增强
原始传感器数据 → 深度网络 → 语义理解
↓ ↓
点云/图像 物体检测、场景理解
-
模型学习 - 残差动力学学习:$\mathbf{f} = \mathbf{f}_{\text{nominal}} + \mathbf{f}_{\text{learned}}$ - 接触模型学习:神经网络预测摩擦系数和接触刚度 - 系统识别:自动调整模型参数
-
策略优化 - 模仿学习初始化 - 强化学习微调 - 在线适应
实时性突破
现代系统通过多种技术实现实时控制:
| 技术 | 加速比 | 应用场景 |
| 技术 | 加速比 | 应用场景 |
|---|---|---|
| 预计算 | 10-100x | 轨迹库、接触模式 |
| 并行化 | 5-20x | 多接触点、多任务 |
| 近似算法 | 2-10x | MPC、轨迹优化 |
| 硬件加速 | 10-50x | GPU/FPGA优化求解 |
| 模型简化 | 2-5x | 降阶模型、线性化 |
代表性系统与成就
- 波士顿动力Spot(2016):商业化四足机器人
- Agility Digit(2019):双足物流机器人
- 特斯拉Optimus(2021):面向量产的人形机器人
- Figure 01(2023):通用人形机器人平台
这些系统展示了现代控制技术的成熟度:稳定性、效率和智能性的完美结合。
1.2 从经典控制到智能控制的范式转变
1.2.1 控制范式的本质差异
控制范式的演进反映了我们对"智能"理解的深化。从依赖完美模型到拥抱不确定性,这一转变具有深刻的理论和实践意义。
经典控制范式的特征
经典控制建立在确定性和可预测性的基础上:
-
模型中心性 - 需要精确的数学模型:$\dot{\mathbf{x}} = \mathbf{f}(\mathbf{x}, \mathbf{u})$ - 模型参数通过系统辨识获得 - 性能依赖模型准确度
-
解析性保证 - 李雅普诺夫稳定性:$\dot{V}(\mathbf{x}) < 0$ - 可达性分析:$\mathcal{R} = \{\mathbf{x} | \exists \mathbf{u}(t), \mathbf{x}(T) = \mathbf{x}_f\}$ - 鲁棒性边界:$|\Delta| < \epsilon \Rightarrow$ 稳定
-
设计方法论 - 线性化与增益调度 - 频域设计(Bode图、Nyquist图) - 最优控制(LQR、H∞)
智能控制范式的特征
智能控制拥抱复杂性和不确定性:
-
数据驱动性 - 从经验中学习:$\pi^* = \arg\max_\pi \mathbb{E}_{\tau \sim \pi}[R(\tau)]$ - 无需显式模型 - 持续适应和改进
-
统计性保证 - 概率界限:$P(|e| > \epsilon) < \delta$ - 期望性能:$\mathbb{E}[J] \geq J_{\text{baseline}}$ - 样本复杂度分析
-
学习方法论 - 监督学习:从标注数据学习 - 强化学习:通过试错优化 - 迁移学习:跨任务知识共享
两种范式的对比
| 维度 | 经典控制 | 智能控制 |
| 维度 | 经典控制 | 智能控制 |
|---|---|---|
| 模型需求 | 精确数学模型 | 数据或经验 |
| 不确定性 | 有界扰动 | 未知分布 |
| 适应性 | 预设鲁棒性 | 在线学习 |
| 性能保证 | 最坏情况 | 平均/概率 |
| 计算需求 | 实时可预测 | 可能需要大量计算 |
| 可解释性 | 完全透明 | 可能是黑箱 |
| 泛化能力 | 局部有效 | 潜在的广泛泛化 |
范式融合的必然性
现代机器人系统需要两种范式的优势:
输入 ──> [感知模块] ──> [决策层] ──> [控制层] ──> 输出
↑ ↑ ↑
智能控制主导 混合区域 经典控制主导
(学习、适应) (优化、规划) (稳定、精确)
关键洞察:
- 高层使用智能方法处理语义和意图
- 底层使用经典方法保证安全和稳定
- 中间层结合两者进行优化决策
1.2.2 混合控制架构
混合架构的设计哲学是"在正确的层级使用正确的方法"。这种分层设计不仅提高了系统性能,也增强了可维护性和可扩展性。
典型的混合控制架构
感知输入 高层决策
│ │
↓ ↓
┌─────────────────────────────────┐
│ 学习基感知模块 │ ← 深度学习主导
│ (深度学习、点云处理等) │ 不确定性量化
└─────────────────┬───────────────┘
↓
┌─────────────────────────────────┐
│ 规划与决策层 │ ← 混合方法
│ (强化学习、轨迹优化等) │ 学习+优化
└─────────────────┬───────────────┘
↓
┌─────────────────────────────────┐
│ 模型基控制层 │ ← 经典控制主导
│ (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 |
| 规划 | 长期策略、复杂环境 | 短期轨迹、已知环境 |
| 控制 | 模型误差补偿、参数适应 | 稳定性保证、安全约束 |
| 执行 | 很少使用 | 几乎总是使用 |
案例:抓取任务的混合控制
以机械臂抓取为例说明混合架构的工作:
-
视觉感知(学习基) - CNN检测物体和抓取点 - 输出:抓取位姿候选集
-
运动规划(混合) - RRT*搜索无碰撞路径 - 神经网络预测可行性
-
轨迹优化(优化基) - 最小化执行时间 - 满足动力学约束
-
伺服控制(模型基) - 计算力矩控制 - 接触力调节
1.2.3 数据驱动与模型驱动的融合
近年来的一个重要趋势是数据驱动方法与模型驱动方法的深度融合:
- 模型增强学习:利用物理模型加速强化学习收敛
- 学习辅助建模:用神经网络补偿模型误差
- 可微分物理仿真:将物理约束嵌入神经网络训练
例如,在接触丰富的操作任务中,可以将刚体动力学作为归纳偏置(inductive bias)嵌入策略学习: $$\mathbf{a}_t = \pi_\theta(\mathbf{o}_t) + \alpha \cdot \text{PhysicsCorrection}(\mathbf{o}_t, \mathbf{a}_{t-1})$$ 其中 $\pi_\theta$ 是学习的策略,PhysicsCorrection 项确保动作满足物理约束。
1.3 本教程的学习路线图
1.3.1 知识体系结构
本教程构建了从基础到前沿的完整知识体系:
基础层
┌─────────────────────────────────────┐
│ 数学基础 | 运动学 | 动力学 │
└────────────────┬────────────────────┘
│
核心技术层
┌─────────────────────────────────────┐
│ 接触规划 | 运动规划 | MPC | WBC │
└────────────────┬────────────────────┘
│
系统集成层
┌─────────────────────────────────────┐
│ 实时实现 | 虚实迁移 | 系统优化 │
└────────────────┬────────────────────┘
│
前沿探索层
┌─────────────────────────────────────┐
│ 基础模型 | 具身智能 | 通用控制 │
└─────────────────────────────────────┘
1.3.2 技术路线选择
根据您的背景和目标,可以选择不同的学习路径:
路径A - 理论深入型:
- 重点:第2-3章(数学基础)→ 第8章(轨迹优化)→ 第10章(非线性MPC)
- 适合:希望深入理解算法原理的研究人员
路径B - 工程实践型:
- 重点:第5章(接触规划)→ 第9章(MPC基础)→ 第13章(实时实现)
- 适合:需要快速部署机器人系统的工程师
路径C - 前沿探索型:
- 重点:第11-12章(全身控制)→ 第14-16章(前沿技术)
- 适合:关注最新技术趋势的创新者
1.3.3 核心概念图谱
本教程涉及的核心概念及其关联:
接触力学 ──────┐
│ ↓
约束处理 ← 接触规划 → 混合系统
│ │ │
↓ ↓ ↓
QP求解 ← 轨迹优化 → 非凸优化
│ │ │
↓ ↓ ↓
实时求解 ←── MPC ──→ 预测模型
│ │ │
↓ ↓ ↓
任务优先级 ← WBC → 冗余解析
│ │ │
↓ ↓ ↓
力/位控制 ← 执行 → 稳定性
1.4 案例研究:波士顿动力Atlas的控制架构演进
1.4.1 Atlas的技术演进历程
波士顿动力的Atlas人形机器人代表了当今机器人控制技术的最高水平。其控制架构经历了三个主要阶段:
第一代(2013-2016):基于优化的全身控制
- 核心:QP-based WBC + 简单状态机
- 特点:预定义的运动模板,有限的环境适应性
- 成就:稳定行走、简单操作任务
第二代(2016-2020):模型预测控制集成
- 核心:Centroidal MPC + Momentum-based WBC
- 特点:在线轨迹生成,提升动态运动能力
- 成就:跑步、跳跃、后空翻等高动态动作
第三代(2020-至今):感知-控制深度融合
- 核心:Vision-based MPC + Learning-augmented Control
- 特点:端到端感知规划,复杂地形适应
- 成就:跑酷、自主导航、复杂操作
1.4.2 控制架构详解
Atlas的现代控制架构可以分解为以下层级:
视觉/激光雷达 IMU/关节编码器
│ │
↓ ↓
┌────────────────────────────────────┐
│ 状态估计器 │ 1kHz
│ (EKF融合、接触检测) │
└──────────────┬─────────────────────┘
↓
┌────────────────────────────────────┐
│ Centroidal MPC │ 200Hz
│ (质心动力学、接触规划) │
└──────────────┬─────────────────────┘
↓
┌────────────────────────────────────┐
│ 全身控制器(WBC) │ 1kHz
│ (任务空间控制、约束处理) │
└──────────────┬─────────────────────┘
↓
┌────────────────────────────────────┐
│ 关节级控制器 │ 10kHz
│ (力矩控制、安全监控) │
└────────────────────────────────────┘
1.4.3 关键技术创新
- 质心动力学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)$$ 受动力学约束、接触约束(摩擦锥)、运动学限制等。
- 动量基全身控制
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}$$ 通过优先级任务管理实现多目标协调:
- Priority 1: 动力学一致性
- Priority 2: 接触约束
- Priority 3: 质心跟踪
- Priority 4: 姿态控制
- Priority 5: 关节位置正则化
- 学习增强的地形适应
最新版本集成了深度学习模块用于:
- 地形分类与可通行性分析
- 步态参数自适应调整
- 异常检测与恢复策略选择
1.4.4 性能指标与成就
Atlas的控制系统达到了令人印象深刻的性能:
| 指标 | 数值 | 备注 |
| 指标 | 数值 | 备注 |
|---|---|---|
| 控制频率 | 1kHz (WBC) | 低延迟响应 |
| 规划视野 | 1.5秒 | MPC预测范围 |
| 最大速度 | 2.5 m/s | 跑步模式 |
| 跳跃高度 | 0.8 m | 垂直跳跃 |
| 负载能力 | 11 kg | 双手搬运 |
| 地形坡度 | ±30° | 稳定行走 |
1.4.5 技术启示
Atlas的成功给我们以下启示:
- 分层架构的必要性:复杂任务需要多层级的抽象和优化
- 实时性的重要性:高频控制环路是动态性能的基础
- 模型与数据的结合:物理模型提供基础,学习方法增强适应性
- 简化模型的威力:质心动力学等简化模型在规划层足够有效
- 鲁棒性设计:多重冗余和故障恢复机制确保系统可靠性
本章小结
本章系统回顾了机器人控制从早期开环系统到现代智能集成架构的演进历程。关键要点包括:
-
历史演进:机器人控制经历了开环控制→反馈控制→智能控制→集成控制的发展路径
-
范式转变:从依赖精确模型的经典控制到数据驱动的智能控制,现代系统采用混合架构结合两者优势
-
核心技术栈: - 接触规划:处理机器人与环境的物理交互 - 运动规划:生成可行且优化的轨迹 - MPC:实现预测性的最优控制 - WBC:协调复杂系统的多任务执行
-
Atlas案例:展示了分层控制架构、实时优化、模型与学习结合等现代控制技术的成功应用
-
关键公式: - 计算力矩控制:$\boldsymbol{\tau} = \mathbf{M}(\mathbf{q})\ddot{\mathbf{q}}_{\text{des}} + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}})\dot{\mathbf{q}} + \mathbf{g}(\mathbf{q})$ - 质心动力学:$m\ddot{\mathbf{c}} = m\mathbf{g} + \sum_i \mathbf{f}_i$ - WBC优化:$\min_{\mathbf{x}} \sum_i w_i |\mathbf{A}_i\mathbf{x} - \mathbf{b}_i|^2$ s.t. 动力学与接触约束
下一章我们将深入探讨支撑这些控制方法的数学基础,包括李群理论、优化理论和最优控制原理。
练习题
基础题
习题1.1 比较PID控制器与计算力矩控制器的结构差异。说明为什么计算力矩控制在机器人应用中性能更优?
提示
考虑机器人动力学的非线性特性和耦合效应。
答案
PID控制器是线性控制器,对每个关节独立设计: $$\tau_i = K_p e_i + K_i \int e_i dt + K_d \dot{e}_i$$ 计算力矩控制器考虑完整的非线性动力学: $$\boldsymbol{\tau} = \mathbf{M}(\mathbf{q})\ddot{\mathbf{q}}_{\text{cmd}} + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}})\dot{\mathbf{q}} + \mathbf{g}(\mathbf{q})$$ 优势:
- 解耦控制:通过动力学补偿实现关节间解耦
- 非线性补偿:直接处理重力、科氏力等非线性项
- 更好的轨迹跟踪:特别是高速运动时
习题1.2 解释为什么现代机器人系统普遍采用分层控制架构?列举每层的典型更新频率。
提示
考虑不同任务的计算复杂度和时间尺度。
答案
分层架构的必要性:
- 计算复杂度分离:高层规划计算密集但更新慢,底层控制简单但需要高频
- 抽象层次:不同层处理不同抽象级别的问题
- 模块化设计:便于开发、调试和维护
典型更新频率:
- 任务规划层:1-10 Hz
- 轨迹优化层:10-100 Hz
- MPC层:100-200 Hz
- WBC层:500-1000 Hz
- 关节控制层:1000-10000 Hz
习题1.3 在质心动力学模型中,为什么可以忽略机器人的关节配置?这种简化在什么条件下有效?
提示
考虑角动量的变化率和接触点的运动速度。
答案
质心动力学忽略关节配置的原理:
- 质心运动主要由外力(重力和接触力)决定
- 当肢体运动相对较慢时,角动量变化可近似为零
- 接触点可视为准静态
有效条件:
- 接触点移动缓慢(相对于质心运动)
- 肢体摆动产生的角动量较小
- 主要关注质心轨迹而非精确的肢体运动
- 适用于行走、慢速跑步等任务
局限性:快速旋转、翻滚等高动态运动需要考虑完整动力学。
挑战题
习题1.4 设计一个简化的二维倒立摆机器人的分层控制架构。假设机器人有质心高度$h$,质量$m$,足部可以施加水平力$f_x$。写出每层的数学表述。
提示
使用线性倒立摆模型(LIPM)进行规划,考虑ZMP约束。
答案
第1层:轨迹规划(10Hz) 使用LIPM模型:$\ddot{x} = \omega^2(x - z)$,其中$\omega = \sqrt{g/h}$
规划问题: $$\min_{z_k} \sum_{k} (x_k - x_{\text{ref}})^2 + \lambda z_k^2$$ s.t. LIPM动力学,$|z| \leq z_{\max}$(支撑域约束)
第2层:MPC控制(100Hz) 状态空间:$\mathbf{x} = [x, \dot{x}]^T$ $$\min_{\mathbf{u}} \sum_{k=0}^{N} \mathbf{x}_k^T\mathbf{Q}\mathbf{x}_k + u_k^2 R$$ s.t. $\mathbf{x}_{k+1} = \mathbf{A}\mathbf{x}_k + \mathbf{B}u_k$
其中 $\mathbf{A} = \begin{bmatrix} 1 & \Delta t \\ \omega^2\Delta t & 1 \end{bmatrix}$,$\mathbf{B} = \begin{bmatrix} 0 \\ -\omega^2\Delta t \end{bmatrix}$
第3层:力控制(1000Hz) $$f_x = m\omega^2(x - z_{\text{des}}) + k_p(x_{\text{des}} - x) + k_d(\dot{x}_{\text{des}} - \dot{x})$$
习题1.5 波士顿动力在Atlas的后空翻控制中,需要协调哪些关键的控制目标?如何设计优先级来确保成功执行?
提示
考虑起跳、空中姿态、着陆等阶段的不同需求。
答案
后空翻的控制目标分阶段设计:
起跳阶段(0-200ms):
- Priority 1: 垂直地面反力最大化(产生向上动量)
- Priority 2: 角动量生成(后仰旋转)
- Priority 3: 质心水平位置保持
- Priority 4: 手臂摆动协调
空中阶段(200-600ms):
- Priority 1: 角动量守恒(无外力矩)
- Priority 2: 身体收缩控制(加速旋转)
- Priority 3: 着陆准备姿态
- Priority 4: 视觉定位(可选)
着陆阶段(600-800ms):
- Priority 1: 冲击力吸收(关节柔顺)
- Priority 2: 平衡恢复(ZMP控制)
- Priority 3: 姿态稳定
- Priority 4: 后续动作准备
关键技术:
- 轨迹优化离线生成参考轨迹
- MPC在线调整适应扰动
- 触地检测切换控制模式
- 紧急情况下的保护性着陆策略
习题1.6 [开放性问题] 未来10年,机器人控制领域最可能出现哪些突破性进展?这些进展将如何改变机器人的应用场景?
提示
考虑基础模型、量子计算、神经形态硬件等新技术的影响。
参考思路
可能的突破方向:
-
基础模型与具身智能 - 大规模预训练的控制策略 - 零样本泛化到新任务 - 自然语言指令执行
-
实时优化算法 - GPU/TPU加速的MPC求解器 - 量子优化算法 - 神经网络近似最优控制
-
软硬件协同设计 - 神经形态处理器 - 光学计算加速 - 可编程物理计算
-
仿生控制原理 - 小脑模型的工程实现 - 分布式神经控制 - 自组织临界性
应用场景变革:
- 家庭服务机器人普及
- 完全自主的建筑机器人
- 人机协作制造
- 极端环境探索(深海、太空)
关键挑战:
- 安全性与可解释性
- 能效与续航
- 成本与可靠性
- 伦理与法规
习题1.7 比较Atlas、Digit和Optimus三个人形机器人的控制策略差异,分析各自的技术选择背后的考量。
提示
考虑各公司的技术背景、目标市场和设计理念。
答案
Atlas(波士顿动力):
- 策略:模型基优化控制为主
- 特点:极致的动态性能,复杂的优化算法
- 优势:可以执行高动态动作(跳跃、后空翻)
- 劣势:计算需求高,成本昂贵
Digit(Agility Robotics):
- 策略:强化学习+经典控制混合
- 特点:专注物流应用,强调能效和可靠性
- 优势:长时间作业,成本相对较低
- 劣势:动态性能有限
Optimus(特斯拉):
- 策略:端到端学习+仿真训练
- 特点:利用自动驾驶技术积累,强调量产
- 优势:视觉感知能力强,成本控制
- 劣势:控制精度和动态性能待提升
技术选择考量:
- 应用场景:研究vs工业vs消费
- 技术积累:控制理论vs机器学习vs计算机视觉
- 商业模式:技术展示vs实际部署vs大规模量产
- 资源约束:计算资源、传感器成本、开发周期
常见陷阱与错误 (Gotchas)
1. 模型复杂度陷阱
错误:认为更复杂的模型总是带来更好的控制性能
正确理解:
- 简单模型(如倒立摆)在规划层往往足够
- 复杂模型增加计算负担,可能降低实时性
- 关键是在正确的抽象层次使用合适的模型
调试技巧:
# 先用简单模型验证算法
simple_model_result = plan_with_LIPM()
if validate(simple_model_result):
# 再考虑是否需要复杂模型
complex_model_result = plan_with_full_dynamics()
2. 控制频率误区
错误:所有控制层都运行在最高频率
正确理解:
- 不同层级有不同的时间尺度
- 过高的频率浪费计算资源
- 过低的频率影响稳定性和性能
经验法则:
- 规划层:~10Hz(取决于环境变化速度)
- MPC层:~100-200Hz(5-10ms延迟可接受)
- WBC层:~1kHz(1ms级响应)
- 伺服层:>5kHz(亚毫秒级)
3. 优先级设计错误
错误:将所有任务设置为同等优先级
正确理解:
- 硬约束(如关节限位)必须最高优先级
- 软约束可以有层级和权重
- 优先级过多会导致数值问题
调试方法:
- 先确保硬约束满足
- 逐步添加软约束
- 观察冲突并调整优先级
- 使用null space投影处理冗余
4. 坐标系混淆
错误:混用世界坐标系、机体坐标系和关节坐标系
正确做法:
- 明确定义每个变量的坐标系
- 使用一致的变换约定(如DH参数)
- 在代码中清晰标注坐标系
# Bad
force = get_force() # 什么坐标系?
# Good
force_world = get_force_in_world_frame()
force_body = T_body_world @ force_world
5. 实时性假设
错误:在仿真中工作的控制器可以直接部署到实际系统
正确理解:
- 仿真往往忽略计算延迟
- 实际系统有通信延迟、传感器延迟
- 需要考虑worst-case执行时间
解决策略:
- 使用实时操作系统(RTOS)
- 预留计算时间裕度(如MPC只用70%的周期时间)
- 实现降级策略(当优化未收敛时)
6. 数值稳定性问题
错误:直接求解病态矩阵的逆
正确做法:
- 使用正则化:$(\mathbf{A}^T\mathbf{A} + \lambda\mathbf{I})^{-1}$
- 采用SVD或QR分解
- 设置数值阈值过滤噪声
7. 单位不一致
错误:混用角度制和弧度制,或不同的力/力矩单位
预防措施:
- 在接口处明确单位
- 使用类型系统强制单位
- 编写单位测试验证
通过理解这些常见陷阱,您将能够更有效地设计和调试机器人控制系统。记住,优秀的控制系统不仅需要理论知识,更需要工程实践中的经验积累。