FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

斜め走行

今晩は!

暖かい日が続くようになりましたねー
梅雨までは快適です。

今日は斜め走行について書いていきたいと思います。
と言っても、私は大したことないので「こんな方法がいいよ!」とか提案するわけではなく、
知っておくべきことを知ってもらうことを目的としますー

そもそも、なぜ斜め走行をするのか
答えは1秒でも早くゴールするためです。

先輩の動画が比較しやすかったのでリンク
斜め走行の方が速くなることが予想できますね。

まあけど勘違いするといけないのは、斜め走行は早くゴールするための手段であって、競技の目的ではないことです。
スラロームで安定してゴールできるようになってから、挑戦するのが良いでしょう。


次に、知っておくと役立つこと。

・センサー
最近のマウスは、センサーが4つ付いているものが主流。
その配置や数はどうやって決まっているのか。

まず始めに、これらの配置は斜め走行のために決まっていると言うことができる。
横センサの配置を例にとると、完走だけを目的とするならば
主流の配置のように前方にセンサを付ける必要はないはずである。
つまり、真ん中にも、後ろにもセンサを配置しないのには、何かしらの理由がある。

現在の常識では、横センサは半区画前の壁を見ることが良いとされている。
その理由を話すには、「壁切れ補正」という工夫を説明しなければならない。

壁切れ補正とは、壁の切れ目を監視することによって位置ずれを修正するという工夫である。
最短走行に当たり、限界の速度で走行すると、機体は少なからず蛇行する。
それによって、例えばプログラム上では1800[mm]進んでいたとしても、直線距離では1790[mm]しか進んでいないといった状況が生じる。

この状況が壁切れ補正の出番である。
壁の切れ目が来るまで次の行動(スラロームなどのターン)をしない、と言った指令を送ることにより、位置ずれが補正されるのである。

壁切れを読むタイミングが遅いと、次の行動開始までの余裕が少なくなる。
これが、横センサを前に付ける所以である。

では、なぜ半区画前なのか。
早く壁切れを読みたいなら、カブトムシのように角をはやして壁を読んだ方が猶予時間が延びるのではないか。
ここで出てくるのが、斜め走行である。

斜め走行には、数々のターンがある。
人によって言い方と種類が若干違うかもしれないが、

・大回りターン(90度)
・180度ターン(180度)
・45度ターン(45度)
・折り返し45(45度)
・135度ターン(135度)
・折り返し135(135度)
・90度ターン(90度)

である。

2013マイクロマウス大会 エキスパートクラス優勝 最速走行
この動画で、いろいろな種類のターンをしていることが確認してほしい。

ここで、このように走行するパターンが起こりうることが分かる。
04271.png

あまりにも横センサが前を見ている機体は、このような状況で壁切れ補正をかけられない。
そして、半区画前を横センサが見ると、全てのターンで壁切れ補正ができるのである。
(加藤さんのブログを拝見されたし)

以上が、主流のマウスの横センサが半区画前を見ている理由である。




次に前センサーについて。
前センサーは2つ、それぞれ進行方向に対して、少し外側を見る機体が多い。

この所以も、斜め走行である。

斜め走行をしないならば、前センサーは3つでよい。
その役目は、前の壁があるかないかを判定するのみだからである。

斜め走行をする場合、主流の配置をすることで斜め走行専用の補正:斜め補正をかけられるようになる。

この補正は、斜め走行中に柱を感知し、衝突を回避する補正である。

04272.png

この図は盛りすぎだが、このように柱をよけて走行できる。
補正がかかると、ターンの進入角度がずれても斜め区間から抜け出すときには角度が直ることすらある。

以上のような理由から、斜め補正をかけるために前にセンサ2つを外側に傾かせて配置することが主流となっている。


たまには、である調にするのも良いですね~
これでセンサ編は終わりです ^^) _旦~~
斜めのためのハード編とプログラム編も考えてたけど…書くの疲れたので部室で聞いてください。

次回はターンの自動化について見ていきます!
ではまた来週である(o^-^)ゞ
スポンサーサイト

スラローム走行3

今晩は!
寒かったり暑かったり、服の枚数が決め難い今日この頃。

