IRobot_wl 是基于 Isaac Lab 的轮腿机器人训练工程。当前阶段先只维护平地和粗糙地形两个 VMC 速度跟踪任务,先把训练侧 observation、reward、action 和关节顺序完全理顺,再重新做 MuJoCo sim2sim。
IRobot-WL-Velocity-VMC-Flat-v0
IRobot-WL-Velocity-VMC-Rough-v0
之前实验过的 recovery、stand、getup 等任务已经从当前注册入口移除。后续如果要重新做倒地自起,建议在 flat/rough 的关节顺序和 sim2sim 链路稳定之后,再单独恢复。
训练侧统一使用下面的标准顺序:
leg_joint_names = ["lf0_Joint", "lf1_Joint", "rf0_Joint", "rf1_Joint"]
wheel_joint_names = ["l_wheel_Joint", "r_wheel_Joint"]凡是 VMC 几何、observation、reward、action 或诊断脚本里通过 asset.find_joints(...) 获取关节索引,都必须显式使用 preserve_order=True。不要依赖 articulation 内部顺序。
这点很关键:旧训练中 observation/reward 侧可能把 [lf0, lf1, rf0, rf1] 按 articulation 返回顺序错位解释,导致真实 theta0/L0 与 policy obs 里的腿角、腿长不一致。旧 checkpoint 因此不建议继续作为干净 sim2sim 的基准。
默认工作目录:
cd /home/sf4/Workspace/rm/rl_wheel_legged/IRobot_wl/IRobot_wl默认使用 Isaac Lab 训练环境:
conda activate rl_wheel_legged
pip install -e source/IRobot_wl如果没有激活 shell,也可以用 conda run -n rl_wheel_legged ... 执行下面的命令。
平地任务:
conda run -n rl_wheel_legged python scripts/rsl_rl/train.py \
--task IRobot-WL-Velocity-VMC-Flat-v0 \
--agent rsl_rl_cfg_entry_point \
--num_envs 4096 \
--max_iterations 5000 \
--headless粗糙地形任务:
conda run -n rl_wheel_legged python scripts/rsl_rl/train.py \
--task IRobot-WL-Velocity-VMC-Rough-v0 \
--agent rsl_rl_cfg_entry_point \
--num_envs 4096 \
--max_iterations 5000 \
--headless小规模 smoke test:
conda run -n rl_wheel_legged python scripts/rsl_rl/train.py \
--task IRobot-WL-Velocity-VMC-Flat-v0 \
--agent rsl_rl_cfg_entry_point \
--num_envs 512 \
--max_iterations 50 \
--headless播放 flat 策略:
conda run -n rl_wheel_legged python scripts/rsl_rl/play.py \
--task IRobot-WL-Velocity-VMC-Flat-v0 \
--agent rsl_rl_cfg_entry_point播放 rough 策略:
conda run -n rl_wheel_legged python scripts/rsl_rl/play.py \
--task IRobot-WL-Velocity-VMC-Rough-v0 \
--agent rsl_rl_cfg_entry_point查看 TensorBoard:
tensorboard --logdir logs/rsl_rl --port 6006新 checkpoint 用于 MuJoCo 前,建议先在 Isaac 侧导出 trace,对齐下面这些字段:
- policy 当前帧 observation
- policy history observation
- raw action 和 clipped action
- VMC 输出 torque
theta0/L0- base 姿态、速度和接触状态
只有 Isaac trace 内部确认 theta0/L0 和 policy obs 一致之后,再把同一 checkpoint 接到 sim2sim_mujoco_rebuild。旧的 wl_vmc_flat/2026-06-25_11-41-46/model_15600.pt 可以作为历史诊断材料,但不建议作为重新开始后的正式 sim2sim 基准。