2024年12月5日木曜日

Entranceのマシンデータ

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

昨日の記事はShachiku Hakase さんの「マイクロマウスロボットコンテストにおけるロボトレース競技向けのログ保存およびPythonと生成AIで作るログ表示システムの解説」でした。
初心者上級者問わず、ログを見て機体の状況を解析することは非常に大切なわけですが、そのシステム構成について大変ためになる記事でした。その完成度の高さもさることながら、組み込みシステムにおけるメモリの扱いや、アプリケーションにおける生成AIの活用など、マイクロマウスに限らず普段の開発に必ず役に立つTipsも盛り沢山です。私も少なくともあと10回以上は読み返すと思います。技術レベルの高い人のやっている話は何度読んでも面白いものです。公開してくださったことに感謝ですね。


では、本題行きましょうか。久しぶりのマシン紹介です。私が2021~2022に製作していた"Entrance"の内容(v2もセットで)を公開します。

書くモチベーション

そろそろ出さなくなって1年以上が経過しておりパラメータとか設計思想を忘れそうなので備忘録的な意味合いが半分と、だんだんクラシックからマイクロマウスの方にチャレンジする層(特に学生)が増え始めたので、タイミング的に参考になるかなというのが半分くらいな感じです。


テクニカルデータ


Entrance(初代)

Entrance_v2


画像だけだと間違い探しに近い?わかる。


サイズ[mm] 67×39×13
重量[g] 10.2(初代)→9.7(v2)
マイコン RX631
バッテリー indoor airplane で売っている50mAh 20C 1S
走行用モータ Mk06-4.5
モータドライバ TC78H660FTG(初代) → DRV8835DSSR(v2)
フォトセンサ OSI5FU3A11C+LTR-209
IMU MPU-6000 
エンコーダ AS5147P
ギア比 9:38

走行パラメータ

みんな好きなやつ。MAXだけ載せようかと思いましたが、今後作る人の参考になるように、オートスタート、普通の最低パラメータ、最高パラメータ、の3つを示しておきます。
ターンパラメータはターン速で決めてないので、小数点以下3桁目は四捨五入。

・オートスタート

MAX speed(Straight): 2.0 m/s
MAX speed(Diagonal): 1.5 m/s
Acceleration(Straight): 5.0 m/ss
Acceleration(Diagonal): 4.0m/ss
in45: 0.41 m/s
out45: 0.44 m/s
big90: 0.44 m/s
v90: 0.35 m/s
in135: 0.38 m/s
out135: 0.38 m/s
big180: 0.39 m/s

・最低パラメータ(通常)

MAX speed(Straight): 3.5 m/s
MAX speed(Diagonal): 2.5 m/s
Acceleration(Straight): 8.0 m/ss
Acceleration(Diagonal): 6.5m/ss
in45: 0.81 m/s
out45: 0.89 m/s
big90: 0.89 m/s
v90: 0.71 m/s
in135: 0.75 m/s
out135: 0.75 m/s
big180: 0.77 m/s

・最高パラメータ(通常)

MAX speed(Straight): 4.0 m/s
MAX speed(Diagonal): 3.5 m/s
Acceleration(Straight): 12.0 m/ss
Acceleration(Diagonal): 10.0m/ss
in45: 0.92 m/s
out45: 1.11 m/s
big90: 1.04 m/s
v90: 0.83 m/s
in135: 0.88 m/s
out135: 0.88 m/s
big180: 0.91 m/s

オートスタートはもともともう少し早い設定でしたが、全日本大会の32×32の試走で埃がたまるとありえないくらい軌道が膨らんでしまったことから、どんな状態でも走れるくらいには速度を落としました。
最低パラメータは安心してみていられるくらいだったと思います。このくらいであれば、特殊な工夫はなくともきちんと制御を行えれば走るはず。
最高パラメータはハードウェアの限界付近だったと記憶しています。成功するかは路面の相性とバッテリーの調子次第。これ以上上げようとするとタイヤが地面を蹴れなくなるような動きをした覚えがあります。この辺まで行くと「ハードの限界」という言葉の意味するあたりがなんとなくわかってきます。そしてこれでも全く勝てなくて絶望するまでがセット。

ハードウェアの狙い

細かいところを書けば色々出てくるようにも思いますが、とりあえず全体のコンセプトと、質問の多い足回りと、初代からv2の重要な変更点であるモータードライバを絡めて回路の話をしようと思います。なんか他に大事なことを思い出したら追記するかも。

