Isaac Sim¶
使用 NVIDIA Isaac Sim 运行高保真仿真机器人演示。
使用 FaSim-Isaac 的 ./init.sh 和 ./run.sh。路径和版本写在该仓库配置里 — 不要写死某一个 Isaac 次版本号,也不要发明 CLI 参数。
前提条件¶
已安装 NVIDIA Isaac Sim 二进制(GPU 及匹配的 NVIDIA 驱动)
ROS 2 Jazzy 工作空间
默认 Isaac 目录:
ISAACSIM_DIR(除非覆盖,否则为~/isaacsim)
步骤¶
1. Clone FaSim-Isaac¶
cd ~/
git clone git@github.com:fiveages-sim/FaSim-Isaac.git
cd FaSim-Isaac
2. Initialize¶
./init.sh
脚本做什么(FaSim README):
操作 1 — 初始化
.gitmodules/submodules_visibility.conf中的子模块(默认勾选public;private需要权限)。多次运行是追加的。操作 2 — 可选 Isaac ROS 2 Jazzy 工作空间:版本菜单查询 GitHub 稳定 tag(回退列表见
config/fa_sim.conf,目前是6.0.1/6.0.0/5.1.0)。用ISAAC_SIM_VERSION=… ./init.sh覆盖。
3. Start Isaac Sim¶
./run.sh
脚本做什么:可选 CPU 调频、若 RMW_IMPLEMENTATION=rmw_zenoh_cpp 则可选 Zenoh router,然后是交互菜单 — PhysX / Newton / Headless Streaming。没有 ./run.sh --robot 或 ./run.sh --headless。
路径/版本覆盖:复制 config/fa_sim.local.template.conf → config/fa_sim.local.conf,设置 ISAACSIM_DIR / ISAAC_SIM_DEFAULT_VERSION。环境变量也可以:ISAACSIM_DIR=/path ./run.sh。
4. Launch ROS 2 Side¶
在新终端中:
source ~/open-deploy-ws/install/setup.bash
ros2 launch ocs2_arm_controller demo.launch.py hardware:=isaac
照常在这条 ROS 2 launch 上传 robot:=…。机器人 USD 是在 Isaac 里打开 FaSim robots/(robot_usds)下的资产 — 不是 FaSim run.sh 的参数。
5. Verify Connection¶
ros2 topic list
Acone 的 hardware:=isaac 使用 topic_based_ros2_control/TopicBasedSystem,话题为 /isaac/joint_command 和 /isaac/joint_states(xacro)。不要期待全栈通用的 /target_pose。
USD 资产¶
FaSim-Isaac 使用来自 robot_usds 的 USD(Universal Scene Description,通用场景描述)资产:
路径 |
内容 |
|---|---|
|
Gen1 轮臂 USD |
|
Gen2 轮臂 USD |
|
Gen3 轮臂 USD |
|
Galbot 移动操作臂 |
|
Ubtech 人形机器人 |
详见 robot_usds 参考。
环境资产¶
场景环境从以下位置加载:
fiveages-env-usds— 公开环境资产fa-project-usd— 内部项目专用场景(私有)
在 Isaac 中打开场景 USD。没有 ./run.sh --env。
驱动层¶
hardware:=isaac 使用基于话题的驱动层,把 Isaac Sim 物理接到 ROS 2 control。插件 <param> 名(joint_commands_topic、initialize_commands_from_state 等):topic_based_ros2_control。
验证¶
Isaac Sim 窗口(或 Headless Streaming)已由
./run.sh启动来自 Isaac 的 ROS 2 话题出现在
ros2 topic list中机器人响应关节指令
传感器数据(如已配置)发布到 ROS 2
故障排除¶
Isaac Sim 启动失败¶
确认
ISAACSIM_DIR(默认~/isaacsim)包含config/fa_sim.conf中的启动脚本(isaac-sim.sh、isaac-sim.newton.sh、isaac-sim.streaming.sh)若 Isaac 不在
~/isaacsim,在config/fa_sim.local.conf中设置ISAACSIM_DIR验证 GPU 驱动:
nvidia-smi查看 Isaac Sim 日志:
~/.nvidia-omniverse/logs/
没有 ROS 2 话题¶
确认 Isaac Sim 中已启用 ROS 2 桥接扩展
确认 Isaac 与 ROS 2 的 Domain ID 一致
重启
./run.sh和 ROS 2 launch
找不到 USD 资产¶
再跑 ./init.sh 操作 1,勾选需要的子模块(包括 robots)。
仿真运行缓慢¶
在 Isaac Sim 设置中降低渲染质量
非可视化测试请用
./run.sh菜单的 Headless Streaming检查 GPU 显存占用
下一步¶
合成数据 — Isaac 上的数据采集流水线(不是 Gazebo)