跳转至

P1_方向分类与公共基础层设计方案

第一部分:方向分类与公共基础层设计方案

定位:本部分为整个"面向 SLAM 工程师的规控 C++ 进阶"教学体系的**顶层架构设计**,定义方向划分、公共基础层内容、方向间的复用关系、以及推荐的学习路径。

设计原则:按机器人形态划分方向(而非按算法类型),因为不同形态的动力学结构、约束类型、实时性要求根本不同,导致 C++ 技术栈差异巨大。同一个算法(如 MPC)在无人机和腿足上的工程实现完全不同,按算法分会导致大量重复和割裂。


一、方向划分:四大方向 + 一个交叉能力层

                    ┌─────────────────────────────┐
                    │ 交叉能力层:RL + 规控混合      │
                    │ (sim-to-real、MPC+RL 混合、   │
                    │  VLA/具身智能、策略部署)       │
                    └──────────────┬──────────────┘
                                   │ 叠加在任意方向之上
         ┌───────────┬─────────────┼─────────────┬───────────┐
         ▼           ▼             ▼             ▼           ▼
    ┌─────────┐ ┌─────────┐  ┌─────────┐  ┌─────────┐ ┌─────────┐
    │ 方向 A  │ │ 方向 B  │  │ 方向 C1 │  │ 方向 C2 │ │ 方向 D  │
    │ 无人机  │ │纯机械臂 │  │  四足   │  │  人形   │ │ 复合体  │
    │         │ │         │  │         │  │         │ │(轮足/  │
    │         │ │         │  │         │  │         │ │ 移动操作│
    │         │ │         │  │         │  │         │ │ /足式  │
    │         │ │         │  │         │  │         │ │ 操作)  │
    └─────────┘ └─────────┘  └─────────┘  └─────────┘ └─────────┘
         ▲           ▲             ▲             ▲           ▲
         └───────────┴─────────────┴─────────────┴───────────┘
                    ┌──────────────┴──────────────┐
                    │ Part 0:规控方向公共基础        │
                    │ (所有方向共享,学一次用五次)    │
                    └──────────────┬──────────────┘
                    ┌──────────────┴──────────────┐
                    │ 前置:v8 SLAM 主线(46 章)     │
                    │ C++17 / Eigen / 并发 / Ceres │
                    │ / ROS2 / SLAM 项目精读       │
                    └─────────────────────────────┘

二、四大方向详解

方向 A:无人机规控

维度 说明
涵盖内容 多旋翼(四/六/八旋翼)、固定翼、集群、无人机竞速
核心 C++ 技术栈 MINCO/B-spline 轨迹优化、PX4 嵌入式 C++、SE(3) 几何控制、LBFGS-Lite/NLopt 小规模优化、ESDF 环境表示
代表项目 Fast-Planner、EGO-Planner-v2、GCOPTER、PX4 Autopilot、Agilicious、MADER
C++ 风格 Header-only、嵌入式优化(ARM Cortex)、C++11/14 为主、编译期固定维度
与 SLAM 的重叠 高——无人机规控与 VIO/LiDAR SLAM 强耦合(感知-规划一体)
与其他方向共享 Eigen、Sophus、部分 ROS2 基础;与腿足/机械臂的规控技术栈**重叠极少**
参考材料 v8 无人机案例 + 《无人机运动规划与控制开源 C++ 项目全景调研》(85+ 项目)+ 30 章扩展方案

方向 B:纯机械臂规控

