1. 评估与策略导出#
行走仿真#
加载明确的checkpoint#
将 RP1_CHECKPOINT 设置为已有、匹配任务的checkpoint文件路径:
python robolab/scripts/rsl_rl/play.py \
--task=RP1.3-Flat --num_envs=1 --checkpoint "$RP1_CHECKPOINT"Rough策略使用 RP1.3-Rough。任务、训练配置、动作维度与checkpoint必须对应。
若不传明确checkpoint,脚本会在 logs/rsl_rl/<experiment_name> 中按agent的run/checkpoint条件查找。为了可复现,记录实际加载的文件和哈希。
导出位置与格式#
默认导出路径为checkpoint所在目录下的 exported/:
| 文件 | 下游入口 |
|---|---|
policy.pt |
TorchScript;RP1.3 MuJoCo Sim2Sim脚本加载 |
policy.onnx |
ONNX;部署端推理使用此格式,但需要I/O核对 |
基础play分支自动导出,无需 --exportonnx。RP1.3使用direct环境,I/O约定需单独记录;--export_io_descriptors 仅支持manager-based环境。
归一化必须跟随策略#
play优先取 actor_obs_normalizer,否则取 student_obs_normalizer,没有对应属性时传 None。它将normalizer传给Isaac Lab导出helper。
发布或部署前,检查导出文件的输入/输出、normalizer处理、统计量、shape、dtype和外部数据文件,并绑定生成它的checkpoint与配置。核对清单见 策略输入输出。
评估记录#
分别记录任务回放、Sim2Sim与实机结果,包括场景、指令条件、种子、模型/策略版本和输出产物。实机通过条件使用对应版本的正式验收规范。
2. MuJoCo Sim2Sim#
RP1.3入口使用24动作TorchScript策略,把Isaac策略顺序转换到MuJoCo模型顺序。该入口在MuJoCo中检查仿真迁移。
运行入口#
完成训练环境与MuJoCo依赖准备,并将 RP1_TORCHSCRIPT 设置为匹配的 exported/policy.pt 路径:
python robolab/scripts/mujoco/sim2sim_rp1.3.py \
--load_model "$RP1_TORCHSCRIPT"使用rough场景时增加 --terrain。增加 --headless 会选择无GUI路线并保存视频,仍需要适用的EGL/渲染条件,不表示完全不渲染。
BeyondMimic 的独立入口#
动作跟踪使用 sim2sim_rp1.3_bm.py。将 RP1_TORCHSCRIPT 设为匹配 RP1.3-BeyondMimic 的 TorchScript 策略,再使用同一参考动作:
python robolab/scripts/mujoco/sim2sim_rp1.3_bm.py \
--load_model "$RP1_TORCHSCRIPT" \
--motion_file robolab/data/motions/rp1.3_bm/dance1.npz上述路径相对于训练仓库根目录。该入口采用 24 动作、126 维单帧输入和 RP1.3 的关节映射;--loop 用于循环参考动作。Flat/Rough 的 243 维策略不能直接交给这个入口。
模型与观测#
Flat/Rough场景来自RP1_train的 rp1.3/mjcf/,均引用 robot_24dof.xml。配置为24动作、单帧81、历史3帧,共243观测元素。torch.jit.load 的输入使用TorchScript文件。
共享 run_mujoco 检查索引置换、增益长度、观测尺寸与模型 nq/nv/nu。RP1.3脚本调用共享函数;RPO的23动作main入口用于另一套配置。
关节顺序#
MuJoCo顺序为左腿6、右腿6、腰2、左臂5、右臂5。源码定义的policy→MuJoCo置换为:
[0,6,12,1,7,13,2,8,14,19,3,9,15,20,4,10,16,21,5,11,17,22,18,23]同文件中的默认姿态、PD增益和力矩裁剪数组均以MuJoCo顺序排列。这些数组用于仿真;实物额定值与安全限制按设备规格确认。
结果解释#
共享函数保存 simulation.mp4、joint_positions.png 和 base_velocities.png。记录使用的场景、策略、配置、实际输出位置与检查结果。
接入推理端前,核对 历史布局与I/O约定。28流程需要独立task、策略与Sim2Sim入口。