忍者ブログ

[PR]

2024年04月26日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

マイクロマウス調整法(フレッシュマン向け)

2017年10月25日
こんにちは、鯉です。
地区大会も残すところ中部だけとなり、あとは全日本に向けて仕上げていく時期となってまいりました。

今年は割と多くの地区大会に参加しましたが、フレッシュマンを見ていると「大会会場でどうやって壁センサの値がずれているかを把握し、どのように直すか」といった調整法が確立されていないような気がしました。

たしかにネットで検索しても調整方法については記事がほとんど見つからず、ノウハウの塊状態になっているような。。。

というわけで、僕が行っている調整法を紹介しようかと思います!
フレッシュマンの方もそうでない方も参考にしていただければ幸いです。


※今回の記事は個人の主義主張が強く含まれます。調整方法がコレで正解というわけではないので、あくまで1意見としてお聞きください。

俺はこんな方法でやってるぜ! といったご意見ご感想お待ちしております。




壁制御の調整方法




まずは、壁制御の調整方法について紹介していきます。
鯉住では、部室や部屋などの普段の調整はもちろん、大会会場でもセンサ値がずれていると感じたら行うようにしています。

壁制御のやり方などは割愛し、すでにできているものとして進めます。
不安な方は、MiceWikiうむ夫の歩み関西支部Tokoro's Tech-Noteなど挙げればきりがないのでお好きなのを参考にしてください。


その0.迷路に線を引く

まず初めに、迷路に調整用の線を引きましょう!!
大会ではできませんが、個人または団体で迷路を保有しているならば真っ先に行いましょう!
調整のやりやすさが段違いです。

 

引くべき線はこんな感じです。
各区画にこんな感じで線を引きましょう。
青い線は斜めの調整用なので、(普通は)斜めをやらないフレッシュマンは関係ないですが、いつやりたくなるかわからないですしこの機会に引いておきましょう。

ちなみに実際の迷路は下板が黒色なので、白く見える鉛筆や修正液とかで引くといいかと思います。Miceでは鉛筆で引いています。


その1.片壁制御

さて、調整に移っていきましょう。
まずは左右それぞれの片壁制御を行い、制御がきちんとかかっているか、センサのリファレンス値はあっているかを確かめます。

片壁制御で見るべきこと



見るべきことをポンチ絵にしてみました。
だいたい図を見てもらえばわかると思います。
個人的な感覚としては
・姿勢は1区間くらいで正しい状態に直せるくらい
・制御が発散してブルブル震えながら走るのはよくない
・離れる制御も近づく制御もかける
・センサ値なんてものは大会毎にずれると思って調整する
くらいのことに気をつけておけばいいかと。


その2.壁の切れ目

晴れて片壁制御がかかるようになったら、次は壁の切れ目も見てみましょう。
壁の切れ目とは壁がなくなったタイミングで、マウスは壁が遠ざかったと認識し制御によって吸い込まれる現象です。
詳しくはMiceWikiをご参照ください。




この調整の目安は図の通り、少し吸い込まれても次の区画や柱で中心に戻る程度を目指すと良いでしょう(フレッシュマンは)。

僕は大会ではこの調整は行わないことが多いです。
部室なりでしっかり調整し、大会会場では片壁制御の調整法を行えば切れ目も大丈夫でしょう。


その3.まとめ

自分なりの壁制御の調整方法をまとめました。
普段の調整環境で、その0~その2を行い、大会会場ではその1だけチェックすれば充分だと思います。
ただし、迷路をきちんと走るのが絶対的に重要なので今回の調整方法で上手くあっていても迷路を走らせたときにずれるようなら適宜修正していきましょう!




スラロームの調整方法




次にスラロームの調整方法に移っていきます。
壁制御と同じく、スラロームの実装はできているとして進めます。
わからない方、不安な方は以前書いた記事(原理)やツルマインのブログ(実装)やMiceWiki(実装および調整)とかを見てください。
(意外とスラローム自体についての記事って少ないんですね)


その0.距離があっているか確認する

