マイクロマウス2024シーズンを振り返って

マイクロマウス2024シーズンの振り返りと反省点

今シーズンやったことや反省点の簡単な振り返り

昨年度の全日本大会終了から地区大会開始時期まで

昨年度の全日本大会終了後からショートカット走行の開発を始めました.

「とりあえず手を動かしてやってみよう」みたいな軽い気持ちで開発をスタートさせました.

先駆者が残した記事や,動画,SNSなどかなり調べました.

全日本終了後すぐに初めて,3月終わりに経路追従制御ができて,8月終わりにショートカット経路が走れるようになりました.

自分がやっているショートカット走行については下記URLから

tutui.hatenablog.com

動画はこちら

www.youtube.com

reRo杯

自分が所属している団体reRoが主催する独自大会を開きました.昨年に引き続き2回目です.今年は,NTF様のサイトに大会情報を掲載していただいたり,マイクロマウス合宿のLTで発表するなど広報活動に力を入れた結果,参加人数59名と小規模な地区大会のような参加者数になりました.

ご参加頂いた皆様ありがとうございました!!

reRo杯集合写真

大会HPは下記URLから

slime-mercury-c71.notion.site

中部地区大会

地区大会で腕試しと言うことで,11月はじめの中部地区大会に出場しました.

行き帰り高速バスで,前日の早朝出発,本番夜の夜行バスで帰宅と弾丸ツアーで参加しました.

マシンは全日本大会にも出したTLR2です.

コース難易度が異常でしたが,結果は準優勝と第一の勇者賞をいただきました.公式大会初入賞です.

2024年度中部地区大会結果ページ

mmc-chubu.cocolog-nifty.com

学生大会

大学の課題や研究室活動でなかなか,時間が取れずマシンに特に変更を加えずに出場しました.

結果は5位.reRoのマシンスペックおばけ達に駆逐される形になりました.

新作開発

全日本大会を見据えると,このままでは厳しいことは明白だったので,スペックの高いマシンを作成することにしました.

構想は少しずつ練っていましたが,形にするのに時間がかかりました.

年末から本格的に開発をスタートし,走れるようになったのが,全日本1週間前となかなかハードでした.

前作との変更点を多くした結果,ところどころで時間を取られました.

スペックは全日本のテクニカルデータを見てください.

www.ntf.or.jp

テクニカルデータに補足すると,モータはmaxon DCX14L 4.5V グラファイトブラシ

このモータをMAX性能でドライブできるパッケージ型モータドライバはおそらく存在しないので,Hブリッジを自作

マイコンはショートカットの開発も意識して,クロックが高速でROM,RAMが大容量なSTM32F767VITを採用しました.

参考までに,テクニカルデータにはラインセンサ16個と書いてありますが,アナログマルチプレクサをうまく扱いきれず,本番はセンサ8個で走ってました.

全日本大会

とりあえず開発したマシンで,できる限りの調整をして大会に望みました.

試走会,本番とも目立ったトラブルに遭遇せず,結果は6位入賞でした.

全日本大会初入賞です.昨年度の全日本が7位と悔しい思いをしたので,少しはリベンジできたかなと思います.

反省

この1年なかなか開発する時間が取れず,思うように進めることができなかったのは反省です.

計画的に少しずつでも,できることから進めていくことが重要かなと思う1年でした.

これから

ショートカット走行を開発していく中で,先駆者の方とお話させていただく機会がたくさんありました.

実際に対面でお話しないと分からないことを教えていただきましたが,今後のショートカット開発を進めていく上で避けて通れないアルゴリズムでかなり詰まりそうなことがわかったので,開発の進め方を少し悩んでいます.

今後の方向性を決める上でもとても重要な岐路だとおもうので,少し考えようと思います.

ショートカットの開発を全くやらないわけではなく,開発の順番とか進め方とかを考えます.

最後に

1年間お疲れ様でした.

今シーズンは,たくさんの方に出会い,たくさんお話したシーズンだったと思います.

噂によると,来年の全日本大会はロボトレチャンピオンが多数参加するかもと聞いているので,食らいついていけるよう精進したいと思います.

それでは皆さん来シーズンまたお会いできるのを楽しみにしています.

やりかけで放置しているショートカット走行

この記事はマイクロマウス Advent Calendar 2024(2)20日目の記事です.

