忍者ブログ

北信越:完走の感想

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


北信越大会

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

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



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


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


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

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

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


大会本番

まず、結果はこちら


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

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


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


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

そして、僕はといえば…

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

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



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

嬉しい!!


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


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





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

PR

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

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)からも明らかなように速度が大きくなればズレも大きくなります。

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

2017年04月14日
ようやく3回目です。
まだイントロが終わった段階でしかありませんが。
これまでの記事は1回目の目次からどうぞ。

というわけで数式をいじりながら移動距離を求めていきます。
全部やると長くなりそうなので、今回は円弧部分を求めるところまで。


文字の定義


計算に移る前に以降使う文字の定義を決めておきましょう。
前回の記事からスラロームパラメータとは、「角加速度、目標角度、加速角度、重心速度」だとわかりました。これらをそれぞれ以下のように置くことにします。

また、機体の角度をθと置くことにします(下図参照)。



すると、スラロームの各要素は、それぞれθが以下の範囲内であると表せます。

※ここでは、角減速は角加速と同じように行うとする。つまり、角加速度の絶対値が同じであり、かつ角減速し角速度0になるまでに必要な角度は加速角度θAと等しい。




円弧の移動距離


まず、簡単な円弧部分の移動距離について求めていきます。
スラロームから円弧部分のみを取り出したのが下図になります。



ここで、円弧の曲率半径をRと置きました。
また、移動距離を考えるので、座標軸としてxy軸を追加し円の中心をその原点とします。

θAθT-θAが何故このように決まるのかわからない人は接線をひいて考えることで理解の助けとなるかもしれません。

さて、では円弧の移動距離を考えていきます。


よって、円弧のx軸方向とy軸方向への移動距離をそれぞれ求めることができました。
式(3)、式(4)からパラメータと移動距離の関係を知ることができます。

また、式(3)、式(4)は円弧を決める変数R人間が決めるパラメータθTθAによる関数の積の形で移動距離を表すことができています。
よって、将来的には、移動距離とパラメータから曲率半径を求める(円弧の軌跡を求める)ことができそうだと予想されます。
とはいえ、それができるかはクロソイドがどう表されるかによりますが。

まとめ


というわけで、今回はここまで。
今回わかったことは円弧の移動距離は以下のように表されます。



次回はついにクロソイドに入りたいと思います。



 | HOME | 次のページ »