Skip to content

Latest commit

 

History

162 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go2W_Sim — Unitree Go2W 仿真与开发环境

传感器版 Go2W(轮足 + PiPER 机械臂 + Livox Mid-360 前倾 20° + 手眼 D435 + NUC 配重, 背部总载 6.5kg)的 Isaac Sim 数字孪生。基座:Isaac Sim 5.1(Docker)+ Isaac Lab v2.3.2 + robot_lab v2.3.2(内置 Go2W RL 任务)。

日常使用(环境已装好后)

bash scripts/run_gui.sh --env flat              # GUI 打开平地场景看机器人
bash scripts/run_gui.sh --env flat --drive 2.0  # 轮子转起来
bash scripts/run_gui.sh --env warehouse         # 内置仓库场景(首次联网下资产)
# 定点截图(GUI 模式,photo 落在 logs/):
bash scripts/run_gui.sh --env flat --screenshot /workspace/go2w/logs/shot.png \
    --cam_eye 1.1 0.5 0.75 --cam_target 0.27 0 0.45

窗口操作:Alt+左键旋转视角,滚轮缩放;左侧 Stage 树可查看/选中每个 link 和 joint。

资产地图(改机器人去哪里)

内容 位置
合成 URDF(机器人本体+全部挂载) assets/urdf/go2w_sensored.urdf(生成产物,勿手改)
挂载布局常量(位置/姿态/质量) scripts/tools/compose_sensored_urdf.pyMOUNTS 字典
改完重新生成 python3 scripts/tools/compose_sensored_urdf.py 然后重开 GUI
go2w 官方 URDF/网格 assets/unitree_ros/robots/go2w_description/(clone_deps.sh 拉取)
PiPER 官方 URDF/网格 assets/piper_ros/src/piper_description/(clone_deps.sh 拉取)
传感器网格 d435.dae / mid360.stl assets/sensor_meshes/(fetch_sensor_meshes.sh 下载)
场景脚本(环境/执行器/相机参数) scripts/sim/warehouse_scene.py
Go2W RL 训练任务(robot_lab) robot_lab/.../config/wheeled/unitree_go2w/

已验证的机器人事实:46 关节(12 腿 revolute + 4 轮 continuous *_foot_joint + PiPER 6 revolute + 夹爪 2 prismatic + 固定挂载);夹爪逼近轴 = gripper_base +Z; Mid-360 前倾 19.6°(quat 实测);整机 26.02kg,背部载荷 6.500kg。

从零重建环境

完整的新机(台式机 sim)从零拉起序列——每步预期耗时 + 验证点 + 导航栈镜像构建 5 步——见 docs/user-manual.md 第 1 章。下面是速览:

git clone https://github.com/Z-Robotics-Lab/go2W_Sim.git && cd go2W_Sim
bash scripts/clone_deps.sh          # IsaacLab v2.3.2 / robot_lab v2.3.2 / go2w URDF(含重训补丁自动 apply)
bash scripts/fetch_wheels.sh        # triton+warp 大 wheel 断点续传预下载
bash scripts/fetch_sensor_meshes.sh # d435/mid360 真实网格
python3 scripts/tools/compose_sensored_urdf.py
docker login nvcr.io && docker pull nvcr.io/nvidia/isaac-sim:5.1.0   # NGC 基础镜像(需登录)
bash scripts/setup_container.sh     # 建容器+装全套(内置全部坑修复)
docker commit go2w-isaac go2w-isaac:ready   # 固化,之后重建容器秒级
bash scripts/run_gui.sh --env flat
# 导航栈镜像 navstack:ready(clone fork→patch→jazzy-dev→colcon→commit):见 user-manual.md §1.5

RL 策略权重已入库 assets/policies/(clone 即有,bringup.sh 默认指它,无需训练即可拉起)。

冒烟验证(Go2W 平地 RL 任务 5 个迭代,headless 无渲染,可跑):

