跳转至

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

机械臂方向综合教学大纲

版本: v1.2 | 日期: 2026-05-04

定位: 面向完成 C++ 主线 v8(46 章 48 周)的 SLAM 工程师,系统切入机械臂规控方向。 数据基础: 100+ 机械臂开源项目源码级分析;课程主线按 2026-05 前后版本锁定 Pinocchio 3.9.0 / Drake v1.52 / MoveIt2 Kilted,具体 API 与版本特性以各项目当前官方文档和 release notes 为准。 总投入: 已完成第一篇 P/M 系列 17 章(P01-P02 + M01-M15)~24 周 + 第二篇 F 系列 10 章 ~28 周 + 第三篇 D 系列 10 章 ~24 周,合计 37 章 ~76 周;另有第四篇前沿规划草案 5 章 ~12-16 周,尚未拆分独立文件,可按篇独立选修。


快速路径(Quick-Start Track, ~16-17 周)

不是每个人都需要完整 76 周核心课程(若加前沿规划专题约 88-92 周)。以下最小路径让你获得**端到端 pick-and-place** 能力:

P01(URDF, 1周) → M01(Pinocchio, 1.5周) → M03(IK, 1.5周) → M04(碰撞检测, 1.5周)
    → M05(约束优化压缩先修, 0.75周) → M07(OMPL规划, 1.5周)
    → M08(轨迹优化压缩先修, 0.75周) → M11(实时C++压缩先修, 0.75周)
    → M10(时间参数化, 1周) → M12(ros2_control, 1.5周)
    → M13(BT.CPP压缩先修, 0.75周) → M14(MoveIt2/MTC, 2周)
    → M15(演示版综合实战, 2周)
    总计 ~16.5 周

这是**演示捷径 + 必补压缩先修**:M05/M08/M11/M13 只补 pick-and-place 必需子集,用于闭合 M10、M12 和 M15 的依赖。此路径中的 M15 前置依赖放宽为"完成 pick-and-place 所需子集",不等同于完整 M15;完整 M15 仍要求系统学完 M01-M14。后续按需补 P02、M02、M06、M09、力控(F系列)、双臂(D系列)和第四篇规划草案。

计算与硬件需求

章节 GPU 真机 备注
P01-M03, M05-M08, M10 ❌ 纯仿真 MuJoCo / Gazebo
M04, M09 (碰撞/GPU规划) ⚠️ cuRobo需 ❌ 仿真优先 RTX 3060+ 推荐
M11-M12 (实时/硬件) ⚠️ 推荐真机 Franka / UR5e
F01-F05 (力控基础) ⚠️ 力传感器 MuJoCo可替代
F09-F10 (学习型力控) ✅ 训练需 ⚠️ Isaac Lab
D04, 规划草案 D12 (学习/VLA) ✅ A100/4090 大模型微调
规划草案 M16 (灵巧手) ✅ RL训练 ⚠️ LEAP Hand Isaac Gym

工业 vs 研究标记

标记 含义 代表章节
🏭 工业落地核心 M12(ros2_control), M14(MoveIt2), F04(libfranka阻抗), F05(导纳控制)
🔬 研究前沿 规划草案 F12(可微仿真), D06(波变量), 规划草案 D12(VLA), 规划草案 M16(灵巧手)
🏭🔬 工业+研究兼有 M09(GPU规划), F09(学习型力控), D08(遥操作数据采集)

总览路线图

主线 v8 完成(Ch1-46, 第 1-48 周)
         │  C++17 · Eigen · 并发 · SLAM 优化 · ROS2 · CMake/CUDA
┌──────────────────────────────────────────────────────────────────┐
│ 第一篇: 机械臂核心 (P01-P02 + M01-M15, ~24 周)                  │
│  Part 0  跨方向共享基础 (P01-P02, 2.5 周)                        │
│  Part 1  动力学与运动学 (M01-M03, 4 周)                          │
│  Part 2  碰撞与优化建模 (M04-M06, 4 周)                          │
│  Part 3  运动规划 (M07-M10, 5.5 周)                               │
│  Part 4  实时控制与硬件 (M11-M12, 3 周)                          │
│  Part 5  任务编排与系统集成 (M13-M14, 3 周)                      │
│  Part 6  综合实战 (M15, 2 周)                                     │
└──────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────┐
│ 第二篇: 力控与柔顺控制 (F系列, F01-F10, ~28 周)                  │
│  Part 1  力控基础 (F01-F05, 8 周)                                 │
│  Part 2  高级力控 (F06-F08, 10 周)                                │
│  Part 3  学习型力控 (F09-F10, 10 周)                              │
└──────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────┐
│ 第三篇: 双臂协调与遥操作 (D系列, D01-D10, ~24 周)                │
│  Part 1  双臂协同理论与规划 (D01-D04, 8 周)                      │
│  Part 2  遥操作理论与数据采集 (D05-D08, 8 周)                    │
│  Part 3  系统集成与综合实战 (D09-D10, 8 周)                      │
└──────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────┐
│ 第四篇: 前沿专题规划草案 (F11/F12/D11/D12/M16, 12-16 周, 尚未拆分独立文件) │
└──────────────────────────────────────────────────────────────────┘

前置知识依赖矩阵

本大纲章节 依赖 v8 章节 关键知识点
P01 URDF/Xacro v8 Ch31(ROS2 高级) Launch 文件、参数服务器、TF2
P02 sim-to-real v8 Ch45-46(CUDA 基础) GPU 纹理管线、Docker 多阶段构建
M01 Pinocchio v8 Ch14/29(CRTP与设计模式)、Ch11(Eigen) Sophus CRTP、模板元编程、Eigen Map/Block
M02 动力学库 v8 Ch6(继承多态) 虚函数表、override/final、RTTI
M03 IK v8 Ch19-20(并发) std::thread/std::atomic(TRAC-IK 并行)
M11 实时 C++ v8 Ch19-20(并发)、Ch35(pmr 内存)、Ch3(RAII) SCHED_FIFOmlockall、无堆分配
M13 BT.CPP v8 Ch29(设计模式)、Ch6(多态)、Ch31(ROS2 Action) Composite/Strategy 模式、pluginlib

v8 前置三层口径: - 最低可启动:Ch11、Ch14、Ch17、Ch19-20、Ch29、Ch31。可支撑 Quick Start 演示,但只覆盖 pick-and-place 所需子集。 - 推荐补齐:Ch3、Ch6、Ch11、Ch14、Ch17、Ch19-20、Ch29、Ch31、Ch35。适合完整学习 M01-M15 并进入实时控制/硬件章节。 - 完整前置:完成 v8 Ch1-Ch46;未完成者按子课程一附录 C 的章节索引补齐与机械臂直接相关章节。


三大学派生态速览(截至 2026-05-04 查询)

学派 核心栈 最新动态
INRIA 学派 Pinocchio 3.9 + Coal + ProxQP + Aligator v3.4-3.9: 闭环链 MJCF 解析、mimic joint 全 Lie 群算法支持、Delassus 算子约束动力学、NumPy 2 兼容
TRI 学派 Drake v1.52 2025-26: 月度发布节奏 (v1.43-v1.52)、LBM Eval 49-task 基准、MIT 操作课全栈 pipeline
SwRI 工程派 MoveIt2 Kilted + ros2_control 2025-26: MoveIt2/MTC 与 ros2_control 随 ROS 2 发行版持续演进;重点关注 MoveGroup/MoveItCpp、PlanningScene、MTC、ros2_control 异步硬件组件与控制器链,具体能力以官方 release notes 为准

第一篇:机械臂核心 (P01-P02 + M01-M15, 17章 ~24周)

完成本篇后你能做什么:独立搭建从 URDF 建模到 MoveIt2 pick-and-place 的完整机械臂系统,掌握运动学/动力学/碰撞/规划/控制/行为树全栈,可在仿真和真机上运行。

Part 0: 跨方向共享基础(第 49-51 周)


P01 URDF / Xacro 机器人建模 ⭐

从零用 URDF+Xacro 构建 7-DOF 臂描述文件,掌握 link/joint/transmission 全语义。

属性
周数 1.0 周
前置依赖 v8 Ch31(ROS2 Launch + TF2)
共享标记 ✅ 全方向共享

核心知识点: 1. URDF XML schema: <link> 的 visual/collision/inertial 三子树语义 2. <joint> 六种类型 (revolute/continuous/prismatic/fixed/floating/planar) 与 limit 属性 3. <transmission> 与 ros2_control <hardware> 标签的绑定关系 4. Xacro 宏系统: xacro:macroxacro:propertyxacro:include、条件分支 5. 惯性参数计算: CAD 导出 vs. meshlab 估算 vs. SysId 标定 6. Mesh 文件管理: STL(碰撞) vs. DAE/OBJ(可视化) 的 LOD 策略 7. robot_state_publisherjoint_state_publisher_gui 验证流程 8. URDF → SDF → MJCF 多格式转换工具链 (gz sdf, mujoco compile) 9. Xacro 参数化设计模式: 同一 macro 生成 6/7-DOF 变体 10. 常见坑: 惯性张量不对称导致仿真爆炸、mesh 尺度单位 m vs. mm

关键项目: 1. ros/urdf — URDF 解析器参考实现 (C++/Python) 2. ros/xacro — Xacro 预处理器源码 3. moveit/moveit_resources — Panda/UR URDF 标准范例 4. google-deepmind/mujoco_menagerie — 高质量 MJCF 模型库 (含 Franka/UR/Kuka)

关键论文: 1. Corke (2017) "A Robotics Toolbox for MATLAB" — DH 参数与 URDF 映射的经典参考 2. Tola et al. (2024) "Mastering URDF and Xacro for Robot Modeling in ROS 2"

练习: 1. A 型: 用 Xacro 为 Franka Panda 写参数化 URDF,支持通过 launch 参数切换 7-DOF / 含手爪 / 双臂三种配置 2. B 型: 将 URDF 同时转换为 SDF 和 MJCF,在 Gazebo 和 MuJoCo 中各跑 10s 自由落体,对比关节位置误差 3. 思考题: 为什么 URDF 不支持闭链? MJCF 的 <equality><connect> 如何绕过这一限制?


P02 sim-to-real 资产管道与多目标部署 ⭐

建立从 CAD 到仿真到真机的资产管线,掌握 Docker + CI 跨平台部署。

属性
周数 1.5 周
前置依赖 P01; v8 Ch45(Docker/CI 基础)
共享标记 ✅ 全方向共享

核心知识点: 1. 资产管线架构: CAD → mesh 简化 → URDF/MJCF → 仿真验证 → 真机部署 2. Mesh 处理: MeshLab/Blender 减面、凸分解 (V-HACD / CoACD)、碰撞包络生成 3. 物理属性标定: 惯性 SysId (Swevers 法)、摩擦系数、接触刚度 4. sim-to-real gap 三大来源: 物理参数、传感器噪声、执行器延迟 5. Domain Randomization: 质量/摩擦/延迟随机化策略与范围选择 6. Docker 多阶段构建: 开发镜像 (含 GUI) vs. 部署镜像 (仅 runtime) 7. CI/CD 管线: GitHub Actions → colcon build → 单元测试 → 仿真回归测试 8. 跨平台编译: x86 开发 → ARM (Jetson/Pi) 交叉编译工具链 9. ROS2 Launch 参数化: use_sim_timerobot_description 条件加载 10. 版本管理: robot description 包的语义化版本控制策略

关键项目: 1. gazebosim/gz-sim — Gazebo Ionic 仿真器 (SDF 原生) 2. google-deepmind/mujoco — MuJoCo 3.x 物理引擎 5. Genesis-Embodied-AI/Genesis — 新一代生成式物理引擎 (2024, CMU+Stanford+MIT), 43M FPS, 统一刚体/MPM/SPH/FEM求解器 6. MuJoCo MJX (JAX GPU后端) — 已生产就绪, 支持NVIDIA/AMD/Apple Silicon/TPU; MuJoCo Playground (RSS 2025 Outstanding Demo) 3. nvidia-isaac/isaac_sim — NVIDIA Isaac Sim (USD 管线) 4. SarahWeiii/CoACD — 学习增强凸分解,生成高质量碰撞 mesh

关键论文: 1. Tobin et al. (2017) "Domain Randomization for Transferring DNNs from Simulation to Real World" 2. Muratore et al. (2022) "Robot Learning from Randomized Simulations: A Review"

练习: 1. A 型: 搭建 Dockerfile 多阶段构建,同一仓库编译出 Gazebo 仿真镜像和 Jetson 部署镜像 2. B 型: 对 Panda URDF 做 Domain Randomization (质量+-20%, 摩擦+-50%),统计 100 次仿真抓取成功率分布 3. 思考题: 为什么 Isaac Sim 选择 USD 而非 URDF 作为原生格式? USD 的 composition arcs 解决了什么问题?


Part 1: 机械臂动力学与运动学(第 52-55 周)


M01 Pinocchio 深度精读——CRTP + 模板标量类型 ⭐

精读 Pinocchio 3.x 核心架构,掌握 CRTP 访问者模式与标量参数化的工程实现。

属性
周数 1.5 周
前置依赖 P01; v8 Ch14/29(CRTP与设计模式)、Ch11(Eigen 高级)
共享标记 ✅ 全方向共享

