最近の高専ロボコンに感動したブログ

高専ロボコン第30回大会も近いということで最近の高専ロボコンに感動した自分が満足できそうなデータベース構築のために情報を蓄積していくためのブログです。

大会毎の試合の差異について

 調べるのに時間が掛かってしまって、途中気分転換のための記事を公開していましたが、高専ロボコンデータベースを制作中です。その骨格が見えてきましたが、詳細な情報を格納するところではまだまだ検討段階です。検討段階の中でも厄介だと思っていることの一つは大会毎の試合の差異についてです。高専ロボコンデータベースではロボット名だけではなく試合情報も詳しく格納する計画でしたが、今のところ比較的簡単な試合の勝ち負けを記録可能にするだけに留まっています。その詳細部の開発に移行できない理由の一つとして、大会毎に様々に異なる試合のルールや内容に対応可能することが挙げられます。各大会相互の類似度が高くないために、安易な構造で構築してしまうと、最悪の場合に一つの大会でしか利用しないものがでてくることが予想され、大変無駄が多く、冗長な構造となってしまいます。

差異を調べてみる

 頭の中のイメージで各大会の差異を考えていましたが、比較が容易な表などに起こしたこと一度もなく、正確に調べてみたことも無かったので、調べてみました。出典は公開されてきたルールや番組からです*1

比較項目を列挙してみる

全国大会での予選

 試合の内容に関係はないのですが、対戦形式にも関わらず、たとえ負けたとしても試合後の成績順に決勝トーナメントに進出できる大会がありました。第21回大会『ROBO-EVOLUTION 生命大進化』と第22回大会『DANCIN' COUPLE』です。第1回大会は対戦形式ではありませんでしたが予選が行われて上位4位までが、第21回および22回大会は予選上位8位までが決勝トーナメントへ進出できました。

得点形式とレース形式

 試合の勝負判断が得点の大小による得点形式、または時間の長短か先着かによるレース形式であるかによってスコアを記載するべきか、ゴールした時間を記載すべきかを決めるのに必要です。データベース上で、どちらかを判断できる情報があれば、同じ格納方法でデータを保持できます。*2

 第29回大会『ロボット・ニューフロンティア』などの高さを競うルールでも、高さを得点と考えれば得点形式の競技に分類できます。さらに、第4回大会『ホットタワー』のような得点形式の競技でも、同点でも高い方を勝ちとするルールがあるので、スコアの記録だけでなく高さの項目が必要になる大会があります。

審査員選考

 第3回大会『ニュートロンスター』の予選において、米子高専の「白砂1号」が旧熊本電波高専の"The Spirit of DENPA"に勝ったにも関わらず、審査員による選考で決勝トーナメントに進めなかったということがありました。

参考:第3回ロボコン

不戦勝

 不戦勝は大会固有のことではなく、どの高いでも起こり得る出来事ですが、データ上ではイレギュラーなことなので項目としてあげておきます。

 初期の全国大会や、地区大会では不戦勝がありました。参加名簿に名前があるにも関わらず何等かの理由で出場を取りやめたケースや、対戦相手が故障などの理由で棄権したために自動的に勝ちとされ次に進めたケースです。第2回大会『オクトパスフットボール』や近年の地区大会でも不戦勝はありました。

参考:
www.oita-ct.ac.jp

ルール変更

 これは様々あります。代表的ものの一つは第2回大会『オクトパスフットボール』準決勝で久留米高専のコロコロスットン号と有明高専の先手必勝アーム付き破れバケツ号との対戦です。有明の破れバケツが自分のゴールをラグビーボールで塞いでしまうのに対抗した久留米が同じく自分のゴールを塞いでしまってそのまま引き分け、何回やっても決着がつきそうになかったので、有明の破れバケツの使用が制限されました。また、1999年第12回大会"Jump to the Future"では最に行われた近畿地区大会の惨状のためにその後の地区大会のルールを変更したそうです(どのように変更したのかは詳しい方に譲ります。コメントで教えてください。)。他にも公開されていた大会規定に書いてなかったことが実行されたり、フィールドの変更があったりと色々あったようです。
 データベース上では区別してみたいと思います。

課題の小変更

 広義の意味ではルール変更に含めてもおかしくないと思いますが、大会が進むにつれて難易度の変更や課題で求められることが変更されることがありました。初めて二足歩行の課題が求められた第21回大会『ROBO-EVOLUTION 生命大進化』では地区大会の準決勝以降では二足歩行ゾーンにパイロンが追加され、それまでの直線的な歩行ではなくS字を描くようにロボットを歩行させなくてはなりませんでした。また、第26回大会"Shall We Jump?"では、最後の5回連続ジャンプまでを早く終わらせるかより先のゾーンに進んでいた方が勝ちとなるレースですが、準決勝以降はより先のゾーンに進んだか、または時間内に連続してどれだけ多くの回数を跳べるかを競う競技に変更され、試合の性格が変わりました。他にもこうした変更はあるようです。
 これもデータベース上では区別したいと思います。

