会社案内ロボットカートのナビゲーションHOMEROS(ロボットオペレーティングシステム)ロボットカートのナビゲーション概要ロボットカート(ロボット台車)のナビゲーションを行います。1)ロボットカートを使って部屋の2D地図を作成します。2)地図上で目標位置・向きを指定して、そこまでロボットカートを自動運転させます。経路上に障害物があっても、それを避けてロボットカートが移動します。3)パラメータ調整のためシミュレーションを使用します。動画ロボットカートをROSのナビゲーションで動かすロボットカートをROSのナビゲーションで動かす(その2)ロボットカートを動かし、地図上にLiDARの測距データを表示するロボットカートのナビゲーションをROSでシミュレーションするロボットカートをジョイパッドで操縦する地図作成ロボットカートが移動する部屋の地図を作成します。ロボットカートをジョイパッドで操縦し、部屋を一周します。Launchファイルを起動します。hajimecart_robothw.launchros_serial関連のノードをまとめて起動します。hajimecart_rosserial_all.launchジョイパッド関連のノードをまとめて起動します。dev:=/dev/input/js0360度測距センサーのLiDARを起動します。rplidar.launchrosbagを起動して、これから測定するデータを記録していきます。sakamotobagロボットカートをジョイパッドで操縦して、ロボットカートに部屋を一周させます。ロボットカートをジョイパッドで操縦する記録を終了するには、rosbagをCTRL-Cで終了させます。記録したbagファイルの情報を確認するには以下のコマンドです。tf2_msgs/TFMessageジョイパッドでロボットカート操縦中のROSのノードとトピック測定データを記録したbagファイルを使用して地図作成にかかります。地図作成のためのプログラムgmappingを起動します。hajimecart_gmapping.launchbagファイルを再生します。sakamotobag.bag地図を保存します。0.196ナビゲーション(実機)ナビゲーションのためにロボットカートを起動します。rplidar.launchナビゲーション用のLaunchファイルで、map_server、amcl、move_baseなどをまとめて起動します。trueLaunchファイルを起動します。hajimecart_robothw_navigation.launchナビゲーション用のGUIのrvizを起動します。起動時に設定ファイルurdf_map.rvizを読み込みます。display_map.launchrviz画面の地図上で、目標位置と向きをマウスで指定すると、ロボットカートは動き出します。移動の経路上に障害物があればそれを避けて通り、目標に到達します。目標位置と向きを合わせてロボットカートは停止します。LiDARで測定された測距データが地図上に表示されています。本来の地図にはなかった、青色のサイコロもLiDARで検出されて、障害物として表示されています。(下の写真)ロボットカートをナビゲーションで動かすナビゲーション中のrvizの画面ナビゲーションでロボットカートが移動中(rvizの画面)ナビゲーション中のROSのノードとトピックナビゲーション(シミュレーション)ナビゲーションで設定するパラメータは多いため、シミュレーションを使用して、パラメータを調整します。willowgarageの世界でシミュレータgazeboを起動します。hajimecart_gazebo_willow.launchwillowgarageの地図でmap_serverを起動します。hajimecart_gazebo_willow_navigation.launchナビゲーション用のGUIのrvizを起動します。display_map.launch左側ウインドウのrviz画面の地図上で、目標位置と向きをマウス操作で与えると、右側ウインドウのgazebo画面でロボットカートは動き出します。移動の経路上に障害物があればそれを避けて通り、目標に到達します。目標位置と向きを合わせてロボットカートは停止します。ロボットカートのナビゲーションのシミュレーションROSのパラメータを調整するために、rqt_reconfigureを起動します。rqt_reconfigurerqt_reconfigureを使うと、パラメータ変更がリアルタイムに反映されます。ロボットカートのシミュレーションの動きを確認しながら、ナビゲーションのパラメータを調整していきます。