4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS Robot Delivery Challenge 2022 に出場できなかった話

Last updated at Posted at 2022-03-20

AWS Robot Delivery Challenge 2022 に出場できなかった話

はじめに

今回はじめてQiitaに投稿したのでわかりにくい箇所などが多いと思います。
大学生が移動ロボットの制御の勉強を兼ねて製作したものなので説明に間違いがあるかもしれません、ご指摘いただけるとありがたいです。

AWS Robot Delivery Challenge とは?

詳しくはこちら
AWS Robot Delivery Challengeとは、AWS Japan が開催しているロボコンでROS上で自律二輪ロボットを制御し、どれだけ多くのチェックポイントを通過できたかを競う大会です。AWSロボコンは2020年と2021年の2回開催されています。

参加できなかったワケ

ルール発表が2月中旬頃にあるのですが、2022年はAWS Deep Racer Student に変更されてしまい、強化学習を用いたロボットの大会になってしまいました、、、
2021年の8月頃から移動ロボットの制御の勉強を兼ねて準備していたのですが、出場できなかったのでここに供養します。

AWSロボコン2021決勝のルール

コース全体図

TurtleBot3 Burger という実機のロボットを使い、ロボットを走らせます。
コースには複数のチェックポイント(青い丸)が用意されています。競技は2チームが同時に各チームのロボットを走らせ、より多くのチェックポイントを通過したチームが勝ちです。オレンジの丸が各ロボットのスタート位置です。コース上の緑で引かれている軌道(真ん中の円形の経路と左下・右上の直線の経路)の上に一定速度で動いているトラックがあり、ロボットの走行を妨げます。

結果

任意のチェックポイントについてロボットが到達できました!
シミュレーション予選のルールで33.9秒でゴールすることができました!
ちなみにAWSロボコン2021の予選1位のタイムは約40秒です。
AWSロボコン2021結果

作ったもの

外観

Rviz

製作したUI

名称 内容
Map ロボットの目標位置を入力する
入力されたチェックポイントがControllerのrefに入る
Console ROSのweb_infoという名前のtopicの内容を表示する
Controller ロボットに制御司令を与える
State ロボットの情報を表示する

全体設計

ロボットの自己位置推定を行うノード(amcl)やロボットの自己位置についてのmsgは省略してあります。一部複雑になるために省略している箇所があります。

名称 内容
webUI ブラウザを通じてロボットを操作する(大会ではAWSIoTを用いるが練習ではroswwwを用いた)
target_subscriber WebUIからロボットの目標チェックポイントの情報を受けとりcommanderに送るノード
robot_state_publisher commanderからロボットの情報を受け取り、WebUIに送るノード
commander WebUIからの指示をもとにどの制御器を動かすか司令を行うノード
csv_path_data あらかじめオフラインで計算された最適な経路の点群データ
dijkstra グラフ探索を行うことによって現在いるチェックポイントから目標チェックポイントまでの経路を作るノード
planner dijkstraによって生成された経路についてロボットの制御の目標位置を計算するノード
kanayama_control Kanayamaの制御を行うノード
stop_control ロボットを停止させるノード
manual_control ロボットを手動で操作するときに用いるノード
position_control ROSのnavigationパッケージを用いてロボットを目標チェックポイントまで動作させるノード
move_base ロボットを指定した目標位置まで動かすROSのnavigatoionパッケージに入っているノード
gazebo シミュレーションを行うノード

ロボット制御の主な流れ

あらかじめ各中継点の間の最適な経路を計算

WebUIからの目標チェックポイントをもとにたどるべき経路を探索

ロボットの位置から経路上の目標とする点を算出

ロボットが目標点に追従するように制御

ロボットの位置を推定し更新

Commander

Planner

Controller

自己位置推定

  • ROSのnavigationパッケージにあるamclを用いました。手法としてはパーティクルフィルタを用いています。
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?