実際にスラロームの調整に入る前にやることがいくつかあります。
まず最初にマウスが考えている距離が実際の距離と一致しているかを確かめましょう。



距離の調整は、ズレが大きく出るようにできるだけ長い直線を用意し、きちんと直進するように両壁を入れて壁制御をかけて、走行距離を見ます。

MiceWikiのこの辺
の考え方を取り入れ、距離を各時刻の速度の積分として求めているならば、タイヤ径がパラメータとなります。
実際に走らせたとき、距離が合うようにタイヤ径を設定しましょう。

また、注意すべき点として、距離が短くなった際に壁制御が甘く蛇行したことが原因の場合があります。
そのため、壁制御の調整をしてから行うほうが良いでしょう。
目で見て明らかに蛇行していなければ大丈夫です。


その1.角度があっているか確認する

次は角度を見ていきましょう。
超信地旋回を行って、目標の角度と一致するかを確認します。



僕は角度のずれが大きく出るように3600°くらい超信地旋回してます。
もし、角度がずれるようなら、ジャイロを使っている人はジャイロの定数が、ジャイロ使ってない人はマウスの幅がズレているのかもしれません。
3600°回してもパッと見でズレがわからない程度にしたいところです。


その2.スラロームの角度調整

ようやくスラロームの調整です。
まずはスラロームで指定した角度きちんと曲がれているか確認しましょう。
この確認方法は人によってやり方が大きく異なるところですが、僕は1回だけ曲がって角度を見ます。




調整は
直進(1.5区画くらい) → スラローム → 長い直進(2区画以上)
という組み合わせで行っています。

図に書いてありますが、
最初の直進では位置と角度を合わせるので、それができる長さにしましょう。
また速度についても、止まった状態からスラロームの速度まで加速し安定できる距離にしておきましょう。
最後の直進は、角度のずれを見るためなので、壁制御等がかかり角度が直ってしまわないよう注意しましょう。

この結果、もし角度がズレているようであれば、スラロームの目標角度を合うように変えることで調整します。(例えば、目標角度90°で曲がりすぎるようなら89°にするなど)


その3.スラロームの位置調整

スラロームの調整もこれで最後です。
ここまでで、角度はあったので、スラローム後の位置が目標の位置になるように調整しましょう。



ここまでですでに重々承知とは思いますが、スラロームも実際にやるとシミュレーターや理論値とは微妙に異なります。
この位置のずれは前距離と後距離をいい感じに合うように調整してあげましょう。

前距離と後距離ってなに?って方はこちら。



その4.まとめとスラローム耐久テスト

スラロームの調整については以上になります。
こちらも壁制御と同様迷路で走るパラメータが正義なのを忘れないでください。

最後にスラロームのチェックとしてよく用いられる耐久テストパターンを紹介してスラロームの調整方法を締めさせていただきます。





おわりに


壁制御とスラロームの調整方法について紹介しました。
今回のことをしっかりと行うだけでフレッシュマンなら、まずこけなくなるのではないでしょうか?
しかし、実際に迷路を走らせるとどうもうまくいかないということもあり得ます。
そういう時には前壁制御などの他の補正も入れてみる必要があるかもしれません。

最後に、繰り返しになりますが今回の方法は決して正解というわけではなく、あくまで僕個人の方法です。
皆さま各々違う調整方法を持っておられると思いますが、もし参考になれば幸いです。
また、違う方法があれば教えていただけると嬉しいです。

それでは良き調整ライフを!
PR

北信越:完走の感想

2017年09月26日
こんにちは
前回のブログから早3カ月、月日が過ぎるのは早いものですね。


北信越大会

去る9月18日北信越大会がありました。

これまで、北信越大会には参加してこなかったのですが、前回参加者から
 やれ鯖が上手いやら、
 やれ酒が旨いやら、
 やれ楽しい!最高!!!やら
(主に観光面重視の)良い評判を聞いていたものの、これまではマウスが動かず見逃してきました。
今年はそれなりに動くので参加してみることに。



何が目的か明確なLineグループアイコン