维度 说明
涵盖内容 6/7-DOF 工业臂、协作臂、固定基座操作
核心 C++ 技术栈 Pinocchio、OMPL、MoveIt2、Tesseract+TrajOpt、BT.CPP、ros2_control、Ruckig、FCL/Coal、QP/NLP 求解器、cuRobo/VAMP
代表项目 MoveIt2、Pinocchio、Drake、Tesseract、BT.CPP、Ruckig、OMPL、cuRobo、VAMP、libfranka
C++ 风格 重型框架、pluginlib 运行时多态、CRTP 模板元编程、C++17/20 为主
三大学派 法国 INRIA(Pinocchio 生态)、美国 TRI(Drake)、美国 SwRI(MoveIt2+Tesseract)
与 SLAM 的重叠 中——共享 Eigen/ROS2/CMake,但规控核心(QP/NLP/OMPL/WBC)是全新技能
参考材料 《机械臂规控 C++ 项目全景调研》(38 项目)、《manipulator_cpp_research》(40 项目)、当前正在编写的机械臂方向 v0.1 大纲

方向 C:足式机器人规控(C1 四足 + C2 人形)

虽然四足和人形都是"足式",但 C++ 技术栈差异显著,建议内部分为 C1(四足)和 C2(人形):

C1:四足

维度 说明
涵盖内容 四足机器人(Go1/Go2/ANYmal/Spot/A1/Mini Cheetah)
核心 C++ 技术栈 OCS2 SLQ/SQP MPC、Pinocchio、凸 MPC(单刚体模型)、WBIC/TSID WBC、HPIPM、CppADCodeGen、legged_control
代表项目 OCS2、MIT Cheetah-Software、legged_control、Crocoddyl、TSID、Legged Gym + rl_sar(RL 部署)
C++ 风格 实时 MPC(50-100 Hz)+ 实时 WBC(500-1000 Hz)、PREEMPT_RT 硬实时、无堆分配
动力学维度 12-18 DOF(4 腿 × 3 关节 + 浮动基座 6 DOF)
RL 成熟度 非常成熟(Legged Gym → rl_sar → 真机部署,已有多篇 Science Robotics)
参考材料 《机械臂腿足规控 C++ 项目全景调研(第二批)》(22 项目)、Research_Report.md 第二章

C2:人形

维度 说明
涵盖内容 双足人形(H1/Atlas/iCub/OpenLoong/Digit/Optimus)
核心 C++ 技术栈 全身 NMPC、分层 QP(TSID/OpenSoT)、Pinocchio、iDynTree、bipedal_locomotion_framework、大规模 QP(30+ DOF)
代表项目 bipedal_locomotion_framework(IIT/iCub)、OpenLoong、TSID、OpenSoT、HumanPlus(RL)
C++ 风格 与 C1 类似但 QP 规模大得多;步态规划是独立子问题;上半身操作与下半身行走的优先级管理
动力学维度 30-50+ DOF
RL 成熟度 快速发展但远未成熟——HumanPlus(CoRL 2024)、Humanoid Gym 等
参考材料 《轮足机器人与足式机械臂开源项目全景调研》中人形部分

C1 vs C2 的关键技术差异

维度 C1 四足 C2 人形
DOF 12-18 30-50+
主流控制栈 凸 MPC(单刚体) + WBC 全身 NMPC 或分层 RL
QP 规模 小型(12 关节力 + 4×3 接触力) 大型(30+ 关节 + 多接触)
WBC 复杂度 标准 WBIC(MIT Cheetah) 分层 QP(TSID/OpenSoT)或端到端 RL
步态规划 预定义步态表(trot/gallop) 自由步态(脚步规划是独立子问题)
上半身 需要操作能力(双臂控制、手部灵巧操作)
RL 范式 单策略控制全身(Legged Gym) 分层(底层 locomotion + 顶层 manipulation)
代表项目 legged_control、OCS2 legged_robot bipedal_locomotion_framework、OpenLoong

方向 D:复合体(轮足 / 移动操作 / 足式操作)

方向 D 是 A/B/C 的交叉融合,按子方向分为三类:

