ホーム > 新着情報&トピックス > RoboCup Japan Open 2009 大阪 参戦記 シミュレーション3D

RoboCup Japan Open 2009 大阪 参戦記 シミュレーション3D

大阪電気通信大学 総合情報学部
メディアコンピュータシステム学科
升谷研究室
田近 宏樹
猪之奥 祐
木内 和也

目次

RoboCupシミュレーション3Dリーグとは

コンピュータの仮想空間の中でサッカーをするリーグです。 ロボットの見た目を図1に、フィールド全体の図2に示します。 モデルは実際に存在するヒト型ロボット、『NAO』をモデルとしています(図3)。 シミュレーションリーグは、主催者が用意するサーバプログラムと、各参加者チームが用意するクライアントプログラムによってできています。 現段階では各チーム3体のロボットで試合を行います。 シミュレーション3Dリーグの最終目的は、ヒト型ロボットをソフトウェア面から研究開発することです。 シミュレーションの最大のメリットは、実機と違い、故障やメンテナンスを気にしなくてもいいことです。

図1 ロボットのモデル 図2 フィールド 図3 実機のNAO

[ロボット達]

[フィールド]

[実機のNAO]

先ほど出てきたサーバとは、仮想空間を処理しているプログラムのことです。 この仮想空間に、サッカーフィールドとボールとロボット6体が置かれています。 ロボットの思考は、別のプログラムが担当しており、これがクライアントです。 クライアントは、ロボットごとに別々です。 図4のように、仮想空間における各ロボットの状態(関節の角度など)やセンサ情報(視覚情報など)がサーバから対応するクライアントに送られます。 クライアントは送られてくる情報を頼りにどのような行動をするか決定します。そして、図5のように、サーバへ命令を送ります。 その命令とは、ロボットの各関節に与える角速度のみです。 図4と図5を1秒間に5回繰り返されて試合が行われます。

大会までの取り組み

ODENSとしてRoboCup シミュレーション3Dリーグに参戦するのは今回が初めてです。 研究室の中では実機のヒト型ロボットの研究も行っており、今年から シミュレータを用いてのヒト型ロボットの研究を開始したのでシミュレーション3Dリーグに参加することになりました。

3月にサーバーのバージョンのアップデートがありました。 今までのバージョンでは、視界の制限がなく、ロボットはフィールド全体がいつでも見えている状態でした。 しかし、今回のアップデートにより、視界制限がつき、今まで、フラグ(目印となるフィールドの周囲の点) が見えていることが前提のプログラムが使えなくなってしまいました。

そこで私達が考えた方法は、サーチとルックです。 サーチとは探したい物が視界に納まるまで首を振り続けるという動作です。 ルックは指定したものを見続けるという動作です。 今まで使っていた座標を使っての移動もできなくなっていました。 移動ができないのは、サッカーとして成り立たちません。 そこで、視界制限が追加される前の移動プログラムをワールド座標系をローカル座標系に変更し新しいサーバーでも使えるようにしました。

3月にあった春季競技会の時に、ほかのチームの歩くスピードを思い知らされ、歩行の高速化もやっていましたが、なかなかうまくいかず遅いままでした。 しかし、ODENSにも自信のあるモーションがあります。 それはキックモーションです。 一回のキックでフィールド中央から相手ゴールの前までボールを飛ばします。 欠点は、うまく蹴れなければ思いがけない方向へ飛んでいってしまうことと、ロボットが転倒してしまうことです。 そこで、ゴール前に来たら、弱いキックを出すようにしました。 また、ゴールキーパーはボールが来た方向に倒れこむというモーションにしました。

RoboCup Japan Open 2009 大阪

大会前日

[会場の様子]

シミュレーションリーグの準備では、ロボットの整備や、カメラの準備などは必要ない代わりに試合をするためのPCやネットワークの準備が必要です。 前日に地元チームとしてどの作業に加わりました。

大まかな3日間の内容

5月8日「予選」

総当り方式で、2つのリーグに分かれ試合をする予定でした。しかし、参加する予定だった10チームのうち5チームがプログラムが完成していないなどの理由で棄権してしまいました。

5月9日「プログラム開発」

プログラムが未完成のチームがいくつもあったことと、参加チーム数が予定よりも少なかったことにより、2日目は試合をせずにプログラム開発に時間をとりました。

5月10日「決勝トーナメント」

konohenチームが試合ができるプログラムが完成したので6チームでトーナメントを行い順位を決定しました。

5月8日「予選」

リーグ戦のルールは引き分けになってもそのまま試合終了です。
勝ったら3ポイント、引き分け1ポイント、負けたら0ポイントのルールで順位を決めました。

NomoFC(大阪大学)戦