核心知识点: 1. Pinocchio 3.x 架构总览: Model/Data 分离 + Algorithm 无状态函数式设计 2. CRTP 访问者模式: JointModelBase<Derived> 的静态多态 dispatch 3. 标量参数化: ModelTpl<Scalar> 支持 double/AutoDiffXd/casadi::SX 无改代码切换 4. Lie 群抽象: LieGroupBase 层级与 SE(3)/SO(3) 的 integrate/difference/interpolate 5. 正向运动学 (FK): forwardKinematics() 的递归 Newton-Euler 实现 6. 正/逆动力学: rnea() (RNEA) 与 aba() (ABA) 算法的模板展开路径 7. 解析导数: computeABADerivatives() 的高效实现,相比有限差分的精度/速度优势 8. 约束动力学 (v3.x 新增): ConstraintModelTpl 族 + Delassus 算子 API 9. Pinocchio + Coal (hpp-fcl 3.x) 碰撞接口: computeCollisions()/computeDistances() 10. Mimic joint 支持 (v3.3+): 同步关节在所有 Lie 群算法中的正确传播 11. Python bindings (eigenpy): C++ ↔ NumPy 零拷贝与 NumPy 2 兼容性 12. 性能基准: 7-DOF RNEA ~1.2us, ABA ~2.5us (单核 x86)

关键项目: 1. stack-of-tasks/pinocchio (v3.9.0) — 核心库,重点精读 src/algorithm/src/multibody/ 2. Simple-Robotics/proxsuite — ProxQP 求解器,Pinocchio 约束动力学的推荐 QP 后端 3. loco-3d/crocoddyl — 基于 Pinocchio 的 DDP/iLQR 最优控制框架 4. Simple-Robotics/aligator — 新一代轨迹优化,替代 Crocoddyl 的后继项目

关键论文: 1. Carpentier et al. (2019) "The Pinocchio C++ Library" — 架构设计与性能基准 2. Carpentier & Mansard (2018) "Analytical Derivatives of Rigid Body Dynamics Algorithms"

练习: 1. A 型: 用 Pinocchio 加载 Panda URDF,分别用 doubleCppAD::AD<double> 实例化,计算 RNEA 并验证解析导数与 AD 导数一致性 (误差 < 1e-10) 2. B 型: 精读 JointModelRevoluteTpl 的 CRTP 继承链,画出从 JointModelBase 到具体关节的完整静态 dispatch 调用图 3. 思考题: Pinocchio 为什么选择 CRTP 而非虚函数? 在 1kHz 控制循环中两种方案的延迟差异量级是多少?


M02 动力学库对比——RBDL / DART / KDL / Drake ⭐

横向对比四大动力学库的架构、API 风格与性能,理解设计权衡。

属性
周数 1.0 周
前置依赖 M01; v8 Ch6(继承多态)
共享标记 ✅ 全方向共享

核心知识点: 1. RBDL: 纯 C++ 头文件级轻量实现,Featherstone 算法教科书级代码 2. KDL (Orocos): Chain/Segment/Joint 经典 OOP 设计,SLAM 工程师最熟悉的风格 3. DART: Skeleton/BodyNode 场景图 + LCP 接触求解,同时做仿真与规划 4. Drake: MultibodyPlant<T> 标量参数化 (double/AutoDiffXd/symbolic::Expression) 5. Drake v1.52 (2026-04): 月度发布节奏,LBM Eval 49-task 基准,MIT 操作课全栈集成 6. 架构对比: 编译期多态 (Pinocchio) vs. 运行期多态 (DART/KDL) vs. 标量模板 (Drake) 7. 构建系统对比: CMake (Pinocchio/RBDL/KDL) vs. Bazel (Drake) 的工程影响 8. 性能基准: 7-DOF FK/ID/FD 各库延迟对比 (Pinocchio >> RBDL > DART > KDL) 9. Python 生态: Pinocchio (eigenpy) vs. Drake (pydrake) vs. DART (dartpy) 成熟度 10. 许可证影响: BSD-2/3 (Pinocchio/Drake/RBDL) vs. LGPL (KDL) 对商业项目的约束

关键项目: 1. rbdl/rbdl — 重点阅读 Model.hDynamics.cc 2. dartsim/dart — 重点阅读 dynamics/Skeleton.hpp 3. RobotLocomotion/drake — 重点阅读 multibody/plant/ 4. orocos/orocos_kinematics_dynamics — KDL 源码

关键论文: 1. Featherstone (2008) "Rigid Body Dynamics Algorithms" — 所有库的算法理论基础 2. Tedrake (2023) "Robotic Manipulation" — Drake 生态配套教材 (MIT 6.4210/6.4212) 3. Lee et al. (2018) "DART: Dynamic Animation and Robotics Toolkit"

练习: 1. A 型: 对同一 Panda URDF,分别用 Pinocchio/RBDL/Drake 计算逆动力学,记录 10000 次平均耗时并绘制柱状图 2. B 型: 在 Drake 中用 AutoDiffXdsymbolic::Expression 分别计算 mass matrix,对比两种标量类型的 API 差异 3. 思考题: Drake 为什么用 Bazel 而非 CMake? Bazel 的 hermetic build 在大型机器人项目中解决了什么痛点?


M03 IK 求解器——KDL / TRAC-IK / IKFast / ik_geo / pick-ik ⭐

全景掌握逆运动学求解器生态,从解析解到数值迭代到优化式 IK。

属性
周数 1.5 周
前置依赖 M01, M02; v8 Ch19-20(并发)
共享标记 ❌ 纯机械臂

核心知识点: 1. IK 问题形式化: 给定 SE(3) 目标位姿,求关节角 q 满足 FK(q) = T_target 2. 解析解 vs. 数值解: 6-DOF 工业臂可闭式求解 (Pieper 条件);通用 7-DOF 通常依赖数值/优化,特殊几何可参数化闭式或固定冗余参数闭式 3. KDL IK: ChainIkSolverPos_NR (Newton-Raphson) 的 Jacobian 伪逆迭代 4. TRAC-IK: KDL + SQP 双线程并行竞速策略,std::thread + std::atomic<bool> 停止信号 5. IKFast (OpenRAVE): 符号化消元生成 C++ 闭式求解代码,编译期固化关节结构 6. ik_geo: Riemannian 几何方法,subproblem decomposition 求解 6-DOF 闭式解 7. pick-ik: 基于 Pinocchio FK + 非线性优化 (L-BFGS) 的 MoveIt2 IK 插件 8. BioIK: 进化算法多目标 IK,支持多约束 (位置+朝向+关节偏好+避障) 9. opw_kinematics: 6-DOF 工业臂 (UR/ABB/Kuka) 参数化闭式解,亚微秒级 10. 冗余分解: 7-DOF 臂的 null-space 投影与次任务优化 (关节中心化/避障) 11. MoveIt2 IK 插件机制: kinematics_base 接口 + pluginlib 动态加载 12. 性能光谱: opw (~0.1us) < IKFast (~1us) < ik_geo (~5us) < pick-ik (~50us) < TRAC-IK (~500us) < KDL (~2ms)

关键项目: 1. traclabs/trac_ik / aprotyas/trac_ik (ROS2) — 精读双线程竞速逻辑 2. rdiankov/openrave — IKFast 生成器,精读符号消元管线 3. rpiRobotics/ik-geo — ik_geo 几何 IK,精读 subproblem 分解 4. PickNikRobotics/pick_ik — 优化式 IK,精读 Pinocchio 集成 5. Jmeyer1292/opw_kinematics — OPW 闭式解,精读参数化模板

关键论文: 1. Beeson & Ames (2015) "TRAC-IK: An Open-Source Library for Improved Solving of Generic IK" — Humanoids 2015 2. Diankov (2010) "Automated Construction of Robotic Manipulation Programs" — IKFast 原理 3. Elias & Wen (2022/2025) "IK-Geo: Unified Robot Inverse Kinematics Using Subproblem Decomposition" — arXiv 2022, Mechanism and Machine Theory 2025

练习: 1. A 型: 对 Panda (7-DOF) 和 UR5 (6-DOF) 各生成 1000 个随机目标位姿,用 KDL/TRAC-IK/pick-ik 求解,统计成功率和平均耗时 2. B 型: 用 IKFast 为 UR5 生成闭式求解 C++ 代码,阅读生成的代码结构,分析其如何处理多解选择 3. 思考题: 为什么通用 7-DOF 臂通常不直接使用固定结构的闭式 IK? 哪些特殊几何或固定冗余参数设置可以得到参数化闭式解? 冗余自由度在实际应用中如何利用 (避障、人体工学、奇异性规避)?


Part 2: 碰撞与优化(第 56-59 周)


M04 碰撞检测与距离计算 ⭐

从几何体表征到 GPU 并行碰撞查询,构建运动规划的安全基座。

  • 周数: 1.5(内容密度高: GJK算法+SDF+CCD+SIMD+GPU碰撞,建议预留充足时间)
  • 前置依赖: M01(Pinocchio 运动学/动力学), M03(IK 求解器)
  • 核心知识点:
  • 凸包表征: GJK/EPA 算法原理与最近距离计算
  • 球体/胶囊体/OBB 层次包围盒(BVH)加速结构
  • 签名距离场(SDF): 欧氏SDF与GPU-ESDF生成(cuRobo方案, 比传统CPU快10x)
  • 连续碰撞检测(CCD): 扫掠体积(swept volume)碰撞项保证轨迹全程无碰撞
  • 自碰撞检测: 球体近似模型与关节对剪枝策略
  • FCL / HPP-FCL 库: 宽相(broad-phase)与窄相(narrow-phase)管线
  • 点云/深度图直接碰撞: nvblox + cuRobo ESDF 感知管线
  • SIMD 加速碰撞检查: VAMP 向量化方案实现微秒级碰撞查询
  • 碰撞梯度计算: 可微碰撞距离用于轨迹优化反向传播
  • 安全裕度(clearance)与激活距离(activation distance)平滑设计
  • 关键项目:
  • 用 FCL 构建 6-DOF 机械臂自碰撞+环境碰撞检测管线
  • 实现基于球体近似的 GPU 批量碰撞检查(PyTorch/Warp)
  • 从深度图生成 ESDF 并可视化安全距离场
  • 关键论文:
  • Pan et al., "FCL: A General Purpose Library for Collision and Proximity Queries," ICRA 2012
  • Sundaralingam et al., "cuRobo: Parallelized Collision-Free Minimum-Jerk Robot Motion Generation," ICRA 2023
  • Gilbert et al., "A Fast Procedure for Computing the Distance Between Complex Objects in Three-Dimensional Space," IEEE J-RA 1988
  • 练习:
  • 手写 GJK 算法核心循环, 对两个凸多面体求最近距离
  • 对比 FCL broad-phase(SAP vs DynamicAABBTree)在 1000 障碍物场景下的查询耗时
  • 使用 VAMP collision checker 对比 CPU 串行 vs SIMD 加速的吞吐量
  • 共享标记: [碰撞检测-SDF] → M08 轨迹优化, M09 GPU规划, 移动机器人导航模块

M05 QP / NLP 建模工程 ⭐

从 SLAM 的无约束最小二乘跨入规控的硬约束优化: 关节限位、碰撞、力矩饱和和接触约束都必须进入求解器模型。

  • 周数: 2.0
  • 前置依赖: M01(Pinocchio 动力学/雅可比), M03(IK 求解器), v8 Ch17(Ceres/GTSAM)
  • 核心知识点:
  • 规控优化问题标准形式: 变量、目标、等式约束、不等式约束、边界约束
  • QP 建模: Hessian、gradient、约束矩阵、上下界与稀疏结构
  • NLP 建模: 非线性约束、KKT 条件、SQP / interior-point 的工程含义
  • OSQP / ProxQP / qpOASES / HPIPM 的算法差异与实时性权衡
  • Ipopt / CasADi / acados 在机械臂轨迹优化和 MPC 中的角色
  • IK-QP: 任务误差、阻尼、关节限位、速度限幅、零空间目标
  • 碰撞约束建模: distance activation、soft constraint 与 hard constraint 的边界
  • 力矩/速度/加速度约束如何进入规划、时间参数化和控制问题
  • 数值尺度与条件数: 单位归一化、权重调参、warm start 与失败诊断
  • 从"惩罚函数调到能跑"到"约束模型可解释"的工程迁移
  • 关键项目:
  • 用 OSQP / ProxQP 实现带关节限位和零空间目标的 IK-QP
  • 用 Ipopt 或 CasADi 建模一个 7-DOF 机械臂避障轨迹优化问题
  • 对比硬约束、松弛变量和纯 penalty 在接近关节极限时的行为
  • 关键论文/资料:
  • Stellato et al., "OSQP: An Operator Splitting Solver for Quadratic Programs," MPC 2020
  • Wächter & Biegler, "On the Implementation of an Interior-Point Filter Line-Search Algorithm for Large-Scale Nonlinear Programming," 2006
  • Ferreau et al., "qpOASES: A Parametric Active-Set Algorithm for Quadratic Programming," 2014
  • 练习:
  • 将 DLS-IK 改写成 QP, 加入关节速度上下界并比较奇异点附近表现
  • 对同一个避障问题分别用 penalty 和 inequality constraint 建模, 分析失败模式
  • 编写求解器选型表: 维度、稀疏性、约束类型、实时频率、warm-start 支持
  • 共享标记: [QP/NLP-约束优化] → M08 轨迹优化, M10 时间参数化, F07 WBC/QP, 腿足 MPC

M06 自动微分与代码生成 ⭐

把 Pinocchio 动力学、碰撞距离和轨迹代价接入优化器: 用 CppAD / CppADCodeGen / CasADi 生成可复用、可验证、可部署的导数代码。

  • 周数: 1.0
  • 前置依赖: M01(Pinocchio 标量参数化), M05(QP/NLP 建模), v8 Ch17(Ceres Jet)
  • 核心知识点:
  • 前向模式、反向模式、表达式图和 tape 的差异
  • CppAD 的 tape 录制、独立变量、复用与动态参数
  • CppADCodeGen 的代码生成、编译、动态加载和性能基准
  • CasADi 的符号图、代码生成与 acados/Ipopt 集成路径
  • Pinocchio ModelTpl<Scalar> 如何支持 double / AD scalar / codegen scalar
  • 碰撞距离和最近点导数的可微性边界: 最近特征切换时只分段光滑
  • tape 中条件分支的正确写法: CondExp / smooth approximation, 避免录制期固化分支
  • 有限差分、解析导数、AD 导数的精度和延迟对比
  • MPC / trajectory optimization 中 Jacobian、Hessian 和 sparsity 的使用方式
  • 代码生成的工程风险: 编译耗时、ABI、版本锁定、测试基准
  • 关键项目:
  • 为 7-DOF 机械臂 FK / Jacobian / RNEA 生成 CppADCodeGen 动态库
  • 用 CasADi 建模一个简化机械臂 MPC 并导出 C 代码
  • 对同一个碰撞代价比较有限差分、CppAD tape 和手写梯度
  • 关键论文/资料:
  • Bell, "CppAD: A Package for C++ Algorithmic Differentiation"
  • Andersson et al., "CasADi: A Software Framework for Nonlinear Optimization and Optimal Control," MPC 2019
  • Giftthaler et al., "Automatic Differentiation of Rigid Body Dynamics for Optimal Control and Estimation"
  • 练习:
  • 录制一个包含 FK 和关节限位 penalty 的 CppAD tape, 验证 Jacobian 与有限差分一致
  • if 形式的激活距离代价改写为 CondExp 或 smooth hinge, 比较梯度连续性
  • 为同一函数生成 .so, 测量 double、AD tape、codegen 三种路径的平均耗时
  • 共享标记: [AD-codegen] → M08 轨迹优化, M12 控制器部署, 腿足 OCS2/Crocoddyl

Part 3: 运动规划(第 60-65 周)


M07 OMPL 采样规划 ⭐

从构型空间、碰撞回调到 MoveIt2 OMPL pipeline: 先得到一条可行几何路径,再交给后续优化和平滑。

  • 周数: 1.5
  • 前置依赖: M03(IK 求解器), M04(碰撞检测), v8 Ch6/Ch29(多态与设计模式)
  • 核心知识点:
  • 构型空间 \(\mathcal{C}\)、工作空间 \(\mathcal{W}\) 与 FK 映射
  • 概率完备性、渐近最优性和机械臂规划中的实际含义
  • PRM / Lazy-PRM / PRM*: 路线图构建、连接半径和查询阶段
  • RRT / RRT-Connect / RRT*: 双树扩展、goal bias 和步长调参
  • Informed-RRT* / BIT* / AIT*: 椭球采样、批处理搜索和 anytime 改进
  • OMPL 三层抽象: StateSpaceSpaceInformationPlanner
  • 碰撞检测回调如何接入 FCL / Coal / MoveIt2 PlanningScene
  • 约束规划: TSR、投影采样、ConstrainedStateSpace
  • 规划器 Benchmark: 成功率、路径长度、规划时间、平滑后质量
  • MoveIt2 中 OMPL 参数如何影响窄通道、高维冗余臂和夹持姿态
  • 关键项目:
  • 用 OMPL C++ API 为 7-DOF Panda 搭建 RRT-Connect 规划 demo
  • 在同一场景下比较 RRT-Connect、PRM*、BIT* 的成功率和路径质量
  • 把 MoveIt2 的 PlanningScene 碰撞回调替换为自定义检测器并做性能分析
  • 关键论文:
  • Sucan et al., "The Open Motion Planning Library," IEEE RAM 2012
  • Kuffner & LaValle, "RRT-Connect: An Efficient Approach to Single-Query Path Planning," ICRA 2000
  • Gammell et al., "Batch Informed Trees (BIT*): Informed Asymptotically Optimal Anytime Search," IJRR 2020
  • 练习:
  • 实现 RRT-Connect 的核心扩展逻辑, 可视化双树生长与路径提取
  • 给同一机械臂场景分别设置开放空间、窄通道和冗余避障任务, 量化不同规划器表现
  • 在 MoveIt2 中修改 OMPL planner config, 记录参数变化对规划结果的影响
  • 共享标记: [OMPL-采样规划] → M08 轨迹优化, M14 MoveIt2, 双臂 D02 约束规划

M08 轨迹优化规划器 ⭐

采样规划负责"找得到",轨迹优化负责"走得好": 用 CHOMP / TrajOpt / STOMP / KOMO 把可行路径变成平滑、避障、满足约束的几何轨迹。

  • 周数: 1.5
  • 前置依赖: M04(碰撞/SDF), M05(QP/NLP), M06(AD), M07(OMPL)
  • 核心知识点:
  • 路径、轨迹和时间参数化的分层: 本章先只优化几何轨迹
  • 平滑性代价、障碍物代价、关节限位代价和任务约束代价
  • CHOMP: 协变梯度、障碍物代价场、SDF 梯度
  • TrajOpt: 序列凸优化、信赖域、碰撞约束凸化
  • STOMP: 噪声采样、无梯度更新和局部极小规避
  • GPMP2: 高斯过程先验、因子图形式和稀疏优化
  • KOMO / Drake trajectory optimization 的数学建模方式
  • OMPL → 轨迹优化的 warm start, 以及失败时回退策略
  • 碰撞距离分段光滑对优化器收敛的影响
  • MoveIt2 中链式 planning pipeline 的概念与配置风险
  • 关键项目:
  • 实现 CHOMP: 从 SDF 计算梯度, 优化 Panda 避障路径
  • 用 TrajOpt 风格的 SQP 处理直线抓取任务中的碰撞约束
  • 配置 MoveIt2 OMPL → STOMP/CHOMP 后处理, 比较路径平滑度和耗时
  • 关键论文:
  • Zucker et al., "CHOMP: Covariant Hamiltonian Optimization for Motion Planning," IJRR 2013
  • Schulman et al., "Motion Planning with Sequential Convex Optimization and Convex Collision Checking," IJRR 2014
  • Kalakrishnan et al., "STOMP: Stochastic Trajectory Optimization for Motion Planning," ICRA 2011
  • 练习:
  • 推导 CHOMP 的平滑项和障碍物项梯度, 写出更新公式
  • 对同一个 OMPL 初始路径分别做 shortcut、CHOMP 和 STOMP 后处理
  • 分析一例轨迹优化失败: 初值、碰撞梯度、权重尺度、信赖域哪个环节出了问题
  • 共享标记: [轨迹优化] → M09 cuRobo, M10 时间参数化, M14 MoveIt2, 移动操作规划

M09 GPU / SIMD 加速规划 ⭐

当规划瓶颈集中在碰撞检测和多种子优化时,CPU 标量实现很快到达上限;本章讲 cuRobo / cuMotion / VAMP 如何把运动规划推到实时级。

  • 周数: 1.5
  • 前置依赖: M04(碰撞检测), M07(采样规划), M08(轨迹优化), v8 Ch45-46(CUDA 基础, 可选)
  • 核心知识点:
  • 运动规划耗时拆解: FK、碰撞检测、图搜索、轨迹优化、后处理
  • 球体近似、ESDF、mesh collision 在 GPU 上的不同数据结构
  • cuRobo MotionGen: 多种子 IK、图搜索、L-BFGS 轨迹优化和批量碰撞
  • cuMotion: cuRobo 与 MoveIt2 的规划插件集成路径
  • VAMP: 手写 SIMD、structure-of-arrays、批量 FK / collision checking
  • CPU SIMD vs GPU CUDA 的选型: 延迟、吞吐、启动开销、硬件依赖
  • 动态场景更新: nvblox / ESDF 更新频率与规划器缓存一致性
  • 多臂与高维规划的批处理策略
  • 许可证、平台依赖和部署边界: 开源库、NVIDIA 运行时、机器人模型资产分开审查
  • 性能报告如何写: 不只报平均耗时,还要报失败率、尾延迟和轨迹质量
  • 关键项目:
  • 用 cuRobo MotionGen 在桌面抓取场景中生成无碰撞轨迹
  • VAMP vs OMPL 标准碰撞回调: 对比单核 SIMD 与普通 CPU 路径
  • 用 cuMotion + MoveIt2 搭建 GPU 规划-执行管线并记录端到端延迟
  • 关键论文:
  • Sundaralingam et al., "cuRobo: Parallelized Collision-Free Minimum-Jerk Robot Motion Generation," ICRA 2023
  • Thomason et al., "Motions in Microseconds via Vectorized Sampling-Based Planning," ICRA 2024
  • Pan et al., "GPU-based Parallel Collision Detection for Real-Time Motion Planning," 相关 GPU collision 文献
  • 练习:
  • 把同一场景拆成 FK、collision、optimizer 三段计时, 找出真实瓶颈
  • 分析 cuRobo 与 VAMP 在低延迟单次查询和高吞吐批量查询下的差异
  • 为一个项目写 GPU 规划部署清单: 驱动/CUDA、模型资产、许可证、fallback planner
  • 共享标记: [GPU-SIMD规划] → M14 MoveIt2/cuMotion, 双臂 D02, 复合机器人规划

M10 时间参数化 ⭐

OMPL 和 TrajOpt 输出的是几何路径;控制器需要带时间戳的位置、速度、加速度甚至 jerk。时间参数化是从"能走"到"能执行"的最后一公里。

  • 周数: 1.0
  • 前置依赖: M07(采样规划), M08(轨迹优化), M05(QP/NLP), M11(实时 C++ 部分)
  • 核心知识点:
  • 几何路径 \(\sigma(s)\) 与时间轨迹 \(q(t)\) 的区别
  • 速度、加速度、jerk、力矩约束在路径参数化中的角色
  • TOTG: MoveIt2 常用时间参数化后处理的思路和局限
  • Ruckig: jerk-limited 在线轨迹生成、固定维度模板和 RT-safe 约束
  • TOPP / TOPP-RA: 相平面、可达性分析和离线时间最优路径参数化
  • Retiming 与 replanning 的区别: 改速度曲线不等于重新找路径
  • 轨迹拼接、停机恢复、速度缩放和安全限幅
  • MoveIt2 request/response adapter 中时间参数化的实际位置
  • 时间参数化失败的常见原因: 路径点太稀、曲率尖峰、约束不一致
  • 控制器接口: JointTrajectory 的 position/velocity/acceleration/time_from_start 语义
  • 关键项目:
  • 对同一路径分别用 TOTG、Ruckig、TOPP-RA 做参数化并比较时长和 jerk
  • 将几何路径中的尖角平滑后再参数化, 分析执行电流和速度峰值
  • 在 ROS2 控制器中发送 JointTrajectory, 验证时间戳和速度约束是否被执行
  • 关键论文/资料:
  • Pham & Pham, "A New Approach to Time-Optimal Path Parameterization Based on Reachability Analysis," IEEE T-RO 2018
  • Berscheid & Kroeger, "Jerk-limited Real-time Trajectory Generation with Arbitrary Target States," RSS 2021
  • MoveIt2 trajectory processing / request adapter 文档
  • 练习:
  • 给一条固定关节路径手写速度、加速度约束下的简单 retiming
  • 用 Ruckig 生成从任意速度/加速度初值到目标状态的在线轨迹
  • 分析一条执行抖动的轨迹: 是几何路径问题、时间参数化问题还是控制器跟踪问题
  • 共享标记: [时间参数化] → M12 ros2_control, M14 MoveIt2, 工业机械臂执行层

Part 4: 实时控制与硬件(第 66-68 周)

规划算法输出关节序列,要让机械臂真正动起来还需:1) 满足 1 kHz 硬实时 (M11);2) 通过 ros2_control 送指令到电机 (M12)。


M11 实时 C++ 工程——PREEMPT_RT + 无堆分配 + realtime_tools ⭐

一句话: 从 SLAM 10 Hz 软实时跨越到机械臂 1 kHz 硬实时,掌握 RT 安全 C++ 编程的完整禁区清单与工程三件套。

  • 周数: 1.5 周 (第 66 周)
  • 前置依赖: v8 Ch17-20 (并发基础), v8 Ch35 (pmr 内存), v8 Ch4 (RAII)
  • 共享标记: ✅ 规控方向共享——机械臂 1 kHz 伺服、四足 500 Hz WBC、人形 WBC 全部需要

