Twinclue's Blog

RoboCup Junior Rescue Mazeに参加するTwinclueのブログ

ジャパンオープンけいはんな大会出場しました

壁に乗り上げるロボット kossanです。RCJ2022はバンコク大会がもうじき開催されるようですね。これをみて、けいはんな大会レポート記事を放置していたのを思い返したので、ちょいっと編集してここに公開します。長いのでぼちぼち読んでください:

 4/22 - 24に開催されたロボカップジュニアジャパン2022けいはんな大会に参加してきました。大会期間が3日あれば3日分しっかりアクシデントが発生しましたので、それらを含めたレポートをしていきます。

結果

 競技成績3位、優秀プレゼンテーション賞に加えて後日、JSAI賞を獲得しました。競技成績は3回の走行の合計点で決定され、点数は2000点以上の満点[1] に対して110点と良くない結果でした。試合動画はこちらに公開しています。よければ以下の文章と合わせてご覧ください。

youtube.com

全体スケジュール

 3日の日程のうち選手としては、1日目は車検とフィールド練習、2日目は2回の得点走行、3日目は1回の得点走行がありました。詳細はレスキュー技術委員会ブログにて公開されているスケジュール案をご参照ください。

1日目

 15時からチーム受付が始まるとされていましたが、時間になっても準備が終わらなかったようで、もう暫く待つこととなりました。その後先にSoccerリーグのみ入場が始まり、続いてRescueリーグの入場も始まりました。

車検

 入場開始してすぐ登録してパドックに入り車検を受けましたが、ここからが大変でした。私たちはLiPoバッテリを使用しているのでRCJ規定の取り扱い規則に従い動くのですが、けいはんな大会のバッテリー取り扱い規則には「車検チェックシート」が必要という記述がありました。車検チェックシートは事前に公開や頒布されなかったことから、先に車検窓口に行ってチェックシートを受け取ってから電池検査をし、再度車検を受けるべきだと判断しました。

しかし車検の受付でRescue Mazeには車検シートが存在しないことを伝えられ、他のチームにおくれて電池車検に向かうことになりました。さらにはその電池車検の窓口は会場に2つしかなく、全リーグのLiPoバッテリ使用チームが集結して成した長蛇の列のしっぽに並ぶほかありませんでした。その待ち時間は、待機列で近くにいたRoot41やOrionのメンバと軽い交流をして過ごしました。他チームのロボットを間近で観察することができて、これが現地開催の大きなメリットだと感じました。

 電池検査終了後は車検の列に並びました。車検も車検で1列しかない上に1チームにかなりの時間がかかっていたので、これまた長い待ち時間ができました。その時間で、車検を担当していなかったスタッフの方に可能な範囲で車検をすすめていただいたり、周りの方々(主にスタッフさん)と雑談したりしていました。我々は車検で無線通信の話が必ず出ると踏んでいて「無線通信用のデバイスをどこにも搭載していない」と断言することは考えていたのですが、その後に「でも、いかなる電線も使い方によってはこう、電波を発して...」みたいにジョークを噛まされて面白かったです🙂

調整

 本来のスケジュールでは17:00に選手退出とされていました。しかし、間際になっても終わっていない車検の状況を鑑みて退出時間を30分延長していただけました。その間に練習用フィールドでロボットを動かし、状態を確認しました。カメラセンサの調整ができていなかったことと、フィールドに直射日光が差し込んでいたことから、被災者検出以外の調整を優先しました。坂を降りてすぐの地点や旋回地点に設置されていた2cmバンプに苦労したほか、11マスの直線路で距離センサの測定範囲外となりマップが狂う問題(当時修正途中)がより顕在化するなどしました。

ホテルにて

 会場での調整時間に間に合わなかったソフトウェア上の修正をまず行い、その後足回りなどのメンテナンスを行いました。最後に念のためにレスキューキット排出機構の動作確認をしたところ、不具合が見つかりました。分解してサーボモータのトルク低下がみられたため、予備と交換しました。しかし直後の動作確認で予備サーボモータのギヤを破壊しました。

もう1つ持っていた予備モータに取り替えましたが、それの替えとして、1つめの個体からギヤを、2つめの個体からモータを取り出してニコイチサーボを作りました。結局、最初の予備サーボのギヤは不良品だったようで2日目以降に破壊はなく、ニコイチサーボの出番はありませんでした。

