2022年12月10日土曜日

DCマウスにステップアップするにあたって

この記事はWMMC Advent Calendar 2022 10日目の記事です。

昨日の記事は玉ちゃんのまっきんとっしゅでした。
私はMacを使ったことがないので、いろいろへぇ~と思いながら読ませてもらいました。ハムスターの開発環境構築に苦労していたのが個人的には印象的ですかね…。(これだからル〇サスマイコンは…)

では、先週書くといった話題について書いていこうと思います。

書こうと思ったきっかけ

先週の記事でもちらっと触れましたが、学生大会でほかの学生の方や、この前の理工展やRTでの試走など、そういった場で結構複数名から
「HM-StarterKitである程度迷路を走れるようになったけど、そこからのとっかかりはどうしたらよいのか?」
「ステッパマウスがある程度走ったのでDCマウスを作ってみたいけど、何かアドバイスありますか?」
といった相談、質問を受けました(ある程度というのはまあ、スラロームで往復探索&最短走行をしているくらいです)。

以前でしたら、各サークルや団体で競技経験の長めな上級生でDCマウス(など、オリジナルなマウス)を製作している人の様子をじかに見て、割と自然に(?)流れをつかみやすかったかなと思いますが、ここ2年くらいサークルの活動がかなり制約されてしまったのもあって、とっかかりをつかみにくくなっているような気がします。
マイクロマウス競技の方もHM-StarterKitの登場によって出走台数が増えました(アールティさんは2年連続でサークル向けに無償提供を行ってくださっていたりでその貢献はとても大きいものだと感じています、本当にありがとうございます)が、まだオリジナルなマイクロマウスを作れる学生は多くないように思います。しかし、先日の学生大会のHM-StarterKitの走りを見るに斜め走行を実装している方などもいて、おそらくコツをつかめば自作のDCマウスは作れるのではないかと感じています。そういった方へのヒントになれば幸いです。

まずやるとよいこと

では標準機体やキットを卒業して次にオリジナルなマシンを作ろう、と思ったときに何から手を付ければよいのか、という話ですが、まず
色々なマウサーのブログを読んでみること
をおすすめします。というか、私がDCマウスを作り始めたときはひたすら様々な方のブログを読んで、それをもとに製作をしました。
マイクロマウスの良いところは情報がオープンなところです(各出場マシンのテクニカルデータなんかも公開されているので、こういったことも参考になるでしょう)。設計からプログラムまで、結構調べてみると誰かしらがまとめてくださっていることが多いです。本当にありがたいです。私自身こういった情報がなければDCマウスを走らせることはできなかったと思います。今月もマイクロマウス Advent Calendar で様々な方が非常にためになる話、経験談が紹介されています(毎日楽しく読ませていただいています)。
正直なところ、DCマウスの製作は結構知らないといけないことが多く(というか、速さまで追求すると私も知らないことだらけです)、まっすぐ走れるようになるまでが長いと思います。ほかのマウサーの機体の紹介や製作過程などの様子を参考にするとだいぶ取り組みやすくなるかと思います。
また、当然ですが参考にしたブログの方にはリスペクトを持つようにしましょう。

製作にあたってするとよいと感じていること

実際にオリジナルなマウスを作っていくうえで、大事だと思っているのは以下の2つです。

1. 記録を残す
特にDCマウスはそうですが、マイクロマウスは完成までに本来かなり時間がかかります。標準機体なんかでは回路やプログラムがある程度完成しており、手順通りに組み立てればある程度は動くのでこの必要性はあまり感じないかもしれませんが、1から自分のマウスを作っていく上では重要になります。やることが多すぎるので、ある程度文章化しておかないと何をやっているのだか迷子になってしまうと思います。
一応、私の場合は、マイクロマウス(ほかのロボットでもそうですが)を作っているときは
・行った作業内容
・直近で行おうとしている作業、課題
・ある程度長いスパンでいつかやりたい課題
の3つを言葉にして把握するようにしています。
マイクロマウスの製作では想定していないトラブルやバグの対処は進めていくうえで様々あるので、詳細なスケジュールを組むのは難しいです。これまでやったこと、今やること、いつかやることの3つで捉えながら、1つ1つ今やることを進めていく、という考え方で私は普段作っています。

2. 理由を持った設計、製作を心がける
他の方のマシンを参考にするときなんかもそうですが、どうしてその設計をするのか、を考えながら作っていくことも大切だと思っています。定量的な議論までできると素晴らしいのですが、はじめのうちは(なんなら私は今もわからないこと多いですが笑)定性的な理解でもよいので、理由を持って作ることを心がけるようにすると、特にトラブルが起こったときのためになります。基本的にオリジナルなマイクロマウスには何か想定された答えがあるわけではないので、予期しない動作が起こったり安定感がなかったりしたときに、どこに原因があるかを突き詰められるかが全てといってもよいかもしれません。そのときに1つ1つの要素についてよく把握できていると、原因を見つけるのも早くなると思います。
もちろん、まずは手を動かすことが大切なのはそうなので、ある程度は見よう見まねになるところもあると思いますが、そういったときもどこまでが理解できていてどこからがよくわかっていないかを線引き出来ているとよいのかなと思います。やりながら気づく、知ることも数多くあるのでこの辺はバランスが大事だと思いますが、試行錯誤していくうえで適切にフィードバックをかけていくように意識するとよいのかなと思っています。

困ったときは

そうはいってもおそらく製作を進めていくうえで苦戦するポイントは必ず出てくると思います。こういったときは、相談、質問できる人がいると強いです。同じサークルや団体内でそういった方がいればよいですが、必ずしもそうではないケースも多いと思います。今はほかの団体の人とコネクションをとる機会はオンラインを含めばいろいろあるので、わからないことがあれば思い切って聞いてみてよいと思います(ほんの一例ですがマウス合宿のDiscordには技術相談のスレッドがあるので、そこで聞いてみるとかもありでしょう)。
また、最近はようやっとリアル会場での大会が行われるようになってきたので、そういったところではどんどん気になることは聞いてみましょう(私もかつて5年前くらいかな、はじめてDCマウスの回路図を書いたときはMiceの方に見てもらったりしました)。やはりオンラインのテキストメッセージだけでは伝えきれないことがこちらも伝えられるように感じています。こういった機会は積極的に活用して、つながりを作っていくことが非常に重要です。

最後に

なんだかいろいろと書きましたが、趣味のロボットなので、やりたいようにやるのが一番です。私自身まだいろいろと勉強中の身なのであまり偉そうなことを書くのは気が引けるわけですが、かつて初めてDCマウスにチャレンジした年のことを思い出しながら、今自身が製作しているうえで大事だと思っていることを中心に書かせてもらいました。特に今後DCマウスをはじめオリジナルなマイクロマウスを作っていく方の1つの参考にしていただければと思います。


明日は.さんで「データサイエンスコンペティション」です。おっ、情報系の話ですかね。同じ学科のAtcoderをやっている友人からもこの話題を聞いたような。楽しみにしてます。

0 件のコメント:

コメントを投稿