いつものようにMiceメンツで車を借りて出発
運転手の方々、まことにありがとうございました。


道中は様々なことがありました。

研究に追われる人がいたり、
やっぱり鯖がおいしかったり、
日本酒試飲会場に吸い込まれる皆を見送って一人お土産を買いあさったり、

話は尽きませんが、きっとみんなも感想ブログを書いてくれると思うのでバッサリ割愛します。


大会本番

まず、結果はこちら


クラシックは
各々多種多様な方法でMice勢が悲しみを背負ったり。
まさかのピーコが優勝したり。
小学生マウサーが誕生していたり。

なかなかのドラマが生まれていて見ていて楽しかったです。


そして、ハーフはというと。


斜めしてくださいと言わんばかりの迷路。
1位のシン・ウムオは斜め連続を駆け抜けていてかっこよかったです。すごい

そして、僕はといえば…

鯉住:記録 00:18.467:順位5位

そう!! 完走していたのです!!!



何を隠そうこの私、フレッシュマンの「かに☆かま」以降一度も完走すらできていませんでした。
つまり3年前の全日本以来の完走です!!!
当然、ハーフも初完走!!

嬉しい!!


おまけに、直線速だけあげた最短走行も成功して、5位に滑り込みました。
ポイントも貰えて、Bustersもバスターできて嬉しいこと尽くしですね!


そして、その証拠となる認定状がこちら!
  
(ま.に預けているのが帰ってき次第差し替えます)
当人のツイッターから投げつけられてきました。





最後に、北信越大会に初めて参加させていただきましたがスムーズな運営により非常に楽しむことができました。
大会運営に携わった方々へ、この場を借りてお礼申し上げます。
ありがとうございました。

謝罪会見、あるいは見苦しい言い訳

2017年06月27日
こんにちは

もう6月も終わりかけ、気温も暑くなり梅雨も明け夏を感じさせますね。
アトピーの自分にはつらい季節の到来です。


ところで、先週の日曜日はMiceプチ大会でした。

とても楽しませていただきました。
来てくださった皆様ありがとうございました。
運営を担当した現役生の皆さんお疲れ様です。

例年よりもはるかに多くの大学が参加しており、Mice自体の規模が大きくなったことを差し引いても、部長の人脈の広さにただ感服するばかりです。




マウスの話

今年は就活があったので、無理に新作に挑まず制御やらアルゴリズムやらを詰めていくことを選択しました。
というわけで、去年の機体である鯉住をひっさげハーフ競技に参戦してきました。

結果から言うと、前壁読み間違えて惨敗しました。Ω\ζ°)チーン

就活終わってからここまで制御をきれいにすることに集中しており、速度や角速度のログはだいぶきれいになってきました。
しかし、代わりに犠牲にしたもの(スラロームや壁制御の調整)も大きく、もはや彼は迷路を走れる状態ではなかったんですね。
無念。。。

とはいえ一歩ずつ進んではいるはずなので、いつかゴールできる日が来ると信じて頑張りたいです…!

とりあえずはカルマンフィルタあたりから。



迷路の話

さて、本題です。


どうやらプチ大会のクラシックでは、
「フレッシュマンに優しい良い迷路を作りました!」と豪語しておきながら大半のフレッシュマンをなぎ倒し、エキスパートすらも殺しまくった鬼迷路を出したクソ野郎がいるらしいですね?


ま.さんのTwitterから。忍者ブログでTwitter埋め込みってどうやるんすか)





はい僕です、ごめんなさい。猛省します。



でもでも!
ドラマチックな因縁の対決を演出したので、大目に見てください!












……えっ、むり?





ここから言い訳タイム

今回のコンセプトとか何を思って作ったとか勝手にグダグダ話します。


まずやらかした迷路。


(7,7)(7,8)(8,7)(8,8)の中央4マスゴール


で、なぜフレッシュマンに優しいとか言っていたのか



単純な歩数最短を走る足立法ならこの経路を通ると想定していました。
このルートなら、壁も多く、階段の連続もなく、袋小路で尻当てして姿勢も直せるはずだったんです。


