【RoboCup】C++を始めて4ヶ月でAIサッカー全国大会に挑戦する小学生と素人軍団【2D Sim】
2019.08.18
Updated by Ryo Shimizu on August 18, 2019, 06:56 am JST
2019.08.18
Updated by Ryo Shimizu on August 18, 2019, 06:56 am JST
昨年、僕は自ら主宰する「秋葉原プログラミング教室」において「サッカー部」の設立を宣言した。
プログラミング教室のサッカー部なのだから、普通にサッカーをするわけではない。
サッカーをするロボットのAI(人工知能)部分を作るのである。
ここ数年、「なんちゃってAI」と「ホンモノのAI」の差が取り沙汰されているが、実際のところ、現在のコンピュータは全て原始的なAIと呼べてしまうので、「なんとなく自分で考えてるふうに振る舞うプログラム(およびシステム)」は全部まとめてAIと呼ばれてしまっている。
AIというのはある種の掛け声であり、たとえば主に海外のゲームプログラミングの世界では、敵キャラクターの動きは(たとえ予め決められた経路に沿って移動するだけのものであっても)全て単に「AI」と呼ばれている。
とはいえ、原始的なAIは大昔からあったので、ここ数年注目されている「ディープラーニング」とは無関係である場合、それほど大きな技術的進化があるわけではない。イコール、難しいことを考えなくても手軽に作れてしまう原始的なAIから入門できるという点で、サッカーは魅力的なテーマの一つだと考えた。
最初はまさしくレゴマインドストームや、市販のロボット教材とビジュアルプログラミング言語を使って、ニューラルネットなどは全く使わない、文字通り原始的な「AI」をプログラミングして、見様見真似でやってみた。
「秋葉原プログラミング教室」に通う小学生二人と、社会人数名の有志が、毎週水曜日の夜に集まってはああでもないこうでもないと凌ぎを削っていたわけだ。
最初は物理的なロボットを作っていたが、より高度な戦術が試せる2Dシミュレーションリーグに照準を当て、ギリアのインターンの大学生がC++で書かれたサンプルコードをPythonに移植したものを使って、まずは慣れたPythonで戦ってみた。
このレベルだと、初期配置のフォーメーションがおおいに「効く」ので、詰将棋的というか、カードゲームのデッキを作るような気軽さで配置だけ決めてしまってもそれなりに勝負になった。
モノは試し、と挑戦してみた北九州大会で、予想通りに惨敗(全試合敗北)した結果、チーム全体に「やはり自分たちでC++のコードを書かなくては一勝も難しい」という結論に至り、今年の4月に入ってから、プロのプログラマが一人もいない、素人集団たちが一年奮起して「やはりC++コードを書こう!」と盛り上がった。
そして新潟県長岡市で開催される「ロボカップジャパンオープン2019ながおか」へチーム「常在戦場(jyo_sen)」としての参加を決定した。
開催地が長岡市、チーム名が「常在戦場(長岡ゆかりの武人、山本五十六の座右の銘)」というのはあまりにもできすぎているように思われるかもしれないが、僕は昨年、ロボカップ日本委員会がジャパンオープンの誘致先を探しているとの情報を長岡市役所に投げたにすぎず、チーム「常在戦場」も気がつくと部員たちが独自に掲げたスローガンに過ぎない(部員の中に長岡市出身者は一人もいない)。
果たして、C++に入門してたった4ヶ月弱の素人集団(小学生一人と中学生一人と社会人5名)が、競合ひしめくロボカップ日本大会でどこまで通用するのか。
北九州大会の雪辱を果たすべく毎週の練習(主に部内対戦による共進化)を欠かさなかったことがどう勝利につながっていくのか。
僕は「ロボカップやってみたら?」としか言ってないので、その後は基本的に放置していて、ロボカップシミュレーションリーグ経験者の中村政義氏を監督に招いたものの、その後はなかなか時間がとれず部にも顔を出せていなかった。
正直、一点でももぎ取れれば儲けもん、と思っていたのだが、蓋を開けてみれば、初日は暫定三位(参加10チーム中)の大善戦であった。
特に、りく君、りょう君といった若者たちは、真綿が水を吸い込むようにC++を学んでいき、土壇場の設定では大学生チームを差し置いてりく君が先にセットアップを完了するなど、小学生プログラマーならではの機動性を見せた。
後に懇親会で判明したことだが、実はロボカップの参加チームの多くは大学のサークルがメインで、技術の承継などがそれほど盛んに行われていなかったり、そもそも大学に入ってからプログラミングを勉強中のような参加者も少なくなかった。その意味では、C++は不慣れであったものの、一年以上のJavaScriptプログラミング経験を持つりく君とりょう君の方が、大半の学生参加者と技術力において差は少なかったのかもしれない。
僕がマカオで開催された学会参加のため、一日遅れで長岡に到着したときも、我らがチーム「常在戦場(jyo_sen)」は快進撃を続けていた。
二日目も上位リーグに残り、接戦となっていた。
しかしロボカップもそこまで甘くない。
2Dシミュレーションリーグには、現在世界大会2連覇、通算4回の世界大会優勝の絶対王者、チームHELIOSが君臨している。HELIOSの強さは圧倒的であり、むしろ試合を見なくてもいいほどである。
さすがにHELIOSには手も足も出ないことは予想されていた(そもそもRoboCupシミュレーションリーグの優勝プログラムはダウンロードできる)ので、結果に驚きはなかったが、それにしても圧倒的な強さである。
HELOISは福岡大学の秋山先生と大阪大学の中島教授の共同運営するチームで、あまりに強いため、ソースコードの一部を一般公開し、RoboCupシミュレーションリーグ全体の底上げを企図するほど(そしてチーム常在戦場を含めて大抵のチームがこの公開されたソースコードを利用して戦っているほど)の圧倒的な強さを誇る。
今大会でもHELIOSの無敵の強さは健在。
チーム常在戦場は、二日目最終リーグで7失点したものの、なんとか1点をもぎ取ることに成功した。ほとんど運だけだと思うが、こんなことでも凄い、と思わざるを得ない。
結果的に、二日目の成績は四位に。
HELIOSは全勝。やはり強い。
ロボカップジャパンオープンでは、併設イベントとして、さまざまな関係者の講演がある。
そのうちのひとつ、東京大学名誉教授の西田友是先生による講演は、大会参加者の胸を打ったようだ。
西田教授は、50年の研究者生活のほぼ半分を占める25年間に渡って不遇な扱いを受けた研究者である。
広島大学で世界でも類を見ない先進的なコンピュータグラフィックス(CG)の研究を行い、国際学会で高い評価を受けるが国内では見向きもされず、悔しい思いをする時代を長く過ごした。
そしてとうとう国内ではほとんど評価されないまま50歳になる頃、唐突に東大から教授にならないかと声をかけられた。東大としては、それまで全くノーマークだった新しい研究領域(CG)が、実は情報科学において極めて重要な分野だったことに90年代後半まで気づかなかったのである。
西田教授は地方の若者に贈るメッセージとして、「東京を目標に置くのではなく、世界を目標にしよう。世界で通用しない人は、日本でも通用しない」と語った。
これを聞いてチーム「常在戦場」の面々も、来年、フランスのボルドー地方で開催される「RoboCup2020 Bordaux」への参加に意欲を燃やしていた。
[youtube https://www.youtube.com/watch?v=F4pkT4-nKOI&w=560&h=315]
目線を世界に向けるというのは、簡単なようでいて難しく、実は難しいようでいて簡単である。
航空券を買うことは誰にでもできる。
日本のパスポートは世界で最も自由に国を行き来できるパスポートの一つだ。
まず世界に目を向けてみよう。
ちなみに昨年のRoboCup2Dシミュレーションリーグの世界大会参加者は13チーム。競技人口が少ないことを、「人気がない」と捉えるか、「勝てるチャンスがある」と捉えるかの差でしかない。
たぶん生身でサッカーをやってワールドカップに出るよりも、ずっと手軽なはずである。
あとはやるか、やらないか。
今日はロボカップジャパンオープン最終日。様々な分野の決勝戦が行われる。
誰でも見学可能なので、近隣の方は是非
おすすめ記事と編集部のお知らせをお送りします。(毎週月曜日配信)
登録はこちら新潟県長岡市生まれ。1990年代よりプログラマーとしてゲーム業界、モバイル業界などで数社の立ち上げに関わる。現在も現役のプログラマーとして日夜AI開発に情熱を捧げている。