2024年12月23日月曜日

東日本地区大会2024

今シーズン最後の地区大会である東日本地区大会に参加してきました。参加者の皆さんお疲れさまでした。工芸大の皆様運営ありがとうございました。

えーと、アドカレ以来特にブログでは音沙汰なかったわけですが、そのまんまでしてマウスの作業はほとんど行いませんでした。普通に中部地区大会や学生大会前にマウスにリソースをかなり持っていたツケ(体力の回復と研究)を払うのでいっぱいいっぱいでしたね…。

結果は3位。これまでの貯金で辛くも入賞という感じでした。


走行内容は、今回はかなりイマイチでした。探索で帰ってくるときにかなり位置がずれて怪しい動きをしたり、UIのスイッチの接触が悪いのか、スイッチを押してないのにモードが進んでしまい操作に手間取ったり。そして重要な最短走行はデバッグ用のそれほど速くないパラメータがこけてしまい、4回中走ったのは真ん中あたりのパラメータ一度のみ。
地区大会を通して大枠は出来てきましたが、まだまだ要素要素の解析が足りないですね。全日本大会に向けて頑張っていきたいです。

そして宇宙はまた大きく膨張してしまった…。勘弁してくれ…。

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日じゃマウスはあまり進化しないかもしれない話」です。どんな改良ができたのでしょうか?お楽しみに。

2024年11月4日月曜日

中部地区大会2024

ということで、到達するまで苦戦しましたが90分遅れで会場に着き、中部地区大会に初参加してきました。運が悪かった方だと3時間以上遅れてしまった方もいたそうで、参加者の皆さま本当にお疲れさまでした。

試走会は、自分のマシンは当日の朝の調整の手応えとだいたい同じような内容だったのですが、同チームのHさんがかなり速くなっていそうだったので、これはまずいと判断。
試走会後、熱田神宮でお参りをしたあと、カプセルホテルのカプセル内で新しいパラメータを入力しておきました。

当日はそのパラメータをどうにか発動することができ、結果としては強豪集う中部地区大会ですが、なんとか3位に入賞することができました。また、中部地区勢以外の上位者に送られる特別賞、第二の勇者賞をいただきました。



ただ、開発としては結構ギリギリで、1走目の探索走行でコケてしまったり、今回の迷路では見られませんでしたが吸引中の走行は怪しいところもあったりするので、安定性の向上が次回の学生大会までの課題であるように思います。

また、第一の勇者さんや魔王さまとはまだまだ大きな開きがあるので、第二の勇者としてここからどう食らいついていくか、知恵と時間を振り絞って頑張っていきたいと思います。

最後に、運営をしてくださった名古屋工学院専門学校の皆さまありがとうございました。
勇者賞の景品は現地の美味しいお菓子ということで、私はういろうとかえるまんじゅうのセットをいただきました。今日のお昼に一ついただきましたが非常に美味しいです!勇者賞を設定してくださったNさん、ありがとうございます。

2024年11月2日土曜日

徹夜からの新幹線ストップ

@品川駅

今日は中部地区大会の試走会ですが、例のごとくマウスの開発は色々あって結局今朝の9時までやったものの、まだわかってないところもありそうという印象。

で、向かうのだが、新幹線が止まっている。寝落ちして悪い夢でも見てるのかなと思うも、そうでもないっぽい。幸い自分の取っているのぞみ69号は運休せずに遅れで済みそう。
祝日がある(?)影響かなかなか人が多いですね。





BlueSkyという機体を持っていながら大雨にやられてるのがなかなか。中部地区はやはり一筋縄では行きませんね(違う)。到達できるかな。

2024年10月22日火曜日

エントリーからのPC文鎮化と見せかけてからの復活

中部地区大会、といまさっき学生大会にエントリーしました。中部は行くか少し迷いましたが、大会は出たほうが良いだろうという判断で。

で、調整を進めようと思ったところ、先ほどPCが起動しなくなりました。

やっば。来週は卒論の中間発表もあるんですが。

起動しないというか、よく見ると勝手に電源ランプが5秒位ついてしばらく消えてを繰り返していました。画面はつかないまま。あなたそんな機能あるの??と思い調べていったところ、PCが帯電するとそういうことになると。なるほど(?)。

バッテリーを外した状態で電源ボタンを何回か押して、放置すると良いらしいです。ほうほう。ということで

こいつを
(一度誤って強めにぶつけてしまい、排気口があれなのがバレてしまいますね…)

こうして

こう

これで電源ボタンをポチポチ空打ちして、食器を洗ってお風呂に入ってる間に放電してもらいました。

これでおそるおそる電源をつないでスイッチを入れてみると、起動しました。

あー、生きてるって感じ。

PCはこれなのですが、マウスコンピュータのは電源周りがイマイチなのかもしれませんね。(あまり詳しくないですが…)この前とある知り合いからInventorを入れたら突然起動しなくなったみたいな話をちょうど聞いていたので、どうしてもコスパを意識するとこういうこともあるのかもしれません。

軽く寿命縮みましたが、開発と研究の発表資料づくりに戻らなくては。

2024年10月7日月曜日

東北地区大会2024

東北地区大会に参加してきました。今年も長井市の皆さまやマウサーの方々から多くの元気をもらえた非常に良い大会でした。ありがとうございました。



で、新作は全く間に合わずRとなってしまった…。ハードウェアのトラブルやソフトの移植があるとはいえ、開発ペースが悪かったのは事実なので、これからギアを変えて追い上げたいと思います。

2024年9月27日金曜日

来週末は東北地区大会らしい

気づいたら8月はおろか9月も終わろうとしているみたいです。

東北地区大会が来週末にあるらしいです。
とりあえず、新型をエントリー。したものの、まだまだソフトウェアが追いついておらず、昨日の夜中にやっとこスタートセンサが切れるようになった程度。あー、これはちょっと厳しい。完走が目標ですかね…。

2024年8月12日月曜日

第2回reRo杯

ということでreRo杯に初参加してきました。場所は千葉工大ということで、多分高校生の頃の習志野ものづくりチャレンジ以来。


この規模の大会を学生の運営で出来てしまうのは本当にすごいと思います。参加者も遠方からの方も多く盛況でした。

競技はロボトレース、マイクロマウス、マイコンカーラリーの順で実施されました。個人的にはマイコンカーラリーを生で見るのは実は初めてだったと思うので、見ることが出来てよかったです。

自分のマシンはというと満身創痍で、どうやら吸引モータが死んでいたらしくデンソーカップと似た感じの走行内容でした。これでまたモーターを修理して…とかやってると本質的ではないところで時間を取られてしょうがないので、今回でLightningは引退させようと思います。

ピザパーティではreRoの作業場所を見させてもらうことが出来ました。非常に良い環境で羨ましい限りです。今度機会があったらお邪魔して調整させてもらおうかな。

素晴らしい大会を開催していただき、reRoの皆さんありがとうございました。



2024年8月11日日曜日

修理2

公式大会でもないしその場で動かすでよいかと思っていましたが、気づいたら迷路が部屋に出ていました。なんで。

仕方がないので、走らせてみる…と、左のエンコーダが読めてない。走れません。

ハードの故障だと、昨年の全日本前のThunderがおんなじ症状で作り直しになったし面倒くさいから諦めようかなと思っていたのですが、気づいたらホイールが分解されていました。なんで。




仕方がないので、様子を少し見てみると、モータマウント周辺を押して見るとたまに復活します。どこかの接触不良でしょう。と押す箇所を替えていったところ基板とエンコーダのはんだ付けしている部分が怪しそうとわかり、温め直すと、ポロッとパッドが取れました。なんで(設計が悪くて変に負荷がかかってるから)。

仕方がないので、UEW。


一応探索くらいはできるようになった…ようですが変な動きいっぱい。もうさすがに、寿命ですね。

明日はピザを食べに行こうと思います。明日というか今日ですね。

2024年8月10日土曜日

修理

今日はreRo杯の前日で、試走ができるみたいです…が、マシンはモード選択すらできない状態だったので、修理をしました。


パッドが2箇所もげていましたが、近くの抵抗につながればよいので、メッキ線を非常に短く切って強引に付けました。
メンテナンス性が悪すぎるので、よくわからない技術(?)が身に付きますね。ほんとこれ設計したの誰だよ


あと、今更な感じがしますが支えがつきました。
これでファンにダメージが乗らなくなると良いのですが。

