RoboDuet 论文阅读:用双策略协作实现四足机器人的全身移动操作
在机器狗背上装一条机械臂,并不等于拥有了一台善于移动操作的机器人。手臂伸向地面时可能碰到前腿,够高处物体时可能遇到关节极限,而底盘为了保持原有姿态,甚至会抵消本来有利于抓取的身体运动。真正需要解决的是:末端执行器要到达某个位姿时,手臂、身体和四条腿应该怎样分配动作。
RoboDuet 给出了一个结构清楚的答案:用两个强化学习策略分别负责腿部和机械臂,让机械臂策略额外输出身体俯仰、侧倾指令,再由腿部策略把这些指令变成稳定的支撑和行走动作。两个策略各有职责,也共享末端操作的训练目标。
我关注的是这个协作接口,以及围绕它设计的训练过程。与统一策略或彼此独立的控制器相比,RoboDuet 明确规定了手臂向腿部传递什么信息,以及腿部为什么有动力配合。
本文依据论文 v5、项目页及官方开源代码展开。原文结果、辅助推导和个人判断会分别说明;涉及实物演示的结论不扩写为自主操作能力,也不把仿真指标当成实机精度。
论文信息与阅读范围
| 项目 | 信息 |
|---|---|
| 论文标题 | RoboDuet: Learning a Cooperative Policy for Whole-body Legged Loco-Manipulation |
| 作者 | Guoping Pan、Qingwei Ben、Zhecheng Yuan 等 |
| 阅读版本 | arXiv:2403.17367v5,版本页面标注日期为 2025-02-08 |
| 发表信息 | 项目页标注 Accepted by RA-L 2025 |
| 研究对象 | 搭载六自由度机械臂的四足机器人 |
| 主要方法 | 双策略协作、两阶段强化学习、阶段间奖励调整 |
| 本文代码口径 | 2026-11-05 获取的官方仓库公开文件,不视为论文实验的冻结代码版本 |
一手材料:项目主页 · v5 论文正文 · v5 PDF · 官方代码 · IEEE 页面。
1. 问题定义:边走边操作,需要身体参与
1.1 硬件有十八个驱动关节,但任务发生在末端
论文主要实验系统由宇树 Go1 Edu 与 ARX5 机械臂组成。Go1 有 12 个腿关节,ARX5 有 6 个臂关节,末端配有平行夹爪。作者给出的机械臂参数是质量 3.35 kg、额定负载 1.5 kg、最大臂展 620 mm;Go1 本体质量为 12 kg。RealSense D435i 安装在夹爪上方,与夹爪保持固定相对位姿。
这些参数解释了为什么全身协调有实际价值。机械臂的臂展有限,身体若能适当倾斜或改变高度,安装基座也会随之移动,从而让原本难以到达的位置变得可达。与此同时,手臂伸展会改变整机质量分布,腿部需要处理随之产生的稳定性问题。
控制目标可以分为两类:底盘跟踪平面移动和转向速度,末端跟踪三维位置与三维朝向。后一类通常称为六自由度或 6D 位姿跟踪。例如抓取杯子,夹爪不仅要靠近杯子,还要以合适的方向接近,单纯的位置跟踪并不足够。
来源:正文 IV-A,第 4 页。
1.2 全身协调为什么能扩大操作能力?
用标准刚体变换关系,可以把末端位姿写成:
$$ {}^{W}T_{E}
{}^{W}T_{B}\, {}^{B}T_{A}\, {}^{A}T_{E}(q_{\mathrm{arm}}) $$这里,$W$ 表示世界坐标系,$B$ 表示机身坐标系,$A$ 表示机械臂安装基座,$E$ 表示末端执行器。机械臂固定安装在背部时,${}^{B}T_A$ 是固定外参,但 ${}^{W}T_B$ 可以由腿部运动改变。
这条关系说明,末端目标既可以通过臂关节变化实现,也可以通过身体位姿变化实现。进一步做局部线性化,有:
$$ \delta x_E \approx J_B\,\delta\xi_B + J_A\,\delta q_{\mathrm{arm}} $$
其中,$\delta x_E$ 是末端局部六维位姿增量,$\delta\xi_B$ 是身体的局部位姿增量,$J_B$ 与 $J_A$ 分别描述身体和臂关节对末端运动的贡献。这是帮助理解的运动学解释,<strong>不是 RoboDuet 在线求解的控制方程</strong>。论文没有在每个控制周期求解上述雅可比优化问题,而是通过强化学习获得动作映射。
还要补上一条物理约束:四足身体不是可以任意移动的六自由度平台。身体运动受足端接触、摩擦、关节范围和电机能力约束。腿部策略的作用,正是把操作所需的身体调整变成能够执行的支撑动作。
1.3 与两类常见方案的区别
一种方案是让底盘控制器负责站稳、走稳,再由机械臂逆运动学或逆动力学控制器完成操作。模块边界清楚,但如果底盘只会保持原姿态,机械臂就无法充分利用身体运动。
另一种方案是训练一个统一策略,同时输出全部腿关节与臂关节动作。它可以直接考虑全身耦合,但行走与操作的学习速度、奖励尺度和探索需求不同,训练中可能相互干扰。
RoboDuet 选择了中间结构:保留两个策略的分工,同时建立一个低维、物理含义明确的协作通道。论文把这种协作称为“二重奏”,名称中的 Duet 由此而来。
2. 方法核心:手臂策略向腿部策略提出姿态要求

