2010年度 全日本大会

第31回全日本大会に出場してきました。


マイクロマウスクラシック エキスパートクラスにシードで出場し、
結果は(多分)7位でした。


走りこみをした期間が2,3日くらいしかない割にはそれなりに走ってくれたと思います。
シードでの出場だったので、最短走行が成功してくれて良かったです。


今年は作り始めるのが遅かった癖に、
「とりあえず動かす」ではなくて、
「コンセプト通りの事をやる」
という感じで、ソフトを結構作りこみました。
調整用のPC側ソフトも、マウス側のソフトも、資産にできるレベルの物になってきたので、そういう面で、今期の成果には満足しています。
とはいっても、走るためにクリティカルでない部分は、未実装だったり、妥協したりしている部分があるので、オフシーズンにコツコツと進めるつもりです。


運営に携わった方々、お疲れ様でした。
観客としても、参加者としても楽しむ事ができました。
また、来年度もよろしくお願いします。

2010年度 試走会

朝、斜めでの制御を弄ってから、試走会に参加してきました。


やはり、大会で使われる迷路はグリップが良く、上から2番目のパラメータまで、それなりの迷路で走りました。
パラメータの調整はほとんどなしで走ってくれました。


でも、長めの斜めはあまり試せていません。
部室でやった時も、「多分できてるのかな?」くらいの感じだったので、本番ではどうなる事やら・・・。

とりあえずの所まで。

とりあえず走れそうな所までは持ってこれました。
去年の大会で走らせた最低パラメータくらい。
45度90度が1.3[m/s]で、他が1〜1.1[m/s]くらいです。
加速度も、車体がやわらかすぎて上げられず、6[m/s^2]に制限中。


ただ、去年のMAXに近いパラメータも入っていることは入っていて、相性の良いあの路面なら完走できる可能性はありそう。
そのパラメータなら結構良い所狙えるかな・・・?
ただ、経路導出がまだ移植できていないので、一本道迷路じゃない場合とても頭の悪い結果になる可能性がある。


後は斜めでの姿勢制御がうまく行けば、本番で完走できると思う。
明日は朝から部室で調整して、その後つくばへ。
朝のうちに斜めの姿勢制御ができると良いなぁ。

つかれた

モータが急に振動し始める現象があり、その原因を特定しました。
電源電圧を見るための分圧抵抗が剥がれかけていました。
時々電源電圧が0Vになり、Duty算出の時0除算でNaNになっていたらしい。
振動した時はDuty±100%で制御をかけようとするから、モータドライバが焼けそうになっていました。
なんとか焼ける前に原因を特定できて良かったです。
あと、DRV8800はかなり頑丈らしくて安心。


ターンに潜んでいたバグを対策。
軌跡によっては帰ってこれなくなる可能性がありました。
というか、殆どのターンがダメでした。
こっちも値が0になる事によるバグです。


今日はここまで。
あと2(3)日でどこまで仕上げられるだろう?
サイエンスチャンネルの去年の動画を見て、
こんな速いんだっけ・・・。という感じです。
全然走らせられていなくて、感覚が鈍っている証拠。
がんばろう。まずは風邪気味なのを治す所から。

走行パラメータの転送と新方式のターン実装

走行パラメータ(加減速、最高速)とターンパラメータの転送ができました。
あとはログ機能を実装すれば、かなり楽に調整できるはず。


ターンのパラメータも、完全に物理量依存になったので
車体のパラメータを除けば、パラメータは

  • 使用する摩擦力
  • 速度
  • 突入位置

しかありません。あとは車体の、

からターン軌道を生成する感じになりました。
これらの車体パラメータをちょっといじるとターンパラメータを全部設定しなおしという、とても面倒な仕様です。やめとけば良かったかも・・・。


また、この軌道で走る事もできました。
ログ機能を実装して定量的?
な調整をするべきか、今まで通りの五感を駆使した調整をするべきか。
残り4日で最善の選択肢はどっちだろう。

へぇ・・・

今アツい話題の、スリップ角の考え方を新しく作っている走行軌跡ソフトに入れてみました。
といっても、自分では何も考えていなくて、kojimaさんの式をとりあえず入れてみただけ。感覚だけでも掴んでおきたい。
使うのは、ちゃんと理解してからにしよう。


こんな感じ。
青が理想的な軌跡で、
緑がkojimaさん方式の計算を適用した軌跡。

画像はおよそ1Gのターンだけれど、こんなにずれる物なんですね。
このズレが泥沼の調整をしていた、壁切れ補正距離の部分か・・なるほど。という感じ。


ちなみに、去年の全日本大会の試走会で、壁切れ補正の距離を10mmくらい変えた記憶がある。
ということは、路面(とタイヤの相性)によってスリップ角を決定する定数が変化する可能性があるという事なのかな?
しかもかなり大きなオーダーで。
単純に調整不足なマウスを持ち込んだ可能性の方が大きいけど。


こんな事やる前に新ターンをマウスに実装しないと・・・。

走行パラメータ管理

ターン軌跡の計算は、何らかの関数で近似しようと思っていたけれど、元の形のまま計算するのが一番速くて、実装も楽そう。
sqrtはどれくらい時間を食うだろう?
既にsin,cosが回っているけれど・・・


そんな訳で走行パラメータを管理する部分を書き始めました。まずはPC側から。


何故か、ターン軌跡への参照がnullになっていて3時間くらい悩む。
前にnullのままSerializeして保存していたのを読み出したので、コンストラクタで領域が確保された瞬間に葬り去られていました。こんなしょうもない事で3時間も・・・。
慣れない言語って怖い。
でも、デバッガの使い方がわかってきたので、次のトラブルにはそれなりに対応できそう。


参照とポインタの違いがよくわからない。
Classにしか適用できないポインタが参照って事なのかな?


あと、DataBindingsが、普通にクラスのプロパティやらメンバやらに設定できる事を知ってショック。
データベースのデータ専門だと思っていた。書き直したいけれど、大量のTextBoxを力技で処理する部分は丁度書き終わってしまった。
大会が終わってからゆっくり書き直そう。