子方向 代表平台 核心技术增量 代表项目
D1 轮足(wheeled-legged) Go2-W、B2-W、Ascento、CENTAURO 非完整滚动约束嵌入 MPC、模式切换(轮/足)、VMC(虚拟模型控制) Wheel-Legged-Gym、wb_mpc_centauro、robot_lab
D2 移动操作(mobile manipulation) Panda on Ridgeback、UR5 on Husky、Fetch 底盘(SE2)+ 臂(关节空间)的统一运动学规划、OCS2 mobile_manipulator OCS2 mobile_manipulator、MoveIt2(移动底盘+臂)
D3 足式操作(loco-manipulation) Go2+Z1、ANYmal+DynaArm、H1+手 浮动基座+腿+臂统一全身动力学、WBC 优先级冲突(locomotion vs manipulation)、接触状态动态管理 qm_control、Deep WBC(CMU)、UMI on Legs(Stanford)、visual_wholebody

D3 足式操作是最复杂的子方向,也是具身智能的最终形态之一——它需要同时掌握 B(机械臂)+ C(腿足)+ RL 的全部能力。

D1/D2/D3 的 C++ 技术栈差异

维度 D1 轮足 D2 移动操作 D3 足式操作
核心库 OCS2 + Pinocchio + IsaacGym OCS2 + MoveIt2 + Nav2 OCS2 + Pinocchio + TSID + IsaacGym
MPC 的新增约束 非完整滚动约束(等式) 底盘运动学耦合(较简单) 全身动力学 + 多接触力 + 任务优先级
RL 部分 VMC RL(Wheel-Legged-Gym) 较少 RL(传统规划为主) 端到端 RL(Deep WBC)或分层 RL(UMI on Legs)
关键难点 轮/足模式切换 底盘+臂联合规划 locomotion 与 manipulation 的优先级冲突

三、交叉能力层:RL + 规控混合

这不是一个"方向",而是叠加在任何方向之上的能力层。 对于 RL-based motion control 背景的工程师,这是你的**跨方向护城河**。

RL + 规控在各方向的体现

方向 RL + 规控的典型形态 代表项目/论文
A 无人机 RL 竞速策略(端到端视觉→控制) Swift(Nature 2023)
B 纯机械臂 RL/VLA policy(5-10 Hz) + ros2_control 合规控制(1 kHz) CRISP 框架(TUM 2025)、Diffusion Policy、ACT/ALOHA
C1 四足 RL locomotion(PPO/Teacher-Student) + 可选 MPC 残差 Legged Gym、Walk These Ways、Extreme Parkour
C2 人形 分层 RL(底层运动 + 顶层操作) HumanPlus(Stanford)、Humanoid Shadowing
D1 轮足 RL + VMC(虚拟模型控制) Wheel-Legged-Gym
D3 足式操作 端到端 RL 或 MPC+RL 混合(RAMBO) Deep WBC(CMU)、UMI on Legs(Stanford)、RAMBO(ETH 2025)

RL + 规控混合的 C++ 技术栈

技术 用途 代表项目
LibTorch C++ 推理 RL policy 部署(.pt JIT 模型) rl_sar(~1.2k★)
ONNX Runtime C++ 推理 RL policy 部署(.onnx 模型) LimX tron1-rl-deploy
TensorRT Jetson 平台加速推理 ONNX Runtime 后端
ros2_control ForwardCommandController 直接传递 RL action 到关节(无轨迹插值) 标准四足 RL 部署
Domain Randomization 运行时 API 扰动(不改 URDF) Isaac Lab events、MuJoCo runtime
Action filtering EMA 平滑(α = 0.2-0.5) rl_sar 标准做法
CRISP 模式 高频 C++ 合规控制 + 低频 GPU policy 解耦 TUM CRISP 2025

2024-2025 趋势:MPC + RL 混合正在成为主流

架构 描述 代表
纯 RL 端到端策略,无模型 Legged Gym、Walk These Ways
纯 MPC 模型预测控制,无学习 OCS2、Crocoddyl
MPC 为主 + RL 增强 MPC 前馈 + RL 反馈残差 RAMBO(ETH 2025)、rl-mpc-locomotion
RL 为主 + MPC 安全层 RL 决策 + MPC/CBF 约束投影 学术探索阶段
RL 预测 MPC 参数 RL 输出 MPC 的权重/参考轨迹 rl-mpc-locomotion(447★)

