Isaac 场景与 USD

本栈的合成数据采集是 Isaac Sim 线路。Gazebo 不在这条流水线里。

场景资产在 FaSim-Isaac。机器人 USD 是 robot_usds 超级仓库(FaSim 子模块 robots/)。环境与私有项目 USD 与这棵树并列,不在它内部。

FaSim-Isaac(场景宿主)

Repository: fiveages-sim/FaSim-Isaac

FaSim-Isaac 是一键 Isaac 资产工作区:克隆 USD 子模块、可安装 Isaac ROS 2 Jazzy overlay、并启动 Sim。优先用脚本,不要手拼目录树。

git clone git@github.com:fiveages-sim/FaSim-Isaac.git
cd FaSim-Isaac
./init.sh
./run.sh

摘自 FaSim README:

  1. ./init.sh 操作 1 — 初始化 .gitmodules / submodules_visibility.conf 里的子模块。public 默认勾选;private 默认不勾(需要仓库权限)。重复运行是追加(只对勾选项 update --init)。

  2. ./init.sh 操作 2 — 可选 Isaac ROS 2 Jazzy 工作空间:下载匹配的 Isaac ROS workspaces,把 jazzy_ws 解到 isaac_jazzy_ws/,装 rosdep/colcon 依赖、编译,并写入 ~/.bashrc。版本菜单查询 GitHub 稳定 tag;config/fa_sim.conf 回退列表目前含 6.0.1 / 6.0.0 / 5.1.0。可用 ISAAC_SIM_VERSION=… ./init.sh 覆盖。

  3. ./run.sh — 启动 Isaac Sim。默认安装路径是 ISAACSIM_DIR(~/isaacsim,除非复制 config/fa_sim.local.template.conf → config/fa_sim.local.conf)。菜单为 PhysX / Newton / Headless Streaming。

数据采集示例 README(feature/sim-grasp-datagen 上的 examples/IsaacSim/README.md)目前写的是 Ubuntu 24.04、ROS 2 Jazzy、Isaac Sim 6.0。路径/版本放在 FaSim 配置里,不要手改 launch。

该 README 中的布局:

FaSim-Isaac/
├── init.sh
├── run.sh
├── config/                 # fa_sim.conf + optional fa_sim.local.conf
├── robots/                 # → robot_usds
├── environment/
│   ├── fiveages_env/       # → fiveages-env-usds (public scenes)
│   └── fa-project-usd/     # → fa-project-usd (private project USD)
└── isaac_jazzy_ws/         # created by init.sh operation 2

在 Isaac 中打开 robots/(robot_usds)里目标机器人 USD 并运行仿真。按示例 README 所链的 NVIDIA Isaac ROS 2 workspace 文档 启用 ROS 2 simulation-control 与 prim 服务(/set_simulation_state、物体位姿 prim service)。

包细节:FaSim-Isaac 参考。

robot_usds(仅机器人 USD)

Repository: fiveages-sim/robot_usds

本章按 robot_usds 引用的 USD(以及作为 FaSim robots/ 子模块)来写。主路径: FaSim ./init.sh 操作 1 初始化该子模块(默认 public 项)。

手动回退

若在 FaSim 外单独克隆 robot_usds,子模块目录在以下步骤之前是空的:

git clone git@github.com:fiveages-sim/robot_usds.git
cd robot_usds
git submodule update --init --recursive

其中记录的 Git 子模块:

路径

上游

humanoid/FiveAges/Gen1

fiveages-gen1-robot-usds

humanoid/FiveAges/Gen2

fiveages-gen2-robot-usds

humanoid/FiveAges/Gen3

fiveages-gen3-robot-usds

humanoid/Ubtech

ubtech-usds

humanoid/Galbot

galbot-usds

FaSim submodules_visibility.conf 把 Galbot 标成 public,FiveAges Gen* / Ubtech 树标成 private。robot_usds 树内(非子模块)类别包括夹爪、灵巧手、机械臂、移动底盘、移动操作臂和传感器 — 去仓库里看;不要发明额外 USD 根。

FiveAges Gen1 / Gen2 / Gen3 是 humanoid/FiveAges/ 下的轮臂 USD 世代(README:Gen1→W1,Gen2→W2/S2)。它们不是双足人形。

完整树:robot_usds 参考、USD 子模块。

环境与私有项目 USD

环境资产是 robots/ 的同级目录,不是 robot_usds 子模块。

目录树

可见性

角色

environment/fiveages_env/ → fiveages-env-usds

公开

共享 Isaac 场景:static/(桌子、货架、箱子)、moveable/(小物体)、articulation/(抽屉等)、background/、tasks/(组合任务场景)。

environment/fa-project-usd/ → fa-project-usd

私有

内部任务场景用的项目专用 USD。没有权限时 ./init.sh 默认不勾选。

robot_usds README:若在 FaSim 之外用 robot_usds,把 environment/fiveages_env 放在 robots/ 旁边,场景 USD 才能引用。

不要把私有项目 USD 当成公开机器人模型,也不要写本章所依据的公开 robot_usds gallery 文本里没有的产品代号。

环境资产参考。

流水线下一步

Isaac 在跑且 ROS 2 话题/服务已通时,运动与录制经 ros2_robot_interface 与机器人通信,由 robot_action_composer 编排。继续看 接口与编排。