さて、とりあえずこれでモード選択は出来るようになりました。
調整は、これからするんですかねぇ。ご飯を食べてから考えることとしましょうか。

2024年7月27日土曜日

試走会@アールティ

ファンが割れて、チップFETがパッドごともげました。新作をさっさと作れということでしょうか。



2024年7月26日金曜日

マイクロマウスTips4 STLINK-V3 MINIE

はじめに

STLINKを使う話を何気なく投稿したところ、使い方がよくわからない・教えてほしいという声を複数耳にしたので、メモしておきます。何気なく使っていましたが、整理してみるとそこそこわかりにくい点もあったので、そのあたりわかるようにまとめていきます。

使おうと思ったきっかけ

いくつかありますので、箇条書きで書いていきます。

・秋月で売っている
digikey, mouserを使わないといけない部品に比べて心理的ハードルが小さい。いざというときに安心。大体こういった部品は壊れてほしくないときに限って壊れたりするので、入手性は馬鹿になりません。

・小型
ごっつい感じのケースとか無いのがいいですね。

・USBコネクタがタイプC
Nucleoパキッをやりたくない主要因がコネクタがminiBであることだったりするので、これは嬉しい。

・Virtual COM
SWD以外にUARTも使える。いろいろ嬉しい。

・SWD書き込みが使える
これは頭痛が痛いとかと言っていること同じ。

使用例

まず使っているものの画像を以下に示します。




続けてマニュアルの一部を示します。


STLinkからはこのうち3, 4, 6, 7, 8, 10番の6ピンを出してあります。この中から必要なものを対象の回路に合わせて使うという感じです。
今回はこの6ピンに加えて変換ケーブルでSTM側のBootピンを10番かHi-Zかにできるようにスイッチをかまして7ピンをマウス側につないであります。マウス側ではBootピンはGNDにプルダウンされてるので、こうすることでブートモードを書き込みコネクタとつないだときのみ外部のスイッチで切り替えられるようになります。
7ピンのコネクタはハーフピッチピンソケット。EntranceもLightningもこれを使っています。サイズ感と断線の少なさ的にそこそこいいかなと思っています…が接触不良になることもなくはないです。やっぱり小さいコネクタはだめだわ

初見でわかりづらそうなところ

多分以下2つが分かりづらい気がします。

① T_VCCはターゲットとなるマイコンのVCC電圧を検出するためのピンであって、ここから電源は出ていない&ここをつないでいないと正しく動作しない

② T_VCP_RX, T_VCP_TX は「ターゲットの」RXDとTXDにつなげという意味なので、TXDとTXD、RXDとRXDをつなぐのが正しい

右のInput、Outputを見ればまあそうなんだろうなーと勘付きますが、読解というか空気を読む必要が若干あって紛らわしいですね。

あとNRSTはSoftware Resetで使う分には出さなくてOKです。これはほかのSTLinkもそうだった気がします(うろ覚え)。

少しハマったところ

windowsのCubeProgでは特に何もせずに動きましたが、手元のubuntu22.04では、はじめSTLinkが使えず、少しハマってしまいました。