リトライ

 2001年第14回大会"Happy Birthday 39"で初めて採用されたルールです。その大会ではリトライ可能な回数は1回だけでした。ロボットが不調・停止などしたときに、スタートゾーンに戻したり、修理したりしてからもう一度スタートできたそうなのですが、当時のルールを詳しくしらないので、第29回大会までリトライを含め、全般について詳しくご存知の方はコメントにて教えてくださると有難いです。また、このルールは何時まで続いていたのでしょう?2015年第28回大会『輪花繚乱』で名称が変わるまで連続して採用されていたのでしょうか?2016年第29回大会『ロボット・ニューフロンティア』では再び「リトライ」に戻っています。大会毎の違いはどのようなものでしょう?*3

参考:
高専ロボコン歴史館 (第29回時点) Ver1.11 - Docs.com

リペア

 2015年第28回大会『輪花繚乱』で採用。リトライと呼んでいたルールをリペアとしただけでしょうか?

延長戦

 記憶に残っている延長戦を挙げるなら、20世紀中の所謂オールドロボコンでは1992年第5回大会『ミステリーサークル』の全国大会決勝戦を挙げます。30秒の延長戦が行われ、決着がつきました。延長戦は他にもありますが、ルール上設定されていた大会はどれほどあったのでしょう?

再試合

 記憶に残っている再試合を挙げるなら、21世紀中では、2015年第28回大会『輪花繚乱』関東甲信越大会の決勝戦を挙げます。
 ルール上明記されていた大会とそうでない大会があったと耳にしたことがありますが、詳しい方の情報をおまちしております。

審査員判定

どの大会でも、決着がつかないときは審査員判定で勝敗を決してきました。延長戦や再試合が設定されていた大会でも、それらは1回だけで、決着がつかなければ結局は審査員判定が行われました。これはデータベースに設定しておきたい項目です。

反則とその後

 大会によって、ある反則をすると即負けとなったり減点となったりと、反則後のルールが様々ありました。反則の種類としては、接地禁止ゾーンに接地または侵入禁止ゾーンに侵入といったものがありました。

減点

 減点があった大会で私が思いつくのは、1999年第12回大会"Jump to the Future"と2003年第16回大会『鼎』です。他にもありますが、ゼロまたはマイナス点で勝敗をつけた試合があったことは長く記憶されるべきだと思います。

失格

 反則への対応として即時に試合を停止し、失格が言い渡され、負けとされるルールがありましたが、この他にも失格とされたケースはあったんでしょうか?例えば、制御系統が燃えたり、アクチュエーター類が破裂するといったことでです。実は、失格を挟まず、即負けとされたルールだったのでしょうか?そのあたり曖昧まのですが、どうだったのでしょう?これはデータベースには直接関係ないのですが、両者失格ということもありえるので、失格と即負けというのは明確にしておきたいと思います。因みにこれまでの高専ロボコンの歴史上、両者失格はなかったはずです。

 失格の具体的なルールとしては、接地禁止ゾーンで接地したために反則、そして即失格というのがありました。第5回大会『ミステリーサークル』全国大会で有明高専のビッグシューターが大量リードにも関わらず、さらに加点しようと吸引装置で接地禁止ゾーンにあるボールを取ろうとして接地してしまったがために反則、そして即失格で負けてしまったことがありました。また、近年の大会では第28回大会『輪花繚乱』中国地区大会で松江高専の「それいけ!にしだマン」が観客席へ向けて輪を飛ばしたため、直後すぐに負けとされました。またこれは失格を挟んだものだったのでしょうか?

棄権

 大会に参加書類を送り、大会当日に臨んだにも関わらず、何らかの理由で棄権したチームが幾つかありました。番組で確認してみると、トーナメントにロボット名や学校名が表示されておらず、点線になっていたこともありました。稀なケースですが、データベースには必須な情報でしょう。

進出権譲渡

 ルールの上では勝ちとされたにも関わらず、負けた対戦相手に上位進出を譲ったことがあると聞きます。1999年第12回大会"Jump to the Future"近畿地区大会でそういうことがあったと聞き及んでおります。詳しい方の情報をお待ちしております。

他にもありそうです

 まだまだありそうですが、他にあったらコメントにて教えてくださると有難いです。

実装・運用に関して

 ここからは参加している開発者向けの文章になりますが、データベース・システムの開発を始めた当初からある程度は、構想通りに演繹的にどんどんとリレーショナルなデータベースらしい構造を構築していけましたが、試合の詳細となるとそうはいかず、各大会の差異を調べて帰納的に共通項抽出作業が必要になりました。また、全てのデータが集められる可能性や、集められるとしてもその期間は長く、そしてそれを見積もることもできません。情報があれば表示する程度になったり、また情報量としては少ないために統計や比較には向かなかったりするでしょう。しかし、収集し、よりよく格納できるものがなければ、消えていくだけです。

 今、考えているのは、データベースの構造的には一つの可変長な自由形式の項目としておき、その中で上にあげた項目を追加・編集可能にすることです。システムに大きな変更が伴わずに、項目内では大きな変更が可能にできます。具体例には、JSON形式などで格納することを考えています。そのトレードオフとして、検索や編集のための作業(コーディング)が増えます。また、データ量が十分あり共通した項目として独立させられる場合はデータベーステーブルの一つの項目としてくくりだせばよいと考えています。

 因みに、このブログに書いたのは、広く情報を集めるためです。本来はslackで行いたいところです。

 今日のところはこれまで。

*1:一部Wikipediaなどを参考にしています。

*2:この区別はWikipediaから拝借したものです。

*3:リトライ回数は違いましたよね?