robocup-zunda’s blog

高崎高校物理部の部活です。

RCJJ2023の反省とロボット紹介

結果

 先日、名古屋にてロボカップジュニアジャパンオープン2023名古屋大会が開催され無事終了しました。我々は、ワールドリーグサッカーライトウェイト部門に出場し、全68チーム中10位という結果となりました。目指していた1位に届かず悔いの残る結果となりました。以下に簡単な対戦結果を載せておきます。

対戦結果

第一試合:勝利 3 - 2 vs 三田学園物理部チーム「Nova」

第二試合:勝利 3 - 1 vs 近高ブルーストライカーズ

第三試合:敗北 3 - 5 vs Reckless

第四試合:勝利 5 - 3 vs HINOWE.KSEC

第五試合:勝利 9 - 2 vs 極無

第六試合:勝利 8 - 1 vs I WAS TOIN

第七試合:敗北 2 - 3 vs Kollagen

※第八試合、第九試合は中止

 

個人的には、最後の試合に負けてしまったのが非常に残念でした。Kollagenさんはキッカー、ドリブラーを搭載して非常に魅力的なロボットでした。キーパーが強くなかなか得点までもっていけなかったことが非常に印象に残っています。実力負けです。

 また、第三試合では、キーパーが突然動かなくなる事態に遭い、負けてしまいました。これがなければ、5位ぐらいまでは行けた気がします。壊れた原因はどんなに調べてもわかりませんでした。マイコンを取り替えたら動いたのでマイコン周りが怪しいです。第三試合と序盤だったこともあり、ここでの敗退はかなり結果に響いたと思います。

嬉しかったこと

 大会中に1つ嬉しかったことがあります。それは、車検の全項目で一発合格をいただくことができたことです。去年のけいはんな大会では、車検でけちょんけちょんにされたので、今年は絶対に車検に引っかからない機体を作ってやると思っていたので、目標を達成できて非常に嬉しかったです。

 車検をスムーズに通過できたおかげで、大会1日目はたっぷりと調整時間をとることができました。群馬ブロックまでのコートは最新ルールに対応しておらず、初めてのコートだったので調整をしっかりできたのは大きかったです。

 

反省点

 反省点なんて書こうと思えばいくらでもかけるのですが、それではブログが書き終わらないので抜粋して書きます。

1つ目:ハードウェアをいじれる人数を増やす

 私たちのチームでは、ロボットがハードウェア的に故障した際に直せる人員が僕一人でした。そのため、キーパーが故障した際に僕が直す作業に付きっ切りになってしまい、なかなかフォワードのメンテナンスなどができませんでした。

2つ目:安定した機体を作る

 今回の機体の目標は、先ほども述べた「絶対に車検に引っかからない機体」と、「壊れない安定した機体」の2つでした。前者はクリアしましたが、後者は大会中にキーパーが故障したのでクリアならずです。ただ、フォーワードに関しては大会前からずっと安定して動いてくれていたので感謝です。メインマイコンにはRasoberry Pi Picoを採用しました。これは安いわりに性能もいいのでおすすめなのですが、僕が使っていて気が付いたことがあって、長時間使っていると3.3Vの出力がおかしくなる個体や一部のI/OピンとGNDとの間が数Ωにまでなってしまう個体が多発しました。安いので壊れても経済的なダメージは少ないですが、時間の限られている大会で起こってしまうと非常に困ります。なので、そういったことが起こらないよう様々な検討を重ねる必要があると感じました。

 

ロボット紹介

 今年度、製作したロボットを紹介したいと思います。3Dデータやプログラムも公開しているので是非、ご活用ください。

構成

 主なスペックは以下の通りです。

 

機能・役割 型番 個数
メインマイコン RP2040 1
モーター制御マイコン RP2040 1
モーター Maxon RE16 9V 4
ギアボックス GP16 19:1 4
モータードライバー Pololu G2 18v17 4
ラインセンサ NJL7502L 32(円形)
LED WS2812B 32(円形)
ジャイロセンサ MPU-6050 1
モニター SSD1306 1
ボールセンサーマイコン ATSAMD21 1
赤外線センサー TSSP58038 16(円形)
バッテリー Kypom 11.1V 1000mAh 1
カメラ(1台目) OpenMV H7 R2 1
カメラ(2台目) M5Stack UnitV 1

 今回は無難な構成にしました。Maxonモーターで金がかかりすぎたのでマイコンなどは安いものを使いました。