"model-based 为主、learning 增强"的范式**兼顾安全性和鲁棒性,是最有前景的方向——也是同时掌握规控(MPC/WBC)和学习(RL 部署)的工程师的**最大差异化竞争力


四、Part 0:规控方向公共基础层

设计原则

  1. 学一次,用五次:放入 Part 0 的内容必须被至少 3 个方向共用
  2. 不重复 v8:v8 主线已覆盖的(Eigen 基础、并发基础、Ceres、ROS2 基础)不重复
  3. 可独立成章:每个主题可以独立教学,不依赖特定方向的上下文
  4. 预留接口:每个主题都在末尾标注"各方向如何扩展"

Part 0 内容总览(10 个主题)

Part 0:规控方向公共基础
├── P0.1  URDF / Xacro 机器人建模                      ← 已在机械臂大纲中完整设计
├── P0.2  sim-to-real 资产管道与多目标部署              ← 已在机械臂大纲中完整设计
├── P0.3  Pinocchio 动力学核心                          ← 机械臂大纲 M1(内容直接复用)
│         CRTP + 模板标量类型 + Model-Data 分离
│         ┌─ 机械臂:7-DOF 固定基座
│         ├─ 四足:12-DOF + FreeFlyer 浮动基座
│         ├─ 人形:30+ DOF + FreeFlyer
│         └─ 无人机:通常不用 Pinocchio(单刚体)
├── P0.4  QP / NLP 约束优化建模                         ← 机械臂大纲 M5(内容直接复用)
│         OSQP / ProxQP / Ipopt / CasADi
│         ┌─ 机械臂:IK QP、力控 QP
│         ├─ 四足:凸 MPC QP、WBC QP
│         ├─ 人形:大规模分层 QP
│         ├─ 无人机:小规模 MPC QP(MPC-MPPI 用采样代替)
│         └─ 复合体:统一 QP(腿+臂+底盘)
├── P0.5  自动微分与代码生成                            ← 机械臂大纲 M6(内容直接复用)
│         CppAD / CppADCodeGen / CasADi codegen / acados
│         ┌─ 所有需要 MPC 的方向共用
│         └─ 无人机方向用 CasADi 更多,腿足用 CppADCodeGen 更多
├── P0.6  实时 C++ 工程                                 ← 机械臂大纲 M11(内容直接复用)
│         PREEMPT_RT + SCHED_FIFO + 无堆分配 + realtime_tools
│         ┌─ 机械臂:1 kHz 关节伺服
│         ├─ 四足:500 Hz-1 kHz WBC
│         ├─ 人形:同四足但 QP 更大
│         ├─ 无人机:400 Hz 姿态控制(嵌入式 RTOS,不是 PREEMPT_RT)
│         └─ 注:无人机用 NuttX 硬实时,与 Linux PREEMPT_RT 不同
├── P0.7  BehaviorTree.CPP 任务编排                     ← 机械臂大纲 M13(内容直接复用)
│         异步 Ticking + XML DSL + Blackboard + Groot2
│         ┌─ 机械臂:MoveIt Pro 任务编排
│         ├─ 移动机器人:Nav2 顶层行为树
│         ├─ 足式操作:locomotion + manipulation 切换
│         └─ 无人机:PX4 commander 状态机(不用 BT,但 BT 正在渗透)
├── P0.8  ros2_control 硬件抽象                         ← 机械臂大纲 M12(内容直接复用)
│         ControllerManager + SystemInterface + realtime_tools
│         ┌─ 机械臂:libfranka / ur_robot_driver 硬件接口
│         ├─ 四足:Unitree / Spot 硬件接口
│         ├─ 移动底盘:DiffDriveController
│         └─ 无人机:通常不用 ros2_control(用 PX4/MAVLink)
├── P0.9  环境表示基础(从 Nav2 中抽取)                 ← 新增概念性模块
│         costmap_2d 的 layer 架构 / OctoMap / ESDF / voxel 概念
│         ┌─ 不讲 Nav2 的具体配置
│         ├─ 只讲"机器人怎么表示周围环境"这个公共问题
│         ├─ 机械臂:PlanningScene 的 OctoMap 层
│         ├─ 无人机:ESDF(voxblox / nvblox)
│         ├─ 移动操作:costmap + OctoMap
│         └─ 腿足:高程图 + 可通行性分析
└── P0.10 MPC 直觉入门(从 Nav2 MPPI 中抽取)           ← 新增概念性模块
          用 Nav2 MPPI 控制器作为 2D 简化 MPC 教学案例
          ┌─ ~2000 条采样轨迹 + Critic 评分 + 软最大加权
          ├─ 建立 MPC 直觉:什么是"预测时域"、"代价函数"、"约束"
          ├─ 然后在 P0.4 跳到高维约束 QP——认知跨越更小
          └─ 四足/人形方向跳到 OCS2 SLQ/SQP——结构类似但更复杂

