Choreonoid tips ⑩【BodyROSでパブリッシュされるセンサ情報】
本記事では、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からパブリッシュされるセンサ情報について、備忘録として掲載してみました。
少しでも皆様のお役に立てれば幸いです。