マイクロマウス Advent Calendar 2024(1)はこちら

はじめに

reRo所属の筒井です.

「アドカレは去年書いたから今年は書かなくても良いかな?」とか思っていたら,2枚目のアドカレを作った方からメンションが飛んできたので今年も書きます.

内容は少し悩みましたが,「やりかけで放置しているショートカット走行」についてです.

ロボトレのショートカット走行は記事が少ないのと,自分の備忘録的な感じで書こうと思います.

「ショートカット走行で大会完走していないようなやつが記事書くな!」と言われそうですが,全くそのとおりです.

ショートカット走行とは?

ロボトレース競技では,ラインを追従せずに走るショートカット走行の開発が一部の人達の間で行われてきました.ショートカット走行とは,カーブの内側を走ったり,なみなみになっているラインをまっすぐ走り,より早いタイムでのゴールを目指す技術です.

初めてショートカット走行を見る方は,そんなのアリなの?と思うかもしれませんが,公益財団法人ニューテクノロジー振興財団様のロボトレース競技規則3-1には次のように書かれています.

公益財団法人ニューテクノロジー振興財団 ロボトレース競技規則

となっているので,別にラインを追従しながら走りなさいとは書いていないんですよね.

むしろ運営としては,ロボットの自律性や知能性を評価しているので,このような技術はウェルカムなはずです.ロボトレース競技の評価基準

ショートカット走行の構成要素

ショートカット走行には大きく分けて2つの要素が必要と考えています.

ショートカット軌道を計算する軌道生成と,その軌道を追従してラインをトレースせずに走る軌道追従制御です.

軌道生成

軌道生成は元のコースに対して何かしらの計算をして,ショートカット用の軌道を生成するものです.

手法として,移動平均が良く使われているようです.私も今のところはこの移動平均でショートカット軌道を生成しています.

移動平均を使ってコースを生成すると次のような軌道を生成できます.

2023年度マイクロマウス全日本大会のコースです.

ショートカット経路

赤い線(点)が元のコース,青い線(点)がショートカット軌道です.

移動平均ついて

移動平均は時系列データを平滑化するためによく使われているらしく,デジタル信号処理や金融,気象など様々な分野で役立ってます.

一定区間のデータを逐次更新しながら算出する計算方法です.

今回はロボトレのコースに対して,平滑化処理を行うことでカーブをなまらしたり,なみなみを直線に近似したりすることができます.

x座標とy座標をそれぞれ移動平均してあげると上記のようなコースが生成できます.

軌道追従制御

ロボットに走らせたい軌道を生成できたので,次はその軌道を追従させるための制御について説明します.

軌道追従制御も様々提案がされていますが,ロボトレースのショートカットとして良く使われているのは「Kanayama Control Method」「Pure Pursuit」だと思います.

Kanayama Control Methodについて

私は軌道追従制御の方法として,Kanayama Control Methodを使っています.(正式名称ではない)

なぜこの方法を使っているか? 実装したら動いたからです.

今回はロボトレースの軌道追従に使いますが,マウスの軌道もこれで生成している方がいらっしゃるみたいです.

内容は上記論文を読んでいただければ大体わかると思いますので,ここではあまり深掘らずに話を進めたいと思います.

(ある程度ロボトレースをやっている方であれば,あまり苦労せずに読めると思います)

制御方法

Kanayama Control Methodは「ロボットの並進速度(\nu)・回転速度(\omega)」を求めて,任意の目標を追従できるようにするものです.

図を使って少し説明します. ロボットは次のような座標系で表すことができます.

KCM説明図1

xy軸はそのままロボットのxy座標になります.\thetaはロボットがxy平面のどの方向に向いているかを表しています. 「このxy\theta座標を使って,速度と車体角速度を求めましょう」という話です.

目標と現在の位置計算

この制御システムには2つの姿勢が使われます.

基準姿勢(ロボットの目標姿勢)

 \displaystyle
P_r = (x_r, y_r, θ_r)^{t}

現在姿勢(ロボットの現在姿勢)

 \displaystyle
P_c = (x_c, y_c, θ_c)^{t}

( P_r\ は,Reference Posture(基準姿勢)の略称. P_c\ は,Current Posture(現在姿勢)の略称.)

KCM説明図2

目標の姿勢が分かっていて,現在の姿勢も知ることができれば差分を計算することができます.

 \displaystyle
