Skip to content

feat: add offline R1 sim2real deployment core - #4

Open
Zarato2122 wants to merge 1 commit into
docs/r1-sim2real-online-researchfrom
feat/r1-sim2real-offline-core
Open

feat: add offline R1 sim2real deployment core#4
Zarato2122 wants to merge 1 commit into
docs/r1-sim2real-online-researchfrom
feat/r1-sim2real-offline-core

Conversation

@Zarato2122

Copy link
Copy Markdown
Owner

本阶段目标

实现 Unitree R1 26-DoF 的离线可验证部署核心,在不连接机器人、不发布真实 rt/lowcmd 的前提下,固定关节映射、观测契约、命令生成、运行状态机和失效保护边界。

改动文件

  • sim2real/config/r1_26dof.yaml:R1 关节、PD、安全阈值与观测配置。
  • sim2real/r1/:配置解析、状态适配、425 维观测、26 维命令、运行时、安全检查和 Unitree 传输层。
  • sim2real/rl_policy/r1_motion_tracking.py:50 Hz 策略入口、离线冒烟模式和受多重确认保护的真实部署入口。
  • tests/sim2real/:映射、观测、状态、命令、安全、运行时和传输层测试。
  • reproduction/r1-sim2real-offline-core.md:复现命令、结果和限制。

安全边界

  • Unitree SDK 延迟导入,离线环境不依赖 SDK。
  • DDS 默认为只读;发布命令必须同时提供 --enable-real、显式网卡,并输入 ENABLE R1 LOW LEVEL。
  • 启动前释放 MotionSwitcher,并探测是否已有外部 rt/lowcmd 发布者。
  • 状态/目标过期、动作非法、维度错误、姿态/关节/速度越界、电机错误、mode_machine 变化或 writer 异常均进入故障态。
  • 故障态不能通过简单请求 Passive 静默清除。
  • 未使用的 DDS 电机槽保持禁用。

测试命令

conda run -n asap python -m unittest discover -s tests -t . -p 'test_*.py'
conda run -n asap python -m compileall -q sim2real tests
conda run -n asap python sim2real/rl_policy/r1_motion_tracking.py --offline-smoke --offline-smoke-steps 100
conda run -n asap python sim2real/rl_policy/r1_motion_tracking.py --offline-smoke --offline-smoke-steps 100 --model /tmp/asap-r1-zero-policy.onnx
git diff --cached --check

测试结果

  • 单元测试:35/35 通过。
  • Python 编译检查:通过。
  • 内置零策略离线冒烟:100 步通过,观测 425 维、动作 26 维。
  • ONNX Runtime 临时零权重模型:100 步通过。
  • 暂存内容格式检查:通过。

本地输出路径

  • 临时 ONNX 冒烟模型:/tmp/asap-r1-zero-policy.onnx(44,381 bytes,可再生成,未提交)。

未提交的大文件

无 checkpoint、数据集、缓存、视频、日志或大型中间产物被提交。临时 ONNX 文件仅保留在上述本地路径。

当前限制和下一步

  • 本机尚未安装固定版本的 unitree_sdk2py,传输层使用测试替身完成离线验证。
  • 尚无 R1 机器人和机器人网络,未进行 LowState 只读联调或真实命令发布。
  • 尚无与 R1 训练配置配套的真实 ONNX/checkpoint 和 walk motion。
  • 尚未从 R1 Isaac Gym rollout 生成 golden observation fixture。
  • 500 Hz DDS writer 在真实部署机上的调度抖动尚未测量。
  • 当前 R1 训练配置使用 NO_domain_rand,不应据此直接进入真机闭环。
  • 下一阶段先生成黄金观测、导出真实策略,并完成官方 Unitree MuJoCo Sim2Sim;之后才进行只读真机 LowState 测试。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants