Amalgam Blog

引っ越しやら片付けやらしてたらジャパンオープンが終わってました。
運営やスタッフの方々、お疲れ様でした。

競技内容も結果も把握していないので特に言える事はないです。


このタイミングはですね、色々なチームがTwitter等で技術公開している時期でもあるので、これを見てるだけで楽しいです。(おすすめです)



新ルール出てます。
 

競技に関しては、救助エリアが「ステップアップができない状態を維持しつつ」「更に難しくなっている」ので、もう言うことは特にありません。
(僕が知らないだけで、もしかして今のルールって他のブロックや国では簡単にクリアされてるもんなんです??)

まぁ救助周りは焼け石に水というか、難しいものが難しくなっただけなのであまり影響はありませんが、今回大きく変わったのが得点計算に関する部分です。

4.6.14で
The field score for every round will be normalized with the score of the best team of that round: 
(NORMALIZED FIELD SCORE) = (FIELD SCORE) / (FIELD SCORE OF BEST TEAM)
とあり、最も良かったチームに合わせてスコアが正規化されるようになります。
なぜそんなことをするかというと、続いて増えた4.6.15で
The final score is made up of a weighted sum of normalized scores from the field score and the rubrics as such:
(TOTAL SCORE) = 0.8 x (MEAN OF NORMALIZED FIELD SCORES)
+ 0.2 x (NORMALIZED RUBRICS SCORE)
と計算するためです。
前々から言われていましたが、ルーブリックスコア(プレゼンやインタビューのスコア)を最終的な順位付けにも算入することになっています。

意図は分かるけど、実際この計算方法はどうなんだ...?と思います。

疑問1:
「最も良かったチームに合わせてスコアが正規化される」ということは、1位を除くチームのスコアは、1位のチームの得点に影響を受け上下します。これによって競技スコアの上下関係が入れ替わることはありませんが、トータルスコアに対する影響力が変わります。

例えば1位のチームが突出して良い競技得点を得た場合、それ以外のチームの競技スコアは0に近くなり、トータルスコアにおいてはルーブリックスコアが支配的になります。これにより、2位以降は実質的にプレゼンなりの事前資料の出来栄えで順位が決まることになります。

これは極端な例ですが、1位チームの得点によってはこのようにルーブリックスコアが支配的になる変曲点が存在するはずです。(逆に言うと、この変曲点付近では1位の得点によって2位以降の順位が入れ替わる可能性があり、1位のチームが自身の競技得点を操作する(途中リタイア等)ことによって順位付けに間接的に干渉できてしまいます。)

このあたりがどれぐらい現実的な話なのか、というのは宿題として手元で計算して検証してみます。杞憂だといいですが。

疑問2:
正規化はラウンドごとに行う、ということになっていますが、ラウンドを複数回行った際のスコアの合算方法が示されていません。
→示されてました。"MEAN OF NORMALIZED FIELD SCORES"とあるので、平均でした。
大会運営に任せるということでしょうが、あまり安易な合算を行うと色々とマズい予感もします。
(これも追々手元で計算して検証します)

例えばAとBの2チームに注目して
第1ラウンド:A=150, B=60, 1位=300
第2ラウンド:A=50, B=100, 1位=100
という競技得点の結果が出たとすると、それぞれのチームの競技スコアは
スコア = (第1ラウンドのスコア, 第2ラウンドのスコア)として
A = (0.5, 0.5)
B = (0.2, 1.0)
となります。スコアを合算方法を加算だと
A = 1.0, B = 1.2
乗算だと
A = 0.25, B = 0.20
とスコアの上下関係が入れ替わります。

ちなみに従来の得点を加算する方式だと
A = 200, B = 160
となりAチームが上位に数えられます。

この簡単な例だけで適当なことは言えないので、もう少ししっかり考察しますが、今までと順位の付き方が変わりそうです。

疑問3:
そもそもルーブリックスコアをそんなにしっかり評価できるのか?という話です。ルーブリックの内訳は更に「TDP(Technical Description Paper)」「Engineering Journal」「Poster」と分かれており、ご丁寧に加算する際の比重まで設定しています。
(いや、これ審査するのキツいって)


