第17章:移动机器人与足式机器人控制

移动机器人和足式机器人代表了现代机器人学中最具挑战性和创新性的领域。从仓储物流的自主移动机器人(AMR)到能在复杂地形行走的四足机器人,再到接近人类运动能力的人形机器人,这些系统的控制涉及运动学、动力学、平衡、步态规划和环境适应等多个层面的复杂问题。本章将系统介绍移动机器人的各种运动形式及其控制方法,重点探讨轮式、足式和轮足混合机器人的控制策略,并通过Boston Dynamics、ANYbotics等领先企业的实际案例展示这些理论的工程应用。

17.1 轮式机器人运动学与控制

轮式机器人是最常见的移动机器人形式,其运动学模型相对简单但在实际应用中极其重要。理解轮式机器人的运动学约束是设计有效控制器的基础。从工业AGV(自动导引车)到家用扫地机器人,从仓储物流机器人到自动驾驶汽车,轮式移动平台的控制理论贯穿了整个移动机器人产业。

17.1.1 运动学约束

轮式机器人的运动受到非完整约束(nonholonomic constraints)的限制。非完整约束是指系统的约束不能被积分成有限形式的位置约束,这类约束通常涉及速度但不能简化为纯位置关系。以最简单的独轮车模型为例:

     前进方向
         ↑
         |
     +---+---+
     |   ●   |  ← 机器人本体
     +-------+
         |
         v (x, y, θ)

独轮车模型的运动学方程为:

$$\begin{aligned} \dot{x} &= v \cos\theta \\ \dot{y} &= v \sin\theta \\ \dot{\theta} &= \omega \end{aligned}$$ 其中 $(x, y)$ 是位置坐标,$\theta$ 是航向角,$v$ 是线速度,$\omega$ 是角速度。

非完整约束表现为:机器人不能侧向移动,即: $$\dot{x}\sin\theta - \dot{y}\cos\theta = 0$$ 这个约束导致轮式机器人不能直接到达某些位姿,必须通过适当的路径规划和控制策略来实现目标。这个约束的物理意义是轮子的滚动约束——理想情况下轮子只能向前滚动,不能侧滑。

从控制理论角度,非完整系统具有以下特性:

  1. 可控性:尽管存在速度约束,系统仍然是可控的(满足Lie括号条件)
  2. 不可镇定性:不存在光滑的时不变状态反馈控制律使系统全局渐近稳定(Brockett定理)
  3. 路径依赖性:到达同一目标点的不同路径会导致不同的最终姿态

这些特性深刻影响了轮式机器人的控制器设计。例如,停车问题看似简单,但由于非完整约束的存在,平行停车需要复杂的前进-后退序列才能完成。

17.1.2 控制器设计

对于轨迹跟踪问题,关键是定义合适的误差坐标系。在机器人本体坐标系下定义跟踪误差: $$\begin{bmatrix} e_x \\ e_y \\ e_\theta \end{bmatrix} = \begin{bmatrix} \cos\theta & \sin\theta & 0 \\ -\sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x_r - x \\ y_r - y \\ \theta_r - \theta \end{bmatrix}$$ 其中下标 $r$ 表示参考轨迹。这个变换将全局坐标系下的误差转换到机器人本体坐标系,其中 $e_x$ 是纵向误差,$e_y$ 是横向误差,$e_\theta$ 是航向误差。

误差动力学可以推导为: $$\begin{aligned} \dot{e}_x &= -v + v_r\cos e_\theta + e_y\omega \\ \dot{e}_y &= v_r\sin e_\theta - e_x\omega \\ \dot{e}_\theta &= \omega_r - \omega \end{aligned}$$ 基于Lyapunov方法设计的经典控制律为: $$\begin{aligned} v &= v_r \cos e_\theta + k_x e_x \\ \omega &= \omega_r + v_r(k_y e_y + k_\theta \sin e_\theta) \end{aligned}$$ 其中 $k_x, k_y, k_\theta > 0$ 是控制增益。选择Lyapunov函数: $$V = \frac{1}{2}(e_x^2 + e_y^2) + \frac{1-\cos e_\theta}{k_y}$$ 可以证明 $\dot{V} \leq 0$,从而保证跟踪误差渐近收敛到零。控制增益的选择需要权衡收敛速度和控制输入的平滑性:

  • 较大的 $k_x$ 加快纵向误差收敛但可能引起速度抖动
  • 较大的 $k_y$ 改善横向跟踪但可能导致过度转向
  • $k_\theta$ 影响航向收敛速度,通常设置为 $k_\theta = 2\sqrt{k_y}$ 以获得临界阻尼响应

17.1.3 路径规划与运动规划

轮式机器人的路径规划需要考虑非完整约束,这使得规划问题比全向机器人更具挑战性。规划算法必须生成动力学可行的轨迹,即满足运动学约束的路径。

几何路径类型

  1. Dubins路径:最短路径由直线段和最小转弯半径的圆弧组成,适用于前向运动的车辆
  2. Reeds-Shepp路径:允许前进和后退,包含6种基本运动模式
  3. 连续曲率路径:使用回旋线(clothoid)连接直线和圆弧,提供平滑的转向