2日目

 2日目の2回の走行は、事前に公開されていたスケジュール案では両方ともチーム番号順(エントリー順に振られており、真っ先にエントリーした弊チームは一番最初、)となっており、私たちはキャプテンミーティングでくじ引きを提案するつもりでした。しかし、2日目朝時点で2回目の走行順のみがくじ引きにされました。1回目に関してもくじ引きにならないかとダメ元で聞いてみましたが、さすがに時すでにお🍣でした。ちなみにくじ引きは見事に2番を引いてしまいました(泣)

調整時間

 1日目夜に編集したソフトウェアの動作確認を行いました。調整途中でOpemMV - Teensy3.2間のUARTを用いた通信がうまく機能していないことに気付き、OpenMVからのPWMによるLEDの制御を中止したりOpenMVのファームウェア書き換えをしたりして修正しました。

競技1回目

 1回目の走行はまず、右側が斜面になっているT字路で壁と機体を並行に保つ機能(以下、"壁補正")が誤作動を起こして不規則な動きが発生し、その過程でおそらく壁同士の接合部をVisual Victimだと誤認識する動作をしました。また、左右が空いている場所で距離センサが近くの壁の端を認識してしまい、折り返してしまう動作が複数回発生しました。さらに競技開始後3分頃にロボットが不必要な後退の動作をはじめ、競技進行停止後は動作しなくなりました。競技当時は原因がわからず、4分30秒ほどでリタイアしました。

調整時間

 合間の調整で壁補正の修正などをしている間に、機体がバンプに差し掛かった際に底面を擦ってラインセンサを破壊してしまったため、予備基板に取り替える作業を行いました。さらにカメラの動作不良がまた発生し、対処できませんでした。

競技2回目

 カメラが正常に動作しなくなったため、被災者の誤発見を避けるためHeated Victimのみを検知する設定で挑戦しました。得点走行を初めてすぐロボットが想定外の動作をして壁同士の接合部に引っ掛かり、さらに侵入禁止の黒タイルに進み続けたことで競技進行停止となりました。その後はロボット本体の異常はみられず走行が続きましたが、斜面に接する壁の接合部や板状のバンプに引っ掛かり競技進行の停止が重なりました。これ以上の得点が見込まれない(減点がかさむ)と考えて、得点走行開始後4分30秒ほどでリタイアしました。

競技語の調整&ホテルにて

 会場でラインセンサを予備含め2つとも破壊してしまったので、基板に代替のセンサ部品を取り付けました。会場でNJL7302-F3を譲っていただいた方、大変ありがとうございました。さらに、これ以上破壊しないようにセンサ基板の位置を底板より内側に移動させるように加工しました。またUARTを用いた通信の復活の目処が立たなかったため、UARTで使っていたI/OピンのHIGH/LOWの組み合わせで被災者の情報を表現する通信方法を実装しました。画像認識自体のアルゴリズムについては、見切れている被災者(のようにみえる色の集合体)を認識の対象外とする処理を加えて誤検知の低減を図りました。

3日目

 3日目の走行順は、2回目までの走行で成績が良かったチームから好きなタイミングを選ぶ形式で、Twinclueは4番目でした。

調整時間

 障害物や壁に乗り上げ、坂と誤認識して前進の動作を続けるケースが多く見られたため、障害物をよける動作の修正や乗り上げ判定の追加などに努めました。途中でRoot41(現, Blend)のしろくまさんが練習フィールドに足を運んできてくださり、Mazeに関してお話をしました。

競技3回目

 被災者検知は1,2回目と比べて良好に動作しましたが、被災者を別の種類の被災者と誤認識することや、被災者の見逃しが複数回発生しました。また壁面や障害物に引っかかって乗り上げるケースが複数回発生し、競技進行の停止を複数回行いました。これらの影響でマップが狂った為かロボットが一定の場所を周回し続けてしまい、タイムロスをしてしまいました。

そのあと

 3試合目のすぐ後に設定されていたインタビューを受けました。ロボットに施してきた工夫をよく伝えることができたと思います。  Majorのロボカップに参加している人による、Major、特に@Homeリーグの紹介プレゼンをききました。また、Juniorに新設されたRescue Simulation (Webots-Erebus)の紹介プレゼンも聴講しました。

おしまい

長くなってしまったので、けいはんな大会までのチームとしての活動の振り返りは別記事にするかも。しないかも。です。 この記事の進捗具合からして可能性は低いので、まぁ、見かけたときによろしくおねがいします。

参考

[1]  Re: The history of "M&Y" RCJJジャパンオープン2022けいはんな Rescue Mazeの競技 2022/07/10閲覧 blog.goo.ne.jp