自作マイクロマウス研修(槇原)

自作マウス振り返り – 自作マイクロマウス研修(槇原)Part9

自作マイクロマウス研修(槇原)
  1. はじめに
  2. 目標設定について振り返り
      1. マイクロマウス競技のルールに従うこと競技規定
      2. 自立走行で迷路を探索しながらゴールまで到達できること
      3. 探索走行により迷路情報を作成すること
      4. 迷路情報から最短経路を導出すること
      5. 最短走行で斜め走行をできるような機体にすること
      6. 機体単体でパラメータ設定をできるようにする
      7. 迷路情報をフラッシュに保存できるようにする
      8. 音を出すことで走行中の機体の状態が分かるようにする
      9. 電源電圧を監視してバッテリー電圧が下がった際にエラーを出し動作を停止すること
      10. 壁に激突した際などでエラーを出す 走行中に衝突したらモード選択状態に戻ること
      11. 迷路アルゴリズムをPCでも実行できるようにする
      12. ゴール座標・最大速度加速度・探索速度加速度を機体単体で変更できるようにする
      13. どのモードからでもモード選択状態に戻ることができるようにする。また下記のモードを搭載すること
      14. 重量は 25g以下とする
      15. 最高速度は1 m/s 最大加速度は2 m/s/sを出すことができるようにする
      16. 車輪の速度が測定できること
      17. 機体の角速度、加速度が測定できること
      18. バッテリー電圧が測定できること(バッテリー電圧はLiPoの1セル)
      19. 壁センサによって壁の有無、壁までの距離が測定できること
      20. 壁センサによって壁の有無、壁までの距離が測定できること
      21. UARTデバッグをできるようにすること/デバッガを使って開発できること
      22. モード切替用のインターフェースを搭載すること
      23. 壁の有無をLEDで表示する/選択されているモード、パラメータをLEDで表示する
      24. 電源のON/OFFを物理スイッチで切り替えられるようにすること
  3. ハードウェア振り返り
  4. ソフトウェア振り返り
  5. まとめ

はじめに

こんにちは、槇原です。前回まではマイコンのペリフェラルについて書いてきました。今回は本研修のまとめを行います。最初に設定した目標が達成できているか、その他実際に作ってみた振り返りをします。

目標設定について振り返り

今回の自作マイクロマウス研修では一番最初に設定していました。こちらができていたか確認していきます。

自作マウス研修を始めます – 自作マイクロマウス研修(槇原)Part1
研修の課題として挙げられていたのは
・自作の(クラシックorマイクロ)マウスで16×16迷路をスラロームで完走すること。
です。こちらは公式大会のマイクロマウスセミファイナルの16×16の迷路で完走することができたので目標を達成することができました。

自作マウスの要件定義 – 自作マイクロマウス研修(槇原)Part2
こちらで設定した要件を満たしているか確認します

  • マイクロマウス競技のルールに従うこと競技規定

    大会に出場できるマウスを作製したのでOKです

  • 自立走行で迷路を探索しながらゴールまで到達できること

    こちらも大会でゴールまで到達することができました

  • 探索走行により迷路情報を作成すること

    迷路シミュレータを作って実際の迷路で走らせてみた – マイクロマウス研修(槇原)Part15
    クラシックマウスを作っていた際に作成した迷路解析プログラムがほとんどそのまま再利用できる形にしていたのでこちらを使って迷路情報を作成しました。

  • 迷路情報から最短経路を導出すること

    上記と同じく最短経路の導出をできるようにしています。

  • 最短走行で斜め走行をできるような機体にすること

    実際に斜め走行はしていませんが、機体幅は斜め走行できるように40 mmにしました。

  • 機体単体でパラメータ設定をできるようにする

    パラメータ設定用のモードを作成して、プログラムを書き換えることなく設定できるようにしています。また設定した情報はフラッシュに書き込んで電源を切っても保持されるようにしています。

  • 迷路情報をフラッシュに保存できるようにする

    こちらもフラッシュに迷路情報を保存できるようにしました。
    迷路シミュレータを作って実際の迷路で走らせてみた – マイクロマウス研修(槇原)Part15

  • 音を出すことで走行中の機体の状態が分かるようにする

    その他UI:基板設計について – 自作マイクロマウス研修(槇原)Part6
    ブザーを搭載して機体の状態を分かるようにしました。周波数の変更や音量調整についてもPWMの設定によって調整できるようにしています。

  • 電源電圧を監視してバッテリー電圧が下がった際にエラーを出し動作を停止すること

    電源電圧測定回路:基板設計について – 自作マイクロマウス研修(槇原)Part6
    こちらで電圧を監視できるようにしています。

  • 壁に激突した際などでエラーを出す 走行中に衝突したらモード選択状態に戻ること

    IMUを搭載して走行中に一定以上の加速度が発生したことを検知できるようにしました。
    IMU:基板設計について – 自作マイクロマウス研修(槇原)Part6

  • 迷路アルゴリズムをPCでも実行できるようにする

    迷路シミュレータを作って実際の迷路で走らせてみた – マイクロマウス研修(槇原)Part15
    先述の通り以前作成したシミュレータを作成していて、こちらを利用しています。

  • ゴール座標・最大速度加速度・探索速度加速度を機体単体で変更できるようにする

    こちらも実装済みです。ゴール座標はフラッシュに書き込めるようにしています。走行の速度は毎回指定することができるようにしました。

  • どのモードからでもモード選択状態に戻ることができるようにする。また下記のモードを搭載すること

    • 探索モード
    • 最短モード
    • 低電圧モード(エラー状態)
    • パラメータ設定モード(最短、探索の速度パラメータ指定、ゴール座標の指定etc)
    • デバッグ走行モード(走行関数のテスト用など自由に走行できるモード)
    • 走行テストモード(n区画直線,n回転)
    • センサチェックモード
    • 宴会芸モード
    • ログ出力モード

    これらをモード選択状態から遷移できるように実装しています(GitHub)
    低電圧モードの状態で動作させるのはバッテリーによくないのでこのモードからは抜けられないようにしました。

  • 重量は 25g以下とする

    18.3 gにすることができました。

  • 最高速度は1 m/s 最大加速度は2 m/s/sを出すことができるようにする

    目標速度・加速度を出せることを確認できました。

  • 車輪の速度が測定できること

    上記の通り磁気エンコーダによって速度の測定ができました。

  • 機体の角速度、加速度が測定できること

    IMUにICM-42688-Pを採用して角速度、加速度の測定をできるようにしました。これによって衝突検知をできるようにしました。

  • バッテリー電圧が測定できること(バッテリー電圧はLiPoの1セル)

  • こちらのとおり1セルバッテリーを測定できるようしました。
    電源電圧測定回路:基板設計について – 自作マイクロマウス研修(槇原)Part6
  • 壁センサによって壁の有無、壁までの距離が測定できること

    ・距離は1cm~10cmくらい見れるようにします(壁制御~1区画壁なし)

  • 壁センサによって壁の有無、壁までの距離が測定できること

    1区間分の距離をセンサによって取得することができました。

  • UARTデバッグをできるようにすること/デバッガを使って開発できること


  • こちらの6ピンコネクタでUARTデバッグとデバッガを使えるようにしました。
  • モード切替用のインターフェースを搭載すること

    物理スイッチは2つ搭載してUIとして利用できるようにしました。

  • 壁の有無をLEDで表示する/選択されているモード、パラメータをLEDで表示する

    壁センサに対応させた4つのLEDを搭載しました。

  • 電源のON/OFFを物理スイッチで切り替えられるようにすること

  • 電源回路|基板設計について – 自作マイクロマウス研修(槇原)Part6
    物理スイッチ+FETによって電源のON/OFFをできるようにしました。