・全体コンセプト
この機体を製作する上での最終目標は「ハードウェアの限界値で動かすとはどういうことかを知る」です。
これを達成するために、以下3点を意識した設計になっています。
1. 極力シンプルな構成にする... 非吸引2輪を採用
2. 扱いにくくならないように過度な軽量化はしない... ex 0.4 mm基板は非採用
3. そうはいっても同系統の中では速度を狙える構成にする... 低慣性モーメント&低重心になるようにする、工夫して軽くできるところは軽くする

慣性モーメントを減らす、というのは具体的に言うと部品をなるべく旋回中心によせるということです。そのほうが曲がる際に必要な力を減らせるためコントロールしやすくなります。自転車のサドルのかごに重いリュックを置くより自分で背負ったほうが漕ぎやすいのと同じイメージです。
まあここまで数式一切無しで説明しましたが、よくわからない人は力学を勉強しませう。

エンコーダの磁石、モータ、バッテリーをなるべく中央付近においています


重心についても横から見ればわかりますが、タイヤより基本的にすべての部品(バッテリーのケーブルは除く、これも頑張ればできる気もする)が低い位置に来ています。こうすることでコントロールしやすくなります。
低重心のメリットについてピンとこない人は、私が今年のマウス合宿で解説した図を復習しませう。ついでに縦に長くしているのもおさらいしておきましょう。



この低重心を実現しているキモは足回りにあるので、次項で足回りを見ていきましょう。

・足回り
ハーフの足回りにおいて地味に悩ましいのが、部品をどう固定するか?ではないでしょうか。というのもサイズがかなり小さいので、例えばネジを使おうとすると適切なサイズのが手に入らなかったり頭の高さが地味に邪魔だったり、結構制約があります。固定方法に着目しながら、Entranceのノウハウを公開していきます。そのためにはあの最高な縞模様のPCにあるCADデータのスクショを持ってくる必要がある、なかなか困難。


まず、モータマウントはこんな感じです。材質はDMMの高精度アクリル黒。
手前(というより右か)の大きめな穴には310サイズのベアリングが入ります。これは普通に圧入。ちなみに、dmmのアクリル部品で圧入する部品を頼むときは、大体半径を0.02 mmくらい設計値よりも縮めて出しておくとスカスカになりにくくておすすめです。ちなみに、ここでベアリングの外径交差は基本マイナスなんだからそれはそうでしょと思った方、鋭いですね。そのとおりです。
そして左のくぼみにモータがハマります。これはやってる人意外と少なそうですが、Entranceの駆動モータはモータマウントで圧入するのではなく、上から抑えてあげる形で基板とサンドイッチになるような形をしています。こうすることでモーターを極力低い位置に置くことができます。そのままはめ込むだけでは当然固定できないので、モータとモータマウントは弱めの接着剤で接着しています。使っているのはセメダインスーパーXシリーズ。適度に柔らかくて万が一のとき外したい部品に対して使い勝手が良いです。


よく見ると、モーターとマウントの隙間に少し黒っぽい固体っぽいのが見えるはず
位置が決まる程度に少なめに塗るのがポイントです

モーターがついたら今度はホイール周りですね。Entranceは磁気式エンコーダを使う都合上、磁石が回転する必要があるので車軸側が回転する必要があります。わかりやすくモータマウントを透明にして上から見たCAD画像は、こんな感じ。



車軸にホイールと磁石の固定用の部品が圧入されています。ちょっと磁石を固定する部品の圧入部分が短くて取れやすいので、ここはあんまり真似してほしくないかもです。

磁石を固定する部品(3Dプリント)
画像右からφ4の磁石を圧入します

ホイール(3Dプリント)
出っ張りのところにφ3の穴の空いたスパーギアを圧入します

ピニオンギアはアールティさんで売っている真鍮ピニオンをロックタイト638で固定しています。ピニオンは高校生の頃に薄いものを使って何度もピニオン滑りで泣いた苦い経験があるので、重いですが厚さ2mm の金属ピニオンをロックタイトで固定する、で決めています。正直やりすぎですが、まあこだわりみたいなものです。下手に攻めるよりはいい。
スパーギアは当時kkpmoで注文していましたが、なんと今はこれも全く同サイズのものがアールティで手に入るようになりました。何という偶然。狙ったわけではないですが、アールティで現在入手できるハーフサイズ用のギアはEntranceと全く同じ構成です。これでどの部品も入手性が非常に良くなりましたね。

そして、これらを組んで完成した足回りのユニットを最後基板に接着します。モータマウントについてる突起で位置合わせをして、少し塗ってちょうどはんだ付けの富士山型のようになるように止めます。画像のスライドスイッチとモータマウントの間の埃をかぶってる黒っぽいのがそれなのですが、見えますかね?これもスーパーXで、いざとなれば爪ではがせます。




足回りはこんなところですかね。全部書くとやはり結構な量になるな…。

・回路周り

