ROS 2を用いたロボットの実機とシミュレーションによるデジタルツイン連動の実践:ROSの進化とデジタルツインの可能性(後編)(4/5 ページ)
ロボットプラットフォームとして知られる「ROS」の需要が高まり続けている。本稿では前後編に分けて、ROSの進化とデジタルツインの可能性について考察する。後編では、ROSのデジタルツイン活用の事例として、ROS 2を実装したロボットの実機とシミュレーションの連動について紹介する
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)。
(3)Lidarの「Property」群の「Raw USD Properties」は下図のようにパラメータを設定する(図21)。
(4)ROS 2トピックとして出力するため、「Action Graph」を設定する。
「Action Graph」は「2.2.3 Isaac SimとROSの連携」の(2)で作成したものにノードを追加して使用する。
既存Action Graphは図22のように開くことができる
- 追加するノード(図23)
- Isaac Read Lidar Beams Node:Isaac SimのLidarパラメータを設定するノード
- Isaac Read Simulation Time:Isaac Sim上の時間を出力ノード
- ROS2 Publish Laser Scan:センサーをROSトピックとして出力するノード
(5)各ノード設定の「Property」を図24のように変更する。
- ROS2 Publish Laser Scan「Inputs」-「topicName」:“scan_sim”と入力
- Isaac Read Lidar Beams Node「Relationships」-「inputs:lidarPrim」:Lidarのオブジェクトを指定
別のターミナルでリスト10のように“ros2 topic list”と入力すると、トピック一覧として“/scan_sim”が表示されることが確認できる。
$ ros2 topic list /cmd_vel /parameter_events /rosout /scan_sim
USDファイルを保存してIsaac Simを閉じる。
Copyright © ITmedia, Inc. All Rights Reserved.