常用规划方法

  1. 基于采样的方法: - RRT(Rapidly-exploring Random Trees):快速探索配置空间 - RRT*:渐近最优版本,通过重连接改善路径质量 - Kinodynamic RRT:直接在状态空间规划,考虑动力学约束

  2. 基于优化的方法: 将路径规划转化为非线性优化问题: $$\min_{u(\cdot)} \int_0^T L(x(t), u(t))dt$$ 约束条件包括运动学方程、障碍物避让和边界条件

  3. 基于搜索的方法: - Lattice规划器:预计算运动原语库,通过图搜索组合 - Hybrid A*:结合连续空间和离散搜索的优势

分层规划架构

实际系统通常采用三层架构:

任务层(1-10 Hz)
    ↓ 目标点序列
全局规划层(1-5 Hz)
    ↓ 参考路径
局部规划层(10-50 Hz)
    ↓ 速度命令
反应控制层(50-1000 Hz)
  • 全局规划器:基于地图生成无碰撞的粗略路径,不考虑动力学细节
  • 局部规划器:在有限时域内优化轨迹,考虑动力学约束和动态障碍物
  • 反应层:紧急避障和安全保障,直接修改控制命令

17.2 差分驱动与阿克曼转向

两种最基本的轮式驱动方式——差分驱动和阿克曼转向——分别代表了室内移动机器人和道路车辆的主流选择。理解这两种驱动方式的运动学特性和控制策略对于设计实际系统至关重要。

17.2.1 差分驱动机器人

差分驱动是最常见的驱动方式,通过控制左右轮的速度差实现转向。这种配置广泛应用于室内机器人、轮椅、坦克等系统:

    左轮 ←→ 右轮
    vL      vR
     ↓      ↓
    +---------+
    |    ●    |  机器人中心

    |    ●    |  机器人中心
    |         |  

    +---------+
        2L

运动学模型推导

考虑机器人在时间 $dt$ 内的运动,如果左右轮速度不同,机器人将沿圆弧运动。瞬时旋转中心(ICR)到左右轮的距离分别为 $R-L$ 和 $R+L$,其中 $R$ 是ICR到机器人中心的距离。

根据刚体运动学: $$\begin{aligned} v &= \frac{v_R + v_L}{2} \\ \omega &= \frac{v_R - v_L}{2L} \end{aligned}$$ 其中 $L$ 是轮间距的一半,$v_L, v_R$ 分别是左右轮速度。

逆运动学(给定 $v, \omega$ 求轮速): $$\begin{aligned} v_L &= v - L\omega \\ v_R &= v + L\omega \end{aligned}$$ 奇异性分析

差分驱动的一个重要特性是可以原地旋转($v=0, \omega\neq0$),此时 $v_L = -v_R$。这种能力使得差分驱动机器人在狭窄空间中具有优越的机动性。

里程计计算

基于编码器读数的里程计更新: $$\begin{aligned} \Delta s_L &= \text{encoder}_L \times \frac{2\pi r}{N} \\ \Delta s_R &= \text{encoder}_R \times \frac{2\pi r}{N} \\ \Delta \theta &= \frac{\Delta s_R - \Delta s_L}{2L} \\ \Delta x &= \frac{\Delta s_R + \Delta s_L}{2} \cos(\theta + \frac{\Delta\theta}{2}) \\ \Delta y &= \frac{\Delta s_R + \Delta s_L}{2} \sin(\theta + \frac{\Delta\theta}{2}) \end{aligned}$$ 其中 $r$ 是轮半径,$N$ 是编码器分辨率。使用中点角度 $\theta + \Delta\theta/2$ 可以减少数值积分误差。

17.2.2 阿克曼转向

阿克曼转向广泛用于汽车和类汽车机器人,其设计目的是确保转弯时所有轮子都做纯滚动运动,避免侧滑:

        前轮
    δL ← → δR
     \   /
      \ /
       ●  转向中心(ICR)
      / \
     /   \
    后轮(固定)

理想阿克曼几何

理想阿克曼条件确保所有轮子绕同一瞬时旋转中心转动: $$\cot\delta_R - \cot\delta_L = \frac{W}{L}$$ 其中 $W$ 是轮距,$L$ 是轴距。对于小角度近似,内外轮转角关系为: $$\delta_L \approx \delta + \frac{W}{2L}\delta^2, \quad \delta_R \approx \delta - \frac{W}{2L}\delta^2$$ 其中 $\delta$ 是等效前轮转角。

自行车模型

为简化分析,常使用自行车模型(前后各用一个等效轮):

运动学模型(低速,忽略侧滑): $$\begin{aligned} \dot{x} &= v\cos\theta \\ \dot{y} &= v\sin\theta \\ \dot{\theta} &= \frac{v}{L}\tan\delta \\ \end{aligned}$$ 动力学模型(考虑侧滑): $$\begin{aligned} \dot{x} &= v\cos(\theta + \beta) \\ \dot{y} &= v\sin(\theta + \beta) \\ \dot{\theta} &= \frac{v}{l_r}\sin\beta \\ \dot{v} &= a \\ \beta &= \arctan\left(\frac{l_r}{l_f + l_r}\tan\delta\right) \end{aligned}$$ 其中 $\beta$ 是质心侧滑角,$l_f, l_r$ 是前后轴到质心的距离。