内容自体は非常にオーソドックスというか、変わった機能は一切ない構成です。なのであんまり書くことないんですが、初代からv2に変わった大きな理由はここにあるので、その話をここで書いておきます。

初代を製作していた頃の2021年は、世界的な半導体不足で、メジャーな電子部品が全然手に入りませんでした。注文しようとしてもリードタイム52週間とか、そんな感じです。
そのため、これを機に新しい部品を使ってみようと思い、あまり他の人が使っておらず当時新製品で入手できた、TC78H660FTG というモータードライバを使ってみました。

これはデータシートの抜粋ですが、400 kHzに対応していれば大丈夫じゃん、と甘い考えで採用したのです。


ところがどっこい、調整をしていると、低Dutyで全然モータ回りません。あれれおかしいなと、もう1回画像を見てみましょう。


ん、Remark: Duty=50%... --- ... あちゃー

つまり、400 kHzで駆動できるのは立ち上がりや立ち下がりのデッドタイムの影響が最も少ないDuty50%の話で、低いDutyについては全く保証されていませんでした。そのため、モータードライバの応答が追いつかず、行いたい動きができなかったのですね。
多くのマウサーが使っているDRV8835 に変更しv2 となってから、今まで全く決まらなかった調整の値がみるみる確定していったのは良い思い出です。

健全なソフトは健全なハードにしか宿らない(重要)


ソフトウェア

正直言ってしまうと、ソフトウェアも回路と同様特段変わったことはしていません。一つ一つの機能を丁寧に実装しているだけといえばだけです。具体的なノウハウは人によって考え方が割れる部分も多く、あんまり私の話を鵜呑みにして唯一解みたいに勘違いされても困るので(あくまで、「私流の」やりかた、と「一般的に有用な」やりかたの区別が初心者だと難しくかえって混乱すると思っています)、Entranceを製作していく上で学んだことを伝える形にしたいと思います。

・機能を実装するときには目的を明確にする
Entranceの製作する上で得た教訓として一番大きいのはこれです。この考え方がわかってきたことが一番の収穫だったように思います。
少し具体的な話をすると、「なんとなく曲線加速にするといいって聞いたから実装してみよう」とか、「なんとなくカルマンフィルタってよさそうだから実装してみよう」みたいなスタンスではなくて、「実際の走行中に、〇〇な良くない動きをしていて、その原因はおそらくxxだと考えられる。だから、それには△△か☆☆あたりが効きそうだ。試してみよう」という感じに頭を動かせるかどうか、ということです。
正直、これは意識の問題なのと、知ったところですぐに実力がつくタイプの話ではなく、普段の試行錯誤、知識の習得の中で少しずつ出来るようになっていくものです。ただ、ここが意識できていないとずっと誰かのノウハウの追っかけにハマってしまうことになり、こうなってくるとなかなかいざというときに苦しくなります。ここの考え方を修正できたのが最大の収穫です。

・ハードウェアがしっかりしている機体はソフトウェアの評価がしやすい
鋭い人は、これ、マウス10則の「ハードウェアの欠陥をソフトウェアで補うことはできない」の言い換えじゃん、と気づくかもしれません。しかし、Entranceを調整していて思ったのはどっちかというとこういうニュアンスです。素のグリップのみかつ安定したハードが出来上がっていると、基本的に下手な制御をしようとするとわかりやすくおかしな動きをしますし、いい線付いてる機能を実装すると動きそうな雰囲気がわかりやすく出てきます。
そういった意味で、あえて吸引を封印し、2年の歳月をかけてマウスにおける基礎をじっくり作った当時の判断は大正解だったと思います。

終わりに

いかがでしたでしょうか。というか書いてる方もさすがに長くて疲れてきた。もちろん、ノウハウの部分を参考にしていただくのは歓迎ですが、個人的には、ここから私の設計思想の部分を読み取って、自分なりに主張を持ったマウスを作れる人が増えてくれる一助になってほしいな、と思っています。

余談

ところで、低慣性モーメントの話を読んだときに、こうしたほうがもっと有利じゃない?と思った人はいますかね。私は思いました。


でも磁石が邪魔なんですよねぇ...。そしてここから地獄は始まった...

以上です。0時の投稿遅れてしまって待っていた方もしいたらごめんなさい!
明日はぱわぷろ先輩の、「マイクロマウス参加動機タイプと進め方のススメ」です。お楽しみに!

2024年12月3日火曜日

学生大会2024

この記事は WMMC Advent Calendar 2024 3日目の記事です。

昨日の記事はジャッジー先輩の「作り置きのススメ」でした。
私も昨年から一人暮らしをするようになったので、共感できるところ、ためになるところが多かったです。洗い物が増えると面倒くさいのとか、野菜取らないと色々良くないのとか、わかりみしかない...。最近は白菜もそうですがほうれん草とかも買いやすくなってきたのでオススメです。