実際に多くのフレッシュマンたちが通ったルート



こんなスラロームの連続、そりゃあこけますよね…。


なぜ、こんな悲劇が起こってしまったのか

実は、というかよく見てもらえばわかるんですが、想定のルートと実際に通ったルートが食い違う分岐点って歩数的にはどっちに行っても同じなんですね。

僕のアルゴリズムでは、同歩数の場合には直線になる方向を優先することになってるので真っすぐ行きます。
シンプルな足立法では、東西南北の優先順位(IFの順番とか)に従って決まりますね。


もし東より北の優先順位が高いと??

おめでとうございます、見事スラローム連続ルート突入です!!!!



どうするべきだったか

歩数が同数というわかりやすい分岐は両方検証しておくべきでした。
というか、単純にもっと壁を増やしておけば良かったですね。。。

あと段差に思いをはせる必要もありました。
ごめんね、段差先輩。もうMiceからは卒業したものだと思ってたよ。



コンセプト(最短ルートと最速ルート)


最後に、コンセプトというか、みんなにやってほしかったことを話して言い訳は終わりにします。




緑のルートが単純に歩数最短のルートのはずです。
これは、最初の方に、俗に言う桂馬飛びが多く、更には最後に180度×2があり、あまり速度が出ないはずです。

一方、優勝者であるnocheさんが通ったのが青い経路です。
歩数的には緑より長いんですが、直線が多く速度が出しやすくなっています。
狙ってかわかりませんが、nocheさんは重ね探索せず迷路の左側を見なかったことで緑の経路を避けていました。


今回やりたかったことっていうのは、まさにコレで、歩数的に不利だけれども、走行時間は短い経路を探しに行けますか? ということを考えてほしかったです。流石優勝者。

もちろん、エキスパートの皆さんはそんなことは百も承知だとは思いますが、まだそこまでやってない人はこの機会にぜひ考えてみてはいかがでしょうか。
って大会で言いたかったなぁ


ちなみに、僕が想定した最速ルートは別にあります。
もちろん走行パラメータに依りますが。
mazeにも挙げておきましたので、良かったら検討してみてください(ばればれな気もしますが)。



あとはゴールの斜め突っ切りも観たかった。


最後に

Miceプチ大会運営お疲れ様です。
参加した皆さまありがとうございました。

クラシックでこけた方は、どうぞ気を落とさず、クソ迷路だと思って忘れてください。

そして、nocheさん、赤子さん、最短感想おめでとうございます。
ありがとうございます、あなた方のおかげでレジェンドクソ野郎にならずに済みました。

スラロームによる移動距離近似、その5

2017年04月26日
第5回です。
今回はいよいよ、これまでに求めてきた要素を組み合わせてスラロームとしての移動距離を求めていきます。
これまでの記事は1回目の目次からどうぞ。



スラロームの移動距離

スラロームの模式化


第2回からスラロームは各要素の移動距離を長方形として表すことで模式的に表すことができました。



また、これまで(第3回第4回)に円弧とクロソイドの移動距離は求めていました。
円弧の移動距離をX方向とY方向でAx,Ay、クロソイドの移動距離をX方向とY方向でCx,Cyと置きます。
先ほどの図を少し変えます。



この図をもとに、Sx,Syについて考えていきます。


スラロームの移動距離を求める



まず、X方向の移動距離について考えます。


同様にY方向の移動距離についても考えていきます。



よって、Sx,Syを求めることができました。

このSx,Syは
「パラメータとして与える加速角度とターン角度」×「スラロームの軌跡を決める曲率半径」
となっており、変数分離できています。

つまり、スラロームの移動距離(始点と終点)とパラメータを与えることで、通るべき軌跡を決める(曲率半径を求める)ことができるようになったのです!


まとめ

近似を用いてスラロームの移動距離を求めることができました。
 

また、この式の形より
スラロームの移動距離(始点と終点)とパラメータを与えることで、通るべき軌跡を決める(曲率半径を求める)ことができる
ことがわかりました。