核心知识点: 1. PREEMPT_RT 主线化里程碑——Linux 6.12 (2024.11) 正式合并,不再需自定义补丁;CONFIG_PREEMPT_RT 启用;与 Xenomai 双内核方案的适用场景对比 2. RT 安全 C++ 禁区清单——禁止 new/delete/mallocthrow/catchstd::vector::push_backstd::mutexprintf/cout、线程创建;允许 std::array/std::span/固定 Eigen/std::atomic/预分配内存读写 3. 标准三件套——SCHED_FIFO 实时调度 + mlockall(MCL_CURRENT|MCL_FUTURE) 内存预锁 + EIGEN_RUNTIME_NO_MALLOC 堆分配审计 4. realtime_tools 三大组件——RealtimeBuffer<T> RT 端非阻塞读取、RealtimePublisher<T> 非阻塞发布 (trylock+unlockAndPublish)、LockFreeSPSCQueue/LockFreeMPMCQueue 5. 无锁并发原语深度——std::atomic 内存序 (relaxed/acquire/release/seq_cst);x86 TSO vs ARM 弱序平台差异陷阱 (Jetson 踩雷);三缓冲 (Triple Buffer) 传感器数据解耦 6. 优先级反转与优先级继承——PTHREAD_PRIO_INHERIT mutex;为什么标准 std::mutex 在 RT 线程中致命 7. cyclictest 实时性验证——RT 内核 <50 µs vs 非 RT 压力下 >700 µs;CPU governor performance + isolcpus 隔离 8. libfranka 1 kHz 实时控制案例——callback 风格 (franka::Robot::control)、只允许 std::array<double,7> 固定类型;直连以太网要求 9. cactus-rt 框架参考——集成 Quill 无分配异步日志、SPSC 无锁队列;现代 RT C++ 应用参考架构 10. 从 SLAM 到实时的认知跨越——"丢一帧 vs 失控"的后果差异;std::cout 调试习惯为何在 1 kHz 循环中是禁忌

关键项目: 1. ros-controls/realtime_tools (~175★)——精读 realtime_buffer.h 的 atomic pointer swap 实现 2. frankarobotics/libfranka——src/robot.cpp UDP 实时通信 + examples/generate_joint_velocity_motion.cpp 3. controller_manager/src/ros2_control_node.cpp——RT 主循环: configure_sched_fifo + nanosleep + read→update→write 4. cactusdynamics/cactus-rt——现代 RT C++ 框架,集成无锁日志

关键论文: 1. Linux 6.12 PREEMPT_RT 主线合并——LWN.net 系列报道 (2024) 2. Shuhaowu, "Real-time programming with Linux" 博客系列 (2022)——RT 应用开发四部曲 3. ROS2 Design Article: "Introduction to Real-time Systems"

练习: 1. [A型] cyclictest RT vs 非RT 内核延迟对比;用 stress 加压观察最坏延迟 2. [A型] EIGEN_RUNTIME_NO_MALLOC 审计——故意触发 MatrixXd 动态分配观察 abort,改固定大小通过 3. [B型] 精读 realtime_buffer.h (~100行),画时序图解释 atomic pointer swap 零拷贝机制


M12 ros2_control + 硬件驱动 + RL 部署 ⭐

一句话: 掌握 ros2_control 四大核心组件与三种硬件接口,打通从 MoveIt2 规划到真机执行的最后一公里,并学会通过 ForwardCommandController 部署 RL policy。

  • 周数: 1.5 周 (第 67-68 周)
  • 前置依赖: M11 (实时 C++), P01 (URDF <ros2_control> 标签), v8 Ch31(ROS2 Lifecycle / pluginlib)
  • 共享标记: ⚪ 部分共享——框架本身全方向通用,机械臂驱动 (libfranka/ur_robot_driver) 和 RL 部署为本章重点

核心知识点: 1. ros2_control 架构四组件——Controller Manager / Resource Manager / Hardware Interface / Controller;read→update→write 500-1000 Hz RT 主循环 2. 三种硬件组件类型——SystemInterface (多DOF共享总线,最常用) / ActuatorInterface (单执行器) / SensorInterface (只读);URDF <ros2_control> 标签自动解析 3. 自定义 SystemInterface 编写——on_init 预分配 / on_configure 打开总线 / on_activate 使能电机 / read+write RT 热路径无 malloc;PLUGINLIB_EXPORT_CLASS 注册 4. command interface 独占 vs state interface 共享——防止多控制器冲突;运行时原子切换 ros2 control switch_controllers 5. 异步硬件组件 (Jazzy/Kilted)——is_async 参数支持独立线程;fully fledged async components 已合并主线;适用于高延迟通信设备 6. 控制器链 (Chained Controllers)——级联控制+实时状态估计器;export_state_interfaces+export_reference_interfaces;side-load 异步控制器避免主循环 jitter 7. 五大机械臂常用控制器——JointTrajectoryController / ForwardCommandController (RL首选) / AdmittanceController / JointStateBroadcaster / PidController 8. 机械臂参考驱动精读——libfranka PIMPL + Active Control API + Pinocchio 集成;ur_robot_driver TCP+URScript 双通道 (gold standard) 9. RL Policy 部署 CRISP 架构——高频 C++ 控制 (1kHz) + 低频 GPU policy (5-10Hz);LibTorch (.pt) vs ONNX Runtime (.onnx) 两条栈 10. generate_parameter_library + Joint Limiters——类型安全参数生成;硬件层内置关节限位器 (Jazzy/Kilted 新增安全特性)

关键项目: 1. ros-controls/ros2_control + ros2_controllers——框架核心+标准控制器集 2. frankarobotics/franka_ros2 (~210★)——franka_hardware SystemInterface + 示例控制器 3. UniversalRobots/Universal_Robots_ROS2_Driver (~735★)——生产级驱动 gold standard 4. ros-controls/ros2_control_demos——含 chained controller 示例

关键论文: 1. Bischoff et al., "ros2_control: A real-time robot control framework for ROS 2" (ROSCon 2022) 2. PickNik, "MoveIt Pro: Low-level C++ and Python APIs" (2025)

练习: 1. [A型] 为 3-DOF 虚拟臂写 SystemInterface + JointTrajectoryController 在 RViz 中可视化 2. [A型] 运行时从 JointTrajectoryController 原子切换到 ForwardCommandController,验证无抖动 3. [B型] 精读 ur_robot_driver SystemInterface,标注 lifecycle 各阶段通信初始化逻辑


Part 5: 任务编排与系统集成(第 69-71 周)

真实操作任务需要多步编排: 感知→规划→移动→抓取→放置→错误处理。M13 讲通用行为树,M14 讲 MoveIt2 工业集成。


M13 BehaviorTree.CPP 深度 ⭐

一句话: 掌握 BT.CPP v4 的异步 ticking 三态语义、Blackboard 类型安全数据流与 Groot2 可视化调试,用行为树替代 FSM 编排复杂机械臂任务。

  • 周数: 1 周 (第 69 周)
  • 前置依赖: v8 Ch29 (Composite/Strategy 模式), v8 Ch6 (继承多态), v8 Ch31 (ROS2 Action/Service)
  • 共享标记: ✅ 规控方向共享——Nav2、MoveIt2/MTC 周边项目和工业机器人任务编排常用 BT.CPP

核心知识点: 1. 行为树 vs FSM——FSM 状态数指数爆炸 (5动作x3恢复x2条件=30+状态);BT 树状结构+异步 tick 实现模块化可维护编排 2. 异步 ticking 三态语义——SUCCESS/FAILURE/RUNNING;业务循环通常调用 tickOnce()tickWhileRunning() 以 10-50 Hz 推进整棵树;每次 tick 自顶向下重新评估实现反应性 3. 四大控制节点——Sequence / Fallback / Parallel / ReactiveSequence (每次从头评估——"电池低则中断") 4. XML DSL + pluginlib——行为与实现分离;BehaviorTreeFactory 三合一: 静态注册+动态插件+XML 驱动 5. Blackboard + Port 类型安全数据流——InputPort<T>/OutputPort<T> + std::any 萃取;v4 Stamped API (时间戳+序列号) + SkipUnlessUpdated 装饰器 6. Global Blackboard (v4.7+)——子树隔离 + "@" 前缀访问全局,免去手动 remapping 7. Groot2 可视化 + 日志回放——FileLogger/SqliteLogger/MinitraceLogger;内建可观测性 8. BT.CPP 与 ROS2 Action 关系——BT Action 内创建 ActionClient;RUNNING 对应 feedback;超时处理 9. v4.8+ 工程改进——ASAN/TSAN 修复、线程安全、C++17 支持、tinyxml 11.0;Sanitizer CI 集成 10. 工业 manipulation 中的 BT 扩展案例——关注轨迹拼接、遥操作、Scan-and-Plan 等任务编排模式;具体产品能力和版本以官方 release notes 为准

关键项目: 1. BehaviorTree/BehaviorTree.CPP v4.9——精读 tree_node.h/bt_factory.h/blackboard.h 2. BehaviorTree/BehaviorTree.ROS2 (2026.01)——ROS2 Action/Service 节点封装 3. BehaviorTree/Groot——BT 可视化编辑器+日志回放 4. Nav2 BT 应用——navigation.ros.org/behavior_trees/

关键论文: 1. Colledanchise & Ogren, "Behavior Trees in Robotics and AI" (2018) 2. Faconti, "BehaviorTree.CPP: A C++ library for Behavior Trees" (JOSS 2021) 3. PickNik / MoveIt Pro 官方 release notes 与 newsletter (2025-2026)——BT 在工业 manipulation 落地案例

练习: 1. [A型] ReactiveSequence 实现"检测到人靠近则暂停机械臂"——条件检查距离,动作执行 MoveIt plan 2. [A型] DetectObject→PlanMotion→ExecuteMotion 三节点 BT,通过 Blackboard 传递 pose 和 trajectory 3. [B型] 精读 BehaviorTreeFactory 三个注册/创建方法,分析静态注册+动态插件+XML 驱动如何协作


M14 MoveIt2 + MTC 工业集成 ⭐

一句话: 掌握 MoveIt2 pluginlib 三层工厂架构与 MTC 多阶段操作规划,独立配置 Franka Panda 完整 pick-and-place。

  • 周数: 2 周 (第 70-71 周)
  • 前置依赖: M07 (采样规划/OMPL), M10 (时间参数化), M03 (IK), M04 (碰撞检测), M12 (ros2_control), P01 (URDF+SRDF), v8 Ch29 (设计模式)
  • 共享标记: ❌ 纯机械臂——MoveIt2+MTC 是机械臂工业落地核心栈

核心知识点: 1. MoveIt2 四层架构——用户 API (MoveGroupInterface/MoveItCpp) → PlanningPipeline → 插件层 (规划器/运动学/碰撞/时间参数化全部 pluginlib) → 执行层 (ros2_control) 2. pluginlib 三层工厂——工厂模式+动态链接+抽象接口;PLUGINLIB_EXPORT_CLASS 导出;YAML 动态加载不重编核心 3. MoveGroupInterface vs MoveItCpp——前者 ROS Action 封装 (简单有延迟);后者进程内直调 (适合 visual servoing 高频规划) 4. PlanningScene diff-based 同步——Observer+增量更新;PlanningSceneMonitor 应用 diff 重建场景 5. MTC 多阶段操作规划——Stage 基类 + SerialContainer/Alternatives/Merger (Composite Pattern);Generator/Propagator/Connector 三种类型 6. 链式与并行规划管线——OMPL→STOMP 采样作优化初始解;多规划器竞争选最优;pipeline_configs.yaml 7. MTC vs BT.CPP 定位——MTC 规划层多阶段编排;BT.CPP 执行层任务编排;典型组合: BT→MTC→ros2_control 8. MoveIt2/MoveIt Pro 版本动态阅读——关注官方 release notes 中公开列出的 MTC/BT 集成、底层 C++/Python API、仿真与遥操作支持;具体功能名称、发布时间和可用版本以官方 release notes 为准 9. cuMotion GPU 规划器插件——NVIDIA cuRobo 集成 MoveIt2;与 M09 呼应 10. Tesseract 对比——Command Language IR + Task Composer DAG vs MoveIt2+MTC 设计哲学

关键项目: 1. moveit/moveit2——精读 planning_pipeline.cpp pluginlib 加载链 2. moveit/moveit_task_constructor (~247★)——demo/src/pick_place_task.cpp 3. moveit/moveit2_tutorials——官方 pick-and-place 全流程 4. tesseract-robotics/tesseract——对比参考 5. PickNik MoveIt Pro 文档 (docs.picknik.ai)

关键论文: 1. Coleman et al., "Reducing the Barrier to Entry of Complex Robotic Software: a MoveIt! Case Study" (2014) 2. Gorner et al., "MoveIt Task Constructor for Task-Level Motion Planning" (ICRA 2019) 3. PickNik, "MoveIt Pro 9.x Release Notes" (2025-2026)

练习: 1. [A型] MTC 实现 Franka Panda 桌面 pick-and-place: CollisionObject + 8阶段 Stage + Gazebo 执行 2. [A型] 配置 OMPL→STOMP 链式管线,对比纯 OMPL 的路径质量和平滑度 3. [B型] 精读 planning_pipeline.cpp,画出 YAML→ClassLoader→dlopen→工厂→虚函数调用链


Part 6: 综合实战(第 72-73 周)

M01-M14 全部技能端到端贯通: URDF→Pinocchio→IK→碰撞→OMPL→Ruckig→ros2_control→BT.CPP→MoveIt2+MTC。


M15 Mini-Manip 综合项目——Franka Panda 从零 pick-and-place ⭐

