マイクロマウスのスラロームの調整方法を考える

2020年6月7日

マイクロマウス関連記事のまとめはこちら。

私なりのマイクロマウスのターンの調整方法を書いていこうと思います。スラロームの説明については省略させていただきます。

スラロームの構成は、

  1. オフセット区間(INオフセット)
  2. 角速度加減速区間・円弧区間
  3. オフセット区間(OUTオフセット)

の3工程があるとして、今回は1,3の距離をどのように調整するかという点について考えていきたいと思います。

 




調整の仕方を考える

実際に走らせる

初めに、スラロームの軌跡を作れているか確認をしたのちに、次のようにやっていくと考えられます。

  • 軌跡の設定でオフセット区間を15mm程度とれるようにした角加速度、角速度などを設定する。
  • 2区画壁制御直進、スラローム、2区画壁制御なし直進、停止のプログラムを実装する。
  • 実際に走らせる
  • マシンが止まった位置を計測する
  • 計測した結果をもとに、前距離、後距離を設定する
  • スラロームのたくさんある迷路を走らせて大丈夫かどうか確認する

速度、角速度からただ軌跡を引いただけではスリップ角の考慮ができないので、実際に走らせてスリップ角によって出てくる誤差を気合でなんとかしてしまおうという魂胆です。基本的に、速度・角速度で求めた理論上のオフセット距離と見比べると、前距離が短くなって後距離が長くなると思います。

 

GUIのシミュレータを製作して、調整に使う

エクセルやプログラミング言語を使用してスラロームの中心速度、角加速度、角速度などのパラメータを入力をすると軌跡を作ることのできるシミュレータを作って、その値をもとにパラメータを決める方法もあります。メリット、デメリットは次のものが挙げられます。

メリット

  • 一度しっかりと作ってしまえばパラメータの調整が楽になるかも
  • パラメータを入力するだけで軌跡を作れる
  • スラロームの軌跡をGUIで簡単に見ることができる
  • スリップ角の考慮を行うことが可能になるかも

 

デメリット

  • 走らせて調整する必要がある
  • シミュレータを作る為にプログラミング言語の勉強などをしないといけない
  • 製作に時間がかかること

私は、シミュレータをPythonで作成して、それをもとに調整しています。

 

私なりの調整方法

探索走行

GUIシミュレータでパラメータを設定してあたりをつけたものを実機に入れ、何度か走らせてスリップ角を考慮したパラメータを決め設定しています。その後、調整用迷路を走らせて大丈夫かどうかをチェックしています。

調整用迷路の例は以下のような迷路です。

調整用迷路の例

 

このように連続でスラロームを行う複数の迷路を往復で走らせて、すべての迷路でゴールまで行ってスターにに戻ってこれればOKということにしています。

 

最短走行

シミュレータをフル活用しています。

基本的に次の流れで調整をしています。

  1. 区画の中心から区画の中心までの大廻90度ターンの軌跡をシミュレータで生成する。
  2. 生成したときの軌跡のパラメータを使用して複数回走行させる
  3. 毎回走行後のマイクロマウスの位置を定規で計測する
  4. 計測地の平均的なずれからスリップ角のパラメータを推定する
  5. 新たに生成した軌跡をもとに走らせる
  6. OKなら別のターンも同様に行う、だめだった場合は3から繰り返し

 

この流れで生成したターンでは、壁制御を入れることで、センサーでの距離補正なしでも下の動画程度は走りました。

私の場合は、手作業で行ったパラメータでは全然走りませんでした。

シミュレータを時間をかけて作ることによるデメリットよりも作ったことによる調整時間の短縮のほうがメリットが大きいように感じています。私が作成しているシミュレータは以下のような感じです。

 

さいごに

スラロームのターンの調整方法を紹介してみました。ほかにこんな方法があるといったことがあれば教えていただきたいです!

途中からシミュレータの勧めのような記事になってしまいました。迷路、スラロームともにシミュレータを作るのにかかる時間はかかりますが、作ることで、アルゴリズムの確認や調整の時間などを、短縮でき最終的にプラスになるのかなと思いました。

スラロームシミュレータの作り方を書いてという要望がたくさんあったら書くかもしれないです。

これからシーズンに入るマイクロマウス開発頑張っていきましょう。認定証ほゲットしたいです・・・。

 

スラロームについて参考になるサイト

スラローム

スリップ角

スラロームシミュレータの実装にあたって参考にさせていただきました。

ありがとうございます。