[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
マウスにおけるスラローム走行
今回はマイクロマウスにおけるスラローム走行について解説していきます。
これは僕個人の考えですので、間違っている可能性が大いにあります。間違いを見つけたらご指摘お願いします。
スラローム走行って?
雑に言ってしまえば車とかでやるカーブ走行です。
(皆スラロームスラローム言うけど、ググってもマウスの記事ヒットしないし…)と思っていたんですが、今調べたらRTさんがいい感じの記事を書いてくださっています。
素晴らしい記事
まずは、この記事を読んで、スラロームのあるなしで如何に走行タイムが変わるかを実感してください(記事中段の動画参照)。
どうです、やりたくなってきたでしょう?
以下の記事では前提として、高校物理の知識を要求しています。ご了承ください。
そもそもスラロームとは何ぞや?
先ほど紹介した記事の最後の方にスラロームが図解されています。
が、おそらくこれからスラロームを導入しようという方は図を見てもよくわからないのではないのでしょうか?
少なくとも、スラロームを導入する頃の僕に見せても分からないと思います。
なので、より細かく説明していきます。
ということで例の図です。
黒い部分は直進で、カラフルな部分がスラロームですね。
どうやら3種類に分かれているようですが、よくわかりませんね。
なので……
どーん。
あっさりしましたね。なんだか2つくらいなくなりましたが、軌跡的にはコレで曲がれそうじゃないですか。円っぽいし。
で、実際やってみるとどうなるかというと……
普通に曲がれます(たぶん)。僕はやってないのでわかりませんが出来るはずです。
じゃあ、「円弧だけでわかりやすいしコレでいいじゃないか!」というと、そういうわけにもいきません。
円弧だけのスラロームは何がまずいのか?
ここで角速度を考えてみましょう。この円弧だけのスラロームでは角速度は下図のように変化するはずです。
はい、不連続ですね。
コレでピンときた方もいるかもしれません。
直進区間から円弧区間、円弧区間から直進区間へ移る時角速度には不連続な飛びが生じています。角加速度は角速度の微分で表されるので、この飛びにおいて角加速度は無限大に発散します。
この無限大というのがよくないわけですね。ステッピングモーターなら脱調しますし、DCモーターなら追従しきれません。
角速度を連続にすると…?
では、角速度を連続にしましょう。
直進時の加減速と同じですね。角速度の飛びをなくしたのが下の図です。
緑色の加減速区間が追加されました。これで角速度に飛びがなくなりました。
やったね。
いや、まだ微分不可能じゃないかというツッコミはちょっと置いておきますごめんなさい。
さて、この加減速区間を追加するとマウスが描く軌跡はどうなるでしょうか?
なんと元の図から消したうちの1つが戻ってきました! あとはオフセット区間があればスラローム完成です。
では、オフセット区間へ…と行く前にもう少しこの図を見ていきましょう。
一見この図は円弧のみのときと軌跡は変わらないように見えますが、それは図が小さいからです。
というわけでわかりやすい分解図。こうしてみると、緑の部分は円弧のみと比べ曲率が緩やかなことがわかりますね。個人的にはこの図がスラロームを最もよく表していると感じてます。
ちなみに、図中下部の緑の曲線はクロソイド曲線といいます。興味のある方は調べてみてください。
そして、スラローム完成へ……
では、最後にオフセット区間を入れます。このオフセット区間、ただの直進です。つまり、カーブの前後にちょびっと直進区間を入れてあるだけなのです。
なので、スラローム自体はオフセット区間がなくても成立します。では、オフセット区間がなくていいかというと、入れることを強くオススメします。(なんかさっきもこんな流れあった気がしますが)
実際にスラロームを導入するとわかりますが、計算上の軌跡と実際のマウスの軌跡は一致しません。それにはスリップ角だとか難しい要因が関わってくるのですが、ここでは省略します。
大事なことは計算と現実は一致しないということです。
そこで、オフセット区間が活きてきます。
このオフセット区間があるおかげで、スラロームが計算より伸びたらその分オフセット区間を短くするというようにして調整することが出来るわけです。
また、このオフセット区間は直進であるため、階段状のスラロームの連続区間であっても姿勢制御をかけることが出来ます。(まあ、これはかけない方が安定する人もいたり、と機体によるようですが)
というようにオフセット区間は十分なメリットを含んでいるわけです。ぜひ入れましょう。
結局、スラロームって?
これまでの記事で説明したことをまとめると…
・オフセット区間 = 直進
・それ以外 = 角速度の台形加速
これだけなんです。
つまり、スラロームとは直進と角速度の台形加速の組み合わせである。
実装にむけて
前述のようにスラロームとは直進と角速度の台形加速の組み合わせです。乱暴な言い方をするなら、直進時の台形加減速の速度でなく角速度バージョンです。
最後にヒントとして対応表を乗せておきます。
頑張ってください。