外观
踩坑GitHub unitreerobotics/unitree_rl_mjlab6 个月前
G1实机部署剧烈动作断电:误用base_lin_vel观测致脏数据输入
本文由 AI 根据公开内容整理,可能有误,请以原文为准:g1的Veloity任务实机部署问题(GitHub unitreerobotics/unitree_rl_mjlab #33)
状态:有绕过办法
问题
使用最新版mjlab训练的G1行走策略在仿真play正常,但实机部署后机器人出现剧烈动作并断电保护。用户发现新版mjlab Actor观测包含base_lin_vel,而unitree_rl_mjlab将其置于Critic中,怀疑真机无法读取该传感器导致异常。此外deploy.yaml中lin_vel_y和ang_vel_z被置0导致无法转向。
环境
机型:Unitree G1;软件:unitree_rl_mjlab、mjlab最新版、unitree_mujoco;部署文件:policy.onnx、deploy.yaml、agent.yaml、env.yaml。
解决办法
- 确认训练框架差异:最新版mjlab Actor观测含
base_lin_vel及motion_anchor_pos_b,这些状态估计量在真机无法获取,deploy不支持此类模型,会导致脏数据输入引发抽搐,严禁直接使用mjlab自带任务部署。 - 切换至
unitree_rl_mjlab默认配置:该项目Velocity任务Actor观测不含base_lin_vel,仅在有状态估计的动作模仿任务中使用,实机部署必须以unitree_rl_mjlab代码为准。 - 检查
deploy.yaml配置:确保lin_vel_y和ang_vel_z等关键观测映射正确且非零,避免因参数屏蔽导致控制失效。 - 强制仿真验证流程:实机部署前必须在
unitree_mujoco或simulate环境中完整测试policy.onnx输出,确认观测维度与顺序与训练一致。 - 提供完整日志排查:若问题持续,需提供
logs目录下agent.yaml、`en…
讨论原作者:@qiaomu-shen 等,版权归原作者所有。
来源
本页事实对应的公开页面,以原文为准。