エラーメッセージは下記。
libusb: error [get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/003/007, errno=13
libusb: error [get_usbfs_fd] libusb requires write access to USB device nodes

見たところSTLinkの認識自体はされていたので、ハードウェア的な問題ではないだろうと当たりをつけつつ、さらに見ていったところ手元のNucleo(STLink-V2)は問題なく認識されたので、ソフトがファームウェアに対応していないのだろうと推測。

ここからソフトを落としてきて
sudo dpkg -i <location>/stsw-link007/AllPlatforms/StlinkRulesFilesForLinux/st-stlink-udev-rules-<version>-linux-all.deb
で、無事使えるようになりました。ヨカッタ。

あと、STLinkの話というと少し違いますが、最近今更になってCubeProgのCUIがあることに気づきました…。なんで今までGUI使ってたんだ…。

終わりに

あんまり言われるまで気にしていませんでしたが、言われてみると書けるネタは結構ありましたね。
使い方にクセのあるものをあまり気にせずに使えるのは悪いことではない気がしますが、不便さに気づかないのはそれも考えようかなと思ったりする、今日この頃です。

2024年7月15日月曜日

第1回デンソーカップ

すでに1週間ほど経過している気がしますが、デンソーカップに参加してきました。



WMMCとMice勢は金曜日の夜10時に集合して車2台で刈谷に参戦(運転してくれた皆さんありがとうございます)。学生感が強くてなかなか楽しかったですが、体力的ダメージはなかなかなので次は新幹線にしようかな

さて、今回は公式戦ではないので、ゴール座標を書き換えておけばまあええかという意識の低い状態で試走会へ。

そうしたら、色々と事件発生。
まず、迷路に走らせてみると、明らかに色々とおかしい。タイヤ径と壁判定の閾値があっていない気がする。フレッシュマンかよとツッコミを入れつつ、調整を試みると、車中泊の疲れからか書き込み中にコネクタをうっかり抜いてしまう。いや、こういうことはたまにあるし書き込み直せばよいのです。
と・こ・ろ・が、ここで何故かシリアル変換器が故障しました(ちなみにこの原因、いまだによくわかっていないのでどうしたものか…。なんかCubeProgのバグを踏んだみたいだったけど、一瞬煙が見えたんよな…)。
さて、マウス起動しなくなりました。書き込みもできません。そして今回は意識が低く荷物を少なくしていたため、工具も替えの部品も持ってきてないという…。助けてーと言いながらぱわぷろ先輩にシリアル変換器を貸してもらい、Nくんに工具一式を借りてはんだ付けスペースで書き込み基板を修理。恐る恐るパソコンにつなぎ、書き込み。無事復活。ここまで1時間くらいでしたが体感1ヶ月位寿命が縮みました。そしてすぐに助けてくれたお二人本当にありがとうございました。協力がなかったら棄権になるところでした。

復活したので、再び調整再開。とりあえず単純に合わせ込めてなさそうなところは合わせこむも、探索中に32区画ストレートで半区画くらいずれる不思議な現象に遭遇。
修理によって集中力の回路が開いたおかげか、怪しい箇所を発見し、修正。そうしたところきれいにこの不具合は潰れ、ついでに探索の安定性が見るからに上がりました。全日本で動きがおかしかったのもおそらくこれが主要因だったみたいで、やっと原因の箇所を特定することができました。

そんな感じで、結局お昼ご飯を食べる余裕もなく試走会を過ごしました。行く前は「サステナハニーマルシェで美味しいご飯を食べれればOK」とか言っていましたが、単なるフラグだったみたいです。調整だけでなく、多くの人と交流する時間もとれたので良かったとは思います。懇親会、二次会を経てこの日は終了。

そして次の日。デンソーカップ当日。迷路はこちら。



経路長が極端に長いといったわかりやすい難所があるというわけではないですが、隙間が多くそこそこやりづらいポイントが多いといった感じでしょうか。全体の走行を見たあとの感想としては、最後の方のバテてくる頃に登場する櫛や、前半後半でタイムとして近い経路が複数存在するといったところが考えどころのように思います。

さて、私の走行ですが前日の調整のかいあって探索→オートスタートの一連の流れは危なげなく成功。したものの、本命の吸引走行ははじめの長いストレートを攻略できず、走らせることができませんでした。基本的なところで躓いてしまい悔しいところですが、言われてみると想定が甘いところはあるので、盲点だったようにも思います。
また、探索走行も姿勢を整える動作が多く発動し逐一止まるので時間がかかっており、今回は一応耐えていそうですが全面を見きれていないように見えます。このあたりにも課題があるように思います。
いずれにせよ、調整から本走行まで32×32の大きな迷路だからこそ気づく点が多く、課題を多くもらうことができたように思います。Lightningはハードウェア的に文句がまあまああるのでもう出番はないかと思っていましたが、今回の大会でソフトウェアの部分で確認できそうなところはありそうなので、検証するべきところはしたほうが良いようにも感じました。

一応、今回は周りの皆さんも振るわなかったこともあって、手応えは悪かったですがDENSO賞をいただきました。前日に調整が頑張ったのが効いたというのはありますが、やはりタイムで勝負したいわけで、当然ですがこの結果には満足していません。

デンまる、かわいいね〜

新作は間に合っておらず合わせ込みもしていない状態でしたが、マウスに対する自分のスイッチを入れ、課題を多くもらえたという意味で非常に良い刺激を受けることができたので、参加してよかったと思います。運営してくださったDENSOの皆さんありがとうございました。

2024年7月5日金曜日

特に何もしていない

そろそろデンソーカップみたいですが、タイトル通りです。みんなマウスやってるやってないの私だけ。先ほどゴール座標は書き換えておきました。
(この前の全日本と同じだから書き換えなくて良い?この前の合宿のプチ大会で書き換えたのです。油断ならない)

で、何もないのになぜ更新しようかと思ったのかというと、単にこちらを見てびっくりしたため。割と真面目に熱中症には気をつけませう。



2024年6月23日日曜日

マウス合宿2024

マウス合宿に今年も参加してきました。参加された皆さまお疲れさまでした。技術的な話はもちろんのこと、いろいろとじっくりとお話しできて非常に良いモチベーションを得ることが出来ました。運営していただいた方々も本当にありがとうございました。本日しゃべった内容は、こちら

(来年は弊サークルがやるらしい?ということは私も少しは動かないとか。。。)

(本業の研究は現在ピンチ。知らん。)

2024年6月2日日曜日

近況

6月になってしまったらしいです。月日の流れは早いですね。

今シーズンのイベントや日程はほとんどオープンになったようです。見ている限り今のところ関西地区は日程的に厳しい、reRo杯と東北地区大会は行くつもり、東日本は時期的に出るモチベーションがないかもですが機体の進捗しだい、といった印象です。

で、肝心のマシンはどうなのよというとかなりスローペース...。とりあえず先ほどやっと機体の基板を発注しました。新しく狙っていた回路が想定通りに動きそうにないことが分かってしまったのと、先月の頭にいろいろとあって開発がストップ気味になったことなどが効いてしまいだいぶ遅れてしまいました。

書き込み基板も発注したかったわけですが、ちょっとピンとくる構成にあたっていないので考え中。というのも、これまでのは秋月のシリアル変換を使って、そこから1セルのリポ充電の電源をもらって充電する感じのを使っていて、割とシンプルながらまとまっていて気に入って使っていたのですが。


今回からはSTLINK-V3MINIEを使おうと思っていて。ただこいつと充電基板をセットにしようとするとまあまあ面倒くさい...。今のところのアイデアとしてはSTLINKと充電基板は別にして、typecとtypeAのコネクタを両方つけられるような充電基板を作って普段使いのPCの充電器の余ったところにさすのが丸いか...、と思っていますが、どうしましょうかね。

あとマウス合宿では何かしゃべることになっているみたいですが、スライドはおろか話す内容の構成すらほとんど決まっていません。どうしましょうかね。

難しいことは今日の推しのライブに行ってから考えることにしましょう。うん、それが良い。

2024年4月18日木曜日

今シーズンの大会について考える

徐々に今シーズンの大会予定があがっているようなので今シーズンの予定について考えてみています。

今のところ予定がわかっているものについては
6月 マウス合宿 ◯
7/6, 7 デンソーカップ ◯
7/20, 21 関西地区大会 △ (前向きに検討中)
10/5, 6 東北地区大会 ◯ (行きたい)
10/26, 27 九州地区大会 △ (中部かどっちか片方には出たい)
11/2, 3 中部地区大会 △ (九州かどっちか片方には出たい)
11月 学生大会 ◯
2/22, 23全日本大会 ◯

わかっていないものに関しては
金沢 and 北陸信越... どちらか片方には出たいところ(ですが忙しさ次第でもある)
東日本... 日程次第

というところですかね。

2024年4月8日月曜日

マイクロマウスTips3 磁気式エンコーダの設計

はじめに

相変わらずブログの存在を忘れていた訳でご無沙汰しています...。
そういえば前に磁気式エンコーダについて記事を書く、といってどのくらいの月日が流れたかはよく分かりませんが、書いていきます。

今回の内容

マイクロマウス(旧ハーフ)では、既製品のエンコーダだとサイズが大きく扱いづらいために自作のエンコーダを使う方が多いと思います。その中でも、ネオジム磁石を使って専用のエンコーダICを用いて回転数を読み取るのは最もメジャーなやり方だと思います。
ここで問題となってくるのが、下手に作ると得られるデータが使いづらくなってしまうという点があります。機械精度やエンコーダICの性能といった話もあるのですが、この記事ではエンコーダICに必要な強度の磁場を与えるためにどうするかの設計について示します。
Entranceはこれに基づいて設計しています。これを考えたのはB1の夏ごろの話なので、おそらく高校物理が分かっていれば読める程度の内容だと思います(多分)。
※モバイル版だと数式がうまく出ないみたいなのでウェブ版のページで見ていただけるとよいと思います。

磁気式エンコーダの動作原理

磁気式エンコーダのICはどのようにして磁石の回転を読み取っているか、というとホール効果を利用しています。ホール効果とは何ぞや、という人は調べてください...だと投げやりすぎる気もするのでさらっと触れておくと、電流が流れているところに磁場をかけると電子の分布がローレンツ力によって偏り、起電力が生じる現象です。
磁気式エンコーダICの場合、下図の向きの磁場を検出する仕組みとなっており、磁石が回転すると磁場の強さは一定で分布の方向のみが回転するといった具合になります。このため、磁気式エンコーダで使われるネオジム磁石は径方向着磁といって、一般的な磁石とは違う方向で極が分かれているものを使用します。

磁気式エンコーダの仕組み概要

磁束密度の見積もり

では、エンコーダICにかかる磁束密度について見積もっていきましょう。
そうはいっても円柱のまま磁束密度を扱うのは難しいので、ここではN極、S極の重心の点にそれぞれ正と負の点磁極が1つずつあると仮定して計算します。この点磁極によってネオジム磁石のデータシートに記載されている表面磁束密度が生じていることから、エンコーダICのホールセンサ部にどれだけの磁束密度が生じているのかを見積もります。

仮定のイメージ

下図に、説明用の図を示します。

磁石の半径を$r$、厚みを$h$、磁石からエンコーダICのセンサまでの距離を$d$とします。
まず、仮定した点磁極の位置を確認しておくと、図の$y$方向と$z$方向は対称性から中央にあり、$x$方向については半円の重心の位置になります。これを$a$とすると
$$a=\frac{4}{3\pi}r$$
になります。導出は普通に積分するか、計算が嫌ならパップス・ギュルダンの定理あたりを使うか、そんなことをしなくてもググるか、で分かります。

次に、磁石に記載されている表面磁束密度$B$について考えていきます。


径方向着磁なので、データシート記載の表面磁束密度(例えば確かEntranceはネオマグさんのこちらのものを使っており、製品ページから確認できます)は上図のように側面z方向中心の位置での微小面の値であると考えられます。
ここで、この点での磁場の大きさ$H$を考えると、単位磁極が受ける力を磁気におけるクーロンの法則で見積もればよいので、比例定数$k_1$、仮定した磁極の磁気量$m$を用いて
$$H=k_1\frac{m}{(r-a)^2}-k_1\frac{m}{(r+a)^2}$$
になります。ここで
$$H=\frac{1}{\mu_0}B$$
であることから、新たに比例定数$k_2$を用いると
$$B=k_2 m\left(\frac{1}{(r-a)^2}-\frac{1}{(r+a)^2}\right)$$
となり、これがデータシートの表面磁束密度であると考えられます。

これをもとに、エンコーダにかかる磁束密度を見積もります。

エンコーダの中央での磁束密度は、上図のように2つの点磁極から受けるベクトルの合成と捉えることができます。$z$方向については相殺されて0となり、$x$方向についてのみ成分が残るので、結局のところ正の点磁極による磁束密度の$x$成分を2倍してあげれば、求めたい磁束密度$B_{sensor}$になることが分かります。
正の点磁極による磁束密度$B_1$の大きさは、磁極からホールセンサの距離を考えると、先ほどの比例定数$k_2$を用いて
$$B_1=k_2 m\frac{1}{a^2+(\frac{1}{2}h+d)^2}$$
になります。したがって、その$x$成分を2倍することで$B_{sensor}$は
$$B_{sensor}=2B_1 cos\theta$$
となります。ちなみに、$cos\theta$は図より
$$cos\theta=\frac{a}{\sqrt{a^2+(\frac{1}{2}h+d)^2}}$$
となります。

比例定数と磁極の値は勝手に置いた値なのでわかりませんが、データシートの磁束密度と求めたい$B_{sensor}$を比較すると長さの二乗の比で計算すればよいことがわかり、結局
$$B_{sensor}=2B\frac{\frac{1}{(\frac{4}{3\pi})^2r^2+(\frac{1}{2}h+d)^2}}{\frac{1}{(1-\frac{4}{3\pi})^2r^2}-\frac{1}{(1+\frac{4}{3\pi})^2r^2}}\frac{\frac{4}{3\pi}r}{\sqrt{(\frac{4}{3\pi})^2r^2+(\frac{1}{2}h+d)^2}}$$
という風になると思います。これでネオジム磁石の諸量とエンコーダと磁石の距離から、ICに流れる磁束密度が求められるようになりました。

エンコーダICに必要な磁束密度とその考察

実際のエンコーダICに必要な磁束密度はデータシートに書いてあります。例えばEntranceで用いたAS5147P(データシートのリンクに飛びます)なんかだとPage8に書いてあります。また、ホールセンサの位置についてPage35にかいてあるので、それも考慮して設計した覚えがあります。
導出した数式から$r$を小さくしたり$d$を大きくしたりすると与える磁束密度が小さくなってしまい苦しくなってくることが分かります。実際に何でもいいので計算ソフトに式を入れてパラメータをいじれば雰囲気はつかめてくると思います。
ちなみにEntranceはφ4の磁石を使っており、これがちょうどよいくらいだったと思います。

終わりに

いかがでしたでしょうか。あまりこの手の磁気式エンコーダの設計の話は耳にしたことがないですが、こんな感じで見積もるとどの程度攻めた設計をしてよいかの見当がつくのではないかと思います。(もしもなにか間違いあったらすみません)

余談

Q. そんなことよりLightningとかでやってる光学式エンコーダの話が聞きたいです。
A. やめといたほうが良いです。

2024年3月11日月曜日

APEC2024 5日目 大会本番

この日は大会本番の日ですが、時間が夜19:30からなので午前中は観光へ。おすすめされたCalifornia Science Centerへ行ってきました。日本で言う未来館に近いようなところです。



宇宙関連の展示と生態系に関する教育向けの展示の2つを楽しんできました。






午後に会場へ。



18:30までは調整して良いとのことだったので、主に探索を中心に調整しました。

日も暮れて、迷路公開。経路は一見2つありますが、斜めを使うメリットはないので実質的に長めのストレートを繰り返すのが代表経路になります。



今回参加したロボットたち。台湾や中国の参加は春節の影響もあって無く、いつもの人たち+現地のマウスが少し、という感じです。



さて、競技の方ですが探索は全日本と同様1.0m/s吸引探索。帰りにやたら補正が多くかかって怪しかったですが壁の読み違いは特に無くとりあえず無事帰還。
その後のオートスタートですが、ストレートの部分は問題なく進んだもののその後の短めの斜め区間を超えた180ターンで壁切れが読めず壁に衝突。Thunderが壁切れを早く読んでしまうのはともかく読み飛ばすのはおそらく作ってからこの大会本番までおそらく一度もなかったので驚きでした。
その後はFastestRun狙いで普段のパラメータを使いましたがこれも直進中に吹っ飛んでいったりターン位置が悪かったりよくわからない動きを連発して一度も記録を残せず終了しました。

最終出走にも関わらずこけるという学生大会の二の舞のような展開になってしまい非常に残念ですが、大会のたびにわかっていない問題が出てくるというのはまだ検証が足りていないのだと思います。今回優勝されたPeterさんのマシンは環境が違う中でも非常に安定していたので、やはり安定性はここぞという大会では非常に重要だと痛感しました。

大会終了後はマウサーと別れを告げて帰宅。6日目は移動のみなので特筆することはなく。

以上、APEC2024のレポートでした。アメリカも海外戦もはじめてでしたが、非常に濃密な日々で貴重な経験となりました。

APECの話を伝えてくださりGITAI見学の機会を設けてくださったNTFのNさん、私を招待してくださったOttenさん、同じく日本人マウサーとして行動をともにしたTさん、PeterさんやHarjitさんといった海外選手の皆さん、非常に様々な方のおかげです。本当にありがとうございました。言語や文化を超えてでもやり続けたいと思う魅力がここにはある、そう実感することができました。

そしてこれでようやく2023シーズン終了。2023は速度域は上がりましたがここぞという場面で外してしまいがちだった印象だったので、2024に向けて修行を重ねなくては...。