Part 0 各主题的方向覆盖矩阵

Part 0 主题 无人机 纯机械臂 四足 人形 复合体
P0.1 URDF/Xacro
P0.2 sim-to-real 资产管道
P0.3 Pinocchio 动力学 ⚪ 少用
P0.4 QP/NLP 约束优化 ⚪ 小规模
P0.5 自动微分+代码生成 ✅ CasADi
P0.6 实时 C++ ⚪ 嵌入式不同
P0.7 BehaviorTree.CPP ⚪ 渗透中
P0.8 ros2_control ❌ 用 PX4
P0.9 环境表示基础 ✅ ESDF ✅ PlanningScene ⚪ 高程图
P0.10 MPC 直觉入门

"✅ 全用 / ⚪ 部分用 / ❌ 不用"——至少有 3 个 ✅ 的才放入 Part 0。P0.8 ros2_control 对无人机不适用(无人机用 PX4 MAVLink),但其余 4 个方向都用,满足条件。

Part 0 的预计规模

主题 预计周数 来源
P0.1 URDF/Xacro 1.5 周 已设计完成
P0.2 sim-to-real 1 周 已设计完成
P0.3 Pinocchio 2 周 = 机械臂 M1
P0.4 QP/NLP 2 周 = 机械臂 M5
P0.5 AD + codegen 1 周 = 机械臂 M6
P0.6 实时 C++ 1.5 周 = 机械臂 M11
P0.7 BT.CPP 1 周 = 机械臂 M13
P0.8 ros2_control 1.5 周 = 机械臂 M12
P0.9 环境表示(概念) 0.5 周 新增,轻量概念
P0.10 MPC 直觉(概念) 0.5 周 新增,轻量概念
合计 ~13 周

注意:如果只做机械臂方向,Part 0 不需要独立成章——直接在机械臂大纲内用 M1/M5/M6/M11/M12/M13 覆盖,加上 Part 0 的 P0.1/P0.2 即可(当前大纲的做法)。Part 0 独立成章只在**做两个以上方向时**才有意义——避免重复编写。


五、各方向专有内容(不含 Part 0 的增量)

方向 B 纯机械臂(当前正在编写)

章节 内容 性质
M3 IK 求解器 KDL/TRAC-IK/IKFast/ik_geo/pick-ik/BioIK ❌ 纯机械臂
M4 碰撞检测 FCL/Coal/BVH/GJK/EPA ⚪ 部分共享
M7 OMPL 采样规划 StateSpace 继承体系 + RRT/BIT* ❌ 纯机械臂
M8 轨迹优化规划器 TrajOpt/CHOMP/STOMP/GPMP2 ❌ 纯机械臂
M9 GPU/SIMD 规划 cuRobo + VAMP ⚪ 部分共享
M10 时间参数化 Ruckig/TOPP-RA/TOTG ⚪ 部分共享
M14 MoveIt2 + MTC pluginlib 生态 + MoveGroupInterface + Task Constructor ❌ 纯机械臂
M15 Mini-Manip 实战 Franka Panda pick-and-place 综合项目 ❌ 纯机械臂
专有增量 约 11 周

