2026年1月25日
Ken Suzuki
技術

Isaac Sim 5.1.0 の映像を ROS 2 Jazzy に配信する

Isaac Sim 5.1.0 の映像を ROS 2 Jazzy に配信する:Action Graph構築とConda環境の罠

Isaac SimROS2OmniverseTechman Robot
Isaac Sim 5.1.0 の映像を ROS 2 Jazzy に配信する

1. はじめに

ロボットアーム(Techman Robot)が動くようになった次のステップは、シミュレーション空間の情報を「視覚」として取り出すことです。今回は、Isaac Sim上のカメラ映像をROS 2のイメージトピックとしてパブリッシュし、rqt_image_view で確認するまでの手順と、その過程で遭遇した強力なエラーの解決法を記録します。

2. Action Graph によるカメラ配信の構築

Isaac Sim 5.1.0では、Action Graphを使用してカメラデータをROS 2 Bridgeに繋ぎます。

構成ノード

  • On Playback Tick: 実行トリガー
  • Isaac Create Render Product: カメラ映像のキャプチャ(ここで既存のカメラを指定)
  • ROS2 Camera Helper: ROS 2トピック(sensor_msgs/Image)への変換

💡 Tips: 反映のタイミング ノードを配置・設定した直後はトピックが出ないことがあります。一度シミュレーションを Stopして再起動(Play)、またはグラフを Reload することで正しくパブリッシュが開始されます。


3. 【難所】rqt_image_view が起動しない問題

カメラ設定後、映像を確認しようと ros2 run rqt_image_view rqt_image_view を実行したところ、以下のエラーに阻まれました。

【エラーメッセージ】 ModuleNotFoundError: No module named 'rclpy._rclpy_pybind11'

原因:Conda環境によるPython汚染

Isaac Sim用のConda環境(Python 3.11)が有効なままだと、ROS 2 Jazzy(Python 3.12)のシステムツールが正しく動作しません。conda deactivate をしても、環境変数 PYTHONPATH などにCondaのパスが残っていると、このエラーは消えません。

解決策:クリーン・ラン・コマンド

環境変数を一時的にリセットして実行することで回避できました。

$ conda deactivate
$ export PYTHONPATH=""
$ export PYTHONHOME=""
$ export PATH=$(echo $PATH | sed -e 's/[^:]*miniconda3[^:]*://g' -e 's/:[^:]*miniconda3[^:]*//g')

4. 映像の確認:rqt_image_view の操作

ウィンドウが開いても最初は画面がグレーのままです。

  1. トピックの再読み込み: 右上の更新ボタンを押す。
  2. トピック選択: /camera/image_raw(設定した名前)を選択。 これで、Isaac Sim上のリアルタイム映像が描画されます!

5. まとめと次のステップ

カメラ映像がROS 2側に届いたことで、以下のことが可能になります。

  • OpenCVによる画像処理: 物体の色や形状の認識
  • AI連携: YOLOなどを用いた物体検出
  • ビジュアルサーボ: 映像を元にしたアームのフィードバック制御

最新環境ではPythonのバージョン管理が最大の敵ですが、正しく環境を分離すれば、Isaac Simの強力なレンダリング機能をROS 2でフル活用できます。

Isaac Sim 5.1.0 の映像を ROS 2 Jazzy に配信する | Shirokuma.online