ODENS 2 – 0 NomoFC

NomoFCチームのオフェンスはまっすぐ前進だけの行動をしてきました。 歩いている途中に倒れてしまうと、倒れたまま足踏みをしています。 今までのサーバで使っていた倒れたという判定が使えなくなってしまっていたようです。 ODENSは、普段通りの動きを見せシュートを決めました

NAITO-StrikerS(愛知工業大学+名古屋工業大学)戦

ODENS 0 – 0 NAITO-StrikerS

はじめのODENSのキックオフで、相手チームが真ん中にいたので、ボールが跳ね返ってきました。 相手チームのプログラムはボールに向かってまっすぐに歩くだけです。 つまり、ボールを見失ってしまうと、そのままどこかへ歩いて行ってしまいます。 しかし、相手フィールドの真ん中あたりで、混戦となり、点数を入れることができませんでした。 結果、同点で引き分け。

FUT-K(福井工業大学)戦

ODENS 0 – 2 FUT-K

[試合]

相手チームはずっとドリブルをし、ゴールに突っ込むという作戦できました。 ODENSのロボットは相手チームを障害物と認識してしまい。ボールをとりに行くことができなくなってしまいました。 一度でも抜かれてしまうと、相手の歩くスピードが速いので、追いつくことができません。 しかも、ODENSのキーパーは相手のキックのスピードが遅いのに反応が早すぎたため、ノーガードで点数を入れられてしまいました。

opuCI_3D(大阪府立大学)戦

ODENS 0 – 0 opuCI_3D

[試合]

前半の混戦中にODENSが相手フィールドに蹴り出しました。 しかし、相手チームの近くまでボールは行きましたが、相手のキーパーにフィールド外へクリアされてしまいました。 この後、ODENSにチャンスはなく、引き分けに終りました。

予選の結果

  • 第1位:opuCI_3D大阪府立大学)
  • 第2位:FUT-K(福井工業)
  • 第3位:ODENS(大阪電気通信大学)

[総当り戦結果表]

5月9日「プログラム開発」

8日の試合の結果を見て、キーパーが定位置に帰れるように改良しました。 また、歩くモーションを倒れにくくするためにスピードを落としました。

5月10日「決勝トーナメント」

konohenチームが試合ができるようになったので、参加。 6チームでトーナメントが行われました。 総当たり戦と違って、引き分けになった場合は、ゴールラインからセンターラインまで走るスピードで勝敗を決めます。

準々決勝

ODENS 2 – 0 konohen

相手チームのロボットは倒れてしまったとき起き上がりがうまいのが特徴です。 しかし、その場を動かずに終わってしまいました。 そこで、ODENSは確実にゴールを決め、ベスト4へ勝ち進みました。

準決勝

ODENS 0 – 2 FUT-K

予選のときに、歩くスピードの差により負けてしまったので、ODENSにとっては天敵です。 ODENSチーム側のゴール前で混戦し、ゴールポストギリギリにシュートを入れられてしまいました。 この後、さらに1点を追加され、負けてしまい、 1位、2位の可能性がなくなりました。

3位決定戦

ODENS 0 – 0 NomoFC

前半、相手の懐にボールが入り込んでしまい、 障害物回避の機能が働き、ボールに近づくことができなくなってしまいました。 後半、相手ゴールはがら空きに対して、 ODENSは、またもや障害物回避が仇となって仲間同士を障害物と認識し、 動けなくなってしまいました。

引き分けとなってしまったので、徒競走をしました。 NomoFCのタイムは12秒で、ODENSのタイムは26秒でした。ODENSは走るスピードが遅いので負けました

決勝トーナメントの結果

  • 優勝:FUT-K(福井工業大学)
  • 準優勝:opuCI_3D(大阪府立大学)
  • 第3位:NomoFC(大阪大学)

ODENSは4位に終わりました。

[トーナメント表1][トーナメント表2]

ダイジェストビデオ

まとめ

大会前はたくさんやることがあったので大変でしたけど、3人でがんばってプログラムを作りました。 当日は、試合を見ているだけですが、自分達の手で作ったプログラムが思った通りに動いたり動かなかったりして、 白熱し、良い勉強にもなりました。 この経験で勉強になったことは、 自分で考えて移動することのできるロボットを開発する上で必要不可欠な障害物回避なのですが、 取って付けたような状態だとお互いを障害物と認識してしまい動かなくなってしまうという事がわかりました。 このほかに、プログラムをチームで開発していく事は仲間同士どのように伝え合って作っていけばいいのか、 グループワークの勉強にもなりました。

「RoboCup Japan Open 2009 大阪」に参加した事は3人にとってとても達成感のある良い経験となりました。

このページのトップへ