新入生はロボコン上がりの強者がいるようで、
早速SHライトレに挑戦してました。
今後が楽しみですねー(*´ω`*)

さて今回はスラローム時の軌跡をシミュレーションしてみようというお話です。

まずは、円弧スラロームのシミュレーターを作ってみましょう。

円弧の場合角速度は一定なので、入力するパラメーターは
・角速度
・重心速度
です。

04191.png

今回は適当にB列のような値にしてみました。

さて、どのようなグラフを作ればよいのでしょうか。
たぶん色々やり方があると思うのですが、私の場合は2次元平面上で考えたときの
左右のタイヤ間の中心点の軌跡をプロットしていくグラフを使っています。

ですので、時間毎のタイヤ間の中心点の座標(x,y)の値を求めていきます。

この時、必要になる情報は、スラロームの開始時の角度を0[deg]としたときの、時間毎の角度です。

どういうことかと言うと、角度が0[deg]の時はまっすぐ進むので、y軸方向の変化量が大きくx軸方向の変化はないですよね。逆に角度が90[deg]だとすると、y軸方向の変化はなく、x軸方向の変化が大きいです。
このようなことから、現在向いている方向に依存して(x,y)が変わるということが分かると思います。

そこで、必要な項目をエクセルに作ります。

04192.png

角度[rad]を用意しているのは、エクセルのcos関数とsin関数がラジアン入力になっているためです><

時間は細かく区切るほど精密なシミュレーターになりますが、
1ms(0.001秒)毎に更新で、十分な精度になると思います。
今回は2秒まで用意しましょう。オートフィルも使えないので地道に2000行までドラッグ。。。

角速度が180[deg/s]なら、角度は0.001[s]で0.18[deg]ずつ変化しますね。↓
04193_20140419225215ccc.png


エクセルに触れたことがない人もいると見て、少し補足を。
=IF(E2<90,$B$1*0.001+E2,FALSE)について、IF( , , )は条件分岐です。
IF(A,B,C)とあったとき、Aが然りならばセルの中身はBになり、Aが違うときはセルの中身はCになります。
今回はスラロームで90度旋回しようとしているので、グラフでは90度傾いた以降の(x,y)は要りません。
そのため、角度が90度を超えたらセルの中身をfalseにしています。
こうすることにより、重心速度などを変えたときにいちいちグラフの範囲を指定し直さなくてもよくなります。

$B$1について、
時間以外の項目(角度やx,y)については、オートフィルで一気にできます。
しかし、例えばB1を選んでいると、オートフィル時の次のセルはB2になってしまい都合が悪いです。
そこで、$を付けることでオートフィルやドラッグ操作時に、セルの行や列を固定することができます。

最後にx軸方向とy軸方向の変化量を求めれば、グラフの準備完了です。↓
04194.png

恐らく、SIN(F3)*$B$3*0.001+G2 が謎だと思うので説明します。
これは、x座標の変化を表しています。
SIN(F3)*$B$3*0.001がその時間での変化量で、前回の位置から動くため最後に+G2となっています。

xの変化量を意味してるSIN(F3)*$B$3*0.001ですが、
04196_20140419231814152.png
このへたな絵で伝わると信じてる!

さて、とりあえずですがシミュレーター作成の流れは追えたでしょうか。

本当はクロソイドスラロームのシミュレーターまで説明しようと思ってたのですが、
Miceの技術交流会で発表しようということになったので、少しの期間封印します。
当日をお楽しみやで!(`・ω・´)

先取りをしたい人は下のサイトがとても参考になると思います。
クロソイドの公式の詳しい証明

今回の登場人物は、角速度、重心速度でしたが、
クロソイドを用いるスラロームの場合は、
・重心速度
・螺旋角
・曲率半径
・角加速度
などが必要です。

次週は斜め走行についてです。
私も偉く語れる立場にないので、前センサを2つ付ける理由などを説明してみます。

ではではまた来週 ^^) _旦~~

今回作ったファイル

スラローム走行2

今晩は!
ついにMiceの就活組は全員就職先が決まりました!
激務(?)なところが多い気がしますが、シーズンは毎日22時まで活動した経験が活かせるでしょう\(^o^)/

今回の記事はスラローム走行の続きです。

前回のおさらいとしては、
・トレッド幅と左右のタイヤの速度差から角速度が決まる
・左右のタイヤ間の中点を「速度」「角速度」の基準と考える
です。

早速ですが、先輩が作ってくださったスラロームの記事を見てください.

円弧とクロソイドという言葉が出てきましたね。
重ねての説明にはなりますが、ステッピングモーターは脱調が敵です。

円弧でのスラロームの場合、ある角速度になるように左右のタイヤの速度を決めます。
つまり、
左右のタイヤ500[mm/s]→右タイヤ300[mm/s]、左タイヤ700[mm/s] -◎
のように変化させます。
このように一気に速度を変化させると、脱調が起こるというのはすでに説明済みですね。

