FaSim-Isaac

FiveAges Sim 的 NVIDIA Isaac Sim 集成。

仓库: fiveages-sim/FaSim-Isaac

README: README.md

用途

FaSim 是 NVIDIA Isaac Sim 高保真仿真加上与真机同一套 ROS 2 运控:运动能力对齐,并带仿真真值。FaSim-Isaac 是一键资产工作空间:拉取机器人 USD 与场景子模块,可安装 Isaac ROS 2 Jazzy overlay,并启动 Sim。

前提条件

  • NVIDIA Isaac Sim 二进制(GPU 及匹配驱动)

  • 默认路径 ISAACSIM_DIR(~/isaacsim);在 config/fa_sim.local.conf 或环境变量中覆盖

不要写死某一个 Isaac 次版本号。./init.sh 操作 2 会查询 GitHub 稳定 tag;回退列表见 config/fa_sim.conf,目前是 6.0.1 / 6.0.0 / 5.1.0。

安装

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

./init.sh 做什么:

  1. 初始化勾选的子模块(.gitmodules / submodules_visibility.conf;默认 public)

  2. 可选 Isaac ROS 2 Jazzy 工作空间(isaac_jazzy_ws/)。用 ISAAC_SIM_VERSION=… ./init.sh 覆盖版本

./run.sh 做什么:可选 CPU 调频、可选 Zenoh router,然后是菜单 — PhysX / Newton / Headless Streaming。没有 ./run.sh --robot、--headless 或 --env。

本机配置:

cp config/fa_sim.local.template.conf config/fa_sim.local.conf
# edit ISAACSIM_DIR / ISAAC_SIM_DEFAULT_VERSION

ROS 2 连接

在另一个终端(机器人名称是 ROS 2 launch 参数,不是 FaSim 标志):

ros2 launch ocs2_arm_controller demo.launch.py hardware:=isaac

结构

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

子模块

路径

仓库

可见性

robots/

robot_usds

公开

environment/fiveages_env/

fiveages-env-usds

公开

environment/fa-project-usd/

fa-project-usd

私有

话题桥接

FaSim-Isaac 将 Isaac Sim 桥接到 ROS 2:

Isaac 话题

ROS 2 话题

方向

关节位置

/joint_states

Isaac → ROS

关节指令

/joint_commands

ROS → Isaac

在 Isaac 中从 robots/ 打开机器人 USD、从 environment/ 打开场景 USD。选择不是 run.sh 的 CLI 参数。

故障排除

Isaac Sim 无法启动

  1. 确认 ISAACSIM_DIR 包含 isaac-sim.sh(以及 fa_sim.conf 中的 Newton / streaming 启动脚本)

  2. 在 config/fa_sim.local.conf 中覆盖路径

  3. 检查 GPU 驱动:nvidia-smi

  4. 检查日志:~/.nvidia-omniverse/logs/

无法连接 ROS 2

  1. 检查 Domain ID 是否一致

  2. 确认已启用 ROS 2 桥接扩展

  3. 重启 ./run.sh 和 ROS 2 节点