跳转至

C00_序章上篇_全景与四分法

本文档属于 Robotics Tutorial 项目,作者:Pengfei Guo,达妙科技。采用 CC BY 4.0 协议,转载请注明出处。

序章导论(上):机器人规控 C++ 技术栈全景 —— 四分法与基础设施

文件类型:辅助导读文件(不适用教学章节完整规范,无需前置自测/陷阱专栏/练习题等教学模块)

定位:主体 24 章大纲(Ch47-70)完成后的**回顾性序章**——从走完 24 章的高度回看"我为什么要学这些、它们在整个机器人控制里的位置" 读者:已完成 v8 SLAM 主线 Ch1-46 和 / 或腿足主线 Ch47-70 的学习者,或打算开始的学习者 上篇内容:全景架构 + 四分法详解 + 基础设施共用性 下篇内容:自驾特殊地位 + 横向方法论前沿 + 学习路径建议


0.1 为什么需要这份序章

如果你直接翻开 Ch47,会立即陷入 Pinocchio 的浮动基座动力学、CppAD 自动求导、Centroidal Momentum —— 每个都是具体的技术点,但你看不到整张地图

看不到地图的后果: - 不知道学的东西能用到哪里 - 不知道哪些是"基础设施"(无论做什么方向都要),哪些是"专精"(只对某一类机器人适用) - 不知道你走的这条路在博士预备语境下属于什么位置 - 做技术选型时只能"跟着感觉走"

这份序章解决这个问题。学完主体 24 章再回来看本序章,你会有"啊,原来我走的是这条大路"的豁然开朗。

本序章给出的**不是新知识**,而是**已学知识的组织方式**。


0.2 第一原则:机器人的"规控"到底是什么

"规划与控制"(Planning and Control,简称"规控")**在机器人语境下的**精确含义:

子任务 问题 时间尺度 数学工具
全局规划(Global Planning) "从 A 点到 B 点,走什么路径" 秒到分钟 图搜索、采样规划、优化
局部规划(Local Planning) "未来几秒内轨迹怎么走,避开障碍" 0.1 - 1 秒 MPC、轨迹优化
轨迹跟踪(Trajectory Tracking) "给定参考轨迹,如何让机器人跟上" 几毫秒 LQR、PID、反馈控制
低层控制(Low-level Control) "给电机多少扭矩 / 电流 / 电压" 亚毫秒 电流环、伺服

"规控工程师"在不同机器人领域的工作重心不同: - 无人机:局部规划(避障)+ 轨迹跟踪(姿态控制)是核心 - 机械臂:全局规划(配置空间)+ 轨迹跟踪(关节伺服) - 腿足:全栈都要——但**局部规划(MPC)+ 轨迹跟踪(WBC)** 最关键 - 自驾:全局规划(车道规划)+ 局部规划(预测 / 决策)占大头

你走的这条腿足路线,属于"全栈规控"——这是最复杂也最有挑战的一类。假如没有接触力学和混合系统理论,腿足规控就退化为普通的全驱动控制问题——正是接触切换引入的离散-连续混合结构,让腿足成为控制理论中最富挑战的前沿。


0.3 机器人本体分类 —— 四分法

一个核心观察:规控算法的**数学结构、代码栈、工程习惯**都由**机器人本体类型**决定。

这好比编程语言的类型系统——同一段"控制逻辑"在不同本体上的实现差异,远大于同一本体上不同控制算法之间的差异。就像 C++ 和 Python 写同一个排序算法,算法一样但实现完全不同;无人机和腿足写同一个"保持平衡",目标一样但数学结构天差地别。

不同本体的**差异**比**共性**要大得多。所以我们按本体分类。

0.3.1 为什么选择"四分法"

常见的其他分类: - 按用途分(工业 / 服务 / 军事):用途和控制栈无关 - 按自由度分:机械臂 7 DOF、四足 12 DOF、人形 30+ DOF—— 连续谱,不好切 - 按驱动方式分(电机 / 液压 / 气动):控制抽象层相似,实现细节不同

我们的分类标准:"规控的数学结构和代码栈的主要形态"。按此标准:

┌─────────────────────────────────────────────────┐
│         机器人规控 C++ 技术栈                    │
└─────────────────┬───────────────────────────────┘
        ┌─────────┴─────────┬─────────┬──────────┐
        ▼                   ▼         ▼          ▼
   [A] 无人机        [B] 纯机械臂  [C] 纯腿足  [D] 复合机器人
   (飞行器)         (固定基座)   (浮动基座)  (腿+臂 / 轮+腿)

标注: - [C] 和 [D] 都是浮动基座(Floating Base)——欠驱动(基座 6 DOF 无电机)。数学上最复杂。 - [B] 是固定基座,全驱动(每个关节都有电机)——最简单。 - [A] 是完全没有关节(刚体),但姿态控制有其独特数学结构(SO(3) 流形 + 推力矢量化)。

**自驾**不在此分类内——我们稍后在"下篇"详细说明为什么。

0.3.2 四类的速览表

维度 [A] 无人机 [B] 纯机械臂 [C] 纯腿足 [D] 复合机器人
代表机器人 DJI、Skydio、PX4 生态 Panda、UR5、iiwa Unitree Go2/G1、ANYmal Mobile ALOHA、HumanPlus、Spot+Arm
自由度 6(位置+姿态) 6-7 12-30(含基座) 20-50
基座性质 浮动(气动) 固定 浮动(接触驱动) 浮动(接触驱动)
核心数学工具 SO(3)、几何控制 固定基座动力学、IK 浮动基座+接触力学、WBC 上面两者的组合
核心算法栈 姿态 PX4 / 轨迹 Fast-Planner MoveIt! + OCS2 机械臂 OCS2 + Crocoddyl + WBC 任务层:loco-manipulation MPC
实时要求 角速率 250-1000 Hz、轨迹 50 Hz 关节 1 kHz WBC 1 kHz + MPC 50 Hz 同 [C]
感知依赖 高(视觉 / VIO) 低(关节编码器) 中(高程图) 高(视觉 + 高程图)
主导范式 传统优化为主 传统优化为主 优化 ↔ RL 剧烈竞争 RL 开始占上风
典型代码栈 PX4、MAVROS、Fast-Planner MoveIt!、KDL、OCS2-arm OCS2、Crocoddyl、TSID、legged_control 腿足栈 + ALOHA / Mobile-ALOHA

你选的:[C] 纯腿足,以四足为主(人形因为已被 RL 范式统治,本大纲作为延伸提及但不深讲)。


0.4 [A] 无人机 —— 刚体姿态控制的极致

0.4.1 数学结构

无人机的状态是**6 DOF 刚体**:位置 \(\boldsymbol{p} \in \mathbb{R}^3\) + 姿态 \(\boldsymbol{R} \in SO(3)\)

动力学(Newton-Euler):

\[m \ddot{\boldsymbol{p}} = \boldsymbol{R} \boldsymbol{e}_3 T - m \boldsymbol{g}\]
\[\boldsymbol{I} \dot{\boldsymbol{\omega}} + \boldsymbol{\omega} \times \boldsymbol{I} \boldsymbol{\omega} = \boldsymbol{\tau}\]

其中 \(T\) 是总推力(标量),\(\boldsymbol{\tau}\) 是机体坐标系下的力矩。

关键特征:欠驱动——4 个输入(\(T, \tau_x, \tau_y, \tau_z\))控制 6 个自由度(位置 3 + 姿态 3)。必须**通过姿态实现水平推进**——姿态和位置强耦合。如果不利用姿态耦合会怎样?四旋翼只能垂直上下,永远无法水平移动——正是因为倾斜机身才能将推力分解出水平分量,这就是欠驱动系统的本质约束。

0.4.2 主流算法栈

姿态层(亚毫秒级): - 级联 PID(P+PID):PX4 默认,工业主流 - 几何控制(Lee 2010):在 SO(3) 流形上直接写反馈控制律,不奇异 - MPC 姿态:少数研究,大多数不用(姿态 PD 已很好)

位置层(10-100 Hz): - Cascaded PID:PX4 默认,鲁棒 - MPC:Fast-Planner、EGO-Planner-v2 系列 - 微分平坦(Differential Flatness):无人机状态可以用位置 + yaw 的高阶导数完全确定——极其优雅的数学结构。如果不利用微分平坦性质,轨迹规划就必须同时求解姿态和位置的耦合约束,计算量暴增且容易陷入局部最优