P_r - P_c

差分からロボットの速度と角速度を求めてフィードバック制御してあげれば,目標の姿勢に制御することができます.

Kanayama Control Methodのゲイン値について

論文中の式8で速度と角速度を求めるのですが,ここにゲイン値が出てきます.

 \displaystyle
q = \begin{pmatrix} \nu \\ \omega \end{pmatrix} = \begin{pmatrix} \nu(\mathbf{p}_e, \mathbf{q}_r) \\ \omega \end{pmatrix} = \begin{pmatrix}
v_r \cos \theta_e + K_x x_e \\ \omega_r + v_r (K_y y_e + K_\theta \sin \theta_e) \end{pmatrix}

この式のK_xK_yK_\thetaがゲイン値となっていて調整する必要があります.

しかし,ゲイン値はどのくらいが良いのかよく分かっていません.

式を見るとゲイン値が0でも計算できることが分かると思います.誤差をどれくらい反映させるかの値ですね.

いきなり大きい値を入れると,ロボットがベイブレードしかねないので,0から始めて小さい値を少しずつ入れていくのが良いと思います.

この記事で話すのはここまでにして,気になる方はご自身で論文を読んで見てください!!

この論文は1990年に出たものなので,もう枯れつつある技術ではありますが,ロボットの制御を勉強するには良いと思います.

youtu.be

これからやること

開発中の動画を再生リストにまとめたので,興味がある方は見てください.

とりあえず,ショートカット軌道の生成と軌道追従は,それっぽく動いたので次は自己位置補正かなと考えています.Yさんのこちらの記事を参考に実装しようと思います.

この1年動かしてきたTLR2がそろそろ限界なのと,学生大会でreRoのゴリゴリパワーマシン達に駆逐されたので新機体作ります.DCX10LのLipo3s機体なのに,なんであんなにタイム差が出るんですか?

ライントレースマシンとショートカットマシンの2機体作ろうと思います.

ショートカット開発中の出来事(おまけ)

  • フェイルセーフがうまく作動せず機体がベイブレードする

  • 機体が机の足に激突してジャイロが歪む

  • 機体がものすごい速度でコース外に吹っ飛んでいく

etc...

最後に

ショートカット走行の開発で行った,軌道生成と軌道追従制御についてこの記事で書いてみました.

うまくまとまっていないと思いますがご容赦ください.

参考文献

[1] 独立2輪車型ロボットにKANAYAMA CONTROL METHODを実装して軌道追従をする

[2] 独立二輪車型ロボットで目標軌道に追従する制御をする①

[3] 車輪移動ロボット

ロボトレ機体(設計・基板製作)を一週間で作らされた話

この記事はマイクロマウス Advent Calendar 2023の15日目の記事です。

昨日の記事の話

昨日の記事は、T_Kimuraさんの「学生大会2023」でした。

2種目で表彰台、マイクロマウスでは特別賞と凄すぎます。マシン開発だけでなく、普段の生活からレベルを上げるというスケールの大きな話になっていて、この競技に対する思いが全面に出ていて刺激を受けました。reRoにもマイクロマウスをやっている人がいるので、マウスに関しての色々な記事を書いて欲しいです。参考になると思います!

自己紹介

初めてこういったブログを書くので、軽く自己紹介をしようと思います。

名前:tutui (@tutui1084)

所属:reRo (千葉工業大学) B2です。

競技:ロボトレース 2年目(2022年度から始めた)

高校から、のらりくらりとものづくりを始めて、3Dプリンタ(FFF/FDM・光造形)を使ったり回路設計したりプログラム書いたり色々しています。

本題前の茶番

本題に入る前に、この記事の題名にもなっている「ロボトレ機体を一週間で作らされた話」の前置きを書きます。(こっちが本編まである)

話は、私の所属している「reRo」が運営する大会reRo杯の試走会(7/29)まで遡ります。(詳しくはAdvent Calendar19日目のSHIMOTORI,Harukiの記事をお楽しみに)

左の半田ごてがtutui、右のロボトレ機体が先輩のノムさん(マイクロマウスAdvent Calendar 2023の13日目の記事を書いた人)です。

reRo杯前日の会話

ということで、半ば強引(パワハラ)に基板を1週間で発注することになってしまいました。

