本記事では、ChoreonoidとROSの連携でBodyROSアイテムを追加した際にパブリッシュされるセンサ情報(ROSトピック)について解説します。

1. 使用した環境

・Ubuntu 20.04 LTS
・ROS Noetic Ninjemys
・Choreonoid 1.8

2. BodyROSアイテムとは

BodyROSアイテムとは、choreoniod_rosパッケージに含まれているROSと連携できるコントローラアイテムです。これをロボットモデルの子アイテムとして追加することで、仮想ロボットのセンサデータをROSのプログラムを実装することなく出力することができます。視覚センサ(カメラ画像、深度情報、点群情報)を取得する場合は、AistSimulatorの子アイテムとして、GLVisionSimulatorの追加が必要です。プロジェクトファイルの構成は、以下となります。
 
【プロジェクトファイルの構成例】

- World
 - ロボットモデル
  - シンプルコントローラ
  - BodyROS
 - 環境モデル
 - AISTSimulator
  - GLVisionSimulator
 - WorldROS

3. BodyROSで取得できるセンサデータ

BodyROSアイテムでは、表1のセンサデータがパブリッシュされます。”rostopic”コマンドを実行することで、トピック一覧やパブリッシュされているトピックのデータの確認ができます。

関節/センサタイプ トピック名 説明
revolute/prismatic/ pseudo_continuous_track /ロボット名/joint_states JointState fixed関節以外の仮想ロボットの関節情報をパブリッシュ。
例) ロボット名:waffle_piの場合、トピック名:/waffle_pi/joint_states
ForceSensor /ロボット名/センサ名 WrenchStamped ボディモデルで指定したセンサ名で力センサ情報をパブリッシュ。
例) ロボット名:waffle_pi、センサ名:forceSensorの場合、トピック名:/waffle_pi/forceSensor”
RateGyroSensor /ロボット名/センサ名 Imu ボディモデルで指定したセンサ名で3軸角速度センサ情報をパブリッシュ。
AccelerationSensor /ロボット名/センサ名 Imu ボディモデルで指定したセンサ名で3軸加速度センサ情報をパブリッシュ。
Camera /ロボット名/センサ名/image_raw Image カメラ画像情報をパブリッシュ。ボディモデルのCameraノードの”format”に COLOR/COLOR_DEPTHを指定。
Camera /ロボット名/センサ名/point_cloud PointCloud2 深度情報をパブリッシュ。ボディモデルのCameraノードの”format”にDEPTH/COLOR_DEPTHを指定。
RangeSensor /ロボット名/センサ名/scan LaserScan 2次元点群情報をパブリッシュ。ボディモデルのRangeSensorノードの”pitchRange”に0を指定。
RangeSensor /ロボット名/センサ名/point_cloud PointCloud/PointCloud2 3次元点群情報をパブリッシュ。ボディモデルのRangeSensorノードの”pitchRange”に1~170を指定。
※ CMakeオプションで-DUSE_POINTCLOUD1_IN_BODY_ROS_ITEM=ONを設定すれば、PointCloud型、設定していなければPointCloud2型でパブリッシュ。

表1. BodyROSでパブリッシュされるセンサデータ一覧

上記の表の「ロボット名」は、Choreonoidのアイテムツリービューで表示されている仮想ロボット名が設定され、「センサ名」は、ボディモデルで記述している名前が設定されます。


図 1. Choreonoid画面

 


図 2. ボディモデルのセンサの記述例

 
【ROSトピック一覧の確認コマンド】

rostopic list

【ROSトピックのデータ確認コマンド】

rostopic echo /waffle_pi/joint_states

4. ボディモデルへのセンサ情報の記述方法

ボディモデルへのセンサ情報の記述方法は、Choreonoid公式HPをご参考ください。
https://choreonoid.org/ja/documents/latest/handling-models/modelfile/yaml-reference.html#body-file-reference-devices

いかがでしたでしょうか。
今回は、ChoeonoidのBodyROSからパブリッシュされるセンサ情報について、備忘録として掲載してみました。
少しでも皆様のお役に立てれば幸いです。