RoboCup2003イタリア大会の日記(セットアップから予選リーグまで)
robocup
2003.08.30
7月1日(火)ギャルもビショ濡れ!ベネチアの噴水
朝10時ごろ、ロボカップ会場をメンバー全員で下見に行った。いかにもイタリア人らしい美男美女の担当者二人が対応してくれた。
私が下手な英語で話しかけると、なんと美女の方は日本語で答えてくれた(笑)。先にいって欲しかった。私達のチームが一番初めに会場にきたということだった。今日は会場設定日なので、登録とロボットの設定は明日の朝8時からになるといわれたが、親切に会場を案内してくれた。そのあと、今日一日暇になった。明日からは準備に追われるので、メンバー全員でベネチアを観光することにした。
観光もロボカップの醍醐味の一つだ。ロボカップに参加している学生は若いうちから世界のいろいろなところを見れるのでうらやましい。ロボカップは今までパリ、ストックホルム、メルボルン、シアトル、福岡などで開催されている。
さて、ベネチアまでは列車で約30分、料金は4.8ユーロでとても近い。 ベネチアは水上都市ということで交通は水上バスがメインである。陸地の道路はとても狭く階段もあるので車でとおることは不可能である。有名なゴンドラは今では観光客しか利用しないものになっている。値段も高く1時間60ユーロもするので、水上バスで観光することにした。ベネチアでは美術館を見る時間がなく結局みやげ物屋を見て、レストランでピザを食べワインを飲んだ。
なお、サンタルチア駅前にある、人を探知するセンサがついた間欠式噴水で、ギャルやおやじまでもが童心に帰って遊んでいた。 猛暑のベネチアでは冷たい噴水は心地よい。しかし、これで息子はパンツまでビショ濡れになってしまった。
7月2日(水)ロボットセットアップ1日目 組み合わせ決まる
前日、朝8時から登録とロボット設定が可能と聞いたが、30分ほど待たされた。そのうえ、受付の事務処理が遅く、登録が終了するまで30分もかかってしまった。さらに、コートの清掃が終わっていなかったので、12時からしかコートを利用できないとのこと。
WinKITは弱かった数年前までは準備がとても遅かったが、昨年ぐらいから速くなり、今年は2番目にはロボットをコートに入れ、一番早くロボットの動作実験並びに設定を行った。確実に強いチームの行動である。
午後8時に組み合わせ抽選会があり、我々はBリーグに割り当てられた。BチームはFilips, WinKIT, Muwallabies, Fusion, MinHO, Persiaの6チーム、第2次予選に進めるのはこのうち4チームである。順調にいけば2次予選には進めると思うが、何がおきるかわからないのが試合である。特に、うちのチームは予備機がないので故障が発生したら勝つことは難しいだろ。どうなることやら。
7月3日(木)セットアップ2日目 OBもライバル?
朝8時には会場入りできたが、コートに照明がつき実際に使えるようになったのは9時すぎだった。今日からは各コート1時間毎にチームが割り当てられているためコートを使用できるのは1日3回、計3時間程度だった。
私は数年前まではロボットを担当し、実際自分でロボットを作り、プログラムを書いていた。しかし夢考房の学生が成長したので、昨年から裏方(写真係、ビデオ係、通訳等)と審判に回り、ロボットは学生のみで開発している。
大会準備の方は、各チーム色々トラブルがあるなかいたって順調で怖いぐらいだ。他のチームでトラブルがあったのは主に無線LAN関係が多かった。大会側が用意したアクセスポイントが繋がらないというのである。さらに、最悪なことに、大会運営側が無線の準備を周到にしておらず、レスキューリーグが映像データを2.4GHz帯で飛ばすということだ。
この情報は夢考房ロボカッププロジェクトの発起人のI君から会って聞いた。彼はロボカップが縁で日本SGIに就職し、今回は何とレスキューリーグに参加しているという。OBとこういうところで再開できるのはとてもうれしい。卒業生がロボット関係の企業に就職しこのようなロボカップ会場でOB会をやりたいものだ。
7月4日(金)セットアップ3日目 準備は順調
今大会へは三脚を持って行かなかったのでホテルの近くのカメラ屋で三脚を50ユーロで購入した。重さが1.07kg、高さ148cmと軽量でデザイン的にもカッコいい。さすがイタリアだ。
私は現在MITの客員研究員としてボストンに滞在している。家の近くのBestBuy(アメリカのヨドバシカメラ)で20ドルの安物を買わなくて良かった。何故、アメリカはデザインにこだわらないのだろうか。セサミストリートやバーニー&フレンズなど、幼児番組に登場するキャラクターがどぎつい色使い(紫と緑、赤と黄色の組合わせなど)で、そのセンスの悪さには閉口する。
子供の頃からこういう番組を見て育つため、センスが悪くなってしまうからだろうか? 息子もそれらの番組が大好きなので将来が不安だ(泣)。
さて、準備もいたって順調で明日からの試合が楽しみだ。数年前までは徹夜徹夜の連続だったのが嘘のようである。夢考房ロボカッププロジェクトも4年間地道な活動を続けて成熟したためだと思われる。
7月5日(土)第1次予選 ヨーロッパ王者 VS ジャパン王者
予選1次予選では4コート、各コート6チームの総当たり戦で上位4チームが第2次予選へ進出できる。金沢工大は第2コート、Fusion(九州大、福岡大)、Minho(ポルトガル)、Persia(イラン), Mu-Warrabies(オーストラリア), Phillips(オランダ)の6チームと対戦する。このコートは強豪ぞろいである。特にPhillipsは昨年と今年のGerman Openで2連覇を遂げておりヨーロッパチャンピオンである。
なお、Phillipsは日本ではコーヒーメーカーや髭剃りで有名だが、実はヨーロッパ最大の家電メーカで技術力も高い。このチームは仕事としてロボカップに取り組んでいるのではなく、仕事後や余暇に ロボカップに取り組んでいる会社のクラブ的な存在である。ただし、メンバーはフィリップスのエンジニア、予算は豊富で会社の設備は使えるので、このチームのロボット1台の値段は計り知れない。 優勝候補の筆頭である。
第1試合 WinKIT VS Phillips
今年のJapan Open優勝チームとGerman Open優勝チームの試合となった。 いきなりの好カードである。年齢もさることながら、Phillipsワッペンがついたおそろいの黒のツナギを着て試合に臨むあたり、さすが一流企業社員チームという風格だ。ところが試合が開始するとPhillipsのロボットがトラブルのためかうまく動かず、うちのチームの一方的な試合となった。 しかし、そこはジェントルマン、圧倒的な試合であったにもかかわらず、試合後、さわやかな笑顔で我々に握手を求めてきた。
第2試合 WinKIT 1 VS 4 Persia
Persiaは昨年小型機リーグから中型リーグへステップアップしたチームであり、昨年はロボットのハードが悪く全然動いていなかった。しかし、今年は新しいハードでとても快調に動いているように見える。話を聞いたら我々のチームを参考に足回りを開発したそうである。
ハードウェアの性能の良さが売りの我々のチームは、このようなチームが増えてくると今後勝つことは難しくなってくるだろう。試合は1対4で我々の完敗だった。特に相手はゴール前1列でディフェンスラインを作るためこれを崩せず、反対に速攻をくらってしまった。決勝トーナメントで再度対戦するので、対策を講じなければならない。
結局、今日は1勝1敗で、決勝へ進めるかは明日しだい。学生も初めての海外の試合でかなり緊張していた。イラン戦の敗戦は大ショックだったようだ。
7月6日(日)第1次予選 おちゃめな人間型ロボット?転倒
第3試合 WinKIT 7 VS 1 Minho(ポルトガル)
相手のロボットがほとんど動いておらず快勝した。
第4試合 WinKIT 0 VS 1 Fusion(九州大学、福岡大学)
この試合は接戦だった。相手のゴール前に守りが堅く攻めている時間は長いが得点ができない。これはペルシャ戦と同じだ。それで、相手のカウンターをくらって負けてしまった。守備の良いチームを崩すためにはパスプレーが必要だと痛感したが今年は間に合わない。来年あたり優勝するチームはこの辺をクリアしてくるだろう。
第 5試合 WinKIT 12 VS 0 Warrabies(オーストラリア)
相手のチームは初参加、年々各チームのロボットが似てくるなか、このチームはオリジナリティの高いロボットを開発した。 扇風機のようにクルクル足(手にみえるが製作者によると足らしい)を体のまわりで回転させながら走ってくる。ただ、あまりにも重心が高いせいかキックをすると一人でかってに転んでいた(WinKITのメインプログラマーM君の名誉のためにいうと、WinKITのロボットはWarrabiesのロボットにぶつかっていない)。このロボットの製作者に聞いたところ人間に似せているということだ。よく転倒するのもうなづける。 ロボットが一人で起き上がってくれればいいのだが…
チーム名もミュー、ワラビーとオーストラリアで有名な動物たちである。このようなチームが参加すると会場は盛り上がるが今年は一般の観客が少ないため残念である。日本で開催したら子供たちに大人気だったろうに… ロボカップの知名度を上げるためには一般の人が面白いと感じてもらわなければならない。そのためには、このようなチームは不可欠である。
今日は3試合があり、第1次予選は2勝1敗でなんとか予選を3位通過できた。第1次予選で2敗もしたのでメインプログラマーM君に火がついて徹夜でプログラムを改良して明日からの第2次予選に望んだ。
7月7日(月)第2次予選 順調に1位通過
2次予選は16チームを4つのグループに分け、グループ毎に総当り戦を行い、上位2チームが明日から開催される決勝トーナメントに進出できる。 第1次予選のグループは強豪ぞろいだったが、第2次予選はそれほどでもなさそうだ。2日間も審判をやると各チームの力量がわかる。故障しなければ勝てそうだ。
第1試合 WinKIT 7 VS 0 Artisti Veneti (イタリア)
それにしても当初懸念したように会場の無線状況は悪かった。イタリア戦では試合開始まで1時間以上無線の状態が回復するのを待ちハーフタイムで再度無線状態が悪くなった。後半戦は全ての試合が終わったあと行った。このときはレスキューリーグが試合をやっていなかったためか、午前中の無線状態が悪かったことが嘘のように快調に試合ができた。大会開催側の圧倒的な準備不足である。これを教訓に来年の主催者はしっかり準備してもらいたいものだ。
試合の内容はArtistiのロボットが故障のためか動きが悪く、我々の一方的な試合になった。これまで多くのチームはすでに5試合戦っている。そろそろ丈夫でないロボットは故障がでてくる。フィジカルに強いロボットを作れることも強いチームの条件だ。
第2試合 WinKIT 7 VS 0 Fu Fighters (ドイツ)
Fu Fightersは小型リーグではとても強いチームで毎年上位の成績を収めている。ロボットは小型リーグで培ったためか、小型のノートパソコンを搭載している。特徴は360度自由に動ける全方向移動機構を使った高速な運動性能にある。特に現在ロボカップでは全方向移動機構として特殊なタイヤを使った3輪駆動方式で、駆動輪を120度ずつ配置することによりあらゆる方向に移動が可能な方式を採用している。このチームは速度を向上されるために、各駆動輪を120度ずつ等間隔に配置するのではなく、160度、100度、100度ずつと前後方向へのスピードをかせぐように配置している。この配置が現在小型機で主流を占めているそうである。
試合では確かにFu Fightersのロボットの方が我々より前後方向では速かったかもしれないが、総合的には我々の方が運動性能が高く、マシントラブルもなかったので問題なく勝つことができた。さらに、このチームのロボットは中型リーグで戦うためには小さく、パワーも貧弱のような気がする。
第3試合 WinKIT 3 VS 1 5dpo (ポルトガル)
この試合は思ったより苦戦した。相手ディフェンスがゴール前に一列になり壁をつくり、ソレノイドを使った強力なシュートでカウンター攻撃するからである。このようにしっかり守られてしまうと、逆サイドにパスを出すか、ループシュートするしかない。これは来年の課題である。ただ、相手チームのロボットの信頼性があまり高くなくディフェンスラインがよく乱れたので3点を取ることができなんとか勝っことができた。
第2次ラウンドロビンの結果は以下のとおりである。この第2次ラウンドはグループ分けの運も良かったためか3戦全勝で決勝リーグへ進出できた。この日は学生たちも比較的余裕があったようである。
").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1
").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0
タイトルとURLをコピーしました
コメント