方向 C1 四足(未来规划)

章节 内容 性质
L1 凸 MPC(单刚体模型) Di Carlo MPC、MIT Cheetah 凸 QP、qpOASES 实战 ❌ 纯四足
L2 全身 NMPC(OCS2) OCS2 legged_robot 示例、SLQ/SQP 求解器 ❌ 纯四足(人形也用但形式不同)
L3 全身控制 WBC WBIC(MIT Cheetah)、分层零空间 QP、TSID ⚪ 四足为主、人形扩展
L4 步态调度与状态机 trot/gallop/pace 步态表、SwitchedModelReferenceManager ❌ 纯四足
L5 状态估计(EKF/UKF) 浮动基座状态估计、IMU+运动学融合 ⚪ 四足为主、人形扩展
L6 RL locomotion 部署 Legged Gym → rl_sar/ONNX → 真机、domain randomization ⚪ 四足+人形共享 RL 方法论
L7 Mini-Legged 实战 Go1/Go2 上跑通 MPC+WBC 或 RL 全流程 ❌ 纯四足
专有增量 约 10 周 复用 Part 0 的 ~8 章

方向 D 复合体(未来规划)

章节 内容 性质
D1 轮足约束建模 非完整滚动约束、OCS2 中的等式约束编码、VMC ❌ 轮足
D2 移动操作联合规划 OCS2 mobile_manipulator、MoveIt2 + Nav2 联合
D3 足式操作全身控制 浮动基座+腿+臂统一 WBC、任务优先级冲突 ❌ 足式操作
D4 MPC+RL 混合架构 RAMBO(MPC 前馈 + RL 残差)、rl-mpc-locomotion
D5 Mini-Composite 实战 Go2+Z1 或 B2W 上跑通 loco-manipulation
专有增量 约 8 周 重度复用 B + C1

六、推荐学习路径

对于 SLAM + RL + C++ 背景的工程师(你的画像)

阶段 1:v8 SLAM 主线(46 章,48 周)
         ↓ 已完成

阶段 2:Part 0 + 方向 B 纯机械臂(17 章,~24 周)        ← 当前正在做
         ↓ 完成后具备:Pinocchio + QP/NLP + OMPL + MoveIt2 + ros2_control
         ↓ Part 0 的 8 章自动为后续方向铺路

阶段 3:方向 C1 四足(~10 周增量)
         ↓ 复用 Part 0,只需补 MPC+WBC+步态+RL 部署
         ↓ 你的 RL 背景在这里直接变现(Legged Gym + rl_sar)

阶段 4:方向 D 复合体(~8 周增量,重度复用 B+C1)
         ↓ B + C1 的交叉,qm_control / Deep WBC 精读
         ↓ MPC+RL 混合是你的核心差异化方向

阶段 5(可选):方向 A 无人机(v8 已有基础,增量较小)
             或 方向 C2 人形(如果行业需求驱动)

总时间线:阶段 2-4 约 42 周(全职)/ 20 个月(业余 15-20h/周)

对于纯规控背景(无 RL)的工程师

阶段 1:v8 SLAM 主线(选修:至少 Eigen基础/变参模板/线程管理/并行编程-实时约束/设计模式/ROS2高级集成 共 8 章)
阶段 2:Part 0(13 周)
阶段 3:选一个方向深入(B/C1/A 三选一)
阶段 4:RL 交叉层(如果需要)

对于 RL 背景(无 C++ 规控)的工程师

阶段 1:v8 C++ 基础子集(模板/并发/Eigen/ROS2,约 15 章)
阶段 2:Part 0(13 周,尤其 P0.3/P0.4/P0.6 是关键补课)
阶段 3:直接进入 C1 四足(RL 部署 L6 是你的强项)或 D 复合体