ラインセンサ & マイコン

  

 これが、ラインセンサーおよびメイン基板です。表面にラインセンサー32個が円形に配置されています。光源にはNeopixelを採用しています。信号線1本でプログラムから自在に色や輝度を変えることができるので非常に便利です。(上の写真の基板では、部品不足のためNeopixelが16個に削減されています。)2つのアナログマルチプレクサ(CD74HC4067)(写真下 左上・右下)を通してラインセンサーの値をアナログピンで監視しています。

 エンジェルリングは、十字のラインセンサーに比べて簡単にラインの向きを360°把握することができるので使い勝手がいいです。しかし、ラインの角の直角に曲がったところなどでは十字に比べて処理が面倒というデメリットがあります。

 裏面にはメインマイコン等が実装されています。メインマイコンとモーター制御マイコンには、それぞれ、Raspberry Pi PicoとXiao RP2040 が採用されています。どちらとも安価で、デュアルコアなので非常にお勧めです。メインマイコンでは、各マイコンとの通信やライン・ジャイロの処理、戦略の決定、モーターマイコンへの指示を担っています。モーターマイコンでは、メインマイコンで受けた指令をもとに各モータードライバーを制御します。

 マイコンやセンサー用の電源(3.3V 5V)は当初、両方とも三端子レギュレータで生成していましたが、5Vを生成するレギュレータが動作途中に熱でダウンしてしまう不具合に見舞われてしまったので後付けで、村田製作所のDCDCコンバーターを使用しました。

 ジャイロセンサーには、Amazonで買った安物のMPU-6050を使用しています。地磁気を使用していないので、モーターの磁気に作用されません。MPU-6050に搭載されているDMPを使うことで、高度な計算を自分でせずに済みます。キャリブレーションすれば試合中もほとんどドリフトすることがないので、最高です。

 

足回り

 モーターには、Maxon RE16 9V を採用しました。当初、ルールが9Vに制限されるらしかったので9V版を買いました。12V版を買えばよかったと思っています。Maxonモーターを初めて使いましたが、軽くて、高回転、高トルクが両立で来ていて非常に良かったです。コアレスモーターなので適切な制御をしてあげると非常に応答性がよく機敏な動きが可能になりました。ただし、価格の面がネックですね。私たちはSSH(スーパーサイエンススクール)の予算で購入できたのでありがたい限りです。

 ギアボックスには、GP16 19:1を使いました。これには特になんとも思っていません。

 モータードライバーには、Pololu G2 18v17 を採用しました。LAP駆動に対応しているので、Maxonモーターとの相性はいいと思います。ただし、これも価格が高いので微妙です。

 これがオムニホイールです。3Dプリンターで自作しました。サイドホイールにはシリコンチューブとスペーサー、針金で製作しました。ロボ同士の衝突の際にオムニが破損しないかどうか心配だったのですが、壊れることもなかったのでよかったです。でも、3Dプリンター製のオムニは壊れるリスクがあるのでお勧めできません。

 

電源回路

 これが電源回路です。Li-Poの電源の最も近いところにヒューズ(15A)をかませてます。その後、Pch Mosfetでロードスイッチを構成しています。その後、各基板へと電源を分配しています。また、XL6009を使ったキッカー用のDCDCコンバーターも搭載しています。40Vまで昇圧可能ですが、すぐに壊れてしまったので使うことはありませんでした。この回路を作るにあたって以下のサイトを参考にしました。

robotry.hatenablog.com

ボールセンサー & カメラ

 これがボールセンサーです。円形に赤外線センサーが16個並べてあり、ローパスフィルターとアナログマルチプレクサを通して、ATSAMD21でアナログで読んでいます。隻眼線センサーを3Dプリンターで囲ってあげることで、高い精度でボールの角度を算出できます。ただし、ボールとの距離は正確に算出することはできません。

 また、この写真の中央に見えるのがM5StackのUnitVです。1台目のロボットでは、ここがOpenMVに代わっています。予算がなかったのでOpenMVを2つ買うことはできませんでした。アロンアルファのせいでアクリルパイプの一部が曇ってしまったのが痛恨のミスでした。

フレーム

 これが、フレームです。このフレームが我々のロボットの中で最も特徴的なところです。多くのチームがアルミニウムの板やCFRPを使っていますが、我々は、カーボン繊維が配合された樹脂を3Dプリンターで印刷して土台を使っています。かたいだけでなく、どんなに曲げても折れることもないので安心感MAXです。Flashforgeなどの一部機種で印刷できるカーボン樹脂ではなく、Markforgedという業務用のガチプリンターで専用樹脂を使っているのでめちゃくちゃ頑丈に印刷できます。私たちのチームでは、地元にこの3Dプリンターを所有している企業にお願いをして印刷をさせてもらっています。質感も良く印刷精度も高いので可能であればぜひ使ってみてください。

データ公開

 最後に、このロボットの設計データやプログラムを公開しておきます。ぜひ参考に指定ください。

github.com

JLCPCBについて

 最後に、JLCPCBの紹介をしたいと思います。私たちのチームで使用した基板はすべてJLCPCBで製作をお願いしています。JLCPCBでは様々なサイズ、厚み、色の基板を格安で製造することができます。出来上がったものの仕上がりも精度が高く非常にお勧めできるサービスです。ほかにも、3Dプリントサービスや部品実装サービスも行ってくれています。JLCPCBでは新規登録で$54のクーポンを配布しているので、使ったことがない人はぜひ一度使ってみてください!いかに、部品実装の例も載せておきます。

jlcpcb.com