南溪:我很好奇官方为什么这样设置基线,我在想这个“control_mode”是不是一个可调节的超参数呀
Gemini3-Pro-Cursor:您的问题切中肯綮!
直接回答您:是的,“control_mode” 绝对是一个关键的可调节超参数。
官方之所以在不同算法基线中选择不同的控制模式,主要是基于“采样效率(Sample Efficiency)”与“计算/仿真速度(Wall-clock Time)”之间的权衡(Trade-off)。
1. 为什么会有这种差异?
这两种控制模式各有优劣,分别适配 SAC 和 PPO 的算法特性:
A.pd_ee_delta_pos(末端执行器位置控制)
- 原理:智能体输出的是机械臂末端(End-Effector)在空间中的相对位移(如:向左移动 1cm)。底层需要通过逆运动学 (Inverse Kinematics, IK)求解出各个关节需要转动的角度。
- 优点(利于学习):动作空间更符合直觉,与任务目标(通常是在笛卡尔空间中操作物体)一致。这通常能带来更高的采样效率,即智能体能用更少的交互步数学会任务。
- 缺点(计算慢):因为每一步仿真都需要解算 IK,计算量大,会导致仿真速度(FPS)变慢。
- 为什么 SAC 用它?:SAC 是Off-policy算法,本身采样效率就高,但训练更新比较慢。它更看重样本的质量,因此使用容易学习的 EE 空间比较划算,能进一步放大其采样效率的优势。
B.pd_joint_delta_pos(关节空间控制)
- 原理:智能体直接输出每个关节(Joint)的角度增量。
- 优点(计算快):不需要 IK 解算,直接驱动电机,仿真速度极快。
- 缺点(难学):动作空间抽象,智能体需要自己学会如何协调 7 个或更多的关节来让手到达某个空间位置,学习难度大,通常需要海量的样本。
- 为什么 PPO 用它?:PPO 是On-policy算法,严重依赖海量数据。如果仿真太慢,训练时间会无法接受。使用关节控制虽然学习难,但因为 ManiSkill 在 GPU 上的仿真速度极快(FPS 高),PPO 可以通过“暴力”采样海量数据来弥补学习难度的不足。
2. 官方文档的佐证
在 ManiSkill 的官方文档 (docs/source/user_guide/concepts/controllers.md) 中,开发者其实隐晦地提到了这一点:
“Note that while
pd_ee_delta_posetype controllers that use IK may bemore sample efficientto train / learn from for RL workflows, in GPU simulation running these controllers isnot that fast and may slow down RL training.”
(译:虽然使用 IK 的 EE 控制器可能在样本效率上更高,但在 GPU 仿真中运行这些控制器并没有那么快,可能会拖慢 RL 训练速度。)
3. 对您研究的建议 (VLM & Robot)
既然您的方向是VLM (Vision-Language Models) & Robot,通常这类研究更关注泛化性和高层语义理解。
- 建议首选
pd_ee_delta_pos(或 pose):
VLM 通常理解的是“把杯子拿起来”这种语义,映射到“手向前伸”的末端空间动作更自然。如果让 VLM 去输出“关节1转动3度,关节2转动-5度”,这不仅不仅增加了学习难度,也难以利用 VLM 本身的语义知识。
总结:您可以放心地将control_mode视为一个超参数。对于大多数具身智能(Embodied AI)和 VLM 相关的任务,EE (End-Effector) Space通常是更主流和合理的选择。