RoboTry

ROSを使ってロボットを動かすぞ

ジャパンオープン2019 Rootsソフト班のお仕事【2日目】 vs RoboDragons

前回の続きで、ジャパンオープン2019の参戦記 2日目です。

ジャパンオープン2019 Rootsソフト班のお仕事 vs Scramble, INPUT - RoboTry

大会初日で2勝したRootsは予選突破が確定しました。

2日目の試合は勝っても負けても予選突破に変わりはないので、メンバーも安心して試合を迎えられるでしょう。

が、しかし、そんな2日目にはなりませんでした

決勝トーナメントではルールが変わるため、メンバーはその準備に焦っていました………

ロボカップSSLのルールについて

近年のロボカップSSLではロボットだけで試合運営を行うことに挑戦してます。

その挑戦は、コンピュータに試合の審判をさせるオートレフェリー(AutoRef)と、ボールをロボットだけで運ぶボールプレースメント(Ball Placement)です。

AutoRefはロボット同士の衝突違反とか、ボールのシュート速度違反とか、ゴールの可否判定とか、いろんな状況を自動で判断してくれます。

試合がスムーズに進んで良いのですが、参加チームにとっては厄介です。。。 人間だと見過ごしちゃう反則も、コンピュータにはバレちゃいます。なのでルール違反を犯さないようにキッチリとプログラムを作らなくてはなりません。

Ball Placementはセットプレイのスタート位置へボールをロボットが運ぶルールです。 例えば、キックオフではフィールド中央にボールを運びます。PK戦ではゴール前にボールを運びます。 これをロボットだけが、パスやドリブルを駆使して運ぶのです。

Rootsも大会中にBall Placementへ対応させました。🤔

Ball Placementの機能を追加して、

動きを改善して、

Placementを邪魔しないようにロボットを動かして、

最終的にはCON-SAI2に取り込まれました。

vs RoboDragons

そんなこともありながら2日目の試合です。相手はRoboDragons。

RoboDragonsは過去世界3位になっており、ジャパンオープンn連覇中のチームです。恐ろしい。。。

もちろん先ほどのAutoRefにもBall Placementにも対応してます。

Rootsはこの試合を「新ルール対応の練習」に使おうと決めました。 (いつから優勝を目指すチームになったのだRootsは)

そして結果は………

はい、ズタボロです。。。

この時Rootsに何が起きてたの?

  • コートチェンジに合わせてBall Placementの位置を反転してない(真反対の位置にボールを運んじゃう)
  • Ball Placementでパスを狙いすぎて成功しない(ドリブルをしてない)
  • 走行が遅い(PIDゲインを調整できてない)

ソフト班は今夜も眠れない

試合が終わり、最終日の試合まで残り16時間といったところ。今夜も楽しく旅館コーディングしましょうね〜

続く

ジャパンオープン2019 Rootsソフト班のお仕事【1日目】vs Scramble, INPUT

前回の続き。

大会初日

始まりましたロボカップジャパンオープン。 初戦はScrambleが相手です。

Scrambleは去年参加した新しいチームです。最近はRoboCupJuniorや、RoboMastersにも力を入れてる強豪です。

個人的には去年からCON-SAIを使ってくれてるので好きなチームです。

さて、、、

f:id:macakasit:20190821221505p:plain

正午ごろに開戦。ロボットは8台揃ってますが、ソフトはどうでしょう・・・?

github.com

試合直前まで作業してますね〜。Indirect Kickでゴールではなく適当な位置(x=3m, y=0m)を狙うようにしたようです。

Indirect Kickで直接ゴールにボールを入れても得点にはなりませんが、だからといって適当な位置に打つのはいかがなものでしょう? :thinking_face:

試合には・・・

勝ちました。

ソフト班としては、ディフェンス・オフェンス・衝突回避・カルマンフィルタが割と動いてよかった〜という気分です。

ただ、もちろん意図しない動作もしてました。そこでRootsはログを見て確認します。

高性能で頭の悪いロガー

ここでRootsのロギングシステムを紹介します。

そうです、PC画面をiPadで撮影してます。 Rootsは画面録画ツールの存在を知らないのでしょうか……? そしてconsai2はROSで動いてるのに、rosbagを使っていません。(存在を知らないの?)

とチーム内でも賛否両論(否の割合が多い)でしたが、意外とこのログシステムが良いのです。

ポイントとしては、メンバーの実況が入ってることです。

Rootsは試合中とてもうるせぇにぎやかなので、いい感じに試合状況を教えてくれます。

座標データや戦略データだけを見ても、なかなか試合状況はわからないので、ここに実況が入るとログの確認がとても楽です。

あと、単純に楽しい。

ROSユーザーは、rosbag + マイク音声でログを取ると良いかもしれません。(本当にいい方法なのか?)

2試合目

相手は新チームINPUTです。

新チームだからといって舐めてはいけません。INPUTはRoboCupJuniorの世界優勝者が集まる強豪チームです。(強豪多すぎでしょ)

なによりも、初の大会でロボットを8台揃えてることが恐ろしい………

そして試合結果ですが……

勝ちました!今年のオフェンスはガンガンボールを蹴ってくれるので強いです!!!