一句话: 将 M01-M14 全部技能贯通为可展示 GitHub 仓库: Gazebo Harmonic 完整 pick-and-place + BT.CPP 错误恢复 + sim-to-real swap。

  • 周数: 2 周 (第 72-73 周)
  • 前置依赖: 完整版要求全部 M01-M14;Quick Start 演示版只要求完成 pick-and-place 所需子集(P01、M01、M03、M04、M05/M08/M11/M13 压缩先修、M07、M10、M12、M14)
  • 共享标记: ⚪ 部分共享——项目模板可改编为腿足/移动操作实战

核心知识点: 1. 端到端系统架构——BT.CPP (10Hz) → MoveIt2+MTC → ros2_control (500Hz) → 硬件层 (Gazebo/mock/真机 Xacro swap) 2. 五阶段开发流程——环境搭建 (2天) → MTC pick-and-place (3天) → BT.CPP 编排+错误恢复 (2天) → 优化对比 (2天) → sim-to-real (1天) 3. MTC 八阶段流水线——CurrentState→OpenGripper→MoveToPreGrasp→Approach→Grasp→Lift→MoveToPlace→Retreat 4. BT.CPP 错误恢复——Fallback: 规划失败→RetryPlan (3次)→重新检测→ReturnHome 5. Groot2 调试——SqliteLogger 记录 + 回放定位失败节点 6. sim-to-real swap——launch 参数切换: sim_ignition / use_mock_hardware / 真机 7. 组件对比实验——IK (KDL→TRAC-IK→pick-ik) / 规划器 (RRT-Connect→BIT*) / 管线 (OMPL→STOMP) / 时间参数化 (TOTG→Ruckig) 8. 性能度量——端到端时间、规划时间、执行时间、成功率、关节电流平滑度

关键项目: 1. 本项目 GitHub 仓库——完整 ROS2 workspace + launch/config/BT XML/MTC task 2. franka_description + MoveIt Setup Assistant——URDF/SRDF 生成 3. moveit/moveit2_tutorials pick-and-place demo——起步参考

关键论文: 1. Gorner et al., "MoveIt Task Constructor" (ICRA 2019) 2. Colledanchise & Ogren, "Behavior Trees in Robotics and AI" (2018)

练习: 1. [综合] 按五阶段开发流程完成整个项目——本章即为一个大练习 2. [对比] IK/规划器/时间参数化量化对比报告,含表格数据和选型结论 3. [交付] GitHub 仓库: README (架构图+视频GIF) + 技术报告 (1-2页) + Groot2 日志

评估维度 及格 优秀
功能 pick 1 个物体 pick 3 个全部成功
错误恢复 ReturnHome Fallback 自动重试+重新检测
sim-to-real Gazebo+mock +真机或详细部署指南
代码质量 能运行 clang-format+clang-tidy+gtest
性能对比 默认配置 量化对比报告

第二篇:力控与柔顺控制 (F系列, 28周)

完成本篇后你能做什么:实现工业级阻抗/导纳控制、变阻抗策略、全身力跟踪(WBC),掌握从经典力控到学习型力控的完整能力栈,能在Franka/UR上部署1kHz力控闭环。

从"位置控制的世界"跨入"力的世界"——阻抗控制、导纳控制、操作空间动力学、全身力跟踪(WBC)直至学习型力控,建立完整的力控能力栈。


Part 1: 力控基础 (8周)

F01 力控导论——阻抗/导纳二分法与力控哲学 ⭐

一句话:建立"位置控制→力控"的认知跨越,掌握阻抗/导纳二分法及力控四十年学术脉络。

  • 周数:1 周
  • 前置依赖:M01(Pinocchio 刚体动力学)、M05(QP/NLP 建模)、M11(实时 C++)
  • 核心知识点
  • 力控三大认知跨越:几何精度→能量交换、开环执行→闭环交互、单体控制→接触物理
  • 阻抗控制(impedance control)与导纳控制(admittance control)的对偶关系
  • Hogan 1985 阻抗控制原始论文核心思想:不控力也不控位,控"关系"
  • 因果性(causality)与端口行为:力因果 vs 速度因果
  • 力传感器类型:关节力矩传感器 vs 六维腕力传感器 vs 皮肤触觉
  • 阻抗方程 F = M_d x'' + D_d x' + K_d x_e 各参数物理含义
  • 接触稳定性直觉:环境刚度 K_e 与期望阻抗 (M_d, D_d, K_d) 的耦合
  • 力控历史脉络:Whitney 1977 → Hogan 1985 → Khatib 1987 → Chiaverini 1999
  • 工业力控传感方案:Franka Emika / KUKA iiwa / UR 的力感知架构对比
  • 关键项目:libfranka (DLR/Franka)、KUKA Sunrise.OS FRI、ros2_controllers force_torque_sensor_broadcaster
  • 关键论文:Hogan 1985 "Impedance Control: An Approach to Manipulation"、Villani & De Schutter 2016 "Force Control" (Springer Handbook Ch.9)
  • 练习:(A) 在 MuJoCo 中搭建弹簧-阻尼-质量单自由度系统,扫描 K_d/D_d 观察接触稳定性边界;(B) 阅读 libfranka joint_impedance_control 示例,标注控制律中每一行对应阻抗方程的哪一项
  • 共享标记:⚪ 部分共享(导论概念可复用于腿足方向)

F02 数学基础——操作空间动力学、无源性与接触模型 ⭐

一句话:掌握力控的三大数学支柱——操作空间动力学(Lambda, mu, p)、端口无源性理论、接触力学(Hertz/Coulomb)。

  • 周数:2 周
  • 前置依赖:F01、M01(Pinocchio RNEA/ABA/Jacobian)、线性代数(特征值/SVD)
  • 核心知识点
  • 操作空间惯量矩阵 Lambda = (J M^-1 J^T)^-1 推导与 Pinocchio 计算
  • 操作空间科氏力 mu 与重力 p 的投影公式
  • 动力学一致广义逆 J_bar = M^-1 J^T Lambda 及其与伪逆 J+ 的区别
  • 零空间投影 N = I - J_bar J 及任务优先级框架
  • 端口哈密顿系统与无源性(passivity):存储函数 V(x),供给率 s = y^T u
  • 无源性定理在力控稳定性证明中的应用
  • 接触模型:Hertz 弹性接触、Hunt-Crossley 阻尼、Coulomb 摩擦锥
  • 接触冲击能量 1/2 Lambda v^2 与刚度选择的工程约束
  • 奇异性处理:阻尼最小二乘(DLS) J+ 与任务空间缩减
  • 对偶空间:力椭球与速度椭球的互补关系
  • 关键项目:Pinocchio (INRIA/LAAS)、spatial_v2 (Featherstone MATLAB)、Drake (MIT/TRI)
  • 关键论文:Khatib 1987 "A Unified Approach for Motion and Force Control"、Featherstone 2008 "Rigid Body Dynamics Algorithms" Ch.9
  • 练习:(A) 用 Pinocchio 计算 7-DOF Panda 的 Lambda/mu/p 并验证 Lambda 在奇异位形附近的条件数爆炸;(B) 手推 2-DOF 平面臂的零空间投影矩阵 N,验证 N J_bar = 0
  • 共享标记:✅ 全方向共享(操作空间动力学是所有力控方向的数学基础)

F03 经典力控算法——从 Whitney 到 Chiaverini ⭐