私としては、夏休みの1ヶ月半を利用してゆっくり製作しようと考えていましたが、先輩からこんな圧をかけられたら・・・・

「いつか作る」が「今から作る」に変わっただけですが、1週間で機体・基板設計をするのは、いくら何でも厳しくないか?

しかし、やれと言われたらやるしかありません。

1機は自分で製作していたので、そのマイナーチェンジ版として作れば1週間でも作れるのでは?という甘々見通しで作り始めました。

一週間でロボトレ製作

回路設計編

(製作日数:1日)

このロボットに使われている部品を超簡単に紹介します。

(詳しくはテクニカルデータを見てください)

  • CPU:STM32F405RGT6

  • 駆動モータ:DCX10L エンコーダ付き

  • モータドライバIC:DRV8874

  • IMU:MPU6500

  • 吸引モータ:Telloのモータ(8520サイズ)

  • ファン:1個搭載 (サークルで自作)

1機目もだいたい同じ構成で製作しました。

変更した点は、

・ギラギラに光らせるために、異なる色のLEDを6色付けた。(デバック用・遊び心)

・モタドラ変えた。前のやつはMAX22201。リフローなら全然良いですが、手はんだなので今回は変更。

なるべくプログラムを変更しなくても動くことを最優先に。

CAD編

(製作日数:1日)

かなり短い期間での製作なので、CAD設計は最小限に。

TLR2 CAD
(センサ基板が付いてなかったり、材質・色・見た目が適当なのはお許しください)

基板シャーシでスキッドステアの4輪駆動、センサバーは固定で、ファン一つの吸引機構を取り付けました。

reRoには、ファン1個と2個の人がいて、まだまだ議論が続いています。

パターン設計編

(製作日数:2.5日)

パターンと3Dデータ

基板シャーシで設計しました。(本当は、基板は別でカーボンシャーシにしたかった)

理由は、

・基板を小さく設計して別のシャーシに乗せるには基板設計の時間が無さすぎること。

・reRo内で基板シャーシで吸引をやっている人がいなかったので、実験的な意味合い。

の2点です。

真ん中部分には、モータ・吸引ファンが来るので部品は配置しないように注意。

前方に吸引ファン・モータ、各種コネクタ系があるので、バッテリが後ろ配置になったのがかなりネックです。全日本までに機体の設計を見直します。

発注

TLR2 基板

先輩方からのレビューを乗り越え、何とか基板の発注を1週間以内で行うことができました。オススメはしません。

発注は、最近お世話になっているJLCPCBです。納期は金額と相談して、約5~6日ぐらいのやつにしました。(1週間掛からずに設計できて余裕ができたため、少し長めで金額が安いやつにした)

正確に覚えていませんが、メイン基板・センサ基板を5枚ずつ発注して、4000円以内だったと思います。

(部品の発注は回路図ができた段階でやって、基板が届いてすぐはんだ付けに取り掛かれるようにしました。)

完成

TLR2 完成写真

動確もすんなり終わり、大会までに完成させることができました。

(さすがに、草の根大会までに2次走行実装は間に合わなかった~)

基板以外のものは、発注後に加工・3Dプリンタで造形をしました。

おまけ(この機体の大会結果)

草の根大会

11位 (20機参加)

東日本地区大会

7位 (41機参加)

学生大会

4位 (35機参加) 2次走行実装

先輩方に負けて表彰台を逃しました。来年こそは・・・

まとめ

ノムさんの圧(パワハラ)に屈することなく、ロボトレ基板を1週間で発注して、草の根大会に新機体を間に合わせることができました。繰り返しになりますが、オススメはしません。

完成させることができたのは、先輩方のサポートがあっての結果だと思います。アドバイスして頂いた先輩方ありがとうございました。

ちなみにノムさんには、開発期間の1週間質問攻めにして、フィードバックをもらいまくってました。

今のところは、吸引機構 + 2次走行をしています。とりあえずは、このまま開発を進めてく予定です。まだまだやるべきことは多いです。

最後に

パワハラは良くないですよ!(多少の強引さは必要だと思いますが・・・)

来年は、reRo内に競争相手がいなくなるノムさんのライバルになれるように日々精進します。

明日の記事の話

明日は、N.Go.さんの記事です。

「うーーーん... なんか書きます」とのことですが、どんな話が出てくるのでしょうか?

マウスの話?社会人になっての話?

楽しみにしています。