最小转弯半径

阿克曼转向的一个关键限制是最小转弯半径: $$R_{min} = \frac{L}{\tan\delta_{max}}$$ 典型乘用车的最小转弯半径约为5-6米,这个限制对路径规划有重要影响。

高速动力学考虑

高速时轮胎侧向力变得重要,需要考虑:

  • 轮胎侧偏角与侧向力的非线性关系(Pacejka模型)
  • 载荷转移对轮胎特性的影响
  • 转向不足/过度转向特性

17.2.3 控制策略对比

性能特性对比

| 特性 | 差分驱动 | 阿克曼转向 |

特性 差分驱动 阿克曼转向
最小转弯半径 0(可原地旋转) $L/\tan\delta_{max}$
高速稳定性 较差 优秀
能量效率 中等
机械复杂度 简单 复杂
控制复杂度 简单 中等
典型应用 室内AGV、扫地机器人 汽车、户外机器人

控制器设计考虑

  1. 差分驱动控制要点: - 轮速同步控制避免偏航 - 滑移补偿(特别是加速/制动时) - 零半径转弯的路径规划优化

  2. 阿克曼转向控制要点: - 前馈补偿克服转向系统惯性 - 考虑轮胎特性的非线性控制 - 防侧翻和稳定性控制(ESP/ESC)

混合策略

一些现代系统结合两种方式的优点:

  • 四轮转向(4WS):提高机动性同时保持稳定性
  • 独立驱动电动车:每轮独立电机,可模拟差分效果
  • 主动转向系统:根据速度调整转向比

17.3 麦克纳姆轮与全向移动控制

麦克纳姆轮(Mecanum wheel)和全向轮(Omni wheel)实现了真正的全向移动,突破了非完整约束的限制。

17.3.1 麦克纳姆轮原理

麦克纳姆轮的滚子与轮轴成45°角排列:

    前
    ↑
┌─────────┐
│ ╱  ╲   │  轮1: +45°  轮2: -45°
│╱    ╲  │
│        │
│╲    ╱  │
│ ╲  ╱   │  轮3: -45°  轮4: +45°
└─────────┘

单个麦轮的速度贡献: $$\begin{bmatrix} v_x^i \\ v_y^i \\ \omega^i \end{bmatrix} = \begin{bmatrix} 1 & -\sin\alpha_i & -l_i\sin(\beta_i + \alpha_i) \\ 0 & \cos\alpha_i & l_i\cos(\beta_i + \alpha_i) \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \omega_i \\ 0 \\ 0 \end{bmatrix}$$ 其中 $\alpha_i$ 是滚子角度,$l_i$ 是轮子到机器人中心的距离,$\beta_i$ 是轮子方位角。

17.3.2 运动学模型

标准四轮麦克纳姆配置的逆运动学: $$\begin{bmatrix} \omega_1 \\ \omega_2 \\ \omega_3 \\ \omega_4 \end{bmatrix} = \frac{1}{R} \begin{bmatrix} 1 & -1 & -(L_x + L_y) \\ 1 & 1 & (L_x + L_y) \\ 1 & 1 & -(L_x + L_y) \\ 1 & -1 & (L_x + L_y) \end{bmatrix} \begin{bmatrix} v_x \\ v_y \\ \omega_z \end{bmatrix}$$ 其中 $R$ 是轮半径,$L_x, L_y$ 是机器人尺寸参数。

正运动学(考虑冗余): $$\begin{bmatrix} v_x \\ v_y \\ \omega_z \end{bmatrix} = \frac{R}{4} \begin{bmatrix} 1 & 1 & 1 & 1 \\ -1 & 1 & 1 & -1 \\ -\frac{1}{L_x+L_y} & \frac{1}{L_x+L_y} & -\frac{1}{L_x+L_y} & \frac{1}{L_x+L_y} \end{bmatrix} \begin{bmatrix} \omega_1 \\ \omega_2 \\ \omega_3 \\ \omega_4 \end{bmatrix}$$

17.3.3 控制设计

全向移动的优势在于可以解耦位置和姿态控制: $$\begin{aligned} v_x &= k_p(x_d - x) + k_d\dot{x}_d \\ v_y &= k_p(y_d - y) + k_d\dot{y}_d \\ \omega_z &= k_\theta(\theta_d - \theta) + k_\omega\dot{\theta}_d \end{aligned}$$ 实际应用中需要考虑:

  1. 滑移补偿:麦轮在实际地面上存在滑移,需要通过里程计和外部传感器融合进行补偿
  2. 负载分配:优化各轮的扭矩分配以提高效率
  3. 故障容错:单轮故障时的降级控制策略

17.3.4 应用案例:Amazon Kiva系统

