第5章
ROS2に対応したツール/パッケージ
九州工業大学大学院
工学府工学専攻知能制御工学コース
西田研究室 修士1年
山福 佳
R1.10.5 ROS2勉強会
目次
1. rosbag2
2. rviz2
3. ros2_intel_realsense
4. navigation2
5. cartographer
6. moveit2
7. Gazebo
8. Ignition Acropolis
この章では,ROS1に存在したROSの主要・便利ツールについて
ROS2での実装状況および進化点について説明する
rosbag2
ROS1でも rosbag が存在
トピックを記録・再生するツール
ROS2では rosbag2 として存在
同じデータの使用が可能
進化点: ストレージ形式とシリアライゼーション形式について切り替え可能
ストレージ形式:
デフォルトは SQLite3 を使用
ROS1で記録した bag ファイルの再生も可能
シリアライゼーション形式:
デフォルトは CDR を使用
現状はデフォルトのみ使用可
rosbag2
rosbag2 の操作方法
$ ros2 bag record -o all.bag -a :すべてのトピックを all.bag という名前で記録
$ ros2 bag record -o topic_a_and_b.bag /topic_a /topic_b
:指定したトピックを topic_a_and_b.bag という名前で記録
指定するトピック名
トピックの記録:
bagファイルの再生:
$ ros2 bag play all.bag :all.bag という名前のbagファイルを再生
※正規表現によるトピック選択は未実装
"/(.*)_stereo/(left | right)/image_rect_color"
※再生速度の変更は未実装
rviz2
ROS1 から存在する可視化ツール
プラグインの開発が進行中
実装済み:Point Cloud , TF , Robot Model など
未実装:Interactive Marker , DepthCloud など
TF , Point Cloud
主要なプラグインの実装は大方完成
Interactive Marker出典:https://i.ytimg.com/vi/IiVYGLhhOmA/maxresdefault.jpg
Inter RealSense ros2
Intel RealSense D435
Intel製のRGBDカメラ RealSense の ros2用ドライバは
すでに公開済み
https://github.com/intel/ros2_intel_realsense
$ sudo apt install ros-dashing-realsense-camera-msgs
ros-dashing-realsense-ros2-camera
必要パッケージ:
・下記リポジトリをワークスペースにクローン
rosdep で依存パッケージを追加
・下記コマンドより,さらにパッケージを追加
RealsSense の D400 系であれば対応らしい
出典:https://www.intelrealsense.com/stereo-depth
Inter RealSense ros2
実際に動作させてみる…
RealSense D415 を使用
下記コマンドで rviz2 とともに起動
$ ros2 launch realsense_ros2_camera ros2_intel_realsense.launch.py
画像および点群が表示されない
デバイスが出力をサポート
していない?
出典:https://www.intelrealsense.com/stereo-depth
navigation2
地図情報とセンサ情報に基づいたロボットの自己位置推定,経路計画パッケージ
・自己位置から目標位置までの経路計画
・地図情報からのコストマップの作成,障害物の回避
・動作が異常停止してからの復帰動作
ROS 内でも主要なパッケージ
出典:https://answers.ros.org/question/291482/outdoor-navigation-following-the-road-only-with-road-map/
navigation2
ROS1 では move_base パッケージに以下の機能が集約
・global_costmap
・global_planning
・local_costmap
・local_planning
・recovery_behaviors
:地図全体のコストマップ
:自己位置から目標位置への経路計画
:ロボット周辺のみのコストマップ
:自己位置からglobal_planningで得られた経路上の
近傍位置への経路計画
:自己位置を見失った際の復帰動作
move_base の肥大化
出典:http://wiki.ros.org/move_base
navigation2
ROS2 ではビヘイビアツリーを使用
ROS1 では復帰動作列が固定,パラメータの調整のみ可能
ビヘイビアツリーの導入により,自由で高度な復帰動作の設計が可能に
出典:https://github.com/ros-
planning/navigation2/tree/master/nav2_bt_navigator
出典:http://wiki.ros.org/move_base
navigation2
現状:
https://github.com/ros-planning/navigation2
以下のリポジトリで移行作業中
製品レベルの品質にはまだ達していない
現時点でも,2次元地図上に初期位置設定や目標位置設定の実行が可能
上記位置間の経路計画や,コストマップに基づく障害物回避も可能
cartographer
ナビゲーションのための地図作成と自己位置推定を同時に行うSLAMパッケージ
ROS1 では他にも多くの SLAM パッケージが存在
Gmapping,HectorSLAM,KartoSLAM,Ethzasl icp mapping
ROS2 移行が進んでいるのは Cartographer パッケージのみ
https://github.com/ros2/cartographer
https://github.com/ros2/cartographer_ros
出典:https://github.com/googlecartographer/cartographer
moveit2
マニピュレータの動作計画パッケージ
マニピュレータの初期姿勢から目標姿勢までの軌道を計画
軌道中の障害物回避や自己干渉の回避が可能
https://github.com/ros-planning/moveit2
https://github.com/ScutronicRobotics/moveit2
後者のリポジトリでのみ build が行えた
https://discourse.ros.org/t/moveit-2-
journey-announcing-moveit-2-alpha-
release-for-ros-2-dashing-diademata/9366
チュートリアルページ,紹介だけ
既存機能の移植が主に進行中
出典:https://github.com/Nishida-Lab/motoman_project
Gazebo
ROS1 ではロボット動作シミュレートのための標準物理シミュレータ
https://github.com/ros-simulation/gazebo_ros_pkgs/tree/ros2
上記リポジトリにおいて,ROS2との通信が行えるように作業中
現在,/cmd_vel により移動ロボットを動作させることは可能
ROS2 /cmd_vel
出典:https://jp.mathworks.com/help/robotics/examples/get-
started-with-gazebo-and-a-simulated-turtlebot.html
出典:https://jp.mathworks.com/help/robotics/examples/control-
pr2-arm-movements-using-actions-and-ik.html
Gazebo
ロボットの実時間制御パッケージ ros_control の移行が未完了
https://github.com/ros-controls/ros2-control
下記リポジトリで移行が行われているが最近進捗がない
Gazebo だけでなく実機との通信も困難
出典:http://wiki.ros.org/ros_control
Ignition Acropolis
Gazebo から Ignition Acropolis への移行
Gazebo がなくなる
Gazebo が Ignition Gazebo ライブラリとなり,Ignition フレームワークの
一部となって,それを用いたシミュレータの名前が Ignition Acropolis となる
将来的に,Gazebo を物理シミュレータとして扱え続けられる
他の物理シミュレータの動向も…
1. Webots
https://www.youtube.com/watch?time_cont
inue=98&v=O7U3sX_ubGc
2. V-REP
https://www.youtube.com/watch?time_cont
inue=47&v=Zech1Y2CdRo
Gazebo 以外のシミュレータにも
注目すべき
これらも ROS2 への対応が
進行中
この章のまとめ
この章では,ROS1のころから存在する,ROS の主要ツールについて,ROS2への
移行状況や変更点などを説明した.
Rviz2 は主要な機能が大方実装されており,画像・点群処理の結果,座標系の表示
などは,ROS1と同様に行えると考えらえる.
一方,navigation,MoveIt! といった主要パッケージはまだ移行段階であり
早期の実装が望まれる.

06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