・そもそもルーブリックの審査をしっかりできない
→ルーブリック得点は考慮しないことにする
→順位付けは競技スコアだけ
→じゃあ競技得点を正規化する必要はないよね

という感じで、しばらくは運用されないとは思いますが...
(ジャパンでも運用は難しい...と思う)




まだ審査会が終わっていませんが、修論も提出しやっと多忙さからも解放されつつあります。

色々停滞させていたプロジェクトを再開させればと思います。


 

「鎖の強さは一番弱いつなぎ目で決まる」

演説の類でもこういった趣旨の言葉がしばし引用されます。

三本の矢の逸話の逆位置にあるような考え方で、全体の強さというのは最も弱い部分を超えることはないというものです。
私は勝手に「鎖の原理」と呼んでいます

RCJレスキューは特に、この鎖の原理が支配的な競技であると考えています。
そもそもロボットシステムというのが
  • センサが読めないと制御ができない
  • 制御が悪いと思い通りに動かない
  • モーターが回らないと動かない
と一部欠けただけで全体に影響を及ぼす要素のオンパレードで構成されています。
(ちなみにレゴを使ってロボットを作ることの最大のメリットは、ロボットシステムとしての鎖がかなり屈強な状態で開発を進められることです)

加えてレスキュー競技自体が、特にラインだと
  • 手前の課題をクリアできないと奥の課題に到達できない
  • チェックポイント区間内にできない課題があるとチェックポイント点が取れない
  • ライントレース部分と救助部分で満遍なく得点を取れないと高得点にならない
と、やはり一部の欠落が全体に大きな影響を及ぼします。

レスキューラインではギャップや障害物といった課題の一つずつが輪となって一本の鎖を形成しているイメージです。

特にワールドリーグは日本リーグに比べて課題の数が多い=輪の数が多いため、相対的に輪一つあたりにかけられる開発コストは減り、鎖全体の強度も必然的に下がります。
また交差点のような対策かかるコストの大きい輪があることによって、全体へのコスト分配も難しいです。ここを誤って「課題は大体できるけど障害物だけはほぼ無理」なんてロボットを作ってしまっても、なかなか高得点にはつながらないわけです。

という話を関東ブロックでのレスキュー競技の講評で話しました。
ルールが難しいことには同情しますが、その中で良い成果を残すにはどう開発すれば良いのか、ということについては、選手側も考える必要のあることです。



以下完全に余談:
私は鎖の原理をBF4というゲームのストーリーの一部で知りました。
「鎖の強さを決めるのは最も弱い部分」と言いながら、脆くなっていた壁を素手で破壊して牢屋からの脱出経路を確保していたのが印象的です。

かれこれ10年近く前ですが、当時も「いや~、ロボットもそうなんですよ~」なんて思いながらプレイしていました。

レスキューラインのレイアウトは私の知る限り人力で作成している運営がほとんどかと思います。
ただ設計者によって好みというか傾向が出てきがちで、得点要素や難易度に偏りがでるのはあまり好ましくないと思っています。

実際にコースを作ってみるとわかりますが、満遍なくというか偏りの無いコースを作るというのも結構難しいです。特にワールドリーグは課題の種類も多いので、全部を一回ずつ登場させるだけでもそれなりに大変です。

というわけで自動生成できないか...?というのを考えています。

拘束条件は
  • 登場する課題の頻度が均等(?)
  • 有限のスペースに収まる
  • ある程度の難易度調整を指定できる
あたりでしょうか。

幸いコースはタイル単位で構成されるので簡単なモデルに落とし込めます。
しかし限られたスペースでも、線を引く場合の数というのはかなり膨大です。
加えて交差点や十字ギャップ、高架の存在を考慮すると......ちょっと面倒

現実的な処理時間で生成するにはアルゴリズムをしっかりと練る必要がありそうです。

それとなく構想はありますが、私個人の性格上「ハードウエアを伴わない開発のモチベーションの賞味期限は短い」ので、なにかブレイクスルーがない限りは企画倒れになりそうです。




このページのトップヘ