はじめに
この記事はIsaac Simの入門として,センサをROS2からアクセスし,値を読み取ることを目標としている.前回からの続きであり,本記事がこのコースの区切りとなる.
こちらが参考にした資料である.
Isaac Simは使用者が少なく記事も少ないが,その分公式ドキュメントが非常に充実している.この記事は公式の上記サイトの日本語版という位置づけでまとめようと思う.上記サイトは英語ではあるが入門から発展まで学べるコース形式となっており,自分で学ぶ分には無料なので,非常におすすめである.
環境
| 項目 | 仕様 |
|---|---|
| メモリ | 32.0 GiB |
| CPU | Intel i7-14700F @ 5.300GHz |
| GPU | NVIDIA GeForce RTX 5080 |
| OS | Ubuntu 22.04.5 LTS 64ビット |
| Isaac Sim | 5.1.0 |
ROS2のインストール
こちらの指示に従う.このコースではUbuntu22.04環境のROS2 Humbleを基本とする.
Isaac Sim用にさらなるセットアップをこちらを元に進める.
Isaac SimのROS2 Bridgeでvision_msgs_packageが必要になる.
Window > ExtensionsからExtension managerを開き,ROS2と入力してROS 2 Bridgeを有効化する.

2D LiDARのデータにアクセス
Action Graphを作成し,ROS2_LidarStreamとリネームする.


ROS2_LidarStreamを右クリックしてOpen Graphから編集する.
以下のノードを追加する.検索欄に名前を入力して追加していく.
- Isaac Read lidar Beams Node: LiDARセンサからのデータを読み取る
- ROS 2 Publish Laser Scan Node: ROS2へLiDARデータをパブリッシュする
- Isaac Read Simulation Time Node: Add this node to synchronize data with the simulation's timestamp.シミュレーションとLiDARデータののタイムスタンプを同期させる
- On Playback Tick Node: データを毎フレームごとに処理させる.
Isaac Read lidar Beams Nodeを選択して,プロパティから編集する.
ROS 2 Publish Laser Scan Nodeからトピック名をscan_lidarに変更する

Playボタンを押して実行する.
/scan_lidarトピックが流れているのでrviz2で可視化する.このとき,fixed_frameにsim_lidarを指定する

LiDARデータの更新レートはLiDARのRaw USD PropertiesのrotationRateの値を大きくすることで変更できる.


これで,基本的なROS2対応のセンサ搭載ロボットを作成できるようになった.

