写真提供:マイナビニュース

写真拡大

●遂に自律制御の2足歩行ロボットによるバトルが実現
2足歩行ロボットによる格闘競技大会「ROBO-ONE」において、初の自律部門となる「ROBO-ONE auto」の第1回大会が2月25日、バンドー神戸青少年科学館(兵庫県神戸市)にて開催された。記念すべき第1回大会には、16体のロボットがエントリー(うち3体は棄権)。人間の操縦無しに、自律制御のみで動くロボットが強さを競った。

○ROBO-ONE autoはどんな競技?

2足歩行ロボットによるバトル競技の草分けと言えるROBO-ONEは、2002年2月に第1回大会が開催された。初めは歩くのもやっとだったロボットが、この15年間で性能は大幅に向上。倒れても起き上がるのはもう当たり前。お互いに激しく動き回り、パンチや投げ技を出し合う、見応えのある試合が増えてきた。

そして今回のROBO-ONE autoである。ROBO-ONEを主催する一般社団法人二足歩行ロボット協会の西村輝一理事長は、「今までは運動性能を高めることをずっとやってきたが、そろそろ知能も入れたいと思った」と意図を説明する。

autoのルールは、従来のROBO-ONE本戦(区別のために、以下「操縦部門」は「本戦」と表記する)に準じている。手足の長さなど、機体のレギュレーションは本戦通りで、横方向への攻撃が禁止されているのも同じだ。ただし、重さについては、本戦が3kgまでであるのに対し、autoはセンサなどの搭載を考慮し、5kgまで許されている。

センサについての指定は特になく、何でも利用して構わない。ただ、ロボカップ小型リーグのような天井カメラなどは禁止されており、すべてのセンサを機体に搭載する必要がある。制御も基本的に搭載コンピュータで行うが、通信回線で繋がった外部のコンピュータが制御する、いわゆる"リモートブレイン"方式は許されている。

試合時間は、準決勝までが2分で、決勝戦のみ3分(今大会の場合)。有効な攻撃を決め、相手から先に3ダウンを奪った方が勝者となる。またダウンした場合は、10カウント以内に起き上がることができなければ、その時点でノックアウト負けだ。

○自律バトルで必要な機能とは?

ROBO-ONEに限らず、初開催のロボット競技が面白いのは、勝つための定石がまだ無いため、参加ロボットのスタイルがバラエティに富んでいることだろう。大会が何回か行われると、"勝てるロボット"の姿が見えてきて、似たようなロボットが増えてきたりするものだが、初回は全員が手探り状態。このワクワク感は、初開催ならではだ。

とはいえ、基本的にautoで必要になる機能としては、大体以下に集約されるだろう。ロボットによっては、割り切って省略していた機体もあったが、これは最低限の機能なので、ちゃんと試合を成立させるためには、このくらいは実装しておくべきだ。

探索機能
何らかのセンサを使い、対戦相手を見つける。見つからなかった場合は、移動して探す必要がある。

攻撃機能
対戦相手を発見したら、接近して攻撃する。パンチ、キック、投げ技、捨て身など様々な攻撃方法がある。

転倒判定機能
攻撃を受けたり、バランスを崩したりして転倒した場合、それを自動で検出して起き上がる必要がある。

転落防止機能
リング外に転落すると1ダウンとなるため、移動時には転落を避けるための機能が必要となる。

自律制御の方式は、実にさまざま。まずコンピュータは、大きく分けて、ロボット用のコントローラ(近藤科学のRCBシリーズなど)だけを使い、モーションの分岐を活用する方式と、CPUボード(Raspberry Piなど)を搭載して、プログラムで制御する方式があった。またセンサとしては、カメラや各種測距センサ(PSD、ToF、超音波)が使われていた。

今回、現場ですべてのロボットを見る時間は無かったのだが、次ページにて、面白かったものをいくつかピックアップして紹介したい。

●自律制御ロボットバトルの課題と今後
○さまざまな仕組みのロボットが出場

本格的な制御を実装していたのは、「Spirit 2」(チーム名:山口自動機械)と「フランくん」(チーム名:technoRAT)。