图 1:论文原图 2。第一阶段固定机械臂并训练腿部策略;第二阶段启用手臂策略,以姿态引导信号连接两个策略。图片来源:RoboDuet v5,图 2,版权归原作者。
2.1 腿部策略接收什么、输出什么?
腿部策略记为 $\pi_{\mathrm{loco}}$。它跟踪的目标指令是:
$$ c_t= \left[ v_x^{\mathrm{cmd}}, v_y^{\mathrm{cmd}}, \omega_{\mathrm{yaw}}^{\mathrm{cmd}}, \phi_{\mathrm{pitch}}^{\mathrm{cmd}}, \phi_{\mathrm{roll}}^{\mathrm{cmd}} \right] $$
前三项分别表示机身坐标系下的平面速度和偏航角速度,后两项表示希望机身达到的俯仰角、侧倾角。
正文 III-A 列出的主要观测如下:
| 观测 | 物理含义 |
|---|---|
| $s_t^{\mathrm{leg}}\in\mathbb{R}^{24}$ | 12 个腿关节的位置和速度 |
| $\boldsymbol{\phi}_t$ | 机身 roll、pitch |
| $c_t$ | 速度与身体姿态目标 |
| $\mathbf{t}_t$ | 四条腿的步态时钟 |
| $a_{t-1}^{\mathrm{leg}}\in\mathbb{R}^{12}$ | 上一时刻腿部动作 |
输出 $a_t^{\mathrm{leg}}\in\mathbb{R}^{12}$ 是十二个腿关节的位置偏移。偏移叠加到默认关节位置后形成位置目标,再由比例—微分控制器跟踪。这里的策略输出并非直接作用于电机的力矩。
这些是论文正文对观测内容的描述,不能仅靠相加就认定当前代码的网络输入宽度。历史观测拼接和额外配置可能改变最终张量维数,归一化还会改变数值尺度,复现时应沿实际数据流核对。
2.2 手臂策略为什么有八维动作?
手臂策略 $\pi_{\mathrm{arm}}$ 读取臂关节位置和速度、目标末端位姿、机身姿态,以及上一时刻的手臂动作。它的输出分成两部分:
$$ a_t^{\mathrm{arm}}
\left[ a_t^{\mathrm{arm}^{J}}, a_t^{\mathrm{arm}^{G}} \right], \qquad a_t^{\mathrm{arm}^{J}}\in\mathbb{R}^{6}, \quad a_t^{\mathrm{arm}^{G}}\in\mathbb{R}^{2} $$前六维对应六个臂关节的位置目标偏移;后两维是机身姿态引导,分别对应 pitch 和 roll。它们会替换腿部策略输入中的两个身体姿态指令。
因此,手臂策略可以同时表达两类动作:“机械臂关节应该怎样转”和“为了让末端更容易到达,身体应该怎样倾斜”。腿部策略负责实现第二类要求,并兼顾速度跟踪与支撑稳定。
论文 III-A 对这一连接的描述是:
“is used to replace … providing additional degrees of freedom for pose tracking to cooperate with the loco policy.”
省略处是原文的身体姿态命令符号。其含义是:手臂策略的引导输出替换身体姿态命令,为末端跟踪提供来自身体运动的额外调节能力。
这里没有多出两个物理关节。系统仍然控制 12 个腿关节与 6 个臂关节;两个引导量属于策略之间的接口,而不是额外电机。夹爪也不应被混算进这六个臂关节输出。
来源:正文 III-A,第 2—3 页。
2.3 协作的方向与执行顺序
显式通信的方向是手臂策略到腿部策略。手臂策略并没有通过同一接口直接发出新的行走速度、偏航速度或身体高度指令。身体高度可以在腿部控制中调整,但论文的两维引导接口只负责 pitch 和 roll。
根据当前公开训练循环,一次采样步的主要顺序可以概括为:
- 手臂策略根据观测产生八维动作。
- 把末尾两维交给环境的姿态引导接口。
- 构造包含新姿态指令的腿部观测,计算十二维腿部动作。
- 将十二维腿部动作与六维臂关节动作交给同一次环境步进。
- 环境返回新观测、两个策略各自的奖励以及终止信息。
它不是先完成一次手臂运动,再让机器狗补偿。两部分关节目标在同一个控制周期执行。正文给出的训练与部署控制频率均为 50 Hz,即每个策略周期约 20 ms;这不意味着电机内部控制环也只能以 50 Hz 运行。
虽然显式引导主要是单向的,物理影响却是双向的:手臂运动改变身体负载,身体运动改变末端位姿。两个策略通过环境反馈和共同的末端奖励形成协作。
2.4 这和冻结底层的分层控制有什么不同?
仅从接口看,RoboDuet 有分层控制的特点:手臂策略向腿部策略下发身体姿态要求。但它不只是“上层网络加一个永远不变的行走模块”。在第二阶段,腿部策略继续更新,适应活动机械臂带来的负载变化,也学习为操作任务调整自身行为。
我更愿意把它理解为一种带有层级接口的协作控制结构:接口简化了两个策略之间的信息交换,但训练并未切断它们之间的适应关系。
3. 位姿、坐标系与维数:几个容易读错的地方
3.1 六自由度任务,为什么输入是九维?
论文将目标末端位置表示为球坐标 $(l,p,y)$,分别对应半径、纬度角和经度角;旋转则使用六维连续旋转表示。因此,目标输入为:
$$ \chi_t= \left[l,p,y,\rho_1,\rho_2,\rho_3,\rho_4,\rho_5,\rho_6\right] \in\mathbb{R}^{9} $$
其中 $\rho_1,\ldots,\rho_6$ 是本文为便于解释使用的旋转编码记号。六维旋转表示用六个数编码一个三维旋转,并不增加旋转的物理自由度。常见构造保留旋转矩阵的两个基向量,再通过正交化恢复完整旋转;实现中的行列约定必须保持一致。
所以这里应区分三件事:任务有六个自由度,网络用九个数表示目标,手臂策略输出八个动作数值。这三种维数对应三个不同层次。
3.2 采样表示、网络表示与奖励表示不是同一层
正文 III-B2 使用欧拉角进行朝向采样,并按式(5)构造旋转矩阵:
$$ R=R_{\mathrm{yaw}}R_{\mathrm{pitch}}R_{\mathrm{roll}} $$
随后,一方面将旋转编码成供网络使用的六维表示,另一方面使用由旋转矩阵分量构造的角度量计算奖励。不能因为网络使用六维连续表示,就推断奖励一定直接计算完整旋转空间上的测地距离。
欧拉角采样便于限制目标朝向范围,但只限制角度范围,并不能保证每个采样目标都满足整机的可达性与无碰撞约束。这一点也与论文后面指出的“评估空间包含不可达目标”相吻合。
当前代码的角度计算使用 <code>atan2</code>,正文式(6)则写为反正切比值形式,符号排列也需要逐轴核对。复现时应使用明确旋转矩阵、已知朝向样例检查轴顺序和象限,而不能仅按函数名猜测约定。
3.3 “不受身体姿态影响”不等于“固定世界坐标”
论文使用 posture-independent spherical coordinate 来定义目标,目的是减少机身旋转对目标定义的影响。当前公开代码中的位置转换只使用机身 yaw,而不是完整的 roll、pitch、yaw 旋转;垂直方向还涉及地形高度参考与固定偏置。
这种定义允许机身前倾、侧倾去帮助操作,而不会让目标方向简单地跟着机身一起倾斜。不过,它仍与机器人平面位置和航向有关,不能直接解释成世界系中的绝对定点。
假如上层任务要求机器人行走时让夹爪始终停在同一个世界点,就必须根据机器人当前状态,把该世界目标转换成策略约定下的目标。否则,固定不变的策略输入,可能对应一个随底盘平移或转向而变化的世界目标。
这也是阅读此类论文时值得单独核查的地方:<strong>目标在哪个坐标系里定义,决定了“保持目标不变”在物理上究竟是什么意思。</strong>
4. 两阶段训练:先学会带着手臂走,再学会一起操作
4.1 第一阶段固定的是机械臂,不是把机械臂移除
第一阶段中,机械臂关节固定在默认姿态 $[0,0.8,0.8,0,0,0]$,手臂策略不启用,末端目标置零。腿部策略在装有机械臂的整机模型上训练,从一开始就面对附加质量和惯量。
这是一个重要区别。如果先在没有机械臂的机器狗上训练,再直接装上手臂,控制器面对的质量分布已经改变。RoboDuet 的预训练至少保留了静态机械臂带来的负载条件,再在下一阶段处理机械臂活动后的动态影响。
这一阶段沿用 Walk These Ways 的部分训练思路,并收紧了步态设置。足间相位偏移设为 $[0.5,0,0]$,形成对角小跑;步频设为 3 Hz,摆腿高度设为 0.06 m。速度为零时,步态时钟设为 $[1,1,1,1]$,用于抑制原地踏步,减少对静止操作精度的影响。
作者还移除了身体高度跟踪奖励。身体不再被要求始终贴着一个固定高度目标,这为之后利用腿部调整操作姿态留出了空间。但这项设置并不意味着机器人失去了稳定性或终止约束。
4.2 机械功率惩罚在做什么?
机械臂带来的额外负载会提高腿部驱动需求。论文式(4)引入:
$$ r_{\mathrm{energy}}^{\mathrm{loco}}
-0.00004 \sum_{i\in\mathrm{leg\ joints}} \left|\tau_i\dot q_i\right|^2 $$其中 $\tau_i$ 是关节力矩,$\dot q_i$ 是角速度。两者乘积对应关节机械功率,平方形式对大幅瞬时功率的惩罚更强。
作者将其与减轻电机过热问题联系起来,但需要注意物理边界:机械功率惩罚不是电机热模型,也不等于铜耗约束。尤其在高力矩、低速度甚至近静止的情况下,机械功率可能很小,而电流引起的发热仍然存在。因此,这个奖励可以作为训练中的节能与动作约束手段,不能代替真实硬件的电流、温度和持续负载限制。
这是根据奖励形式得到的工程解释,并非论文报告了额外的温升测量。
4.3 第二阶段不是冻结腿部、只训练手臂
第二阶段启用手臂策略并释放臂关节,同时继承第一阶段的腿部策略参数。论文图 2 的说明明确写道:
“In Stage 2, the loco and arm policies are trained simultaneously in a cooperative manner.”
中文意思是:第二阶段中,腿部和手臂策略以协作方式同时训练。当前公开训练循环中,阶段切换后会更新手臂 PPO,腿部 PPO 也继续更新,与这一描述一致。
因此,第一阶段提供的是初始化和行走先验,而不是一个永久冻结的低层控制器。腿部策略会在第二阶段适应手臂运动,并学习在稳定性、速度要求和末端任务之间重新分配动作。
来源:论文图 2,第 3 页。
4.4 转阶段时为什么还要改奖励?
对普通行走有利的落足偏好,可能妨碍全身操作。如果腿部坚持某种固定的落足布局,身体就难以为末端目标调整姿态。论文在转阶段时修改了以下奖励权重:
| 奖励项 | 第一阶段权重 | 第二阶段权重 | 调整目的 |
|---|---|---|---|
| Raibert 启发式落足跟踪 | −10.0 | 0.0 | 减少对操作所需落足调整的限制 |
| 髋关节动作约束 | 0.0 | −0.05 | 约束过大的髋关节动作 |
| 平面速度跟踪 | 1.0 | 0.5 | 为操作任务留出权衡空间 |
| 偏航角速度跟踪 | 0.5 | 0.25 | 降低对转向跟踪的相对强调 |
| 手臂动作平滑 | 0.0 | −0.1 | 减少动作突变 |
| 身体姿态引导一致性 | 0.0 | −10.0 | 约束引导姿态与实际姿态的差异 |
表 1:摘自原文表 I。它是关键调整项,不是完整奖励列表。权重的数值大小必须结合对应误差的定义与归一化方式理解,不能单凭“−10 比 −0.1 大”就比较实际作用强弱。
我认为,这部分比“先走路、再操作”的概括更有复现价值。训练阶段改变后,原来有利的行为偏好可能变成限制,需要调整奖励才能让预训练能力服务于新任务。
5. 共享末端奖励:腿部为什么愿意帮助机械臂?
如果腿部只因走得稳获得奖励,手臂运动对它而言主要是扰动。RoboDuet 在第二阶段把末端位姿跟踪奖励同时用于两个策略,让身体帮助末端到达目标也能获得训练收益。
原文式(7)为:
$$ r_{\chi_t}
e^{-w\Delta(l,p,y)} \cdot e^{-\Delta(\alpha,\beta,\gamma)} $$式(8)分别定义位置和朝向误差:
$$ \Delta(l,p,y)
\sum_{u\in{l,p,y}} k_u\left|u_t-u^{\mathrm{cmd}}\right| $$$$ \Delta(\alpha,\beta,\gamma)
\sum_{u\in{\alpha,\beta,\gamma}} k_u\left|u_t-u^{\mathrm{cmd}}\right| $$$k_u$ 是对应变量采样范围的倒数,用于缩放不同变量的误差;$w$ 调节位置误差和朝向误差的相对重要性。这里的 $\alpha,\beta,\gamma$ 是论文从旋转矩阵构造的角度量,不应直接视为未经转换的输入欧拉角。
将两个指数合并,可以得到等价形式:
$$ r_{\chi_t}
\exp\left[-w\Delta_{\mathrm{pos}}-\Delta_{\mathrm{ori}}\right] $$这说明位置与朝向误差共同决定奖励。只把末端位置移对、但保留较大朝向误差,奖励仍然受到抑制。归一化则避免直接把米与弧度按原始数值相加。
从优化角度看,指数形式在大误差区间可能给出较弱的奖励变化,在接近目标时区分得更细。这个性质有助于理解训练难度,但并不能单凭公式证明训练是否收敛;实际结果还取决于目标采样、其他奖励、初始化和 PPO 更新。
正文对此有一句直接说明:
“The target pose tracking reward … is utilized for both the loco and arm policies in stage 2.”
中文释义:第二阶段的末端目标位姿跟踪奖励同时用于腿部与手臂策略。两个策略并非只共享一个输入接口,它们还共享一部分任务评价。
6. 训练与评估设置:先弄清数字是在什么条件下得到的
6.1 训练规模与网络
| 项目 | 论文设置 |
|---|---|
| 仿真环境 | Isaac Gym |
| 优化算法 | PPO |
| 并行环境数 | 4096 |
| 总迭代数 | 50,000 |
| 两阶段预算 | 第一阶段 10,000;第二阶段 40,000 |
| 随机种子 | 3 个 |
| 协作策略隐藏层宽度 | 512、256、128 |
| 隐藏层激活 | ELU |
| 训练框架 | 非对称 actor–critic |
| 硬件 | NVIDIA RTX 4090 |
| 控制频率 | 训练、部署均为 50 Hz |
所有比较算法使用相同的总迭代预算。统一策略共享特征提取器,作者将其隐藏层宽度加倍,避免仅以一个明显更窄的统一网络作为比较对象。不过,“加倍宽度”并不自动意味着参数量、计算量或优化难度严格相等。
非对称 actor–critic 允许训练中的价值估计利用额外信息。当前公开实现还包含历史观测编码和特权信息估计模块。理解方法时可以从双策略框架入手,但真正复现时,不能把这些输入处理与训练模块全部省略后仍声称配置一致。
论文给出了 GPU 型号和迭代数,不能据此直接推断训练需要多少小时;并行环境数也不是实机样本数。
来源:正文 IV-C。
6.2 评估范围比训练范围更大
作者在评估阶段随机均匀采样 200,000 组目标指令。部分范围如下:
| 变量 | 训练范围 | 评估范围 |
|---|---|---|
| 前后速度 $v_x$ | $[-1.0,1.0]$ m/s | $[-1.5,1.5]$ m/s |
| 偏航角速度 $\omega_z$ | $[-0.6,0.6]$ rad/s | $[-1.0,1.0]$ rad/s |
| 球坐标半径 $l$ | $[0.30,0.70]$ m | $[0.20,0.80]$ m |
| 纬度角 $p$ | $[-0.45\pi,0.45\pi]$ | $[-0.50\pi,0.50\pi]$ |
| 经度角 $y$ | $[-0.50\pi,0.50\pi]$ | $[-0.50\pi,0.50\pi]$ |
表 2:原文表 II 的部分采样范围。朝向变量也有范围扩展,完整值见原表。这里的半径是目标坐标表示中的量,不能直接当成机械臂标称臂展。
这种评估检查了有限范围的外推能力,但不等于对所有空间位置、所有旋转和所有速度组合给出保证。作者明确指出,采样中存在由机械结构决定的不可达目标。
6.3 各项指标分别意味着什么?
| 指标 | 原文评估含义 | 不应作出的外推 |
|---|---|---|
| 速度误差 | 目标与实际 $v_x,v_y,\omega_{\mathrm{yaw}}$ 的差异 | 不能直接代表导航精度 |
| 位置误差 | 球坐标分量误差及欧氏距离 $D$ | 不能把某个分量误差当作总位置误差 |
| 朝向误差 | 三个角度量及四元数测地距离指标 $\zeta$ | 不应在缺少定义换算时任意改成角度 |
| 生存率 | 指定外力扰动后,身体高度维持在阈值以上的比例 | 不是任意碰撞下的安全率 |
| 可解性 | 结合目标到达与过程无碰撞评价的比例 | 不只是 IK 是否返回数值 |
| 工作空间 | 满足误差与无自碰撞条件的目标形成的凸包估计 | 不保证凸包内部每种位置与朝向都可达 |
抗扰实验对机身施加 10—20 N 的随机外力,持续 2 秒;生存判据是机身高度高于 0.26 m。目标跟踪评估允许最多 4 秒到达目标,再统计随后 2 秒的平均误差。
正文 IV-E 的成功判据为位置误差 $D\leq0.03$ m,朝向相关夹角 $\theta\leq\pi/36$,也就是 5°,并要求过程无自碰撞。这里的 $\theta$ 定义为同一单位向量经目标旋转和实际旋转作用后的夹角。
需要特别注意:一个方向向量不能唯一确定完整三维旋转。如果两个旋转只在该方向的轴向扭转上不同,方向向量仍可能一致。因此,<strong>这个 5°阈值不能直接等同于完整 SO(3) 旋转误差不超过 5°</strong>。这是对评估定义的几何分析,不是在否认论文同时提供的其他朝向指标。
工作空间也有相似的解释边界。凸包会包住中间孔洞,不保留所有障碍物和姿态约束;它适合概括空间覆盖能力,但不是一张可直接用于规划的无碰撞可达地图。原文表格以 m³ 报告这一指标,下文按体积解释。
7. 仿真消融:双策略改善操作,两阶段训练改善稳定性
作者用四种学习设置区分两个主要设计的作用:
| 方法 | 协作双策略 | 两阶段训练 |
|---|---|---|
| Unified | 否,统一策略含两个输出头 | 否 |
| Two-Stage | 否 | 是 |
| Cooperative | 是 | 否 |
| RoboDuet | 是 | 是 |
正文中 Cooperative 也写作 Cooperated,本文统一使用表 III 的 Cooperative。
7.1 静止模式:完整方法不是每项精度都最高
原文表 III 的静止模式中,所有速度指令为零。摘取几个最有解释力的指标:
| 方法 | 末端位置误差 $D$(cm)↓ | 生存率(%)↑ | 工作空间(m³)↑ |
|---|---|---|---|
| Unified | 14.47 ± 0.01 | 87.35 ± 0.78 | 0.5136 ± 0.0046 |
| Two-Stage | 13.84 ± 0.01 | 95.66 ± 0.06 | 0.6010 ± 0.0005 |
| Cooperative | 10.79 ± 0.01 | 94.49 ± 0.03 | 0.8408 ± 0.0006 |
| RoboDuet | 11.08 ± 0.00 | 98.20 ± 0.01 | 0.8579 ± 0.0002 |
表 3:原文表 III 的摘录与单位转换。位置误差和工作空间已恢复表头的 $10^{-2}$ 缩放,生存率保留原表百分比。原表的“±”及舍入精度按原样保留,不将其自行解释为置信区间;“±0.00”也不表示真实波动严格为零。
从 Unified 到 Two-Stage,平均位置误差只从 14.47 cm 降至 13.84 cm,但生存率从 87.35% 提高到 95.66%。这个对比更支持“行走预训练增强稳定性”,而不是“分阶段本身显著提高末端精度”。
从 Unified 到 Cooperative,位置误差降至 10.79 cm,工作空间也明显增大,说明双策略协作与操作能力改善相关。加入两阶段训练后的 RoboDuet 达到最高生存率,但位置误差为 11.08 cm,略高于 Cooperative。
因此,我对消融的解读是:RoboDuet 用少量精度上的折中换取了更稳健的全身行为。不能把结果写成“完整方法在所有指标上都最好”。作者也将 Cooperative 更小的位置误差解释为缺少第一阶段步态先验后,能够采取更激进的动作,但相应稳定性下降。
7.2 移动模式:操作表现没有因行走而完全消失
在随机速度指令下,原表报告:
| 方法 | 末端位置误差 $D$(cm)↓ | 生存率(%)↑ | 工作空间(m³)↑ |
|---|---|---|---|
| Unified | 13.56 ± 0.02 | 93.03 ± 1.34 | 0.7896 ± 0.0004 |
| Two-Stage | 13.05 ± 0.01 | 99.09 ± 0.01 | 0.8130 ± 0.0002 |
| Cooperative | 10.58 ± 0.00 | 98.56 ± 0.02 | 0.8671 ± 0.0001 |
| RoboDuet | 10.75 ± 0.00 | 99.96 ± 0.00 | 0.8705 ± 0.0001 |
表 4:原文表 III 的移动模式摘录,缩放与统计记号处理同表 3。
这组结果支持同时行走和操作的可行性,但并不说明行走一定提高操作精度。静止与移动模式具有不同状态分布,工作空间变化也不能简单理解为同一位置上的纯机械臂能力增加。
来源:原文表 III,第 6 页。
7.3 为什么平均误差约 11 cm,却又出现 3 cm 成功阈值?
这两个数字描述不同统计对象。3 cm 是筛选成功目标和构造工作空间时使用的阈值,而约 11 cm 是表 III 在其评估采样设置下报告的平均位置误差。论文还说明评估空间含有物理不可达目标。
所以,不能把工作空间筛选阈值改写为“RoboDuet 对任意目标都能达到 3 cm 精度”;也不能只看到整体平均误差,就断言它对每个可达目标都存在 11 cm 偏差。若要判断某个精密操作任务是否适用,还需要看该任务范围内的条件误差、失败率、瞬态误差和真实硬件结果。
对控制系统而言,位置误差的平均值只是一个切面。目标分布、可达性、响应速度和失败时的行为,都会影响实际用途。
8. 真实机器人实验:哪些任务确实做到了?
8.1 极端位姿:无解时能否保持稳定?
作者挑选了五个目标位姿,每个位姿重复八次。其中四个是极端配置,包括靠近地面、可能与腿部相交、超过训练高度范围,以及接近最大臂展且朝向苛刻的目标。部分目标本身不可达。
| 方法 | 自碰撞率 | IK 失败率 |
|---|---|---|
| FB+IK | 50% | 60% |
| RoboDuet | 5% | 不适用 |
表 5:原文表 V。FB+IK 使用不具备操作导向全身协调的底盘策略和机械臂 IK;RoboDuet 不使用相同的 IK 求解流程。
作者还将部分倾倒情形纳入这里的自碰撞失败口径。因此,读取 50% 与 5% 时,应保留它们在这个特定实验中的定义,而不能直接当成日常运行的碰撞概率。
RoboDuet 在不可达目标附近能够给出稳定的近似动作,这是有用的行为。但论文中的“接近最优近似解”不应被读成数学上的全局最优证明。它没有消除机械臂的几何限制,也没有因为不调用 IK,就获得 100% 的目标到达率。
8.2 跨高度搬运:为什么高处任务更能体现全身控制?
搬运实验包含四个高度:地面 0 cm、露营椅 20 cm、柜子 60 cm,以及站立桌杯架 100 cm。每种高度转换由三位操作者各进行五次试验,共 15 次。
成功条件是抓起物体并转移到下一高度,整个过程中不掉落。操作者用右 VR 手柄控制系统速度,用左手柄控制末端。
| 方法 | 0→20 cm | 20→60 cm | 60→100 cm | 100→0 cm | 总计 |
|---|---|---|---|---|---|
| FB+IK | 3/15 | 7/15 | 0/15 | 0/15 | 10/60 |
| AFB+ID | 9/15 | 13/15 | 6/15 | 4/15 | 32/60 |
| RoboDuet | 10/15 | 12/15 | 8/15 | 9/15 | 39/60 |
表 6:原文表 VI。AFB+ID 使用自适应浮动基座与基于逆动力学的手臂控制,对应作者采用的较强实物基线。
最高处任务要求机械臂在接近最大伸展范围时,仍维持水平或俯视的夹爪朝向。这时,适当调整机身倾角可以同时改变安装基座位置和机械臂所需关节配置,因而更能体现身体参与的价值。
数据也显示了任务差异:RoboDuet 在 20→60 cm 上不是最好,而在 100→0 cm 上从基线的 4/15 提高到 9/15。全身控制的收益并非对所有高度、所有操作都一样大。
8.3 “成功率提高 23%”如何复算?
项目页和论文摘要使用了约 23% 的提升表述。不过,按照表 VI 总计:
$$ P_{\mathrm{AFB+ID}}=\frac{32}{60}\approx53.33\%, \qquad P_{\mathrm{RoboDuet}}=\frac{39}{60}=65.00\% $$
绝对差为:
$$ 65.00\%-53.33\%\approx11.67\text{ 个百分点} $$
相对提升为:
$$ \frac{39/60-32/60}{32/60} =\frac{7}{32} \approx21.88\% $$
因此,<strong>按表中全部试验计数,能够直接复算的是约 11.7 个百分点的绝对提升,或约 21.9% 的相对提升</strong>。这与 23% 接近,但不完全一致。文中没有给出足以让我从这张表精确复现 23% 的额外口径,本文保留这一差异,不自行补造解释。
样本规模也需要保留:每类任务只有 15 次,且由三位操作者完成。结果可以支持这些任务设置下的经验优势,但仅凭总计不能推出对所有操作者、物体和场景都稳定成立的提升,也不能自动得到统计显著性。
8.4 项目演示与系统自主性是两回事
项目页还展示了开门、坡面与碎石地面运动、物体抓取和离散目标跟踪等应用。它们说明这个低层控制器可以支撑多种任务形式,但不能据此认定系统会自主理解场景、选择目标、生成抓取和规划路径。
特别是搬运实验,正文明确说明使用 VR 操作。机器人上的 D435i 也不能自动推出“视觉端到端控制”:论文的核心策略输入是状态与目标指令,是否包含视觉感知、由谁产生目标,需要单独核查。
本文对这些演示的说明依据项目页文字和论文,不把演示片段当成额外的定量评测,也不据此推断未报告的成功率。
9. 零样本迁移:相近平台可用,但性能并非完全不变
作者将 Go1+ARX5 上训练的策略直接迁移到其他四足平台,检查在不重新训练的情况下是否仍能控制整机。仿真包括 Go2+ARX5 与 A1+ARX5:
| 平台 | 静止工作空间(m³) | 移动工作空间(m³) | 静止生存率 | 移动生存率 |
|---|---|---|---|---|
| Go1+ARX5 | 0.8579 | 0.8705 | 98.20% | 99.96% |
| Go2+ARX5 | 0.8552 | 0.8216 | 96.32% | 93.21% |
| A1+ARX5 | 0.8416 | 0.8121 | 97.07% | 94.34% |
表 7:原文表 IV。这里的生存率沿用指定外力扰动和身体高度判据,属于仿真结果。
迁移后静止工作空间比较接近,但运动状态下,Go2 和 A1 的工作空间与生存率都出现下降。这说明策略对相近平台差异有容忍度,也说明源平台上的训练仍然带来了特定适配。
真实实验展示了 Go1+ARX5 到 Go2+ARX5 的迁移。正文 V-B3 报告两套系统总质量分别为 18.35 kg 与 21.05 kg,相差 2.7 kg,约增加 14.7%。这是该实验报告的系统总质量,不应与前文 Go1 本体及机械臂的单项质量简单混算。
论文对迁移范围有明确限定:形态和物理尺寸相近的四足机器人。这里没有证明可以直接换成明显不同的腿部结构、任意长度的机械臂或人形机器人。
现有结果还不足以把迁移能力完全归因于“双策略”。若要分离架构、训练随机化和平台相似性各自的贡献,还需要更针对性的对照实验。
来源:正文 V-A3、表 IV,以及 V-B3、图 7,第 8 页。
10. 论文没有解决的部分
10.1 低层控制之外仍有一整套自主系统
论文讨论部分明确写道:
“While RoboDuet focuses on low-level whole-body control, achieving fully autonomous task execution will require integration with high-level planners and advanced collision detection.”
中文释义:RoboDuet 聚焦低层全身控制;完整自主任务执行仍需要集成高层规划器与更完善的碰撞检测。
因此,它并未直接解决物体识别、抓取候选选择、长时序任务规划或环境级避障。一个控制器能够稳定跟踪给定目标,与系统能够自行决定正确目标,是不同层次的问题。
10.2 位姿跟踪不能代替精确接触力控制
RoboDuet 的主要输出是关节位置目标,优化重点是速度与末端位姿跟踪。开门演示说明它能参与某些接触任务,但不足以证明具有精确接触力调节、统一阻抗控制或对任意门阻力的适应能力。
如果任务涉及精密插装、持续推压或脆弱物体处理,还需要单独评估接触力、顺应性和失配后的行为。不能把一类接触演示泛化成完整力控能力。
10.3 复杂地形上的移动操作仍受限制
作者承认,现有方法能够在坡面、碎石等地形上维持固定目标姿态,但尚未实现更复杂地形,例如楼梯上的移动操作。
从台阶附近抓取物体,与边上下楼梯边完成操作,不是同一个任务。后者同时增加了落足规划、支撑切换和末端任务之间的耦合难度。
10.4 精度、约束与稳定性没有形式化保证
平均位置误差仍处于厘米至十厘米量级,且性能与目标分布有关。全身控制带来的工作空间扩展,也不等于已经满足精密装配需求。
训练中的自碰撞惩罚、关节约束与抗扰奖励可以改善行为,但不能替代对所有状态的安全证明。本文展示的稳定近似行为尤其需要与“保证不碰撞”“保证不过热”“保证满足目标”区分。
来源:正文 VI,第 8 页。
11. 从开源实现看复现:哪些细节不能省略?
官方仓库提供 Isaac Gym 训练代码,并另有部署仓库。README 的环境路线是 Python 3.8 与 Isaac Gym Preview 4;这不是可以不经适配就直接运行的 Isaac Lab 项目。
在本次阅读中,代码主要用于交叉检查三个问题:姿态引导信号怎样传入腿部策略,第二阶段是否更新腿部网络,以及目标坐标如何变换。相关入口包括:
| 文件 | 核查内容 |
|---|---|
| <code>scripts/auto_train.py</code> | 训练入口、阶段切换设置与配置覆盖 |
| <code>go1_gym_learn/ppo_cse_automatic/__init__.py</code> | 手臂先生成引导、腿部再计算动作的采样顺序,以及两个 PPO 的更新 |
| <code>arm_ac.py</code> | 手臂网络、历史编码与特权信息估计结构 |
| <code>legged_robot.py</code> | 目标采样、坐标变换、观测与环境步进 |
| <code>rewards.py</code> | 位姿跟踪及姿态引导奖励的计算 |
这些链接指向可变化的 <code>master</code> 分支,本文记录的是 2026-11-05 获取的文件快照。当前代码有历史观测、配置覆盖等实现细节,不能假定与论文训练时的每个参数完全相同;本文也没有运行训练或实机验证。
若真正复现,我会按以下顺序核对:
- <strong>机器人模型与执行语义。</strong> 先检查关节顺序、零位、动作缩放、位置目标和 PD 参数,再谈策略迁移。仅有“同样十八个关节”远远不够。
- <strong>目标坐标和旋转约定。</strong> 用明确的前、后、左、右、上、下目标及已知旋转检查转换;世界系目标、机身 yaw 对齐目标和完整机身系目标不能混用。
- <strong>观测历史与网络输入。</strong> 追踪实际运行路径中的张量宽度、历史窗口和特权信息估计,避免只照正文列出的状态拼接一个表面相似的输入。
- <strong>阶段切换和奖励覆盖。</strong> 检查手臂何时解锁、腿部是否继续更新,以及第二阶段是否真的使用对应奖励权重。
- <strong>评估口径。</strong> 统一目标分布、到达时间、误差统计窗口、不可达目标处理和碰撞判据,最后再比较成功率与工作空间。
这份清单属于工程复现建议,不是本文已经完成的复现实验。它也解释了为什么一张方法框架图不足以交付可用策略:模型、观测、动作和评估契约共同决定最终行为。
12. 我的评价:贡献在于可学习的协作接口
RoboDuet 给出了一个值得借鉴的设计:当两个子系统的任务不同,却又通过物理系统强烈耦合时,可以保留各自的策略,并用低维、含义清楚的指令建立协作。手臂不需要直接决定十二个腿关节应该怎样运动,只需要提出身体姿态要求;腿部也不必在全部手臂细节中寻找行动依据。
但接口本身还不够。第二阶段继续更新腿部策略、让两个策略共享末端奖励,以及移除不利于操作的落足偏好,这些设计共同使接口变得有用。若只保留“两个网络”,却冻结一个不合适的底层策略,或者让两个网络优化互不相关的目标,未必能得到类似结果。
实验支持的结论也比较具体:协作结构改善了大范围位姿跟踪与工作空间,两阶段训练改善了指定扰动下的稳定性,真实搬运任务体现了全身参与的收益,相近四足平台之间存在一定的零样本迁移能力。
它尚未证明对任意目标都有高精度跟踪,完整自主操作、复杂地形和接触条件下的控制也仍有缺口。这些限制决定了目前适合怎样使用它。
对我而言,这篇论文最有价值的启发是:<strong>全身协调可以通过有意义的策略接口和共同训练目标学出来,而不必预先把所有身体补偿动作写成规则。</strong> 同时,这种结构化学习仍然需要精确的坐标约定、动作语义与评估口径,才能从论文中的演示变成可复现的工程系统。
参考资料与结论索引
- Pan, G., Ben, Q., Yuan, Z., et al. RoboDuet: Learning a Cooperative Policy for Whole-body Legged Loco-Manipulation. arXiv:2403.17367v5,本文主要依据版本。
- RoboDuet 项目主页,用于核对发表状态、项目概述与演示任务说明。
- RoboDuet 官方训练仓库,用于交叉检查控制与训练数据流。
- RoboDuet Deployment,官方 README 指向的部署项目;本文未验证其运行结果。
| 本文关键结论 | 证据位置 | 结论性质 |
|---|---|---|
| 手臂策略输出六维关节动作和两维身体姿态引导 | III-A、图 2 | 论文直接陈述 |
| 第二阶段继续训练腿部与手臂策略 | 图 2、III-B;公开训练循环 | 论文与实现交叉核对 |
| 网络目标位姿编码为九维 | III-A2、III-B2 | 论文直接陈述 |
| 身体运动可以通过运动学链影响末端 | 本文第 1.2 节 | 辅助推导,非论文在线求解器 |
| 双策略与两阶段训练对精度、稳定性的贡献不同 | 表 III | 根据消融结果的解释 |
| 3 cm 是成功筛选阈值,不能替代整体平均误差 | IV-E、表 III | 评估口径核对 |
| 总成功率由 32/60 提高到 39/60 | 表 VI | 原始实验计数 |
| 总计对应约 21.9% 相对提升,而非精确的 23% | 表 VI、本文章节中的算式 | 算术复核 |
| 相近平台迁移后,运动模式性能存在下降 | 表 IV、V-B3 | 仿真数据与实物描述分别引用 |
| 尚未构成完整自主操作或复杂楼梯移动操作方案 | VI | 作者明确限制 |
本文为论文与公开实现的阅读分析,不包含独立训练复现或真实机器人测试。文中未标为原文结果的运动学解释、评估讨论与复现建议,均为阅读后的技术分析。