自驾规控:降级为"了解级参考",不作为独立方向

理由: 1. 传感器栈不同:自驾以 LiDAR 点云 + 高精地图 + 摄像头融合为主,与机器人关节级控制不在同一层面 2. 规控栈简单得多:Autoware 的横纵向 MPC 本质是 2D 路径跟踪(自行车模型 + QP),远比全身动力学简单 3. C++ 生态零重叠:Autoware 与 Pinocchio/OMPL/MoveIt 生态**几乎零重叠** 4. 你的背景不匹配:SLAM + RL + 具身智能 → 自驾规控的技能迁移价值低

如果有学员群体有自驾需求,可以做一个**独立小专题**(~4 周:Autoware 横纵向 MPC + Lanelet2 + Planning Module),但不放在主分类里。

不整体作为基础(Nav2 太大了),但从中抽取: - P0.9 环境表示基础:costmap_2d 的 layer 架构概念——"机器人怎么表示周围环境"的公共问题 - P0.10 MPC 直觉入门:Nav2 MPPI 控制器作为 2D 简化 MPC 教学案例——建立 MPC 直觉后再跳到高维约束 QP

Nav2 的其他部分(AMCL 定位、A* 全局规划、DWB 局部规划、恢复行为)属于 Nav2 专有内容: - AMCL/SLAM 定位:v8 主线已覆盖 - A*/Dijkstra 全局规划:2D 栅格规划与 7-DOF 配置空间规划是不同问题,技术迁移有限 - DWB/TEB 局部规划:2D 差速/全向模型的局部控制,腿足和机械臂完全不用 - 恢复行为/行为树:BT.CPP 本身已在 P0.7,具体 Nav2 行为树 XML 是 Nav2 专有应用


八、方向间的 C++ 库共享地图

                    Eigen (100% 共享)
              ┌──────────┴──────────┐
              ▼                     ▼
         Pinocchio              Sophus/manif
    (机械臂/四足/人形/复合)     (SLAM/无人机)
    ┌─────────┼──────────┬────────────┐
    ▼         ▼          ▼            ▼
  Coal     ProxQP      OSQP       CppAD/CasADi
(碰撞检测)  (QP)       (QP)       (自动微分)
    │         │          │            │
    └─────────┴──────┬───┴────────────┘
              OCS2 / Crocoddyl / TSID / Aligator
              (MPC / 轨迹优化 / WBC 框架层)
         ┌───────────┼──────────┐
         ▼           ▼          ▼
    机械臂专有     四足专有    复合体专有
    MoveIt2       legged_     qm_control
    OMPL          control     Deep WBC
    Ruckig        Cheetah-SW  wb_mpc_centauro
    Tesseract     WBIC
    cuRobo/VAMP
    libfranka

    无人机专有(独立生态)
    PX4、GCOPTER、EGO-Planner、LBFGS-Lite
    (与上述生态几乎零重叠)

这张图清晰展示了:无人机是一个独立生态(PX4 + 嵌入式 C++)与其他四个方向的交叉最少。其他四个方向(机械臂/四足/人形/复合体)共享 Pinocchio + QP 求解器 + AD 框架这条主干——这就是 Part 0 的价值所在。


九、总结

层次 内容 周数
前置 v8 SLAM 主线 48 周
Part 0 规控公共基础(10 个主题) ~13 周
方向 B 纯机械臂专有增量 ~11 周
方向 C1 四足专有增量 ~10 周
方向 D 复合体专有增量 ~8 周
方向 A 无人机专有增量(可选) ~8 周
方向 C2 人形专有增量(可选) ~8 周
交叉层 RL + 规控混合(贯穿各方向) 各方向内嵌

当前工作焦点:完成方向 B(纯机械臂)的 v0.1 大纲——Part 0 已设计完成,M1-M10 已完整写入,M11-M15 + 附录待续。完成后即可开始方向 C1(四足),复用 Part 0 中 8 章内容,只需新写 ~10 周增量。