概要を読んでいない方は先にこちらを読んでください!
目次のページ
はじめに
今回は上図のcommanderの部分について説明します.
WebUIから指令をうけとって,ロボットの各機能を操作する,いわば司令塔に相当する機能です.
Commanderの制御フロー
WebUIは以下のような画面になっています.
画面右上のControllerから確認できるように,送られる指令は以下の4つです.
- Dijkstra
- Navigation
- Manual
- Auto
それぞれの指令が送られたときのCommanderの対応について以下で説明します.
Dijkstra
この指令を送る際は事前にMapで経由したい箇所(あれば)と目標地点の番号をクリックします.そのあとこの指令を送ることで,指定した番号のリストにあった最適経路が帰ってきてロボットが動くという仕組みになっています.
- アルゴリズム
①ターゲットポイントをdijkstraノードに送り,初期目標姿勢を受け取る.
②現在位置と初期目標姿勢から頭とお尻の近い方を目標姿勢に近づける.
③ロボットがどちら向きかをplannerノードに送る.
④kanayama_controlノードを動かす.
Navigation
この指令を送る際は事前にMapで目標地点の番号をクリックします.
そのあとこの指令をおくることで,目標位置までロボットが動くという仕組みになっています.
- アルゴリズム
①stop_controlで全コントローラを止める.
②ターゲットポイントをposition_controlノードにおくる.
Manual
これは,ロボットのコントロールを手動に切り替えるという指令になっています.ロボットの前に移動する障害物が来たり,不測の事態が起こった時に手動に切り替えるための機能です.
- アルゴリズム
①stop_controlで全コントローラを止める.
②manual_controlノードを動かす.
Auto
これは,Kanayama Controlを再開させる指令になっています.
主にManualからの切り替えで使用します.
- アルゴリズム
①stop_controlで全コントローラを止める.
②kanayama_controlノードを動かす.