0.4.3 C++ 代码栈

  • PX4 Autopilot(C++,开源,工业标准)
  • MAVROS(ROS 桥接)
  • Fast-Planner / EGO-Planner-v2(港科大、浙大开源局部规划)
  • OMPL(规划库,也可以用于机械臂)

0.4.4 与腿足的共享 vs 差异

共享: - Eigen / 李群(SO(3))/ 优化框架(OSQP、qpOASES) - 实时 Linux / PREEMPT_RT - ROS2 中间件

差异: - 无接触力学——无人机不碰地(或只瞬间碰撞),没有 Ch52 摩擦锥和互补约束那些东西 - 标准多旋翼无 WBC 需求(无关节层要求;空中操作方向有类 WBC 架构) - 规划工具不同——无人机用 A* / RRT / Graph Search 多,腿足更依赖 Raibert / MPC

如果你学完腿足,转无人机需要补什么: - 微分平坦理论(几何控制的数学根源) - 空气动力学建模(涉及风扰动等) - VIO 快速视觉里程计(无 LiDAR 时的常用)


上面我们看到,无人机虽然欠驱动,但它的状态空间是连续的——没有接触切换。接下来的机械臂走向了另一个极端:全驱动、固定基座,数学上最简单,但工程上有自己独特的挑战。

0.5 [B] 纯机械臂 —— 固定基座的经典

0.5.1 数学结构

全驱动固定基座:每个关节一个电机,状态是关节角 \(\boldsymbol{q} \in \mathbb{R}^n\)

动力学(Lagrangian / Newton-Euler):

\[\boldsymbol{M}(\boldsymbol{q}) \ddot{\boldsymbol{q}} + \boldsymbol{C}(\boldsymbol{q}, \dot{\boldsymbol{q}}) \dot{\boldsymbol{q}} + \boldsymbol{g}(\boldsymbol{q}) = \boldsymbol{\tau}\]

关键特征:没有浮动基座(基座 bolt 在地上),全驱动(所有 DOF 都有电机)。数学最简单——但**IK(Inverse Kinematics)**和**碰撞规避**是工程痛点。

0.5.2 主流算法栈

IK / 规划层: - 数值 IK:Jacobian 伪逆、DLS(阻尼最小二乘)、TRAC-IK - 运动规划:RRT、RRT*、PRM、KPIECE,全部在 OMPL 里 - MoveIt!:ROS 生态的规划集成框架(但不是最新最好)

控制层: - 关节位置 PD + 重力补偿:工业 80% 的机械臂这样做(简单、鲁棒、够用) - 计算力矩控制:\(\boldsymbol{\tau} = \boldsymbol{M}(\ddot{\boldsymbol{q}}_d + K_p e + K_d \dot{e}) + \boldsymbol{h}\)——需要精确模型 - 阻抗 / 导纳控制:协作机器人(人机交互)的主流——Franka Panda、UR 都支持 - MPC / iLQR:研究前沿(Crocoddyl)

0.5.3 C++ 代码栈

  • KDL(Kinematics and Dynamics Library)、Orocos 系列(老,工业用)
  • Pinocchio(新,学术标准)
  • MoveIt!(规划集成)
  • OMPL(规划算法库)
  • libfranka(Franka Panda 的 C++ SDK)
  • Crocoddyl(研究级 MPC,机械臂和腿足通用)

0.5.4 与腿足的共享 vs 差异

共享: - Pinocchio 动力学库(全套)——机械臂和腿足都用,只是机械臂是固定基座、腿足是浮动基座的差异 - Crocoddyl 轨迹优化——可以跑机械臂,也可以跑腿足 - Eigen / CppAD / 优化求解器 - ROS 2 + ros2_control

差异: - 浮动基座 vs 固定基座——数学上一个是 SE(3) + 关节,另一个纯关节 - 接触力学——机械臂不处理接触(除了抓握,是独立的数学) - WBC——机械臂不需要(全驱动)。不过阻抗控制的某些变体接近 WBC

如果你学完腿足,转机械臂的门槛相对较低——技术栈大量重合,机械臂相对是"腿足的简化版本"。


无人机是连续欠驱动,机械臂是全驱动固定基座——两者各自只有一层复杂性。腿足机器人同时面对"欠驱动"和"离散接触切换"两重挑战,这正是它数学上最复杂的根本原因。