Amazon Kiva(现Amazon Robotics)使用差分驱动而非麦轮,但通过巧妙的路径规划实现高效仓储:

  • 网格导航:机器人在预定义网格上移动
  • 冲突避免:中央调度系统协调多机器人路径
  • 负载平衡:通过优化算法最小化总行程

关键控制创新:

  1. 预测控制用于平滑加减速
  2. 自适应控制补偿负载变化
  3. 分布式协调避免死锁

17.4 足式机器人步态生成

足式机器人通过离散的立足点实现移动,其控制核心是步态生成和稳定性维持。

17.4.1 步态基础

步态定义了腿的协调运动模式。常见步态包括:

时间 →
腿1: ■■□□■■□□  (■=支撑相, □=摆动相)
腿2: □□■■□□■■
腿3: ■■□□■■□□
腿4: □□■■□□■■
     ↑ Trot步态示例

主要步态类型:

  • Walk(行走):至少三条腿始终着地,静态稳定
  • Trot(对角小跑):对角腿同步运动
  • Pace(同侧步):同侧腿同步运动
  • Bound(跳跃):前后腿对分组
  • Gallop(奔跑):非对称高速步态

17.4.2 CPG(中央模式发生器)

CPG通过耦合振荡器网络生成节律性运动: $$\begin{aligned} \dot{r}_i &= a(R - r_i) + \sum_j w_{ij}r_j\cos(\phi_j - \phi_i - \psi_{ij}) \\ \dot{\phi}_i &= \omega + \sum_j w_{ij}\frac{r_j}{r_i}\sin(\phi_j - \phi_i - \psi_{ij}) \end{aligned}$$ 其中 $r_i, \phi_i$ 是第 $i$ 个振荡器的幅值和相位,$w_{ij}$ 是耦合权重,$\psi_{ij}$ 是期望相位差。

CPG优势:

  • 生成平滑连续的轨迹
  • 自然的步态转换
  • 对扰动的鲁棒性

17.4.3 ZMP与动态稳定性

零力矩点(Zero Moment Point, ZMP)是评估动态稳定性的关键指标: $$\mathbf{p}_{ZMP} = \frac{\sum_i m_i(\mathbf{r}_i \times (\ddot{\mathbf{r}}_i + \mathbf{g})) \times \mathbf{n}}{\sum_i m_i(\ddot{\mathbf{r}}_i + \mathbf{g}) \cdot \mathbf{n}}$$ 稳定性准则:ZMP必须位于支撑多边形内。

线性倒立摆模型(LIPM)简化了ZMP计算: $$\ddot{x} = \frac{g}{z_c}(x - p_x)$$ 其中 $z_c$ 是质心高度(假设恒定),$p_x$ 是ZMP的x坐标。

17.4.4 轨迹优化方法

现代方法使用轨迹优化生成动态可行的运动: $$\min_{x, u} \sum_{t=0}^{T} \ell(x_t, u_t) + \ell_f(x_T)$$ 约束条件:

  • 动力学约束:$x_{t+1} = f(x_t, u_t)$
  • 接触力约束:摩擦锥、单边接触
  • 运动学限制:关节角度、速度限制
  • 稳定性约束:ZMP或质心动力学

17.5 轮足式机器人混合控制

轮足式机器人结合了轮式的高效性和足式的地形适应能力,代表了移动机器人的新趋势。

17.5.1 混合运动模式

轮足机器人典型配置:

    轮式模式           足式模式          混合模式
   ___________      ___________      ___________
  |     □     |    |     □     |    |     □     |
  |    /|\    |    |    /|\    |    |    /|\    |
  |   / | \   |    |   / | \   |    |   / | \   |
    ●   |   ●         ∧  |  ∧          ●  |  ∧
       地面             地面              地面

模式切换策略基于:

  • 地形粗糙度评估
  • 能耗优化
  • 任务需求(速度vs越障)

17.5.2 统一控制框架

将轮足系统建模为带约束的混合动力系统: $$M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q) = B\tau + J^T(q)F$$ 其中 $q$ 包含本体位姿和关节角度,$F$ 是接触力(包括轮地接触)。

控制分解为:

  1. 任务空间控制:规划本体轨迹
  2. 运动分配:决定轮/足贡献
  3. 底层控制:关节力矩控制

17.5.3 模式切换控制

平滑切换需要: $$u = \alpha(t)u_{wheel} + (1-\alpha(t))u_{leg}$$ 其中 $\alpha(t)$ 是平滑过渡函数: $$\alpha(t) = \frac{1}{2}\left(1 + \tanh\left(\frac{t - t_{switch}}{\tau}\right)\right)$$ 切换时机判断基于:

  • 地形特征(坡度、台阶高度)
  • 稳定性裕度
  • 能耗预测

17.5.4 优化分配策略

最优力分配问题: $$\min_{\tau, F} |\tau|_W^2 + |F|_R^2$$ 约束:

  • 运动方程:$M\ddot{x} = J_w\tau + J_f F - mg$
  • 摩擦锥:$|F_t| \leq \mu F_n$
  • 扭矩限制:$|\tau| \leq \tau_{max}$