ちなみにこの時ソフト班では…

ボールプレースメント(人間の代わりにロボットがボールを配置する)のコードを書き始めてますね……

予選突破確定!

今年のSSLは7チーム参加しており、Aリーグ4チーム、Bリーグ3チームに分かれて予選をします。 それぞれ上位2チームが決勝トーナメント進出です。

RootsはAリーグで2勝したので、決勝トーナメント進出決定です!

そしてAリーグ最後の相手は王者RoboDragons。待っているのはオートレフェリーとボールプレースメント。

果たして大会2日目はどうなることやら。

続く。

ジャパンオープン2019 Rootsソフト班のお仕事【準備日】

祝!準優勝!!!

Rootsにとってこの準優勝はとても価値があるのです!

今回の記事では、Rootsのジャパンオープン参戦記を簡単に書いてみようと思います。

自分はソフト班に所属してるので、ソフト寄りの記事になることをご了承ください。

Rootsとは?

RootsはSSLへの参加者を増やすことを目指したチームです

つまりRootsは、日本のロボカップSSL参加チーム数減少を問題視して、新しいチームが参加しやすい環境を作ろうと頑張ってるのです。

全ての始まりはMFT2019から

ジャパンオープンのちょうど2週間前にMaker Faire Tokyo 2019があり、Rootsは出展者として参加しました。

2019年のRootsは、まずMFTに向けて動いていたのです。

さてMFT開催中、Rootsの準備態勢はどうだったかと言うと、

  • ロボット機械: 8台分揃っている
  • ロボット回路: 8台分揃っている
  • PCソフト(AIソフト): 展示用のデモが動くだけ

おや、ソフト班の様子がおかしいですね……

ジャパンオープンまで残り2週間

MFTも終わり、大会まで2週間。ロボットは揃っているけどソフトができてない。。。これは非常にまずいです。

大会10日前でもロボットがその場でくるくる回るだけという、去年を思い出すかのようなクオリティです。

なぜこうなったかというと、ソフトを作り直したからです

去年までのAIソフトウェアがCON-SAIで、

今年はCON-SAI2というものを作っていました。ほぼ、作り直しです。

今年の2, 3月にはベースが出来ていたのですが、そこから僕の会社の研修(小さいロボットが迷路を自動走行するアレ)が始まったので手がつけられなくなりました。

そこで、MFTまでは僕以外のソフト班2人が頑張ってくれました!

MFT後は僕とリーダーが加わって4人体制での開発です!これでなんとかなりそうですね! (※大会まであと2週間)

ジャパンオープンのため長岡へ出発

Rootsのスケジュールは、

  • 14日:長岡へ出発
  • 15日:会場準備日
  • 16日:大会初日(予選)
  • 17日:大会二日目(予選)
  • 18日:大会最終日(決勝トーナメント)

となっていました。

もちろんソフト班のスケジュールは

  • 14日:旅館でコーディング
  • 15日:会場と旅館でコーディング
  • 16日:会場と旅館でコーディング
  • 17日:会場と旅館でコーディング
  • 18日:勝ち残ったらコーディング

です。当たり前ですよね〜

Rootsの開発スタイル

今回は複数メンバーでソフト開発してたので、GitHubのプルリクエストを作ってマージするという、一般的なソフト開発を採用しました。

ただ、開発スピード早くするためレビューは軽めにしてます。ざっとコードに目を通すくらい。(だって大会まで2週間だからね)

最終的には、この2週間で約300コミット、50プルリク増えました。 (多ければ良いってもんじゃない)

大会準備日

この日は制御のパラメータを調整しました。

CON-SAI2には、制御パラメータ調整用のサンプルプログラムが用意されてるので、それを使いました。

最高速度と、加速度を調整して、PIDパラメータを決めました。

得られた値は D=0, I=0, P=1.0 \(^o^)/

続く。

ロボカップ2日目!!! (英会話サボった4日目)

ロボカップジャパンオープン2日目です!

Rootsは、昨日の時点で予選突破確定してましたが、決勝トーナメントのためにも今日の試合は気が抜けません!!!

残念ながら今日の試合は負けました。。。

しかしこの試合で得られたものがたくさんあるので、今夜中にプログラムを直します!!!

明日も勝つぞー!!!

(英会話のサボりに迷いがなくなってきた……)

英会話サボった3 ロボカップで勝利!!!

8/16 からロボカップジャパンオープンに参加してます!!!

我々Rootsは、、、、2勝しました!!!

明日も頑張ります!!!

英会話はもちろんサボってます!!!

英会話サボったブログ2 それどころじゃない

いや、マジそれどころじゃない!

明日から大会やぞ!英会話なんてやめてもええ!

ロボカップは冒険じゃ!!!

(今日撮影した写真がエラーログしかなかった………)

英会話サボった1 ロボカップ始まりました

英会話サボりブログ始まりました! というよりロボカップの大会が始まりました。

本当にロボカップ始まったので今日は英会話サボります!!!

英会話どころではない!!!

ということで、Our Japanese hotel evoke a feeling fear...

(今回の旅館、マジで怖い………)