0.6 [C] 纯腿足 —— 浮动基座 + 接触切换的双重复杂(你的主方向)

0.6.1 数学结构(详细说明,因为你主攻这个)

浮动基座的复杂性:

状态 \(\boldsymbol{q} = (\boldsymbol{q}_{\text{base}}, \boldsymbol{q}_{\text{joint}}) \in SE(3) \times \mathbb{R}^{n_{\text{joint}}}\),速度 \(\boldsymbol{v} = (\boldsymbol{v}_{\text{base}}, \dot{\boldsymbol{q}}_{\text{joint}}) \in \mathbb{R}^6 \times \mathbb{R}^{n_{\text{joint}}}\)

动力学方程(含接触):

\[\boldsymbol{M}(\boldsymbol{q}) \dot{\boldsymbol{v}} + \boldsymbol{h}(\boldsymbol{q}, \boldsymbol{v}) = \boldsymbol{S}^T \boldsymbol{\tau} + \sum_c \boldsymbol{J}_c^T(\boldsymbol{q}) \boldsymbol{\lambda}_c\]

关键特征: - 欠驱动:\(\boldsymbol{S}\) 是选择矩阵(前 6 行是 0),基座不能直接被扭矩驱动——必须**通过接触力间接控制** - 接触模式切换:每次步态切换,\(\boldsymbol{J}_c\) 和接触约束集合变化——混合系统 - 浮动基座 SE(3) 流形:不能用标准欧氏 KF,需要 ESKF / InEKF

这三条就是为什么腿足的 Ch47-70 比机械臂难那么多

本质洞察:腿足机器人的基座不是"自由飘浮",而是"通过脚底接触力间接驱动"。这意味着机器人的每一步行走都是一个隐式的控制分配问题——你必须同时决定"踩哪里"和"踩多大力",才能让基座按期望轨迹运动。这就是为什么腿足需要 MPC(规划接触力序列)+ WBC(在关节层执行接触力)的双层架构。

0.6.2 控制层级 —— 五级架构

任务层(1-10 Hz)          行为树 / FSM / 命令
全局规划(0.1-1 Hz)       TOWR / MIQP / GCS  (离线或低频)
MPC(10-100 Hz)           OCS2 SQP / Crocoddyl DDP
WBC(500-1000 Hz)         TSID / legged_wbc / HierarchicalWbc
关节伺服(1-10 kHz)       Unitree SDK / 电机驱动器内部

每级对应的主要章节: - 任务层:Ch56 步态管理、Ch68 FSM - 全局规划:Ch58-59 落脚点规划 - MPC:Ch54 DDP、Ch55 OCS2、Ch67 Perceptive MPC - WBC:Ch53 - 关节伺服:Ch62

0.6.3 主流算法栈速览(已学)

规划 / MPC: - OCS2(ETH,ANYmal / Unitree 用) - 你的主力 - Crocoddyl(LAAS-CNRS,研究原型 / 机械臂为主) - Aligator(Crocoddyl 下一代,ProxDDP + ParallelRiccati) - TOWR(离线轨迹优化,教学经典) - MIT Cheetah Convex MPC(凸 MPC,轻量嵌入式)

WBC: - TSID(Pinocchio 生态,工业级) - legged_control 轻量 WBC(HierarchicalWbc,300 行教学友好) - bipedal_locomotion_framework TSID(iCub 生态变体)

状态估计: - LinearKalmanFilter(legged_control,入门) - InEKF(Ross Hartley 开源,标准) - Factor Graph(BLF,学术前沿)

RL 训练: - IsaacLab + legged_gym + rsl_rl(ETH 系,事实标准) - Brax / MJX(JAX 生态,可微仿真前沿)

RL 部署: - TorchScript + LibTorch(PyTorch 原生) - ONNX Runtime + TensorRT(跨框架 / 嵌入式) - rl_sar(腿足 RL 部署框架)

0.6.4 为什么腿足最复杂

复杂度排序(从易到难):

  1. 机械臂:固定基座 + 全驱动 + 无接触切换 = 基础款
  2. 无人机:刚体 + 欠驱动 + 但连续控制 = 中等
  3. 腿足:浮动基座 + 欠驱动 + 离散接触切换 = 困难
  4. 复合(腿+臂):腿足 + 物体交互 = 极难