一句话:实现四大经典力控架构——直接力控、阻抗控制、并行力位混合控制、外环/内环结构,理解各自适用场景。

  • 周数:2 周
  • 前置依赖:F02、M12(ros2_control 概念)
  • 核心知识点
  • 直接力控(explicit force control):PI 力环 + 力传感器反馈
  • 关节空间阻抗控制:tau = M(q)x''_d + C(q,q')q'_d + g(q) - K_d(q-q_d) - D_d(q'-q'_d)
  • 笛卡尔空间阻抗控制:tau = J^T(Lambda x''_d + mu + p - K_d e_x - D_d e'_x)
  • Raibert-Craig 并行力位混合控制:选择矩阵 S 与约束帧概念
  • Chiaverini 1999 外环力/内环运动的级联结构
  • 阻抗控制 vs 导纳控制在有/无关节力矩传感器时的选择
  • 重力补偿模式作为最简阻抗控制(K_d=0, D_d=0)
  • 力控带宽分析:力环采样率、传感器噪声、执行器带宽的耦合
  • 稳定性分析:接触/非接触切换时的能量注入问题
  • 关键项目:libfranka cartesian_impedance_control 示例、mc_rtc (LAAS/JRL)、OROCOS KDL
  • 关键论文:Raibert & Craig 1981 "Hybrid Position/Force Control"、Chiaverini et al. 1999 "Survey of Force Control"
  • 练习:(A) 在 MuJoCo Panda 上实现关节空间阻抗并对比笛卡尔空间阻抗的擦拭任务表现;(B) 实现并行力位混合控制,z 轴力控/xy 平面位控完成打磨仿真
  • 共享标记:⚪ 部分共享(经典算法在腿足/移动操作中变体复用)

F04 笛卡尔阻抗控制工程——libfranka / franka_ros2 / CRISP ⭐

一句话:在 Franka Panda 上实现工业级 1kHz 笛卡尔阻抗闭环,掌握 libfranka 回调与 CRISP 框架。

  • 周数:2 周
  • 前置依赖:F03、M11(PREEMPT_RT)、M12(ros2_control)
  • 核心知识点
  • libfranka 实时回调架构:Robot::control(callback, ControllerMode)
  • 笛卡尔阻抗控制律 C++ 实现:Eigen Map/Block 零拷贝热路径
  • franka_ros2 与 ros2_control 集成:FrankaHardwareInterface 生命周期
  • CRISP 框架架构与控制律模板化
  • 实时安全编程:禁止堆分配、RealtimeBuffer、lock-free 通信
  • 力矩限幅与安全监控:力矩/力/功率/速度多维度安全边界
  • 姿态阻抗:e_R = 1/2 vee(R_d^T R - R^T R_d) 的 SO(3) 误差
  • 零空间行为:零空间阻尼/零空间姿态保持的工程实现
  • 关键项目:libfranka (Franka Emika)、franka_ros2、CRISP (Stanford ASL)、cartesian_controllers (FZI)
  • 关键论文:Gaz et al. 2019 "Dynamic Identification of the Franka Emika Panda"、Leidner et al. 2023 "CRISP"
  • 练习:(A) 基于 libfranka 回调实现笛卡尔阻抗控制器,令 Panda 接触桌面柔顺下压 5N;(B) 在 CRISP 中添加自定义擦拭技能,法向力维持 3+/-0.5N
  • 共享标记:❌ 纯力控(Franka 专属工程)

F05 导纳控制与 ROS2 工程——ros2_controllers / FZI FDCC ⭐

一句话:掌握导纳控制(外环力->内环位置)工程实现,适用于无关节力矩传感器的工业机器人(UR/ABB)。

  • 周数:1 周
  • 前置依赖:F03、M12(ros2_control)
  • 核心知识点
  • 导纳控制原理:Delta_x = (M_d s^2 + D_d s + K_d)^-1 F_ext -> 位置增量
  • 导纳控制 vs 阻抗控制:因果性对偶、适用传感器、带宽差异
  • ros2_controllers admittance_controller 源码架构与参数配置
  • FZI cartesian_compliance_controller 实现
  • 力传感器标定:零偏/灵敏度/交叉耦合补偿
  • 重力补偿算法:末端工具重力辨识与在线补偿
  • 导纳控制离散化与采样周期对稳定性的影响
  • 多坐标系管理:传感器帧/合规帧/控制帧/世界帧变换链
  • 工业部署:UR force_mode vs 导纳控制器对比
  • 关键项目:ros2_controllers admittance_controller、FZI cartesian_controllers、UR ROS2 Driver
  • 关键论文:Schindlbeck & Haddadin 2015 "Unified Passivity-Based Cartesian Force/Impedance Control"、Keemink et al. 2018 "Admittance Control for Physical HRI"
  • 练习:(A) 配置 admittance_controller 驱动 UR5e 仿真完成力引导示教;(B) 对比阻抗与导纳控制在擦拭任务的力跟踪精度与带宽
  • 共享标记:⚪ 部分共享(导纳控制在移动机器人力交互中广泛使用)

Part 2: 高级力控 (10周)

F06 变阻抗控制、无源性保证与碰撞安全 ⭐

一句话:掌握变阻抗(VIC)、能量罐/KB 条件无源性保证、动量观测器碰撞检测与 ISO 15066 安全。

  • 周数:3 周
  • 前置依赖:F04 或 F05、F02(无源性理论)
  • 核心知识点
  • 变阻抗动机:任务自适应刚度(接近→柔软,接触→刚硬)
  • 能量罐(energy tank)方法:虚拟能量存储保证无源性
  • Kronander-Billard(KB)条件:K'_d 与 D_d 的耦合约束
  • 广义动量观测器:r = K_I integral(tau - tau_model) dt
  • 碰撞检测/隔离/分类/反应四阶段流程
  • ISO 15066:2016 力/压强限值表与工程计算; ISO 10218-1/2:2011 工业机器人安全要求; 风险评估方法论 (ISO 12100)
  • 安全额定监控功能(SRS/SLS/STO)在力控中的集成
  • DA-VIL:RL + QP 变阻抗双臂操作(2024)
  • 无源性保证的变阻抗学习(passivity-guaranteed VIC + RL, 2025)
  • 生物力学自适应变阻抗:Bayesian 优化人机耦合(Zahedi 2025)
  • 关键项目:libfranka collision detection、mc_rtc safety constraints、OpenLoong safety monitor
  • 关键论文:Kronander & Billard 2016 "Stability Considerations for VIC"、Haddadin et al. 2017 "Robot Collisions: Detection, Isolation, Identification"
  • 练习:(A) 实现能量罐方法,验证变阻抗切换中无源性不被破坏;(B) 实现动量观测器碰撞检测,碰撞后 <50ms 触发安全停止
  • 共享标记:⚪ 部分共享(碰撞安全在所有人机协作场景通用)

F07 浮动基座全身控制(WBC)——TSID / mc_rtc / Pinocchio ⭐

一句话:从固定基座跨入浮动基座,掌握 TSID 和多任务优先级 QP 全身控制框架。

  • 周数:4 周
  • 前置依赖:F02(零空间投影)、F03、M05(QP 求解器)
  • 核心知识点
  • 浮动基座动力学:虚拟 6-DOF 根关节、欠驱动约束
  • 接触约束:摩擦锥线性化(多面体近似)、CoP/ZMP 约束
  • TSID:min ||Jq'' + J'q' - x''_des||^2 s.t. 动力学 + 接触约束
  • 任务优先级:严格优先级(null-space) vs 软优先级(weighted QP)
  • mc_rtc 框架:FSM + QP 任务/约束 DSL、多机器人支持
  • TSID (Pinocchio) 框架:Python/C++ API、任务定义、求解器接口
  • 接触力分配(contact wrench distribution)
  • QP 求解器实时性:qpOASES / OSQP / ProxQP 对比
  • OpenLoong 人形 MPC+WBC 开源框架(2024)
  • MuJoCo iLQR 全身 MPC 实时部署(2025)
  • 关键项目:TSID (Pinocchio/LAAS)、mc_rtc (LAAS/JRL)、OpenLoong-Dyn-Control (中科院)、Drake (MIT/TRI)
  • 关键论文:Del Prete et al. 2015 "Torque Control with High-Ratio Gear Boxes"、Bouyarmane et al. 2019 "QP for Multi-Contact WBC"
  • 练习:(A) 用 TSID 实现 Talos 双足站立下手臂末端力跟踪;(B) 在 mc_rtc 中配置三优先级任务(平衡>手部位姿>正则化)并验证切换
  • 共享标记:✅ 全方向共享(WBC 是腿足/人形/移动操作核心框架)

F08 腿足 MPC+WBC 联合力控——OCS2 / WBIC / legged_control ⭐

一句话:掌握腿足 MPC(轨迹优化) + WBC(力分配)联合框架,从四足到人形的力控部署。

  • 周数:3 周
  • 前置依赖:F07、M05(MPC/NLP)
  • 核心知识点
  • 质心动力学(centroidal dynamics):SRBD 简化模型 vs 全身模型
  • MPC 层:OCS2/Crocoddyl/acados 凸 MPC 生成接触力参考
  • WBC 层:WBIC(MIT Cheetah)全身逆运动学+逆动力学 QP
  • legged_control 框架:OCS2 + ros2_control 集成
  • 步态调度(gait scheduler):接触序列与 MPC 时域窗口
  • 地形自适应:足端力反馈 + 地面接触估计
  • Whole-Body MPPI:采样式全身 MPC(2025)真实四足部署
  • 人形全身力控:OpenLoong MPC+WBC 架构
  • 力控与状态估计耦合:接触切换对 EKF 的影响
  • 关键项目:legged_control (OCS2+WBC+ros2)、MIT Cheetah Software、OpenLoong-Dyn-Control、Whole-Body MPPI
  • 关键论文:Kim et al. 2019 "Highly Dynamic Quadruped Locomotion via WBC"、Dantec et al. 2022 "WB-MPC for Biped Locomotion"
  • 练习:(A) 在 legged_control 部署 Unitree A1 trot 步态,分析 MPC→WBC 力矩映射;(B) 修改步态从 trot 到 pace,观察 WBC 力分配变化
  • 共享标记:✅ 全方向共享(腿足力控是具身智能基础能力)

Part 3: 学习型力控 (10周)

F09 学习型力控——RL+阻抗 / Diffusion Policy / SERL ⭐

一句话:将 RL/模仿学习与阻抗控制结合——变阻抗 RL、Diffusion Policy、SERL/HIL-SERL 接触丰富操作。

  • 周数:5 周
  • 前置依赖:F06(变阻抗)、RL 基础(PPO/SAC)、Isaac Lab 经验
  • 核心知识点
  • 阻抗参数作为 RL 动作空间:(K_d, D_d) 替代直接力矩输出
  • 变阻抗 RL 优势:安全底层柔顺 + 高层策略探索
  • Diffusion Policy:条件去噪扩散生成动作序列、receding horizon
  • 3D Diffusion Policy (DP3):点云观测 + 扩散策略
  • Reactive Diffusion Policy(2025):慢-快视觉-触觉接触丰富操作
  • DPPO (ICLR 2025):扩散策略的在线 RL 微调
  • SERL 框架:sample-efficient RL + 自动重置 + 视觉奖励
  • HIL-SERL (2024):人在环路 RL,显著提升双臂精密操作成功率(具体数值依任务与平台而定)
  • RL-100 (2025):真实世界百万步 RL 训练工程实践
  • 无源性保证变阻抗学习:RL 策略 + passivity 约束联合优化(2025)
  • 关键项目:SERL (Berkeley RAIL)、Diffusion Policy (Columbia/Toyota)、Isaac Lab (NVIDIA)、DPPO
  • 关键论文:Chi et al. 2023 "Diffusion Policy: Visuomotor Policy Learning via Action Diffusion"、Luo et al. 2024 "HIL-SERL: Precise Robotic Manipulation via Human-in-the-Loop RL"
  • 练习:(A) 在 Isaac Lab 训练变阻抗 PPO 完成 peg-in-hole,对比固定 vs 学习阻抗成功率;(B) 复现 Diffusion Policy PushT 训练,分析扩散步数对动作平滑度影响
  • 共享标记:⚪ 部分共享(RL 框架与腿足共享,力控动作空间设计为专属)

F10 综合实战——Mini-ForceControl 从零搭建 ⭐

一句话:从零搭建完整力控系统栈(Mini-ForceControl),整合 F01-F09 全部能力,仿真→实机闭环。

  • 周数:5 周
  • 前置依赖:F01-F09 全部
  • 核心知识点
  • 系统架构:Pinocchio 动力学 + ros2_control 插件 + MuJoCo 仿真后端
  • 控制器插件工厂:阻抗/导纳/力位混合三模式运行时切换
  • 安全层:力矩限幅 + 动量观测器碰撞检测 + 能量罐无源性
  • 变阻抗模块:固定参数/在线调参/RL 策略三种模式
  • 力传感器抽象:F/T 标定 + 重力补偿 + 低通滤波流水线
  • 任务定义 DSL:YAML 配置任务空间目标/约束帧/阻抗参数
  • Sim2Real 迁移:MuJoCo → libfranka/UR 参数映射与 gap 处理
  • 性能基准:1kHz 热路径延迟分析、力跟踪带宽测量
  • 综合演示:擦拭(恒力)、装配(peg-in-hole)、力引导示教、碰撞安全停止
  • 关键项目:本课程自建 Mini-ForceControl、libfranka examples、cartesian_controllers (FZI)、mc_rtc tutorials
  • 关键论文:Siciliano & Villani 1999 "Robot Force Control"、Khatib et al. 2004 "Whole-Body Dynamic Behavior and Control"
  • 练习:(A) 完成 Mini-ForceControl 全栈搭建,MuJoCo 中演示四个综合场景;(B) 撰写技术报告,对比自建系统与 mc_rtc/CRISP 架构差异
  • 共享标记:❌ 纯力控(综合实战为本方向 capstone 项目)

F01-F10 总计 28 周 | Part 1 力控基础 8周 · Part 2 高级力控 10周 · Part 3 学习型力控 10周


第三篇:双臂协调与遥操作 (D系列, 24周)

完成本篇后你能做什么:设计并部署双臂协调操作系统,掌握遥操作理论(波变量/TDPA)与现代数据采集管线(ALOHA/UMI/LeRobot),能从零搭建双臂遥操作→模仿学习→自主执行的端到端闭环。

Part 1: 双臂协同理论与规划 (8周)

D01:双臂任务分类与协调运动学 ⭐

摘要:建立双臂协调的数学语言——从任务分类(Leader-Follower/Tightly-Coupled/Loosely-Coupled)到Augmented Jacobian、Relative Jacobian、Object-level运动学。

  • 周数:2周
  • 前置依赖:M01-M03(Pinocchio运动学/动力学/IK)、F01(阻抗控制概念)
  • 核心知识点
  • 双臂任务分类学:Loose/Tight/Grasping三类及典型场景
  • Augmented Jacobian J_aug(12×14):两臂独立拼接
  • Relative Jacobian J_rel:描述两末端相对运动
  • Object-level运动学:物体位姿与两臂末端的约束映射
  • Uchiyama-Dauchez 绝对/相对坐标系(1988)
  • 闭链运动学约束 h(q)=0 与约束Jacobian J_h
  • 冗余分解:零空间投影 P = I - J_h⁺J_h
  • 双臂工作空间分析与可操作度椭球
  • Pinocchio双臂模型构建(URDF拼接/MultiBody)
  • 双臂正/逆运动学求解器实现
  • 关键项目:Pinocchio dual-arm model、MoveIt2 dual-arm SRDF配置、robosuite TwoArm环境
  • 关键论文:Uchiyama & Dauchez 1988 (Symmetric kinematic formulation)、Caccavale et al. 2008 (Six-DOF impedance cooperative)
  • 练习:A型——用Pinocchio搭建14-DOF双臂模型并计算J_aug/J_rel;B型——实现Object-level IK求解器
  • 共享标记:⚪ 部分共享(运动学基础全方向通用,闭链约束为双臂专属)

D02:双臂协调规划——闭链约束与TAMP ⭐

摘要:在约束流形上做采样规划——从OMPL ConstrainedStateSpace到CBiRRT、Atlas-RRT,再到TAMP的双臂扩展。

  • 周数:2周
  • 前置依赖:D01、M07(采样规划/OMPL)、M14(MoveIt2)
  • 核心知识点
  • 约束流形(Constraint Manifold)与切空间采样
  • OMPL ConstrainedStateSpace:ProjectedStateSpace vs AtlasStateSpace vs TangentBundleStateSpace
  • CBiRRT(Constrained Bi-directional RRT)算法原理
  • Atlas-RRT:chart拼接与流形覆盖
  • TSR(Task Space Region)约束表示
  • 双臂协调路径规划:同步 vs 优先级 vs 协商
  • 重规划与在线约束更新策略
  • TAMP双臂扩展:PDDLStream + 双臂action primitives
  • MoveIt2 dual-arm planning group配置与约束规划API
  • 规划质量评估:路径长度/平滑度/约束违反度
  • 关键项目:OMPL ConstrainedPlanningKinematicChain demo、MoveIt2 dual_arm_planning、Kingston OMPL tutorials
  • 关键论文:Berenson et al. 2011 (CBiRRT/TSR)、Kingston et al. 2019 (Exploring implicit spaces for constrained sampling)
  • 练习:A型——在OMPL中实现双臂闭链约束并用Atlas-RRT规划;B型——MoveIt2双臂搬运箱子的约束规划demo
  • 共享标记:⚪ 部分共享(约束规划框架通用,闭链实例为双臂专属)

D03:双臂协调力控——Grasp Matrix与内力控制 ⭐

摘要:双臂共持物体时的力学核心——Grasp Matrix G、运动力/内力分解、协调阻抗控制与Object Impedance。

  • 周数:2周
  • 前置依赖:D01、F01-F04(力控导论/操作空间动力学/经典力控/阻抗工程)
  • 核心知识点
  • Grasp Matrix G 定义与物理含义(接触wrench到物体wrench的映射)
  • 运动力/内力分解:f_c = G⁺w_o + (I-G⁺G)f_int
  • 内力(Internal Force)独立控制回路设计
  • 协调阻抗控制:绝对阻抗(物体层) + 相对阻抗(内力层)
  • Object Impedance Control:M_o ẍ_o + D_o ẋ_o + K_o x̃_o = f_ext
  • 自适应混合阻抗控制处理物体不确定性
  • 双臂QP-WBC:在已有WBC框架中加Grasp Matrix约束行
  • 内力优化:防止挤压脆性工件/防止滑脱
  • DA-VIL框架:RL+变阻抗的双臂自适应操作
  • 双臂力/力矩传感器标定与信号融合
  • 关键项目:Caccavale cooperative impedance实现、robosuite TwoArmHandover/TwoArmPegInHole、mc_rtc dual-arm WBC
  • 关键论文:Uchiyama & Dauchez 1988 (Master-slave协调力控)、Wimboeck et al. 2012 (Biomimetic object impedance)
  • 练习:A型——实现Grasp Matrix计算与f_int分解验证(2D平面双臂);B型——双臂协调阻抗控制仿真(MuJoCo搬运)
  • 共享标记:❌ 纯双臂专属

D04:双臂学习——ACT/ALOHA底层分析与Bimanual RL ⭐

摘要:从ACT到RDT-1B,剖析双臂模仿学习与强化学习的底层控制接口与数据流。

  • 周数:2周
  • 前置依赖:D01-D03、续篇VLA概念(ACT/Diffusion Policy基础)
  • 核心知识点
  • ACT架构剖析:CVAE + Transformer、action chunking机制
  • ALOHA 2硬件改进:低摩擦导轨、重力补偿、MuJoCo系统辨识模型
  • ALOHA Unleashed/DemoStart:复杂双臂任务的数据+策略升级
  • RDT-1B(1.2B参数):最大双臂Diffusion Foundation Model,128维统一action
  • 双臂模仿学习数据采集要点:示教质量/一致性/多视角
  • Bimanual RL环境:robosuite TwoArm、Isaac Lab双臂、Bi-DexHands
  • 双臂RL奖励设计:协调奖励 vs 独立奖励 vs 物体级奖励
  • 策略层与底层控制的接口:关节位置/末端位姿/阻抗参数
  • Sim-to-Real在双臂场景的特殊挑战(接触动力学gap)
  • Mobile ALOHA:移动底盘+双臂全身遥操作与学习
  • 关键项目:ACT(tonyzhaozh/aloha)、RDT-1B(thu-ml/RoboticsDiffusionTransformer)、robosuite双臂环境
  • 关键论文:Zhao et al. 2023 (Learning Fine-Grained Bimanual Manipulation / ACT)、Liu et al. 2024 (RDT-1B)
  • 练习:A型——在robosuite TwoArmLift训练ACT并分析chunk长度影响;B型——RDT-1B zero-shot双臂迁移实验
  • 共享标记:⚪ 部分共享(ACT/Diffusion通用,双臂action space为专属)

Part 2: 遥操作理论与数据采集 (8周)

D05:遥操作导论——二端口网络与透明度 ⭐

摘要:从单端口力控跨入双端口网络——二端口阻抗/导纳矩阵、透明度定义、四通道架构与Llewellyn稳定准则。

  • 周数:2周
  • 前置依赖:F01-F03(阻抗/导纳基础)、F02(无源性理论)
  • 核心知识点
  • 遥操作系统架构:操作者-主端-通信-从端-环境
  • 二端口网络模型:阻抗矩阵Z、导纳矩阵Y、混合矩阵H
  • 透明度(Transparency):Z_transmitted = Z_environment的理想目标
  • 四通道架构:位置-位置/力-位置/力-力/四通道对比
  • Llewellyn绝对稳定准则与无条件稳定
  • 透明度-稳定性Trade-off的本质原因
  • Lawrence 1993透明度优化框架
  • 操作者模型(Human Operator Model)与环境建模
  • 性能指标:位置跟踪误差/力跟踪误差/Z-width
  • ROS2遥操作通信架构基础(DDS延迟分析)
  • 关键项目:dVRK(da Vinci Research Kit)遥操作框架、OpenTeleVision
  • 关键论文:Lawrence 1993 (Stability and transparency)、Hannaford 1989 (Design framework for teleoperators)
  • 练习:A型——推导四通道H矩阵并验证Llewellyn准则;B型——1-DOF主从遥操作仿真分析透明度-稳定性trade-off
  • 共享标记:❌ 纯遥操作专属

D06:无源通信理论——散射变量与波变量 ⭐

摘要:时延通道上的无源性保证——传输线类比、散射/波变量变换,理解"为什么时延不再破坏稳定性"。

  • 周数:2周
  • 前置依赖:D05、F02(无源性/端口Hamilton)
  • 核心知识点
  • 时延对稳定性的破坏:能量生成与不稳定机制
  • 传输线类比:无损传输线的物理直觉
  • 散射变量:Niemeyer & Slotine 1991
  • 波变量变换:力/速度 → 入射波/反射波
  • 特征阻抗b的选择(响应速度 vs 稳定裕度)
  • 常时延 vs 变时延:波变量在变时延下的能量泄漏
  • 波变量补偿器:2025年三通道最新设计
  • 位置漂移(Position Drift)问题与补偿
  • 多自由度波变量扩展(6-DOF力/速度)
  • C++实现:波变量编码/解码器与网络传输模块
  • 关键项目:MIT NML wave variable实现、DLR Telepresence wave-based controller
  • 关键论文:Niemeyer & Slotine 1991 (Stable adaptive teleoperation)、Anderson & Spong 1989 (Bilateral control with time delay)
  • 练习:A型——1-DOF波变量遥操作注入不同时延验证稳定性;B型——对比有/无波变量的能量观测与系统响应
  • 共享标记:❌ 纯遥操作专属

D07:TDPA与工程实现——能量观测器与可变阻尼 ⭐

摘要:Time Domain Passivity Approach——时域实时监测能量、按需注入阻尼,无需已知时延上界。

  • 周数:2周
  • 前置依赖:D05-D06
  • 核心知识点
  • TDPA核心思想:能量观测 → 被动性违反检测 → 可变阻尼注入
  • 能量观测器(Passivity Observer)离散实现
  • 可变阻尼器(Passivity Controller)设计
  • TDPA vs 波变量:自适应 vs 确定性、平滑度 vs 鲁棒性
  • 四通道TDPA架构(Artigas et al.)
  • TDPA在变时延、丢包场景下的鲁棒性
  • 混合方法:波变量+TDPA结合(2024-2025最新)
  • ROS2/ros2_control集成:1kHz力控+通信时延处理
  • 工程实践:网络QoS、UDP vs TCP、DDS延迟测量
  • 力反馈手术机器人案例:dVRK无源性保证
  • 关键项目:dVRK TDPA controller、Ryu & Hannaford TDPA参考实现
  • 关键论文:Ryu et al. 2004 (Time domain passivity control)、Artigas et al. 2016 (Bilateral control with TDPA)
  • 练习:A型——实现离散能量观测器在1-DOF遥操作中验证TDPA;B型——ROS2双节点遥操作demo对比波变量/TDPA
  • 共享标记:❌ 纯遥操作专属

D08:运动映射与遥操作数据采集——Retargeting/ALOHA/GELLO/UMI ⭐

摘要:现代遥操作范式转变——从力反馈透明度到数据采集效率,覆盖ALOHA/GELLO/UMI/Bunny-VisionPro/AnyTeleop。

  • 周数:2周
  • 前置依赖:D05(遥操作基础)、D04(双臂学习概念)
  • 核心知识点
  • 运动映射(Motion Retargeting):关节空间/任务空间/混合映射
  • 手部姿态重定向:人手 → 灵巧手/夹爪的实时retargeting
  • ALOHA/ALOHA 2数据采集管线:同构主从 + action/observation recording
  • GELLO:<$300同构遥操作设备,30min组装,直觉式关节映射
  • UMI:手持夹爪+GoPro,无机器人示教;UMI on Legs零样本跨具身部署
  • Bunny-VisionPro:Vision Pro追踪+力触觉反馈+双臂灵巧手(IROS 2025)
  • AnyTeleop:统一视觉遥操作框架,支持多臂/多手/仿真/实物
  • 数据质量控制:示教一致性评估、异常轨迹检测、数据增强
  • 遥操作系统选型决策树:任务复杂度 × 成本 × 力反馈需求
  • 从遥操作到自主:人在环(HitL)渐进退出策略
  • 关键项目:tonyzhaozh/aloha、wuphilipp/gello_software、real-stanford/universal_manipulation_interface、Dingry/BunnyVisionPro
  • 关键论文:Chi et al. 2024 (Universal Manipulation Interface)、Qin et al. 2023 (AnyTeleop)
  • 练习:A型——搭建GELLO采集50条双臂抓取数据训练ACT baseline;B型——对比ALOHA vs UMI采集管线的数据效率
  • 共享标记:⚪ 部分共享(retargeting/数据采集与具身智能方向共享)

Part 3: 系统集成与综合实战 (8周)

D09:双臂MoveIt2/ros2_control系统集成 ⭐

摘要:将D01-D08理论落地为可部署ROS2双臂系统——SRDF双臂组、双controller同步、遥操作通信栈集成。

  • 周数:4周
  • 前置依赖:D01-D08全部、M14(MoveIt2基础)
  • 核心知识点
  • 双臂URDF/SRDF设计:planning group拆分(左/右/双臂组)
  • ros2_control双臂硬件接口:两个HardwareInterface同步调度
  • 双Controller Manager:JointTrajectoryController×2 + 协调层
  • MoveIt2 dual-arm planning pipeline:约束规划+同步执行
  • 自碰撞矩阵(ACM)配置与实时更新
  • 遥操作通信栈:ROS2 DDS QoS + 时延补偿节点
  • 实时性保证:RT-Linux + priority调度 + 1kHz控制环
  • 双臂状态机(BehaviorTree.CPP):任务级协调逻辑
  • 多传感器融合:力传感器×2 + 相机×3 + 触觉
  • 调试工具链:rqt + PlotJuggler + Foxglove双臂可视化
  • 关键项目:MoveIt2 dual-arm examples、ros2_control双臂模板、BehaviorTree.CPP dual-arm FSM
  • 关键论文:Coleman et al. 2014 (MoveIt!)、Chitta et al. 2017 (ros_control framework)
  • 练习:A型——配置完整双臂MoveIt2 pipeline实现约束规划demo;B型——ros2_control双臂同步力控节点
  • 共享标记:⚪ 部分共享(MoveIt2/ros2_control通用,双臂配置专属)

D10:综合实战——Mini-DualArm从零搭建 ⭐

摘要:全D系列知识整合——从硬件选型到遥操作采集到策略训练到自主执行的端到端闭环。

  • 周数:4周
  • 前置依赖:D01-D09全部
  • 核心知识点
  • 硬件选型与预算:双臂平台(ALOHA 2/双UR5/双xArm)对比
  • 遥操作设备选型:GELLO / ALOHA leader / VR手柄
  • ROS2系统架构设计:节点图/通信拓扑/QoS策略
  • 双臂标定:手眼标定×2 + 基座相对位姿标定
  • 协调规划模块:D02闭链约束规划集成MoveIt2
  • 协调力控模块:D03 Object Impedance集成ros2_control
  • 遥操作数据采集模块:D08管线 + 数据质量自动评估
  • 策略训练:ACT/Diffusion Policy + 双臂action空间处理
  • 端到端集成测试:感知→规划→控制→学习联调
  • 性能基准:成功率/完成时间/内力精度/遥操作透明度
  • 关键项目:Mini-DualArm完整系统(课程产出)、ALOHA 2开源硬件复现、LeRobot双臂训练
  • 关键论文:Zhao et al. 2024 (ALOHA 2)、Ha et al. 2024 (UMI on Legs)
  • 练习:A型——完成Mini-DualArm搭建并演示3个双臂协调任务;B型——技术报告对比自建系统与ALOHA 2性能
  • 共享标记:❌ 纯双臂/遥操作专属(系统集成方法论通用)

第四篇:前沿专题规划草案 (12-16 周)

本篇聚焦 2023-2026 年机械臂操作领域最活跃的研究方向,每章可独立选修。 当前 F11/F12/D11/D12/M16 均为第四篇规划草案,尚未拆分独立文件;建议至少完成第一至三篇核心内容后再进入。


F11 触觉感知与力控融合(规划草案,尚未拆分独立文件) ⭐⭐⭐⭐

一句话 — 从"盲抓"到"有感觉的手":视觉-触觉多模态闭环操作。

属性 说明
周数 2-3 周
前置依赖 F01 (力控导论)、F04 (笛卡尔阻抗工程)、D08 (数据采集)

核心知识点

  1. 触觉传感原理:光学凝胶型 (GelSight)、电容阵列型、压电薄膜型
  2. GelSight Mini 硬件架构:弹性体 + LED + 鱼眼相机,2D/3D 触觉图重建
  3. DIGIT / Digit 360 传感器:Meta AI 小型化设计,18+ 感知特征通道
  4. AllSight 全向触觉传感器:透明壳体 + 内部相机阵列
  5. 触觉图像预处理:光度立体法 (Photometric Stereo)、法线场重建、接触面积分割
  6. 触觉-视觉融合网络:双流编码器 + Cross-Attention 融合策略
  7. 滑动检测与抓力自适应:光流估计 → 切向力推断 → 闭环力调节
  8. 触觉伺服 (Tactile Servoing):基于触觉误差的雅可比估计与控制
  9. 触觉基础模型:大规模触觉预训练 (Tactile Foundation Models, 2025)
  10. 触觉 Sim-to-Real:TACTO / Taxim 触觉仿真器,域随机化策略
  11. 触觉在精密装配中的应用:Peg-in-Hole、柔性物体操作

关键项目

项目 难度
用 GelSight Mini 采集触觉数据集并训练接触分类器 ⭐⭐
基于 DIGIT 的滑动检测 → 自适应抓力闭环控制 ⭐⭐⭐
视觉-触觉融合抓取:双流网络 + 力控策略 ⭐⭐⭐⭐
触觉引导的 Peg-in-Hole 精密装配 (仿真 + 实物) ⭐⭐⭐⭐

关键论文

  • Lambeta et al., "DIGIT: A Novel Design for a Low-Cost Compact High-Resolution Tactile Sensor" (2020)
  • Wang et al., "GelSight Wedge: Measuring High-Resolution 3D Contact Geometry" (2021)
  • Higuera et al., "Tactile Foundation Models" (2025)
  • Yang et al., "Digit 360: Fingertip-Shaped Tactile Sensor with 18+ Sensing Features" (2024)

练习

  1. 在 TACTO 仿真器中渲染不同纹理的触觉图像,训练 CNN 分类器区分材质
  2. 用 GelSight Mini (或仿真替代) 实现一个滑动检测节点,发布 ROS2 话题
  3. 设计视觉-触觉联合策略,在仿真中完成易碎物体 (鸡蛋) 的拾放任务

F12 接触隐式优化与可微仿真(规划草案,尚未拆分独立文件) ⭐⭐⭐⭐

一句话 — 让优化器"穿透"接触不连续性:可微物理引擎驱动的轨迹优化与策略学习。

属性 说明
周数 2-3 周
前置依赖 M08 (轨迹优化)、M05 (QP/NLP 建模)、M01 (Pinocchio 动力学)、F07 (WBC/QP 基础)

核心知识点

  1. 接触力学基础回顾:Signorini 条件、Coulomb 摩擦锥、互补约束 (LCP/NCP)
  2. 接触隐式轨迹优化 (Contact-Implicit TO):将接触模式作为优化变量而非预设
  3. 互补约束松弛方法:Fischer-Burmeister 函数、对数障碍松弛
  4. Drake Hydroelastic 接触模型:连续可微的压力场接触,适合梯度优化
  5. 可微仿真引擎对比:MuJoCo (隐式微分)、Dojo、DiffTaichi、Warp
  6. 逆动力学轨迹优化 (IDTO):Drake 中 contact-implicit MPC 的高效实现
  7. 通过接触的梯度传播:隐函数定理 vs. 随机平滑 vs. 解析条件
  8. 可微仿真用于系统辨识:从真实轨迹反推摩擦系数、刚度参数
  9. 可微仿真用于策略优化:短视界可微展开 + 长视界 RL 混合
  10. 接触隐式 MPC 实时化:ACAL-iLQR、GPU 并行化策略
  11. 多接触运动发现:无预定义接触序列的四足/双足步态生成

关键项目

项目 难度
在 Drake 中实现 Hydroelastic 接触下的球-平面弹跳轨迹优化 ⭐⭐
用 MuJoCo 可微模式做简单推物任务的系统辨识 ⭐⭐⭐
Contact-Implicit TO 规划机械臂抓取-放置全流程 ⭐⭐⭐⭐
可微仿真 + PPO 混合训练:学习接触丰富的操作策略 ⭐⭐⭐⭐
接触隐式 MPC 实时控制仿真四足行走 ⭐⭐⭐⭐⭐

关键论文

  • Posa et al., "A Direct Method for Trajectory Optimization Through Contact" (IJRR 2014)
  • Howell et al., "Dojo: A Differentiable Physics Engine for Robotics" (2022)
  • Kurtz et al., "Inverse Dynamics Trajectory Optimization for Contact-Implicit MPC" (IJRR 2025)
  • Kim et al., "Contact-Implicit Model Predictive Control for Quadruped" (IJRR 2025)

练习

  1. 在 Drake 中复现一个简单的 contact-implicit 优化示例 (如砖块翻转)
  2. 比较 MuJoCo 与 Drake 在同一推物场景下的梯度精度与求解速度
  3. 将可微仿真集成到 PyTorch 训练循环,端到端学习一个拨物策略

D11 现代遥操作数据管线(规划草案,尚未拆分独立文件) ⭐⭐⭐

一句话 — 从手柄到 VR 到手势:构建高效、可扩展的机器人示教数据工厂。

属性 说明
周数 2 周
前置依赖 D08 (遥操作数据采集)、F04 (笛卡尔阻抗/标定)

核心知识点

  1. 遥操作设备谱系:SpaceMouse → 双臂主从 → VR 手柄 (Quest) → 手套/手势
  2. DROID 数据集架构:Franka Panda + 双 Zed2 + 腕部 Zed Mini + Quest 2 遥操
  3. ALOHA / Mobile ALOHA 系统:低成本双臂主从遥操作,全身移动操作
  4. LeRobot 数据管线:Parquet + MP4 标准格式、Hugging Face Hub 托管与流式加载
  5. LeRobotDataset v3.0:支持 OXE / DROID 大规模数据集的高效读写
  6. 数据质量控制:异常轨迹检测、自动标注成功/失败、人工审核流程
  7. 数据增强与扩展:DemoGen 自动生成示教、视角随机化、动作噪声注入
  8. Open X-Embodiment (OXE):跨具身统一数据格式,RT-X 数据联盟
  9. 多模态数据对齐:时间戳同步、相机-力-关节数据融合
  10. 数据集规模与策略性能的 Scaling Law:从 50 条到 100k 条的效果变化

关键项目

项目 难度
搭建 LeRobot 本地开发环境,加载 droid_100 数据集并可视化 ⭐⭐
用 Quest 2 + ROS2 构建单臂遥操作系统并采集 50 条轨迹 ⭐⭐⭐
将自采数据转为 LeRobotDataset v3 格式并上传 Hub ⭐⭐⭐
实现自动质量筛选脚本:成功率标注 + 异常轨迹过滤 ⭐⭐⭐

关键论文

  • Khazatsky et al., "DROID: A Large-Scale In-The-Wild Robot Manipulation Dataset" (RSS 2024)
  • Zhao et al., "Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware" (RSS 2023)
  • Open X-Embodiment Collaboration, "Open X-Embodiment: Robotic Learning Datasets and RT-X Models" (2024)

练习

  1. 用 LeRobot CLI 下载一个子集,编写 DataLoader 并用 matplotlib 可视化动作分布
  2. 对比不同数据量 (10/50/200 条) 下训练 ACT 策略的成功率变化
  3. 为自己的机械臂设计一套最小遥操作方案 (成本 < 5000 元),撰写硬件 BOM

D12 基础模型与操作策略(规划草案,尚未拆分独立文件) ⭐⭐⭐⭐

一句话 — VLA + Diffusion Policy:用预训练大模型 + 扩散生成驱动通用操作能力。

属性 说明
周数 3-4 周
前置依赖 D04 (双臂学习/ACT)、F09 (学习型力控/Diffusion Policy)、规划草案 D11 (数据管线)

核心知识点

  1. VLA 范式总览:Vision-Language-Action 模型 = VLM 骨干 + 动作解码头
  2. RT-2 / RT-2-X:PaLM-E 驱动的 VLA,将动作离散化为语言 token
  3. Octo:开源通用策略,基于 Transformer 的多任务多具身模型
  4. OpenVLA (7B):Llama2 + DINOv2 + SigLIP,970k 真实示教,开源可微调
  5. OpenVLA-OFT:25-50x 推理加速,支持多视角输入与双臂控制
  6. pi0 / pi0.5 (Physical Intelligence):Flow Matching 连续动作输出,50Hz 控制
  7. Gemini Robotics:Gemini 2.0 VLM 扩展到物理世界,折纸级灵巧操作 8b. pi0.5 (Physical Intelligence, 2025):开放世界泛化, 异构多机器人协同训练, 厨房/卧室长horizon任务 8c. SpatialVLA (RSS 2025):3D自我中心位置编码 + 自适应空间动作网格, 1.1M真实episode训练 8d. 3DS-VLA (CoRL 2025):3D空间感知VLA, 多任务操作泛化
  8. Diffusion Policy:条件去噪扩散过程生成动作序列,比 SOTA 平均提升 46.9%
  9. 3D Diffusion Policy (DP3):点云 3D 表征 + 扩散策略,10 条示教即可泛化
  10. Improved DP3 / FP3:人形操作泛化 + 3D 基础策略
  11. VLA 微调实践:LoRA / QLoRA 在单 GPU 上微调 OpenVLA 到目标任务
  12. 策略蒸馏与部署:大模型 → 小模型蒸馏、On-Device Diffusion Transformer

关键项目

项目 难度
在 LeRobot 中加载预训练 Diffusion Policy 并在仿真任务上评估 ⭐⭐
用 OpenVLA 在自定义任务上做 LoRA 微调 (单 GPU) ⭐⭐⭐
复现 3D Diffusion Policy (DP3):点云输入 + 仿真操作 ⭐⭐⭐⭐
部署 pi0 风格 Flow Matching 策略到真实机械臂 ⭐⭐⭐⭐
多模型对比实验:ACT vs. Diffusion Policy vs. OpenVLA ⭐⭐⭐⭐

关键论文

  • Chi et al., "Diffusion Policy: Visuomotor Policy Learning via Action Diffusion" (RSS 2023)
  • Ze et al., "3D Diffusion Policy: Generalizable Visuomotor Policy Learning" (RSS 2024)
  • Kim et al., "OpenVLA: An Open-Source Vision-Language-Action Model" (2024)
  • Black et al., "pi0: A Vision-Language-Action Flow Model" (Physical Intelligence, 2024)
  • Google DeepMind, "Gemini Robotics: Bringing AI into the Physical World" (2025)

练习

  1. 阅读 OpenVLA 代码,画出从图像输入到动作输出的完整数据流图
  2. 在 SIMPLER 基准上对比 RT-2-X、Octo、OpenVLA 的 zero-shot 成功率
  3. 用 Diffusion Policy 训练 Push-T 任务,可视化去噪过程中动作轨迹的演变

M16 灵巧操作与多指手(规划草案,尚未拆分独立文件) ⭐⭐⭐⭐

一句话 — 从平行夹爪到五指手:高自由度灵巧抓取与操内手操作。

属性 说明
周数 3-4 周
前置依赖 M01 (Pinocchio 动力学)、F09 (学习型力控/RL)、规划草案 F11 (触觉, 推荐)

核心知识点

  1. 多指手硬件谱系:Shadow Hand → Allegro → LEAP Hand (v1/v2) → 软体手
  2. LEAP Hand 设计哲学:低成本 (~$2k-3k)、高灵巧、3D 打印 + 直驱电机
  3. 灵巧手运动学:多指正/逆运动学、接触雅可比、力闭合 (Force Closure)
  4. 抓取规划基础:DexGraspNet 大规模抓取标注、GraspNet 基准
  5. DexGraspNet 2.0:杂乱场景灵巧抓取,427M 标签,90.7% 真实成功率
  6. UniDexGrasp++:几何感知课程学习 + 通才-专家迭代,78.2% 新物体泛化
  7. Sim-to-Real 灵巧操作:大规模并行 RL (Isaac Gym) + 域随机化
  8. 操内手操作 (In-Hand Manipulation):手内物体旋转、重定位、工具使用
  9. 人手动作重定向 (Retargeting):从人手视觉/Mocap 到机器人手的映射
  10. 触觉在灵巧操作中的作用:多指触觉反馈 → 稳定抓取与滑动补偿
  11. 语言引导灵巧抓取:Grasp-as-You-Say,自然语言指定抓取方式

关键项目

项目 难度
在 Isaac Gym 中加载 LEAP Hand 模型,实现基本关节控制 ⭐⭐
用 DexGraspNet 数据训练抓取姿态生成网络 (CVAE) ⭐⭐⭐
Sim-to-Real 灵巧抓取:Isaac Gym 训练 → 真实 LEAP Hand 部署 ⭐⭐⭐⭐
操内手旋转任务:PPO + 触觉奖励,仿真训练并迁移 ⭐⭐⭐⭐⭐

关键论文

  • Shaw et al., "LEAP Hand: Low-Cost, Efficient, and Anthropomorphic Hand" (RSS 2023)
  • Wang et al., "DexGraspNet 2.0: Generative Dexterous Grasping in Cluttered Scenes" (CoRL 2024)
  • Xu et al., "UniDexGrasp++: Improving Dexterous Grasping Policy Learning" (ICCV 2023)
  • Wei et al., "Grasp as You Say: Language-guided Dexterous Grasp Generation" (NeurIPS 2024)
    1. DexCap (RSS 2024):便携式动捕→灵巧手策略, SLAM+EM追踪实现手部运动重定向
    2. AnyRotate (CoRL 2024):重力无关多轴操内手旋转, 稠密触觉策略sim-to-real, 首个手倒置旋转系统
    3. RotateIt (CoRL 2023):视触觉Transformer指尖多轴旋转

练习

  1. 对比 Allegro Hand 与 LEAP Hand 的运动学结构,计算各自的可操作度椭球
  2. 用 DexGraspNet 数据集可视化不同物体类别的抓取姿态分布
  3. 在 Isaac Gym 中实现 LEAP Hand PPO 训练,完成一个立方体旋转任务

附录

附录 A:核心项目总表

全书所有章节项目的统一索引,按难度分级。包含项目名称、所属章节、预计耗时、 所需硬件/软件、前置依赖,以及推荐完成顺序路线图。提供"最小路径"与"完整路径"。

附录 B:论文阅读路线图

按主题分组的论文阅读清单 (60-80 篇),分三层:必读经典、重要扩展、前沿追踪。 每篇标注阅读优先级、预计时间、对应章节及 1-2 句核心贡献摘要。

附录 C:硬件选型指南

面向不同预算的机械臂学习平台选型建议。涵盖机械臂、夹爪/灵巧手、相机、 触觉传感器、计算平台的型号对比、价格区间与适用场景矩阵。

附录 D:数学速查

核心数学工具速查卡:李群/李代数公式、四元数运算、雅可比推导模板、 最优控制推导 (LQR/iLQR)、扩散模型数学 (DDPM/Flow Matching)、KKT 条件。

附录 E:方向交叉地图

六大模块与相邻领域 (CV、NLP/LLM、RL、控制理论、机械设计) 的知识交叉关系图。 标注每个交叉点的推荐学习资源,帮助读者根据自身背景规划个性化学习路径。