そこで、角速度も加減速をするようにします。
これがクロソイドを用いるスラロームです。
このとき、角速度の上限を決めてあげないと、
クロソイド曲線wiki
↑のサイトに載っている図のように機体が急激に回転してしまう可能性があるので注意です。

さて、これを実現するのは、物理量ベースで動いているマウスならすごく簡単です。

理想速度を単位時間毎に加減速したように、理想角速度を単位時間毎に加減速すればOKです。
簡単に言っちゃうと、
左タイヤ 重心速度+出したい角速度に応じた速度
右タイヤ 重心速度-出したい角速度に応じた速度
で、◎と原理は同じです。

◎では、出したい角速度が一定であると考えることができ、±の速度は200[mm/s]で一定です。
しかし、クロソイドを用いる場合は出したい角速度自体が加減速され変わるため、
単位時間毎に左右のタイヤの速度も変わっていきます。
そしてこれにより、脱調が回避されます。

今週はここまで!
次回は、スラロームの要、シミュレーターを作成してみましょう。
↓こんな感じ
04131.png

ではでは!( ゚Д゚)

スラローム走行1

今晩は!
実は昨日、新歓にこっそり参加しました。
以前の神楽坂新歓と違って、ブース側の参加人数に制限がないのはキャンパスが広くなったから…?

お堀、部長、ミニ大会の運命やいかに!(*´ω`)

さて、今回はスラローム走行についてです。
スラロームってのは、マウスが曲がるときに逐一止まらずに、左右のモーターを加減速することで左右のタイヤに速度差をつけ曲がっていくことです。ステッピングモーターだと、ライトセーバーを振った時のような音がします。

任意の速度を出すことができるようになっていれば、案外簡単です。

2輪マウスの場合、
ターン時は左右のタイヤの中心を移動点として考えることができます。(分かりづらいね…)

つまり、物理で出てくる円運動とか角速度の加減速とかをマウスにも当てはめたいんだけど、
「どの点がそれらの角速度や速度をもっているの?」って考えたときに、
左右のタイヤの中心点がその点になります。
下の画像で言うと点線が交わっている点です。

04061.png

左右のタイヤに速度差があるとき、どのように機体は曲がっていくのでしょうか。

曲がる速さ、つまり角速度を決定する要因は2つ。
左右のタイヤの相対速度差、そしてトレッド幅です。

相対速度差について、
直感的にも分かると思いますが、左右のタイヤで速度差があるほど角速度は大きくなります。
逆に、左右のタイヤが同じ速度で回転していると、角速度が生まれないので曲がらずに直進しますね。

トレッド幅について、
トレッド幅は左右のタイヤ間の距離のことです。
同じ相対速度差だとしても、1kmタイヤが離れているときよりも、5cmしかタイヤが離れていない方が角速度が大きくなります。こちらもイメージすればすぐに分かりますね。


さて、角速度を生む2つの要因があることはOKでしょうか。
ここで、トレッド幅は機体ごとに変わらない値なので、相対速度差をこちらが決めることができれば、任意の角速度を生み出すことができます。


例えばトレッド幅が20.0[mm]の機体を考えてみます。

右タイヤ31.4[mm/s],左タイヤ-31.4[mm/s]とするとその場で旋回しますね。
この時、タイヤは図の円の軌跡を通ることが分かると思います。
円周は直径×piなので62.8[mm]。
結果、機体は1秒で180[deg]回転するので、角速度は180[deg/s]
04062.png

このように、角速度[deg/s]は相対速度に比例、トレッド幅に反比例し、
(180*相対速度差)/(pi*トレッド幅)
になります。
rad系だと式も変わりますのでその辺はお好みで。

で、上の例ではその場旋回(速度0)だったのですが、機体が速度を持っていても角速度の式は変わりません。
相対速度差に応じて角速度が決定し、速度があると中心点軌跡イメージとしては下のようになります。

04063.png

こちらも左右のタイヤの速度差が62.8[mm/s]でトレッド幅が20[mm]なので180[deg/s]です。

また、これらの例から、左右のタイヤの中心点が持つ速度と角速度は、
相対速度差から求められるということが分かりましたでしょうか。

眠くなってきたので今週はここまで!
次週は今週のを発展させて、スラローム走行のプログラムまでを見ていく予定です。

ではでは~(*´ω`*)

機械工学科に転科しました

おはようございます!

いよいよ新年度ですね。
私、念願であった機械工学科へと転科致しました。
学部2年次からの再スタートなので、同期になる方々、先輩になる方々はどうぞよろしくお願いいたします ^^)

ということで、今年度もはりきって参りましょう!($・・)/~~~

追記:エイプリルフールねたです。
時計
カテゴリ
最新記事
12月14日開始
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。