OPENZROB

宇树四足机器人开发

机器人列表收录 Go2、B2、Go2-W。Go2-W 属于轮足机器人,按“四足”筛选。品牌为宇树科技;原有 Bumi 品牌为松延动力。

接入状态

型号 电机 当前状态
Go2 12 物理仿真、运动接口、五个任务
B2 12 物理仿真、运动接口、五个任务
Go2-W 12 个腿关节 + 4 个轮电机 物理仿真、运动接口、五个任务

本地开发流程

  1. 安装 0.9.5 桥接,在桥接和网页选择同一机器人。
  2. 在用户 PC 安装宇树原版 Python SDK2,保持场景开启。
  3. 下载 /starter/quadruped_student.py,例如 python quadruped_student.py --robot go2 --interface lo。Windows 回环接口为 Loopback Pseudo-Interface 1;网卡和 DDS domain 必须与桥接一致。
  4. 自行编写识别、巡线、跟随、导航和任务状态机;运行本地程序控制浏览器虚拟机器人。

Go2、Go2-W 使用 unitree_sdk2py.go2.sport.sport_client.SportClient,B2 使用 unitree_sdk2py.b2.sport.sport_client.SportClient。它们与 G1/R1 的 LocoClient 不同。官方 C++ SDK2 使用同一 DDS 协议,但本次新增接口的联调程序为 Python,未宣称 C++ 完成同等实测。

支持 StandUp、BalanceStand、Damp、Move、StopMove;当前站立指令表示进入站立控制,不复刻真机卧倒起身全过程。Move 以 m/s、rad/s 输入,范围为前后 ±0.6、横向 ±0.3、转向 ±0.5,需持续发送;500 ms 无新 Move 时停车,不把超时停车算作主动完成任务。官方 Move 使用无响应请求,其返回值只能说明发送结果,应读取实际状态确认运动。

底层使用 unitree_go 的 LowCmd_ / LowState_,不是 G1/R1 的 unitree_hg。先调用 MotionSwitcherClient.ReleaseMode 再发布带官方 CRC 的 rt/lowcmd。腿电机按 FR、FL、RR、RL 排列,各含 hip、thigh、calf;Go2-W 的 12–15 为 FR、FL、RR、RL 轮电机。轮子采用速度控制,不限制累计旋转角度。底层控制的平衡由用户负责。

状态为 rt/lowstate 和 rt/sportmodestate;相机通过平台 /v1/camera 与 /v1/camera/info 获取当前任务原始 RGB。相机是虚拟外接相机,位于前部头端前方 5 cm,提供前视和下视,不模拟真机视频、雷达或自主导航服务。

模型、策略与验证边界

模型来源为宇树官方 unitree_mujoco,关节物理和封面均来自对应型号。Go2、B2、Go2-W 步态来源为 rl_sar / robot_lab,是 Apache-2.0 社区策略,不是宇树官方固件。静止保持按对应策略配置执行;实际速度和转向有跟踪误差,用户程序应读取状态形成反馈。

upstream.json 记录固定提交和修改内容,源模型和策略许可证一并保存。使用 scripts/import-quadrupeds.py 重新生成,禁止直接修改生成的模型、元数据和封面源数据。

运行 node node_modules/tsx/dist/cli.mjs scripts/test-quadruped-walking.ts 验证真实 MuJoCo/ONNX 的站立、前进、转向和停车。测试验证的是仿真,不代表真机性能或全部固件功能已实现。