おかやんの活動記録

マイクロマウスやmatlabのお話など、日々の活動を記録していきます。

2019年の振り返り、2020年の目標

はじめに

こんにちは、おかやんです。 前回はなぜブログを始めたか、についてでした。

okayan.hatenablog.com

今回はブログを始めた大きな理由でもあった、目標設定と反省をしようと思います。 最初に謝らせてください。長くなりすぎました。

2019年の振り返り

範囲が広すぎて具体的な反省ができる気がしていないので、反省というより振り返りにしましょう。そうしましょう。反省は定期的に短スパンでやるべきです。

以下振り返りです。長くなります、ご容赦ください。

マイクロマウスについて

マイクロマウスを始めたきっかけ

マイクロマウスに初めて触れたのはちょうど一年前の2019年1月、社会人としては2年目の頃です。当初は何となくmatlabを触るにあたってハード的な題材が欲しいなぁという思っていたところ、マイクロマウスとmatlabを関連付けられたスライド*1を紹介され、なにこれちっちゃくて速い!楽しそう!となったのがきっかけです。

導入期

当初、マイコンとは?レジスタとは?であった私は、マウスを自作することに相当高いハードルを感じていたため、キットを購入しました。 *2

このキットはマウス本体に加え、サンプルプログラムがついており、ハード層(マイコンレジスタを直接たたく層)の整備は済んでいるため、購入者はいきなりアプリ層を触れる状態になっています。そのため、比較的容易に、簡単な迷路であれば探索することができます。私は、ある程度このキットを触った段階で、何故か自作マウスを作りたい欲がでてきてしまい、matlabに触れるという目的を忘れ、自作に走り始めました。

ハード製作期

自作するとはいえ、PCBとは?である私は、ジルコニア*3を軸に製作をはじめました。王者が選定した部品であれば安心(怠惰)ということで、部品選定のステップを飛ばし、マシンの設計を行いました。 実際に手を汚したのは、

  • マウスの機体設計、および3Dプリントでの部品製作
  • 回路設計(ほぼジルコニア)、アートワーク設計、PCB発注
  • 基板実装

です。その過程で3DCADのfusion360、回路設計環境のKiCADの使い方をおおよそ理解することができたのが、あえて自作することで得た利益だと思います。次のマウスを作る時にもここは大きな障壁になることはないでしょう。 基板実装は素人ではなかったのですが、QFNのマイコンはなかなか...位置が決められず、しんどかったです。あとから人に聞いた話で確かに!と思ったのは、養生テープで位置を固定するといい感じにできる、ということです。なぜに気付かなかったのだろうか。

そうして出来上がったのがアイコンにもなっているこの機体

f:id:okayannnn:20191229131621j:plain
自作機体、manaco

実はこれを作るまでに致命的な欠陥を回路、3dプリント部品の部分で出しており、各々take2の代物です。がっつり手戻りしてしまいました。 反省点としては、

  • 回路図:他人にみてもらう、できなければ一度しっかり寝かして精査する。
  • 3dプリント部品 : 一度寝かす。その後、重要となる寸法が適格に指定できているかをしっかり確認する。

ということで、しっかり寝かしてもう一回疑いの目で見直す。ということの大事さを学びました。疑いたくない気持ちも出ちゃうんですけど、ほぼ素人な僕がミスしないはずがないんですよね。次はしっかり見直そうと思います。

ソフト製作期

ようやくソフトです。ハードに3か月かけてしまい、いつmatlabに触れるんだ?という感じになってきましたが、まだ触れません。

ソフトでは機体に盛り込んだモジュールの動作確認から行います。具体的には

  • PWMによるモータ駆動
  • エンコーダによるタイヤ回転角度算出
  • ジャイロによる角速度抽出
  • IRセンサ値取得

を行っていきます。一つ一つに苦労はしましたが、先人たちの神ブログに助けられ、何とか動作確認を完了しました。 特に助けられた神ブログを一つ紹介させてください。

そらさんのSora's Activity Record です。

garberas.com

STM32の各機能の使用方法を懇切丁寧に記事化されており、特にDMAやADCの記事は何回も読んで参考にさせていただきました。ありがとうございます。 僕もこんなふうに、自分の気づきが誰かの助けとなるような記事をかけていけたらと思います。

各モジュールの動作が確認出来たら次は、各々をどう使っていくかを考え始めます。ジャイロやエンコーダを使った速度、位置制御などがその例です。 ここで初めて、各モジュールの嫌な特性に気付き始めます。例えば左右のモータの特性のばらつき、摩擦による非線形性、エンコーダーのブレ、壁センサの非線形性…など。各々ソフトでなんとか対策できる気もしますが、やはり制御しやすいハードに越したことはない。なので、すでに次の機体を作りたいという欲が若干わいてきています。まだ走ってないのに。

matlabについて

私はmatlabで何をしたかったのか、matlabとは何なのか。という感じになってしまいましたが、ようやくmatlabに触れていきます。

実際に私が今年実施したのは、

  • 迷路画像から迷路情報を自動的に取得するソフト作成
  • 迷路探索ロジックの検証、実装
  • 速度制御におけるゲイン調整