腿足的独特之处:同时要处理"动力学 + 控制 + 感知 + 学习"四大子领域的前沿

这就是为什么本大纲**24 章、约 27 周增量(含 v8 主线共约 75 周)**——是其他三类的 2-3 倍。

0.6.5 足式机器人的技术发展脉络

理解腿足控制技术栈的现状,离不开对其发展历程的回顾。硬件、仿真器和控制算法三条技术线索的演进相互交织,共同塑造了今天的技术格局。

硬件驱动方式的演变

足式机器人的发展离不开执行器硬件的进步。对于基于力控的足式机器人,执行器的驱动方式主要经历了三个阶段:

  • 液压驱动(早期主流):功率密度大,可输出巨大力矩,且不驱动关节时不消耗能量。但缺点是输出控制精度低、存在非线性动力学、难以实现高频控制,且价格和维护成本高昂,因此在后期逐渐被替代。
  • 高减速比电机驱动(过渡期):早期电机功率密度低,需要大减速比减速器来输出大扭矩,但大减速比带来了较大的摩擦力和反射惯量,导致无法输出可控扭矩,且难以加入传感器进行扭矩观测。
  • 低减速比/准直驱电机驱动(当前主流):现代电机实现了高功率密度下的可控扭矩输出和高带宽控制,同时通过反驱动能力(backdrivability)缓冲冲击。正是这一硬件突破,使低成本高性能的四足机器人(如 MIT Cheetah、Unitree Go 系列)成为可能。

工程延伸:当前也有电液混合驱动的研究方向,结合液压的静止无功耗特性实现高负载场景下的低能耗运动,虽然无法实现纯电机四足的高动态性能,但在重载应用中有独特优势。

仿真器的演进

高效准确的仿真器是算法验证的核心工具。早期仿真环境使用弹簧-阻尼器(惩罚法)模拟接触,更适合柔性接触而非刚性接触,提高系统刚度会导致计算成本暴增,难以反映真实的接触动力学。

随着图形学和计算硬件的发展,高性能仿真器逐步成熟:基于 CPU 的仿真器(如 Gazebo、MuJoCo)提供了精确的物理建模;基于 GPU 的仿真器(如 Isaac Lab)则实现了大规模并行仿真能力——每秒数十万次状态转换采集,这为 RL 方法的训练提供了根本性的基础设施保障。

控制算法的范式迁移

控制算法经历了从简单模型到复杂优化、再到数据驱动的三个主要阶段:

  1. 简化模型时期:使用倒立摆模型(LIPM)、单刚体模型(SRBD)等进行建模与控制,降低计算复杂度。
  2. 基于优化的方法:早期的 QP 平衡控制器只优化当前时刻的接触力,缺乏预测能力;后续 MPC 方案成为主流,采用接触规划分离策略并结合全身控制(WBC),实现了出色的运动表现。但这类方法难以扩展到接触交互等不确定性场景,且难以融合感知信息。
  3. 强化学习方法:DRL 依赖仿真环境中的大量试错进行策略学习,一旦学出最优策略,推理时仅需简单的网络前向传播即可实现快速控制。RL 方法在泛化性和鲁棒性上展现出独特优势,但也面临 sim-to-real 迁移和安全性保证等挑战。

这两种范式——基于优化和基于学习——实质上都是通过某种目标函数(代价函数或奖励函数)来求解最优策略,只是优化路径不同。当前主流研究越来越倾向于两者的融合(见 Ch65)。


腿足本身已经是四类中最复杂的。如果在腿足底盘上再加一条或两条机械臂,复杂度会进一步叠加——这就是复合机器人的领域。

0.7 [D] 复合机器人 —— 腿足 + 操作的叠加

0.7.1 为什么是独立一类

复合机器人 = 腿足底盘 + 机械臂(或**轮式底盘** + 机械臂),完成移动 + 操作的结合任务。

例子: - Mobile ALOHA(Stanford):双臂 + 轮式底盘 - HumanPlus(Stanford):人形 + 完整两条手臂 - Spot + Arm(Boston Dynamics):四足 + 机械臂 - G1 + 操作(Unitree):人形

"复合"的数学形式化:

状态 \(\boldsymbol{q} = (\boldsymbol{q}_{\text{base}}, \boldsymbol{q}_{\text{leg}}, \boldsymbol{q}_{\text{arm}})\),动力学统一:

\[\boldsymbol{M}(\boldsymbol{q}) \dot{\boldsymbol{v}} + \boldsymbol{h}(\boldsymbol{q}, \boldsymbol{v}) = \boldsymbol{S}^T \boldsymbol{\tau} + \sum_c \boldsymbol{J}_c^T \boldsymbol{\lambda}_{\text{foot}} + \boldsymbol{J}_{\text{grasp}}^T \boldsymbol{\lambda}_{\text{grasp}}\]

新增的困难: - 物体动力学:手抓住的物体也是系统的一部分,其质量和位姿影响整体平衡 - loco-manipulation 步态:手在操作时腿要适应(站稳 / 反向扭身保持平衡) - 接触模式爆炸:四脚 × 两手 = 多种可能组合

0.7.2 主流算法栈

这个方向还在快速发展,不像腿足那样有成熟 OCS2。典型架构:

  • 腿足部分:OCS2 或自研 MPC
  • 手臂部分:独立的 IK / impedance control
  • 联合 MPC:用 OCS2 扩展(ocs2_mobile_manipulator)或 Crocoddyl

新趋势(2023-2025):VLA 模型(Vision-Language-Action)**直接处理复合任务: - **RT-2(Google DeepMind) - OpenVLA - π0(Physical Intelligence)

这些大模型的输出直接是**关节空间动作**,不再分层——走完全不同的路线。

0.7.3 学习路径

如果你学完腿足主体后想拓展到复合: - 补 0.5 机械臂的基础(IK、阻抗控制、MoveIt!) - 看 Mobile ALOHA / HumanPlus 的开源代码和论文 - 关注 loco-manipulation 综述(OCS2 Sleiman 2021 的 RA-L 论文) - 研究 VLA 模型是否适合你的场景

本大纲**不详细讲**复合机器人——因为你先主攻腿足,学完再扩展最高效。


上面我们逐一审视了四类本体的数学结构和算法栈。一个自然的问题是:它们之间有没有共享的部分?如果有,学一次就能四处复用,这对学习效率至关重要。

0.8 基础设施层 —— 四类共享的技术栈

关键观察:虽然四类本体数学不同,但**底层的工程基础设施高度共享**。这好比不同类型的建筑(住宅、商业、工厂)虽然上层结构完全不同,但地基、钢筋、水泥这些基础材料是通用的。机器人的"基础材料"就是 Eigen、李群、ROS 和实时 Linux。

0.8.1 共享基础设施的分层

┌───────────────────────────────────────────────────────┐
│ 第 7 层:机器人专用(各类本体自己的算法)              │
│ - 腿足:OCS2、Crocoddyl、TSID、legged_control         │
│ - 无人机:PX4、Fast-Planner                          │
│ - 机械臂:MoveIt!、libfranka                         │
│ - 复合:VLA、Mobile ALOHA                            │
└───────────────────┬───────────────────────────────────┘
┌───────────────────▼───────────────────────────────────┐
│ 第 6 层:机器人通用(多本体通用)                     │
│ - Pinocchio(动力学)                                  │
│ - CppAD / CasADi(自动求导)                          │
│ - 优化器:OSQP、qpOASES、HPIPM、ProxQP、Ipopt、ProxDDP│
│ - 规划器:OMPL                                       │
└───────────────────┬───────────────────────────────────┘
┌───────────────────▼───────────────────────────────────┐
│ 第 5 层:数学与估计基础                               │
│ - Eigen、Sophus、manif(矩阵 + 李群)                  │
│ - Ceres、GTSAM(因子图)                             │
│ - 概率 / 状态估计:KF / EKF / ESKF / InEKF             │
└───────────────────┬───────────────────────────────────┘
┌───────────────────▼───────────────────────────────────┐
│ 第 4 层:实时系统                                     │
│ - PREEMPT_RT 内核                                    │
│ - SCHED_FIFO / mlockall                              │
│ - 无堆分配(pmr / Eigen_runtime_no_malloc)            │
│ - ros2_control                                       │
└───────────────────┬───────────────────────────────────┘
┌───────────────────▼───────────────────────────────────┐
│ 第 3 层:中间件与通信                                 │
│ - ROS 2 / DDS(Fast DDS / Cyclone DDS)              │
│ - LCM(MIT 系)                                      │
│ - 协议层:CAN / EtherCAT / UDP                       │
└───────────────────┬───────────────────────────────────┘
┌───────────────────▼───────────────────────────────────┐
│ 第 2 层:C++ 语言与工具链                             │
│ - Modern C++(C++17/20)                            │
│ - CMake、conan / vcpkg                              │
│ - 调试:gdb、valgrind、perf                          │
└───────────────────┬───────────────────────────────────┘
┌───────────────────▼───────────────────────────────────┐
│ 第 1 层:操作系统与硬件                               │
│ - Linux(Ubuntu / Debian,RT 内核)                  │
│ - x86_64 / ARM(Jetson / 自研板)                    │
│ - 电机驱动器(TMotor / ODrive / 自研)                 │
└───────────────────────────────────────────────────────┘