ハードウェア振り返り

駆動系についてはこちらで説明しています。ギア比の決定とモータマウントの設計について書いています。
駆動系設計 – 自作マイクロマウス研修(槇原)Part3
磁気エンコーダ、モータマウント設計 – 自作マイクロマウス研修(槇原)Part4

最終的に作成したものでは片側のタイヤが固くなってしまいました。取り付けの問題か、はめあいの問題が原因と思われます。もう少し調整などする必要があったかもしれません。

回路についてはこちらの記事にまとまっています。
基板設計について – 自作マイクロマウス研修(槇原)Part6

磁気エンコーダの取り付けがかなり難しいフットプリントにしてしまった点が反省点です。その他は壁センサの測定範囲がすこし狭かったです。LEDに流す電流、フォトトランジスタにつないでいる抵抗値など調整の余地があるので時間があれば検証したかったです。

ソフトウェア振り返り

今回はマイコンのペリフェラルで気になった箇所を記事にしています。
STM32でADCで各チャンネルの変換を1つずつ変換する – 自作マイクロマウス研修(槇原)Part7
STM32G4でFlashへの書き込みをする – 自作マイクロマウス研修(槇原)Part8
マウス全体のソフトウェアに関してはSTM32のデバイスドライバ部分以外は基本的に板Pi:Coのコードをそのまま使っています。そのためマイクロマウス特有の迷路を解く部分や、センサデータの更新や処理など以前作った部分がほとんどそのまま流用することができたので開発期間をかなり短縮することができました。

機体の制御に関してはそこまで速度を出していないので素直な2輪ロボットのように扱うことができました。おそらくさらに速度をあげていくと上位陣がやっているいろいろな対策などが必要になってくるのだと思います。
第44回全日本マイクロマウス大会に参加した – 自作マイクロマウス研修(槇原)Part5

まとめ

本研修の目標である、マイクロマウス(旧ハーフマウス)を製作し、大会で完走することができました。またそのほかに設定した目標についても条件を満たせるようなマウスを作ることができました。

クラシックマウスも一度作成しているので各要素について真新しいところは少なかったように感じますが、実際に作成すると小型化すること自体に難しさがあると思いました。
マイクロマウス競技としては今回は目標速度などはそこまで速くするところまで手を付けられていませんでした。しかし実際に作ってみた上で大会などで上位陣のマウスの動きを見ると、そのすごさがよくわかりました。今回は斜め走行や探索の効率化など手を付けられていないですが、更なる高速化のためにできることがたくさんあることが分かってきました。

研修としては今回までで終了となりますが、まだやり残したことが多いので今後もマイクロマウスを続けていこうと思います。ここまで見ていただきありがとうございました。

 

 

 

 

(実はすでに新しいマウスを作り始めています。次回以降大会でまたお会いしましょう。)

タイトルとURLをコピーしました