ジャパンオープン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は)
そして結果は………
予選第3戦 vs RoboDragons は 1-7 で負けました…。
— Roots - RoboCup SSL (@roots_ssl) 2019年8月17日
RoboDrangonsさん対戦ありがとうございました。
AutoRef対応が難しく、スムーズな試合運びができませんでした。AutoRefはどういう裁定になっているのかチーム側も分からず、状況把握が大変です。
はい、ズタボロです。。。
この時Rootsに何が起きてたの?
- コートチェンジに合わせてBall Placementの位置を反転してない(真反対の位置にボールを運んじゃう)
- Ball Placementでパスを狙いすぎて成功しない(ドリブルをしてない)
- 走行が遅い(PIDゲインを調整できてない)
ソフト班は今夜も眠れない
試合が終わり、最終日の試合まで残り16時間といったところ。今夜も楽しく旅館コーディングしましょうね〜
続く
ジャパンオープン2019 Rootsソフト班のお仕事【1日目】vs Scramble, INPUT
前回の続き。
大会初日
始まりましたロボカップジャパンオープン。 初戦はScrambleが相手です。
Scrambleは去年参加した新しいチームです。最近はRoboCupJuniorや、RoboMastersにも力を入れてる強豪です。
個人的には去年からCON-SAIを使ってくれてるので好きなチームです。
さて、、、
正午ごろに開戦。ロボットは8台揃ってますが、ソフトはどうでしょう・・・?
試合直前まで作業してますね〜。Indirect Kickでゴールではなく適当な位置(x=3m, y=0m)を狙うようにしたようです。
Indirect Kickで直接ゴールにボールを入れても得点にはなりませんが、だからといって適当な位置に打つのはいかがなものでしょう? :thinking_face:
試合には・・・
JapanOpenの大事な初戦、 vs Scrambleは 5-1 で勝利しました!#roots_ssl #robocup pic.twitter.com/WPHSYhbHCA
— Roots - RoboCup SSL (@roots_ssl) 2019年8月16日
勝ちました。
ソフト班としては、ディフェンス・オフェンス・衝突回避・カルマンフィルタが割と動いてよかった〜という気分です。
ただ、もちろん意図しない動作もしてました。そこでRootsはログを見て確認します。
高性能で頭の悪いロガー
ここでRootsのロギングシステムを紹介します。
Rootsはパソコンをまともに扱えないので、PC画面をiPadで録画してます。
— と雷 (@chmod_x_akasit) 2019年8月17日
そしてそれをスマホで撮影する私。 pic.twitter.com/ufP5Xs5eDf
そうです、PC画面をiPadで撮影してます。 Rootsは画面録画ツールの存在を知らないのでしょうか……? そしてconsai2はROSで動いてるのに、rosbagを使っていません。(存在を知らないの?)
とチーム内でも賛否両論(否の割合が多い)でしたが、意外とこのログシステムが良いのです。
ポイントとしては、メンバーの実況が入ってることです。
Rootsは試合中とてもうるせぇにぎやかなので、いい感じに試合状況を教えてくれます。
座標データや戦略データだけを見ても、なかなか試合状況はわからないので、ここに実況が入るとログの確認がとても楽です。
あと、単純に楽しい。
SSLの実況動画おもしろいな。各チームで録画すべき。
— と雷 (@chmod_x_akasit) 2019年8月21日
ROSユーザーは、rosbag + マイク音声でログを取ると良いかもしれません。(本当にいい方法なのか?)
2試合目
相手は新チームINPUTです。
新チームだからといって舐めてはいけません。INPUTはRoboCupJuniorの世界優勝者が集まる強豪チームです。(強豪多すぎでしょ)
なによりも、初の大会でロボットを8台揃えてることが恐ろしい………
そして試合結果ですが……
第2戦 vs INPUT は 7-0 で勝利!INPUTさん対戦ありがとうございました! #roots_ssl #robocup pic.twitter.com/9gftqOKjTZ
— Roots - RoboCup SSL (@roots_ssl) 2019年8月16日
勝ちました!今年のオフェンスはガンガンボールを蹴ってくれるので強いです!!!
ちなみにこの時ソフト班では…
ボールプレースメント(人間の代わりにロボットがボールを配置する)のコードを書き始めてますね……
予選突破確定!
今年の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は出展者として参加しました。
#MakerFaireTokyo2019 無事終了しました。
— Roots - RoboCup SSL (@roots_ssl) 2019年8月4日
たくさんのお客さんに、ロボットのサッカーを楽しんでもらえたと思います。
ありがとうございました。#MFT2019#roots_ssl pic.twitter.com/8s5YkixrPD
2019年のRootsは、まずMFTに向けて動いていたのです。
さてMFT開催中、Rootsの準備態勢はどうだったかと言うと、
- ロボット機械: 8台分揃っている
- ロボット回路: 8台分揃っている
- PCソフト(AIソフト): 展示用のデモが動くだけ
おや、ソフト班の様子がおかしいですね……
ジャパンオープンまで残り2週間
MFTも終わり、大会まで2週間。ロボットは揃っているけどソフトができてない。。。これは非常にまずいです。
なんとまぁ、驚くべきことに、大会開始10日前の戦略ソフトCON-SAI2はこの状態でした😇😇😇#Roots_SSL #RoboCup #CONSAI2 pic.twitter.com/O9wexM7CtJ
— ナベクロ (@nabekuro) 2019年8月18日
大会10日前でもロボットがその場でくるくる回るだけという、去年を思い出すかのようなクオリティです。
なぜこうなったかというと、ソフトを作り直したからです。
去年までのAIソフトウェアがCON-SAIで、
今年はCON-SAI2というものを作っていました。ほぼ、作り直しです。
今年の2, 3月にはベースが出来ていたのですが、そこから僕の会社の研修(小さいロボットが迷路を自動走行するアレ)が始まったので手がつけられなくなりました。
そこで、MFTまでは僕以外のソフト班2人が頑張ってくれました!
ぼくはディフェンスの動きやカバーオフェンスの動き、PK動作などなどを担当して開発しました。うちくん、と雷くん、タイチでめちゃくちゃ頑張って作り上げました。みんなでSSL盛り上げて行きましょう!!https://t.co/fI1bAYBVh9
— ナベクロ (@nabekuro) 2019年8月18日
え、ずるい
— うちくん (@uchikun93) 2019年8月18日
うちくんは衝突回避とゴーリーとball_placementやりました
まだまだ改良していくんでよろしくです🙏#Roots_ssl https://t.co/y8l6ZklKGh
MFT後は僕とリーダーが加わって4人体制での開発です!これでなんとかなりそうですね! (※大会まであと2週間)
CON-SAI2 の開発履歴を動画にしてみた。 大会前からのラッシュが狂ってる… #Roots_SSL pic.twitter.com/xXiDc48ZsP
— TilT a.k.a Taichi (@silvie_c) 2019年8月19日
issue立て、pullreq作れば、みんな神
— と雷 (@chmod_x_akasit) 2019年8月12日
ジャパンオープンのため長岡へ出発
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日目)
Rootsは、昨日の時点で予選突破確定してましたが、決勝トーナメントのためにも今日の試合は気が抜けません!!!
残念ながら今日の試合は負けました。。。
予選第3戦 vs RoboDragons は 1-7 で負けました…。
— Roots - RoboCup SSL (@roots_ssl) 2019年8月17日
RoboDrangonsさん対戦ありがとうございました。
AutoRef対応が難しく、スムーズな試合運びができませんでした。AutoRefはどういう裁定になっているのかチーム側も分からず、状況把握が大変です。
しかしこの試合で得られたものがたくさんあるので、今夜中にプログラムを直します!!!
明日も勝つぞー!!!
(英会話のサボりに迷いがなくなってきた……)
英会話サボった3 ロボカップで勝利!!!
8/16 からロボカップジャパンオープンに参加してます!!!
我々Rootsは、、、、2勝しました!!!
JapanOpenの大事な初戦、 vs Scrambleは 5-1 で勝利しました!#roots_ssl #robocup pic.twitter.com/WPHSYhbHCA
— Roots - RoboCup SSL (@roots_ssl) 2019年8月16日
第2戦 vs INPUT は 7-0 で勝利!INPUTさん対戦ありがとうございました! #roots_ssl #robocup pic.twitter.com/9gftqOKjTZ
— Roots - RoboCup SSL (@roots_ssl) 2019年8月16日
明日も頑張ります!!!
英会話はもちろんサボってます!!!