Isaac Sim ROS 2 Bridge 接続
ROS 2 Bridge の有効化、DDS (RMW) の選択、通信できないときのチェックリスト
要点: ROS 2 を source したターミナルから Isaac Sim を起動し、拡張 isaacsim.ros2.bridge を有効化する。DDS はデフォルトの FastDDS を使う。topic が流れるのは Play 中のみ。
source /opt/ros/humble/setup.bash
cd ~/isaacsim
./isaac-sim.sh
# 別ターミナルで確認 (サンプルシーンをロードして Play した後)
ros2 topic listセットアップ
Bridge 拡張を有効化
Window > Extensions で isaacsim.ros2.bridge を検索して Enable (4.2 以前の名前は omni.isaac.ros2_bridge)。App Selector から起動する場合は起動画面で bridge と distro を選べば済む。
システムに ROS 2 が無いマシンでも、Isaac Sim 同梱の内部 ROS 2 ライブラリ (humble / jazzy) で bridge は動く。ただし内部ライブラリを使う場合は ROS 2 を source していないクリーンなターミナルから起動すること。混在させると不安定になる。
DDS 設定 (FastDDS)
~/.ros/fastdds.xml を作成し、公式ドキュメント記載のスニペットを貼る。スクリプト経由で起動するターミナルでは:
unset LD_LIBRARY_PATH
export FASTRTPS_DEFAULT_PROFILES_FILE=~/.ros/fastdds.xmlサンプルシーンで疎通確認
Robotics Examples > ROS2 > Navigation > Carter Navigation をロードして Play。別ターミナルで ros2 topic list に /cmd_vel や /clock が見えれば成功。/cmd_vel に Twist を流せばロボットが動く。
DDS (RMW) の選択
| RMW | 対応 | 切替コスト |
|---|---|---|
| FastDDS | デフォルト。公式推奨 (特に同一マシン内通信) | なし |
| CycloneDDS | 公式対応 (Linux / Humble・Jazzy)。内部ライブラリにも同梱 | 低 (環境変数 1 つ) |
| Zenoh | 新しいバージョンで Jazzy のみ対応 | 中 |
| Connext 等 | 非対応 | - |
Cyclone への切替自体は面倒ではない。Isaac Sim 起動前と ROS 2 側の両方で:
sudo apt install ros-humble-rmw-cyclonedds-cpp
export RMW_IMPLEMENTATION=rmw_cyclonedds_cppただし注意点が 2 つ。(1) Isaac Sim 側と ROS 2 側で RMW が不一致だと一切通信できない。切り替え忘れが典型的な事故。(2) カスタム cyclonedds.xml (サブネット跨ぎ等) が Isaac Sim 側で効かない事例が報告されている。
結論: Nav2 などでチームがすでに Cyclone に統一しているのでなければ FastDDS のままでよい。すでに Cyclone 運用なら Isaac Sim 側を合わせる方が楽。
通信できないときのチェックリスト
- Play を押したか: publisher / subscriber は Play 中のみ有効
- ROS_DOMAIN_ID: Isaac Sim 側と ROS 2 側で一致しているか (未設定なら両方 0)
- RMW の不一致:
echo $RMW_IMPLEMENTATIONを両側で確認 - 内部/システム ROS 2 の混在: どちらを使うか決めて統一。内部ライブラリ利用時はクリーンなターミナルから起動
- 時刻ずれ: シミュレーション時刻を使う。
/clockを publish し、ROS 2 ノード側はuse_sim_time:=true - 重くて落ちる: まずカメラ / LiDAR を無効化したシーンで動作確認してから有効化する
Windows + WSL2 構成では Windows Firewall が DDS を遮断していることが多い。WSL との通信を許可するか、Linux ネイティブに統一する。
関連
- /docs/ros/isaac-sim/isaac-sim-ui-basics
- /docs/ros/isaac-sim/isaac-sim-action-graph