这可以转化为二次规划(QP)问题实时求解。

17.6 全身控制(Whole-body Control)

全身控制协调机器人所有自由度来完成复杂任务,特别适用于人形和四足机器人。

17.6.1 任务空间控制

定义多个任务的优先级: $$\dot{x}_i = J_i(q)\dot{q}$$ 分层QP框架: $$\begin{aligned} \min_{\dot{q}, \tau} &\quad |J_1\dot{q} - \dot{x}_1^*|^2 \\ \text{s.t.} &\quad J_2\dot{q} = \dot{x}_2^* \\ &\quad \underline{\dot{q}} \leq \dot{q} \leq \overline{\dot{q}} \\ &\quad \underline{\tau} \leq \tau \leq \overline{\tau} \end{aligned}$$

17.6.2 动力学一致性

投影到零空间保证高优先级任务不受影响: $$\dot{q} = J_1^+\dot{x}_1 + (I - J_1^+J_1)J_2^+\dot{x}_2$$ 其中 $J^+$ 是加权伪逆: $$J^+ = W^{-1}J^T(JW^{-1}J^T)^{-1}$$

17.6.3 接触力优化

考虑多点接触的力分配: $$\begin{aligned} \min_{F_c} &\quad \sum_i |F_{c,i}|^2 \\ \text{s.t.} &\quad \sum_i J_{c,i}^T F_{c,i} = \tau_{des} \\ &\quad F_{c,i} \in \mathcal{K}_i \end{aligned}$$ 其中 $\mathcal{K}_i$ 是第 $i$ 个接触点的摩擦锥。

17.6.4 实时实现策略

  1. 分解策略: - 高层:任务规划(10-50Hz) - 中层:全身优化(100-200Hz) - 底层:关节控制(1-10kHz)

  2. 近似方法: - 线性化动力学 - 固定接触模式 - 解析解代替数值优化

17.7 地形适应与平衡控制

17.7.1 地形感知

地形重建方法:

  1. 激光雷达:生成高精度地形图
  2. 深度相机:实时局部地形
  3. 本体感知:通过接触力推断

地形特征提取:

  • 坡度和曲率
  • 可通行性评分
  • 立足点质量评估

17.7.2 自适应步态调整

根据地形调整步态参数: $$\begin{aligned} h_{step} &= h_0 + k_h \cdot \text{roughness} \\ T_{swing} &= T_0 \sqrt{1 + k_T \cdot \text{slope}} \\ \beta_{duty} &= \beta_0 - k_\beta \cdot \text{uncertainty} \end{aligned}$$ 其中 $h_{step}$ 是步高,$T_{swing}$ 是摆动时间,$\beta_{duty}$ 是占空比。

17.7.3 反应式平衡控制

基于虚拟模型控制(VMC): $$F_{virtual} = K_p(x_{des} - x) + K_d(\dot{x}_{des} - \dot{x})$$ 映射到关节力矩: $$\tau = J^T F_{virtual} + \tau_{ff}$$ 加入自适应项处理未知扰动: $$\tau = J^T F_{virtual} + \tau_{ff} + K_{adapt}\int e \, dt$$

17.7.4 预测平衡控制

使用简化模型预测未来状态: $$x_{k+1} = Ax_k + Bu_k + w_k$$ MPC公式化: $$\min_{u_0,...,u_{N-1}} \sum_{k=0}^{N-1} (x_k^TQx_k + u_k^TRu_k) + x_N^TQ_fx_N$$ 约束包括:

  • 支撑多边形约束
  • 关节限位
  • 接触力限制

17.8 深度案例分析

17.8.1 Boston Dynamics Atlas人形机器人平衡控制

Atlas展示了人形机器人控制的最高水平,其核心控制策略包括:

  1. 分层控制架构
行为层 (1-10 Hz)
    ↓
轨迹优化层 (50-100 Hz)
    ↓
全身控制层 (200-1000 Hz)
    ↓
关节控制层 (1-5 kHz)
  1. 动量控制

Atlas使用质心动量作为主要控制量: $$h = \sum_i m_i(r_i \times v_i) + I_i\omega_i$$ 控制目标: $$\dot{h}_{des} = K_p(h_{ref} - h) + \dot{h}_{ref}$$ 通过优化求解关节加速度: $$\min_{\ddot{q}} |A\ddot{q} - \dot{h}_{des}|^2 + \alpha|\ddot{q}|^2$$

  1. 跑酷能力的实现

Atlas的跑酷展示涉及:

  • 感知:立体视觉构建地形图
  • 规划:基于采样的运动规划器
  • 优化:轨迹优化考虑动力学可行性
  • 执行:MPC跟踪优化轨迹

关键创新:

  • 学习型落脚点评分网络
  • 混合动力学模型(刚体+柔性)
  • 自适应阻抗控制处理意外接触

17.8.2 ANYmal四足机器人崎岖地形行走

ANYmal代表了四足机器人商业化的前沿,其控制系统针对实际应用优化:

  1. 感知与地图构建
  • 高程图:融合激光雷达和立体相机
  • 可通行性分析:基于CNN的地形分类
  • 步态适应:根据地形自动调整
  1. 运动控制器