てことで(?)、先日の学生大会についてのレポートです。

大会結果

無事、マイクロマウス競技で優勝しました。昨年はやらかしで逃しましたが、その雪辱を果たすことができました。



大会前の話

さて、中部地区大会からブログの更新をすっかりしていなかったのですが、何をやっていたのかといいますと、まずはこちらの画像をご覧ください。


この前、唐突に電源が入らなくなり、分解して延命したPCですが、今度はこれだけではなく液晶にこんな感じで縞模様が入るようになりました。いぇ~いおっしゃれ~。相変わらず電源も調子がいまいちで、ちょっとこれを大会会場に持ってくのは嫌だなと。

ということで、新PCを購入しました。今回はもう少しハードウェアがしっかりしたものにしようということで、ThinkPad T14 にしました。この人、マウスといいPCといい、性能だけ見て丈夫じゃないものを選び痛い目にあって変更してるんよな…。


今年からHHKBの英字キーボードを普段使いにしているので、地味に英字キーボードのオプションがサクッと選べるのがうれしいポイント。


で、まあPCを買うということは環境構築が待っていまして。
ディレクトリ構造を変えてくるOneDriveに苦戦した後、かつて作ったubuntu22.04のUSBからUbuntuを入れて、デュアルブート。最初いい感じのファームウェアが入っていなかったらしく、wifiがつながらず、有線を探してアップデートかけてrebootして解決。最低限開発するためのvscode, neovim, gccあたりを入れて、gitでマウスのプログラムを落としてきて問題なくビルドが通ることを確認。ここまでやってきれいな液晶のPCで開発ができるようになりました。ちなみにこれ、大会4日前の水曜日の夜中の出来事。大会1週間前に環境構築をしてて、いつも通りの人生という感じでしたね(は?)。

で、そこからマウスを調整。これ以外にもいろいろあって実は今回、ちゃんとした調整は大会前の木~土曜日しかできませんでしたが、どうにか良い集中を維持して新機能も実装し、素の走行の再現性を向上させることができました。とはいえセンサの補正でも気になることがあったりして、結局土曜の朝10時くらいまでぶっ続けで調整しました。

走行内容

今回の迷路は真ん中ゴールということで形は想定できなかったわけですが、見て2秒くらいであー、と。これ、私が2016年2018年にやった迷路ですね。実に3回目。
迷路の解説は過去の自分におまかせ。斜めを通るとよかったような記憶のある迷路で、実際今回も同様のルートを通りました。
これまでの自分の記録を振り返ると
2016 ハーフフレッシュマン 14.667
2018 クラシック学生 3.683
2024 マイクロマウス学生 1.499
と着実にタイムを縮め、積み重ねの成果を示せたと思います。今回は5走目はゆっくり操作してしまったのでタイムアップでしたが、5回ともノーミスで、安定性という意味でもよかったのではないでしょうか。
ただ、これはもともとフレッシュマン向けの迷路であり難易度は控えめなので、32×32を考えると、これをクリアしただけでは安心できないというのが注意点でしょうかね。

その他

あとは雑多な感想を簡単に。

・今回は今年のマイクロマウス合宿の会場でもあった東京理科大学での開催で、セミナーハウスに宿泊することのできる大会でした。移動が減る分体力的にありがたいのと、交流を図る機会が多く、多くの方とじっくり話せて、こちらもよいモチベーションを得ることができました。運営していたMiceやからくり工房の皆さん、参加者の皆さんありがとうございました。

・企業ブースではいろいろ遊び心のあるものをいただきました。前川製作所さんのガチャを当てたり、ムブアイのステッカーをもらったり、MathWorksのペンは竹だったりと、遊び心満載。スポンサーの皆さん今年もありがとうございます。


終わりに

そういえば、弊サークルは今年も団体特別賞をいただいたようですね。なんだかたくさん出走していたようで、それはいいんですが…


なんかその割にブログ書くって言ってる人少なくないですか??
記録を残すのは重要なので、書いてほしいですねぇ。特に現役代の皆さん(と、老害らしくコメント)。別に大会の感想や技術の話でなくても、まとまった文章を書くだけでも良い経験になりますよ。

また、マイクロマウス Advent Calendar もまだまだ空きありますので、弊サークルじゃない方でも、始めたての方でも、ぜひぜひブログ書きましょう。なんというかこういうのは手を挙げたもの勝ちです。書く内容がない?登録してから考えましょう。


以上、学生大会のレポート&コメントでした。
明日はT-MPIくんの、「3日じゃマウスはあまり進化しないかもしれない話」です。どんな改良ができたのでしょうか?お楽しみに。