SuperAPI AI 工具集

isaaclab-transferring-policies-sim-to-sim

智能体与模型

查看项目

更新于 10-15 22:38

技能介绍

用途:在 Isaac Lab 中把策略在 PhysX 与 Newton MJWarp 之间双向迁移(PP、PN、NN、NP 四种组合)。使用前应先阅读 sim-to-sim 指南,并用 isaaclab-preparing-assets-for-newton 让资产与任务适配 MJWarp。

主要能力与要点:同一注册任务保持同一 MDP,从各 PresetCfg 解析出 isaacsim_physx 与 newton_mjwarp 后端选项;若 MDP 项预设不同,需恢复同一检查点契约或视为不同任务重训。要求两个引擎均训练成功,且动作、观测、策略状态、时序、机制与回合契约完全一致。

关键细节:Newton MJWarp 保留 Franka 两个手指坐标但只创建一个主动驱动(leader 被驱动,follower 由 equality 带动);PhysX 保留 mimic 耦合且 follower 可驱动。若一个逻辑指令同时作用于两指且增益非零,PhysX 会产生两个 PD 驱动贡献,应驱动 panda_finger_joint1 并把 panda_finger_joint2 的刚度与阻尼设为零。检查点存的是列位置而非名称,跨后端回放时轴序不匹配会把某关节的观测喂给另一关节的动作;每次 PN/NP 命令都要把 env.scene.robot.joint_ordering 与 body_ordering 设为源检查点的约定(PN 用 physx,NP 用 mjwarp),physics= 仍选择目标后端。当前 Isaac-Lift-Franka 在两后端关节与身体顺序一致,无需覆盖;Isaac-Velocity-Rough-G1 与 Isaac-Velocity-Rough-AnymalD 需要。可用 joint_names 与 backend_joint_names 对比验证。

控制与随机化:先匹配标称执行器响应再调策略,区分额定与求解器速度限制,使用逐关节 effort、增益、摩擦与 armature,保持 dt * decimation,避免目标贴近硬限位,监控饱和与动作符号变化;增大 armature 后需重新调阻尼。域随机化可覆盖摩擦、质量/惯量、关节增益与摩擦、armature、重力、执行器响应、重置位姿/几何与观测噪声,保持惯量有效与耦合机制一致;必要时用课程学习并保留确定性标称评估。

验证:评估 PP、PN、NN、NP 全矩阵,每个源策略复现同后端基线并在另一后端部署同一检查点。指南给出三个已验证任务(Isaac-Lift-Franka、Isaac-Velocity-Rough-G1、Isaac-Velocity-Rough-AnymalD)及其实验目录与说明;Isaac-Reorient-Cube-Allegro 仅作 PhysX 到 Newton 演示。play 入口会自动应用 play_mode 覆盖。限制:需任务在两后端均可训练、环境契约完全相等、跨后端回放顺序正确,否则策略会立即崩溃而非平滑退化。