分层MPC架构:

  • 高层MPC (10-20 Hz):规划质心轨迹
  • 底层WBC (400 Hz):全身控制分配

质心动力学MPC: $$\min \sum_{k=0}^{N} |x_k - x_{ref}|_Q^2 + |u_k|_R^2$$ 其中状态 $x = [r, \dot{r}, \theta, \omega]$,控制 $u$ 为足端力。

  1. 学习增强控制

ANYmal结合了模型控制和强化学习:

  • 基础控制器:基于模型的MPC
  • 残差策略:RL学习的补偿项
  • 安全保障:CBF约束确保安全 $$u = u_{MPC} + \alpha \cdot \pi_{RL}(s)$$ 其中 $\alpha$ 根据置信度动态调整。

17.8.3 Swiss-Mile轮足式机器人模式切换控制

Swiss-Mile展示了轮足混合的优势:

  1. 模式决策

基于成本函数的模式选择: $$J_{mode} = w_1 E_{energy} + w_2 T_{time} + w_3 R_{risk}$$ 决策规则:

  • 平地:轮式模式(8 m/s)
  • 楼梯:足式模式
  • 斜坡:混合模式
  1. 转换控制

平滑转换策略:

# 伪代码
if mode_change_triggered:
    α = smooth_transition(t)
    τ_cmd = α * τ_wheel + (1-α) * τ_leg
    adjust_body_height(α)
    update_contact_schedule(α)
  1. 统一优化框架 $$\min_{\tau, F, \dot{q}} \sum_i w_i |task_i|^2$$ 约束统一处理轮地和足地接触。

17.8.4 Amazon Kiva仓储机器人控制

Kiva系统展示了大规模多机器人协调:

  1. 路径规划
  • 全局规划:A*算法在网格地图
  • 局部避障:速度障碍法(VO)
  • 死锁处理:优先级based协调
  1. 轨迹跟踪

纯追踪算法改进版: $$\delta = \arctan\left(\frac{2L\sin\alpha}{l_d}\right)$$ 加入预测补偿: $$\delta_{cmd} = \delta + k_p e_{lateral} + k_d \dot{e}_{lateral}$$

  1. 多机器人协调

分布式协调协议:

  • 预约机制避免冲突
  • 动态优先级分配
  • 局部重规划能力

17.8.5 Agility Robotics Digit双足机器人物流应用

Digit专为物流设计,强调鲁棒性和效率:

  1. 步态优化

基于能耗的步态参数优化: $$\min_{\theta} \int_0^T P(\theta, t) dt$$ 其中 $\theta$ 包含步长、步高、步频等参数。

  1. 操作控制

结合运动和操作的全身控制:

  • 手臂用于搬运包裹
  • 腿部维持平衡
  • 躯干优化负载分布
  1. 安全机制

多层安全保障:

  • 硬件限位和急停
  • 软件速度/力矩限制
  • 基于学习的跌倒预测

17.9 前沿专题:强化学习在足式机器人控制中的应用

17.9.1 端到端学习 vs. 混合方法

纯学习方法

  • 优势:适应性强,可发现新颖步态
  • 劣势:样本效率低,安全性难保证

混合方法

  • 模型控制提供基础
  • RL优化性能
  • 安全约束始终满足

17.9.2 仿真到现实的迁移

域随机化: $$p_{train}(\xi) = \mathcal{U}(\xi_{min}, \xi_{max})$$ 参数包括:

  • 质量、惯量变化(±20%)
  • 摩擦系数(0.5-1.5)
  • 传感器噪声
  • 延迟(0-50ms)

自适应方法: 在线估计真实参数: $$\hat{\xi} = \arg\min_\xi |y_{obs} - y_{sim}(\xi)|^2$$

17.9.3 课程学习

渐进式任务难度:

  1. 平地站立
  2. 平地行走
  3. 斜坡行走
  4. 不规则地形
  5. 动态障碍物

奖励函数设计: $$r = r_{task} + \lambda_1 r_{energy} + \lambda_2 r_{smooth} - \lambda_3 r_{penalty}$$

17.9.4 安全强化学习

约束强化学习(Safe RL): $$\max_\pi J(\pi) \quad \text{s.t.} \quad C(\pi) \leq c_{max}$$ 其中 $C(\pi)$ 是安全违反的期望成本。

实现方法:

  • Lagrangian方法:将约束转化为惩罚项
  • 投影方法:将策略投影到安全集
  • 屏障函数:集成CBF到策略网络

17.10 历史人物:Marc Raibert (1986)

Marc Raibert是动态腿式机器人控制的先驱,他在MIT腿式机器人实验室的工作奠定了现代足式机器人的基础。

主要贡献

  1. 动态平衡理论:提出了单腿跳跃机器人的三部分控制策略: - 身体姿态控制 - 跳跃高度控制 - 前进速度控制

  2. 虚拟腿概念:将多腿系统简化为单腿模型,大大简化了控制设计。

  3. 动态运动原则:强调动态稳定性而非静态稳定,开创了高速动态运动的可能。

