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 の操作
ウィンドウが開いても最初は画面がグレーのままです。
- トピックの再読み込み: 右上の更新ボタンを押す。
- トピック選択:
/camera/image_raw(設定した名前)を選択。 これで、Isaac Sim上のリアルタイム映像が描画されます!
5. まとめと次のステップ
カメラ映像がROS 2側に届いたことで、以下のことが可能になります。
- OpenCVによる画像処理: 物体の色や形状の認識
- AI連携: YOLOなどを用いた物体検出
- ビジュアルサーボ: 映像を元にしたアームのフィードバック制御
最新環境ではPythonのバージョン管理が最大の敵ですが、正しく環境を分離すれば、Isaac Simの強力なレンダリング機能をROS 2でフル活用できます。
