目的
ここまでに学んだ技術を駆使して,難易度の高い課題にトライします.課題を分析し,戦略を立て,与えられた期間で課題に取り組みましょう.課題は競技形式となっており,より高い得点を得られるロボットアプリケーションを開発した人が勝ちとなります.
最終課題
テーマ:お掃除ロボットの開発
ロボットシミュレータstageを用いて擬似的なお掃除ロボットのアプリケーションを開発します.制限時間内にロボットスタート地点からゴール地点まで走行するアプリケーションを作成します.ゴール地点に早くたどり着くほど高い得点を得ることができます.また,2種類の通過ポイントを通過することで,より高い得点を稼ぐことができます.
基本ルール
- 制限時間は180秒,早くゴール地点に到達するほど高いスコアが得られる
- スタート地点は固定(マップについては下記の図を参照)
- マップでロボットが観測できるのはカラーブロックのみ,ゴール地点や通過ポイント1,2はカメラで観測することはできない
- ゴール地点の候補は3箇所あり,ノード起動時にランダムで1箇所が決定する.ゴール地点の座標はトピック「/goal_point」を購読することで確認できる
- ゴール座標から半径1[m]以内の領域に侵入した場合にゴール地点に到達したと判定.競技は終了する
- 通過ポイント1の候補は4箇所あり,ノード起動時にランダムで2箇所が決定する
- 通過ポイント1から半径1[m]以内の領域に侵入した場合に到達したと判定し,スコアが加算される
- 通過ポイント1の座標は,座標配信エリアに侵入し,トピック「/check_point」を購読することで近くの通過ポイント1の座標を確認できる
- 通過ポイント2の候補は7箇所あり,ノード起動時にランダムで4箇所が決定する
- 通過ポイント2から半径1[m]以内の領域に侵入しトピック「/check_signal」を用いて「1(True)」を配信することでスコアが加算される
- 通過ポイント2から離れた位置において,トピック「/check_signal」を用いて「1(True)」を配信するとスコアが減点される.ただし,ランダムで選択されなかった3箇所の通過ポイント2付近においてはスコアを減点しない.
- 通過ポイント2付近には,ランドマークとなる赤色のカラーブロックが存在する(下記の図を参照)
- 競技前にマップを作成してもよい
競技に使用するマップは20×20[m]です.マップは上記を参考にしてください.
上記に通過ポイント2付近に存在するカラーブロックの例を示します.ロボットに搭載されているカメラでカラーブロックと通過ポイント2の位置関係を把握することが必要です.
ロボットの仕様
2輪走行ロボット
- ロボットのサイズ:0.75 x 0.75 [m]
- 駆動方式:対向2輪駆動型
搭載センサ
- 可視光カメラ
- 解像度:320 x 240 [画素]
- FOV(視野):40 x 70 [°]
- トピック名:/image
- 距離画像カメラ
- 解像度:320 x 240 [画素]
- FOV(視野):40 x 70 [°]
- トピック名:/depth
- レーザーレンジセンサ
- 測定レンジ:0.0 ~ 20.0 [m]
- 視野角:270.25 [度]
- トピック名:/base_scan
スコア
各タスクは下記の通りです.
タスク | 配点 | 注意事項 |
ゴール到達 | 100 | |
ゴール到達時間 | 競技残り時間 / 2 | ゴール到達時のみスコアに加算される. |
通過ポイント1 | 20 | |
通過ポイント2 | 50 | 間違ったシグナルを配信した場合には-10 |
各タスクの合計を争います.
パッケージ
本競技に必要なパッケージstage_robot_vacuumについてはリンク先を参照してください.パッケージの説明に関してはREADME.mdファイルに記載してます.
禁止事項
- マップの改変は認めない
- stage_manager_node.pyの改変は認めない
- ロボットの並進最高速度は0.5とする
- マップの改変は禁止する
- 人手によるロボットの操縦は認めない
- ゴール座標毎に異なるプログラムを用意する