经典控制策略

Raibert的单腿跳跃控制: $$\begin{aligned} x_{foot} &= x_{hip} + \frac{\dot{x} \cdot T_{stance}}{2} + k_v(\dot{x}_{des} - \dot{x}) \\ F_{thrust} &= F_0 + k_h(h_{des} - h) \\ \tau_{hip} &= k_p(\theta_{des} - \theta) + k_d\dot{\theta} \end{aligned}$$ 这个简单而优雅的控制律启发了后续几十年的研究。

从MIT到Boston Dynamics

Raibert于1992年创立Boston Dynamics,将学术研究转化为实际产品:

  • BigDog (2005):首个实用四足机器人
  • Atlas (2013):最先进的人形机器人
  • Spot (2019):首个商业化四足机器人

他的工作证明了动态控制理论可以创造出超越生物的运动能力。

本章小结

本章系统介绍了移动机器人和足式机器人的控制理论与实践:

核心概念

  1. 运动学约束:非完整约束限制了轮式机器人的运动自由度
  2. 步态生成:CPG和轨迹优化是生成自然步态的两种主要方法
  3. 全身控制:协调多自由度完成复杂任务的统一框架
  4. 混合控制:轮足结合提供了效率和适应性的最佳平衡

关键公式

  • 独轮车运动学:$\dot{x} = v\cos\theta, \dot{y} = v\sin\theta, \dot{\theta} = \omega$
  • ZMP稳定性判据:ZMP必须位于支撑多边形内
  • 全身控制优化:$\min |J\dot{q} - \dot{x}^*|^2$ s.t. 动力学和接触约束
  • 轮足切换:$u = \alpha(t)u_{wheel} + (1-\alpha(t))u_{leg}$

实践要点

  • 差分驱动适合室内环境,阿克曼转向适合高速户外
  • 麦克纳姆轮实现全向移动但需要平整地面
  • 足式机器人通过动态平衡实现崎岖地形通过
  • 强化学习增强但不替代基于模型的控制

练习题

基础题

习题17.1 推导差分驱动机器人从当前位置 $(0, 0, 0)$ 到目标位置 $(x_f, y_f, \theta_f)$ 的最短路径。

提示

考虑先旋转对准、直线前进、再旋转到目标姿态的策略。

答案

最短路径策略(Dubins路径的特例):

  1. 旋转角度 $\alpha = \arctan2(y_f, x_f)$
  2. 前进距离 $d = \sqrt{x_f^2 + y_f^2}$
  3. 最终旋转 $\beta = \theta_f - \alpha$

总路径长度:$L = |\alpha| \cdot R + d + |\beta| \cdot R$(其中R是转弯半径,差分驱动时R=0)

习题17.2 给定麦克纳姆轮机器人的轮速 $[\omega_1, \omega_2, \omega_3, \omega_4] = [1, -1, 1, -1]$ rad/s,轮半径 $R = 0.1$ m,计算机器人的运动速度。

提示

使用正运动学矩阵计算。

答案

使用正运动学: $$\begin{bmatrix} v_x \\ v_y \\ \omega_z \end{bmatrix} = \frac{0.1}{4} \begin{bmatrix} 1 & 1 & 1 & 1 \\ -1 & 1 & 1 & -1 \\ -1/(L_x+L_y) & 1/(L_x+L_y) & -1/(L_x+L_y) & 1/(L_x+L_y) \end{bmatrix} \begin{bmatrix} 1 \\ -1 \\ 1 \\ -1 \end{bmatrix}$$ 结果:$v_x = 0$ m/s, $v_y = -0.1$ m/s, $\omega_z = 0$ rad/s(纯侧向运动)

习题17.3 四足机器人的质心高度为0.3m,要保持ZMP在支撑多边形中心,质心最大允许加速度是多少?假设支撑多边形是边长0.4m的正方形。

提示

使用线性倒立摆模型。

答案

使用LIPM:$\ddot{x} = \frac{g}{z_c}(x - p_x)$

最大偏移:$|x - p_x|_{max} = 0.2$ m(正方形半边长)

最大加速度:$|\ddot{x}|_{max} = \frac{9.8}{0.3} \times 0.2 = 6.53$ m/s²

挑战题

习题17.4 设计一个CPG网络,使四足机器人实现trot步态。给出振荡器耦合矩阵和相位关系。

提示

Trot步态中对角腿同相,相邻腿反相。

答案

四个振荡器(对应四条腿),耦合矩阵: $$W = \begin{bmatrix} 0 & 1 & 1 & 1 \\ 1 & 0 & 1 & 1 \\ 1 & 1 & 0 & 1 \\ 1 & 1 & 1 & 0 \end{bmatrix}$$ 相位差矩阵: $$\Psi = \begin{bmatrix} 0 & \pi & \pi & 0 \\ \pi & 0 & 0 & \pi \\ \pi & 0 & 0 & \pi \\ 0 & \pi & \pi & 0 \end{bmatrix}$$ 腿1和腿4同相(左前-右后),腿2和腿3同相(右前-左后)。