0.8.2 每层的共享深度(重要!)

四类本体共享程度 典型学习时间 所属主线
第 1-2 层(OS + C++) 100% 共享 3-6 月 v8 Ch1-16
第 3 层(中间件) 90% 共享(DDS 都用) 2-4 月 v8 Ch30-31
第 4 层(实时) 80% 共享(各自对实时要求强度不同) 1-2 月 v8 Ch17-20 + 腿足 Ch61
第 5 层(数学) 85% 共享(李群、KF 都通用) 3-6 月 v8 Ch21-26 + 腿足 Ch47-52
第 6 层(机器人通用) 60-70% 共享(Pinocchio 虽通用但不同本体用法差别大) 4-8 月 腿足 Ch47-50
第 7 层(本体专用) 0% 共享(每类独立) 6-18 月 各本体主线

关键启示:

你在 v8 SLAM 主线(Ch1-46)学到的基础设施(第 1-5 层)**对**任何机器人方向都适用——SLAM、腿足、无人机、机械臂一视同仁。

本腿足大纲(Ch47-70)**主要填充**第 6-7 层——机器人通用(Pinocchio、优化器)+ 腿足专精(OCS2、WBC、步态)。

这就是为什么腿足是扩展 SLAM 背景的天然方向——你不用重学任何基础设施,只要补机器人专用层。

0.8.3 跨方向迁移的工程量估算

从 SLAM 工程师转:

目标 新学量 时间估算
无人机(规控) PX4 架构 + 几何控制 + 微分平坦 2-3 个月
机械臂(规控) 固定基座动力学 + MoveIt! + 阻抗控制 3-4 个月
腿足(你选的) 浮动基座 + 接触力学 + MPC/WBC + RL 12-18 个月(本大纲)
复合机器人 腿足基础 + 物体操作 + VLA 腿足之上加 6-12 月

选腿足不是"最容易"的路径,但是"上限最高"的路径——学完腿足,其他三类都容易了。这就像学钢琴时从最难的肖邦练起:如果你能驾驭腿足的浮动基座+接触切换+欠驱动三重挑战,固定基座的机械臂和连续控制的无人机就如同降维打击。

本质洞察:四分法的分类标准不是任意的——它反映了一个深层的数学事实:机器人控制的核心难度来自"状态空间的拓扑结构"。固定基座是欧氏空间,浮动基座是 SE(3) 流形,接触切换是混合自动机。每增加一层拓扑复杂性,控制器设计的难度就跃升一个台阶。


0.9 小结(上篇)

本文上半部分建立了**机器人规控的鸟瞰图**:

  1. 规控 = 全局规划 + 局部规划 + 跟踪 + 低层 的四级系统
  2. **四分法**按本体分类:[A] 无人机 / [B] 纯机械臂 / [C] 纯腿足 / [D] 复合
  3. 腿足([C])复杂度最高——浮动基座 + 接触切换 + 欠驱动
  4. 基础设施 7 层——底 5 层 80% 共享,最上 2 层本体专用
  5. 从 SLAM 背景过渡——基础设施 100% 通用,腿足主要补机器人层 + 腿足专精层

下篇预告: - 自驾为什么不在四分法内 - 横向方法论前沿(VLA、Differentiable Sim、World Models) - 学习路径建议(主修一类 + 辅修其他) - 与 SLAM 主线的精确对接点 - 整体知识体系的最终图