などなどです。丁度今年は仕事でもmatlabに触れる機会が増え、matlab経験値が稼げた年だったなぁと感じています。

あくまで”matlabでマイクロマウス”、としている理由は、mathworks様がマイクロマウスの競技者に向けて提供している*4 フルライセンスを使用しているからです。

フルライセンスを強調しましたが、ホームライセンスとの違いはmatlabC言語に変換するCorder系のライセンスの有無です。これを活かさない手はないと考え、僕は迷路探索ロジックの検討、検証、実装をmatlabにて実施しました。もう少し精査したら、いつか別の記事に乗せる予定です。

matlabによるマウス探索ロジックの検証。このロジックをC言語化し、マウスに実装している。

2020年の目標

ここまで4000文字、別記事にしようかと思いましたが、書いちゃいます。

マイクロマウスについて

ずばり目標は"全日本大会出場"です。そのためには、地区予選で完走する必要があります。

スケジュール

例年通りにいけば以下のようなスケジュールになるはずです。 大会に合わせた目標を列挙しておきます。こういうのは言ったもん勝ちです。多分。

開催月  大会名  目標 
3月 デンソー 横壁追従、壁切れ補正、スラローム探索、最短走行、フェイルセーフの実装
9月 中部地区初心者大会 新機体製作、旧機体レベルまで引き上げ、全面探索ロジックの実装
11月 中部地区大会 斜め走行、既知区間加速実装
12月 全日本大会 完走

後半程目標が曖昧なのは、イメージがないのとどうせ修正するだろうという安直な考えによるものです。適宜直近の大会に向けた目標設定をしていこうと思います。

新機体は、現状の機体の問題点を洗いざらい吐き出し、すべて解決されたものにするつもりです。詳細は別の記事としますが、とにかくユーザーにやさしく、制御しやすい機体を作る予定です。

デンソー杯について

少し宣伝です。2020/3/6~7(金・土)刈谷にあるデンソーにてマイクロマウスの大会が開催されます。ぜひマウサーの皆様、マウスを見てみたい方、どうぞ刈谷にお越しくださいませ。私も出場予定なのですが、何分つよつよの宇宙人方のホームカンパニーでして、震えが止まりません()

https://www.facebook.com/robot.d.team/

デンソー杯の公式フェイスブックページ、随時情報が更新されていく予定です。

matlabについて

主に趣味の観点では、以下の二つに使用していきたいと思います。マウスから逸脱した用途では、別で使用しているホームライセンスを使用する予定です。

  • マイクロマウスでやりたいこと

    • App Designerを使用した探索ロジック検証アプリの作成
    • コストを考慮した探索ロジック作成
    • より厳密なシステム同定
    • 壁追従制御のMBD(先駆者の後追いですが…)
  • 制御工学的にやりたいこと

    • カルマンフィルタを用いた倒立振子の姿勢、位置制御
    • センサレスFOCでBLモータを回す

制御工学について

2019年は業務で制御工学に触れさしてもらった年でした。今まで制御工学は大学で触れたのみで、特に使うことがなかった私でしたが、"不安定なものを思い通りに動かす"ということに、好奇心が芽生え、自分なりに積極的に勉強した年でした。

主にPIDなどの古典制御の勉強をしてきたので、2020年は現代制御でものを安定させる、ということに挑戦しようと思います。

私事ですが、来年、会社内の予算を使いながら制御の勉強をさせてもらえそうです。制御よわよわマンなのにお金をもらっていいのか、という気持ちもありますが、精いっぱいやってみようと思います。さて、何を安定させようかな。

さいごに

長くなりましたが、以上です。もし読んでくださった方がいらっしゃれば、本当にありがとうございます。これからもよろしくお願いいたします。

今回立てた目標は適宜更新、反省を繰り返していきます。なので、もし大会で今回の目標を達成できていない姿をみても煽らないでください、泣きます。

短スパンでの更新となりましたが、今回限りで、次からは隔週ないし月一になるでしょう。そろそろマウスの開発に戻らねば。

最後になりますが、年越しのご挨拶を。

今年もお世話になりました。来年もよろしくお願いいたします。

*1:matlabからマイクロマウスとなったきっかけの資料を貼っておきます。とてもキャッチーで、matlab初心者の私にもハードルを感じさせない、素晴らしいスライドです。

マイクロマウスのための MATLAB/Simulink 講座 第1回 - MATLAB入門

*2:購入したキット。RT社製

HM-StarterKit 手のひらサイズのマイクロマウス学習キット | アールティオリジナルロボット | 株式会社ア-ルティ

*3:第40回マイクロマウス ハーフサイズの優勝者であるまついさんが製作した、オープンソースのマウス。使用している部品や回路図、ガーバーデータ、各モジュールのテスト用コードが公開されています。 matsui-mouse.blogspot.com

*4:mathworks様のマイクロマウス競技者向けライセンス提供ページ。社会人かつ個人であっても、提供可だそうです(2019/12/29時点) Micromouse Contest - MATLAB & Simulink