习题17.5 推导轮足机器人在斜坡上的最优模式切换条件。考虑能耗、速度和稳定性。

提示

建立包含坡度、速度需求和能耗模型的成本函数。

答案

成本函数: $$J = w_1 \cdot P(\theta, v) + w_2 \cdot T(v) + w_3 \cdot R(\theta)$$

其中:

  • 能耗:$P_{wheel} = mgv\sin\theta + \frac{1}{2}\rho C_d Av^2$,$P_{leg} = mgv\sin\theta + k_{leg}v$
  • 时间成本:$T(v) = L/v$
  • 风险:$R_{wheel}(\theta) = e^{\theta/\theta_{critical}}$,$R_{leg} = const$

切换条件:当 $J_{wheel} > J_{leg}$ 时切换到足式模式。

临界坡度:$\theta^* \approx 15-20°$(取决于具体参数)

习题17.6 分析Boston Dynamics Spot使用的QP-based全身控制器的计算复杂度,并提出实时优化策略。

提示

考虑QP问题的规模和求解算法。

答案

QP问题规模:

  • 决策变量:12个关节力矩 + 12个接触力 = 24维
  • 约束:动力学(6) + 摩擦锥(16) + 关节限制(24) ≈ 46个

复杂度:$O(n^3)$ 对于密集QP,约 $24^3 ≈ 14k$ 运算

优化策略:

  1. 热启动:使用上一时刻解作为初值
  2. 固定接触模式:减少整数变量
  3. 解析解近似:小扰动时使用线性化
  4. 并行计算:GPU加速矩阵运算
  5. 时间分解:高频简单控制 + 低频复杂优化

习题17.7(开放性思考题)比较轮式、足式和飞行机器人在火星探索任务中的优劣,设计一个混合移动系统。

提示

考虑火星环境特点:低重力、沙尘、极端地形、通信延迟。

答案

火星环境特点:

  • 重力:地球的38%(利于跳跃)
  • 地形:岩石、沙丘、陨石坑
  • 大气:稀薄(飞行困难但可能)
  • 温度:-125°C到20°C

各方案优劣:

  • 轮式:能效高、可靠,但受地形限制
  • 足式:地形适应强,但复杂、能耗高
  • 飞行:快速侦察,但续航短、载荷小

混合设计方案:

  1. 主体:六轮摇臂悬架(如Curiosity)
  2. 辅助:可分离四旋翼侦察机
  3. 特殊:前轮可变形为抓爪(采样)
  4. 创新:轮腿混合,紧急时可跳跃

控制架构:

  • 自主导航(应对通信延迟)
  • 多模态SLAM
  • 风险感知路径规划
  • 故障容错控制

常见陷阱与错误(Gotchas)

1. 运动学建模错误

  • 错误:忽略轮子滑移,假设理想滚动
  • 后果:里程计严重漂移
  • 解决:融合IMU和视觉里程计

2. 非完整约束处理

  • 错误:试图让差分驱动机器人直接侧移
  • 后果:路径不可行
  • 解决:适当的路径规划考虑运动约束

3. 步态参数调试

  • 错误:在真机上直接测试激进参数
  • 后果:机器人损坏
  • 解决:先仿真验证,逐步增加难度

4. 接触力估计

  • 错误:假设刚性接触,忽略柔性
  • 后果:力控制不稳定
  • 解决:加入接触柔性模型或使用力传感器

5. 实时性问题

  • 错误:优化问题过于复杂
  • 后果:控制延迟导致不稳定
  • 解决:分层控制,不同频率处理不同复杂度

6. 仿真与现实差距

  • 错误:过度依赖仿真训练的策略
  • 后果:实机表现差
  • 解决:域随机化 + 实机微调

最佳实践检查清单

系统设计阶段

  • [ ] 明确任务需求:速度、负载、地形
  • [ ] 选择合适的移动方式:轮式/足式/混合
  • [ ] 确定传感器配置:里程计、IMU、相机、激光雷达
  • [ ] 设计冗余和故障处理机制

控制器开发

  • [ ] 建立准确的动力学模型
  • [ ] 设计分层控制架构
  • [ ] 实现多种控制模式(位置/速度/力)
  • [ ] 加入自适应和学习组件

仿真验证

  • [ ] 使用高保真物理仿真器(如MuJoCo、Isaac Gym)
  • [ ] 实施域随机化
  • [ ] 测试极限工况
  • [ ] 验证故障模式

实机部署

  • [ ] 渐进式测试:静态→平地→复杂地形
  • [ ] 实时监控关键指标
  • [ ] 设置安全边界和紧急停止
  • [ ] 记录数据用于离线分析

性能优化

  • [ ] 优化计算效率(代码优化、并行化)
  • [ ] 调整控制增益(系统辨识 + 自动调参)
  • [ ] 改进感知算法减少延迟
  • [ ] 平衡性能与能耗

维护与迭代

  • [ ] 建立故障诊断系统
  • [ ] 实现OTA更新机制
  • [ ] 收集现场数据改进模型
  • [ ] 定期评估和更新安全策略