タイトルも回収し、これで一件落着…かと思いきやまだ問題が残っています。
それについては次回。

スラロームによる移動距離近似、その4

2017年04月18日
第4回です。
これまでの記事は1回目の目次からどうぞ。

今回はクロソイドの移動距離を近似を用いて求めていきます。
タイトル回収ですね。



クロソイドの移動距離


クロソイドとは


まずクロソイドについておさらいから始めていきましょう。
クロソイド曲線とは高速道路のインターチェンジで使われるような曲線です。
詳しい説明についてはこちらの方に譲らせていただきます。

スラロームにおけるクロソイド曲線について考えてみましょう。
このクロソイド曲線は、角加速区間および角減速部分に出てきます。

その移動距離は解析的には計算できないわけですが、数式で表せないというわけではありません。
重心速度vでスラローム中のマウスは以下のような図で模式的に表せます。

 

ここでθは機体の角度を表し、時間に依存した変数です。
移動距離を考えると以下のようになります。

  




マクローリン近似


先ほどの式(6)が解けないことが、スラロームの移動距離がわからない原因です。
Mice内で一般的(?)な手法では、数値解析により解決していました。
本記事ではマクローリン展開により解決します。

具体的には、非積分関数をマクローリン展開したうえで積分します。
また今回の手法はこのサイトを非常に参考にしております。

スラロームにおけるクロソイドでは角度の小さい部分を用いるため、時刻 が0近傍であると仮定してマクローリン展開します。


x軸方向の移動距離は以上のように表せます。
しかし、今回はパラメータとして時間でなく角度を用いたいので、機体の角速度をωと置いて、式(8)を変形していきます。

 
これで、クロソイドのx軸方向の移動距離を表すことができました。
同様にy軸方向についても行っていきます。



よって、クロソイドの移動距離を表すことができました。



まとめ


マクローリン展開を用いることでクロソイドの移動距離を求めることができました。


円弧のときと同様に、移動距離が曲率半径Rパラメータ(加速角度θA)による関数の積で表されています。
そのため、どうやら移動距離とパラメータより曲率半径を求めることができそうです。

次回はスラローム全体の移動距離をどう表せるのかという点について扱っていきます。




マクローリン展開の誤差について



今回はまだ終わりません。おまけがあります。お得ですね。
ここでは、皆さんが気になっているであろうマクローリン展開の誤差について考えていきます。




上図はクロソイド曲線について、Excelで数値計算した軌跡とマクローリン近似による軌跡を比較したものです。
重心速度を2000mm/s、微小時間を1msとして計算しています。
高速ターンにおいてスリップ角を考慮しないのは現実的ではありませんが、ここでは誤差の影響が顕著に出るようv=2000mm/sとしました。

この図を見ると見た目には、スラロームに用いる低角度領域ではよく近似できているように見えます。
しかし、図からはどれほどずれているかわかりません。
というわけで、両者の差をグラフにしたものが下図になります。



この図は、
角加速度515rad/ss
重心速度2000mm/s
のパラメータにおいて
「マクローリン近似による推定値」と
「微小時間を1msとして計算した数値計算」を比較したものです。
横軸は機体の角度、縦軸はそれぞれX方向とY方向における差を示しています。

これを見ると180度までの範囲で、ズレは最大でも2mm程度だとわかります。
スラロームとして考えると180度ターンのとき角度が最大なので、クロソイド曲線としては90度までとなります。
そのため、近似によるズレは最大でも1.5mm程度で済みそうです。

皆さんが如何ほどの精度で機体の制御を行っているかはわかりませんが、~2mm程度のズレであれば調整範囲内といってよいのではないでしょうか。
少なくとも私のマウスでは理論値と現実の軌跡とのズレは、これよりはるかに大きいため、調整によって丸めこめると考えています。

最後に重心速度を変えたときズレはどのように変化するかを載せて今回は締めさせていただきます。
 
 

式(11)、(13)からも明らかなように速度が大きくなればズレも大きくなります。