Spirit 2は、オリジナルの機体に、SoftKinetic製のToFカメラ「DS325」を搭載。画素数はQVGAで、このセンサからの深度情報を使い、床や対戦相手の判定を行っていた。メインの制御プログラムはIntel製のスティックPCで動作しており、これとは別に、サーボ制御用に近藤科学のKCB-5も搭載していた。

【第1回ROBO-ONE auto】1回戦(YOGOROZA vs Spirit 2)

フランくんは、近藤科学のKHR-3HVがベース。可視光カメラとRaspberry Piを搭載し、OpenCVで画像認識を行っていた。対戦相手の判定には、色相の分布を利用しているそうで、接近時などに特徴点を取得する。センサとしては、距離判定用のToFセンサも搭載。そのほか、ロボットの動作を生成するために、Zynqボードも搭載している。

【第1回ROBO-ONE auto】1回戦(フランくん vs コビス)

また、本戦で優勝経験もある実力者の「ガルー」(チーム名:くまま)、「Metallic Fighter」(チーム名:森永)、「シンプルファイター」(チーム名:zeno)などは、ロボット用コントローラにPSDセンサを直結し、GUIベースのツールを使って、動作を制御。非常にシンプルなやり方ではあるが、これだけで自律動作できるというのは参考になるだろう。

【第1回ROBO-ONE auto】2回戦(AdamantAT vs ガルー)

【第1回ROBO-ONE auto】準決勝(SunShot vs シンプルファイター)

「オートマトン」(チーム名:オートマタ)は、ToFセンサと超音波センサを搭載。超音波センサは左右両側にあり、回転するギミックで素早く周囲360度を調べられるようになっていたのが面白かった。

ちなみに筆者も「バンボー・オート」(チーム名:バトル・バンブー)として出場しており、KHR-3HVベースの機体をリモートブレインで制御していたのだが、こちらの仕組みについては別途レポート記事で詳しく紹介する予定なので参考にして欲しい。制御プログラムはPythonで作り、計3個のPSDセンサを使っている。

○今後の盛り上がりに期待

そして第1回大会の結果であるが、優勝は「コビス」(チーム名:ビスコ)。コビスは1回戦から、ひたすら旋回して対戦相手が近づいてきたところを攻撃するだけだったのだが、これは本当は移動して相手を探すようになっていたのに、PSDセンサが誤検出してこうなってしまったとのこと。ただ、結果的にはこれが有効だった。

【第1回ROBO-ONE auto】決勝戦(コビス vs SunShot)

ほかの多くのロボットもちゃんと攻撃を出せるところまで作ってきており、初回のイベントとしてはまずまずの結果だったと言えるのではないだろうか。ただ、全試合を通して、"名勝負"といえるような咬み合った試合が無かったのはやや残念なところ。機体がうまく動かなかったり、なかなか出会わなかったり。このあたりは次回に期待だろう。

そのほかの試合はコチラを参照(筆者のYouTubeチャンネル)

筆者が課題と感じたのは、5kg以下という今回のレギュレーションが適切だったかどうか、ということだ。2足以外のロボット競技やソフトウェア側のコミュニティの人が参入する場合、市販のロボットキットをベースにすると簡単だが、これではパワーが違い過ぎる本戦仕様のロボットにはまず勝てない。

この5kgというのは、おそらくKinectやNUCなどをそのまま搭載できるような本格的な自律ロボットを想定してのことだろうが、それは資金的にも能力的にも、個人には敷居が高すぎる。従来のROBO-ONE以外の分野からの新規参入を促すためには、市販機ベースの自律部門があっても良いかもしれない。

その一方で、個人的には、高度に知能化された5kg級ロボットによる本格的なバトルをすごく見てみたいとも思う。そのためには、メカが得意でバトルのノウハウが豊富なROBO-ONE勢と、ソフトが得意な他分野の人たちによるチーム化も期待したいところだ。

近年、AIは急速に進歩。将棋や囲碁の世界では、トッププロでも勝つのが難しくなってきている。現在、autoは自律機に限定されるが、本戦は自律でも操縦でも出場できる。いずれはROBO-ONEでも、自律機が人間並みに強くなり、自律vs操縦の白熱したバトルが見られるようになるかもしれない。まずは9月に予定されている第2回大会に注目だ。

(大塚実)