docker exec -u 0 go2w-isaac bash -c "cd /workspace/go2w/robot_lab && TERM=xterm \
  /isaac-sim/python.sh scripts/reinforcement_learning/rsl_rl/train.py \
  --task RobotLab-Isaac-Velocity-Flat-Unitree-Go2W-v0 --headless --num_envs 64 --max_iterations 5"

踩坑清单

27+ 条实测坑(pip/torch/时间线/DDS/内存/进程连坐…)全部迁至 docs/pitfalls.md——改任何脚本前必读。

导航栈集成(M3,已验收)

Isaac 当机器人、CMU 导航栈(refs 见 docs/sim-plan.md)当大脑,全链路已跑通: waypoint → FAR/local planner → cmd_vel → 差速轮速 → Go2W 在 full_warehouse 自主行驶 至目标(SLAM 与地面真值交叉验证一致,静止漂移 5cm/20s)。

# 1) Isaac 侧(传感器桥:/lidar/points /imu/data /clock 出、/cmd_vel 入,DDS 域 42)
docker exec -d -u 0 -e DISPLAY=:0 -e ROS_DISTRO=jazzy -e ROS_DOMAIN_ID=42 \
  -e RMW_IMPLEMENTATION=rmw_fastrtps_cpp \
  -e LD_LIBRARY_PATH=/isaac-sim/exts/isaacsim.ros2.bridge/jazzy/lib -e PYTHONUNBUFFERED=1 \
  go2w-isaac bash -c "cd /workspace/go2w/scripts/sim && TERM=xterm \
  /isaac-sim/python.sh warehouse_nav.py --env warehouse --shot_dir /workspace/go2w/logs/shots"
# 2) 导航栈容器(首次搭建见 docs/user-manual.md §1.5:clone
#    github.com/Yuxin916/Navigation-Physical-Experiment (jazzy 分支) 到 refs/ →
#    patch_navstack.sh → 建 jazzy-dev 镜像 → colcon build → commit navstack:ready)
docker exec -d navstack bash /ws/run_navstack.sh
# 3) 发导航目标
docker exec navstack bash -c "export ROS_DOMAIN_ID=42 && source /opt/ros/jazzy/setup.bash && \
  source /ws/install/setup.bash && ros2 topic pub --once /way_point \
  geometry_msgs/msg/PointStamped '{header: {frame_id: map}, point: {x: 2.5, y: 0.0, z: 0.0}}'"

状态

  • 容器 + 全链安装(镜像已固化 go2w-isaac:ready)
  • 基线冒烟:Go2W 平地 RL 任务 5 迭代跑通(rsl_rl PPO,reward 正常)
  • 传感器版 URDF:真实网格、FK 校准 D435 位姿、FRAME 数值验证(Mid-360 19.6°)
  • GUI 平地场景人工目检通过
  • M1:full_warehouse 场景导入(云资产已缓存,站高 0.375m 稳定)
  • M2(部分):Mid-360 RTX 点云 + 物理正确 IMU(斜装重力投影)真实读数
  • M3 完成:方形巡航回归 4/4(34s/139s/12s/80s,含转弯与回原点闭环)
  • RL locomotion:robot_lab Go2W 速度策略(2000 iters, reward 114.5)替代差速—— 弧线转向 2.3°→95°(41 倍),wheeled_sport 仿真等价物,附带 vy 全向
  • M2 收尾:D435 RGB+深度已出 ROS2 topic(/camera/image /camera/depth,进 RViz)
  • M2 尾巴:PiPER 关节 ROS2 控制接口(M4 前置)
  • M5/任务②:vector_os_nano agent 控狗——NL 目标 -> agent 规划 -> navigate -> 导航栈 -> RL 策略 -> GT 谓词 GROUNDED,VECTOR_VERDICT verified=true (EXIT 0)。 入口:scripts/vector_os/run_agent.sh(BYO world,vector_os_nano 零修改)
  • 后续:接入抓取(任务③)、RViz 可视化操作、真机部署包

About

No description, website, or topics provided.

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages