ROS 2を用いたロボットの実機とシミュレーションによるデジタルツイン連動の実践ROSの進化とデジタルツインの可能性(後編)(4/5 ページ)

» 2024年01月22日 07時00分 公開
[富士ソフトMONOist]

4.Isaac Sim上のLiDARによるロボットの停止同期

 次に、デジタルツインのシミュレーションからのフィードバックとしてIsaac Sim上のTurtlebot3にLiDAR(Light Detection and Ranging、ライダー)を設定し、障害物に近づいた時にロボットを停止させる挙動を作成する。

4.1. LiDARの設定

(1)ROS2 Bridgeを有効にし「2.2.3 Isaac SimとROSの連携」で作成したTurtlebot3のUSDファイルを開く。

(2)オブジェクト一覧の「Turtlebot3_burger」下の「base_scan」を選択し、左上のメニューから“Create>Isaac>Sensors>Lidar>Rotating”を選択し、“Lidar”というオブジェクトを追加する(図20)。

図20 図20 オブジェクトの“Lidar”を追加する

(3)Lidarの「Property」群の「Raw USD Properties」は下図のようにパラメータを設定する(図21)。

図21 図21 「Raw USD Properties」のパラメータを設定する

(4)ROS 2トピックとして出力するため、「Action Graph」を設定する。

 「Action Graph」は「2.2.3 Isaac SimとROSの連携」の(2)で作成したものにノードを追加して使用する。

 既存Action Graphは図22のように開くことができる

図22 図22 既存のAction Graphの開き方
  • 追加するノード(図23
    • Isaac Read Lidar Beams Node:Isaac SimのLidarパラメータを設定するノード
    • Isaac Read Simulation Time:Isaac Sim上の時間を出力ノード
    • ROS2 Publish Laser Scan:センサーをROSトピックとして出力するノード
図23 図23 追加する3つのノード[クリックで拡大]

(5)各ノード設定の「Property」を図24のように変更する。

  • ROS2 Publish Laser Scan「Inputs」-「topicName」:“scan_sim”と入力
  • Isaac Read Lidar Beams Node「Relationships」-「inputs:lidarPrim」:Lidarのオブジェクトを指定
図24 図24 各ノード設定の「Property」を変更する

 別のターミナルでリスト10のように“ros2 topic list”と入力すると、トピック一覧として“/scan_sim”が表示されることが確認できる。

$ ros2 topic list
/cmd_vel
/parameter_events
/rosout
/scan_sim
リスト10 別のターミナルで“ros2 topic list”と入力する

 USDファイルを保存してIsaac Simを閉じる。

Copyright © ITmedia, Inc. All Rights Reserved.