全日本マイクロマウス大会お疲れさまでした。大会の運営関係者の方々に感謝申し上げます。

今年の全日本大会、本当に焦りました。まずは会場に入ったところからお話しします。全日本大会には前日入りはせず、試走会に参加せずに一発本番を決めようと思っていました。会場に到着したのが少し早かったので、試走の迷路が置いてあるということで試しに走らせました。すると見事に前壁を読み違えて全く進まない!?これはまずい。すぐにセンサー関係の部品が壊れていないかを疑ってセンサー値をPCで確認するも問題なし。それで一安心するものの、今から閾値調整をして前壁補正の値を変えてで色々しないといけないのはバグを生む原因になって怖いし、流石に時間が足りなそう。そんなことをしているうちに、もうフレッシュマンの予選は始まっていました。幸いなことに、私の出走は108番目。最後から二番目でした。今のうちにすべてを調整しないといけないということで必死でした。まずわかったことは、会場の迷路は反射率が異常に高いこと。1kHzでセンサーにフィルターは掛けていますが、得られるセンサー値は会場と部室で全く違いました。部室の迷路では角度依存を殆どしなかったセンサーが、大会会場では角度によってセンサー値が全く違う・・・そこにK先輩が駆けつけてくれました。焦っている私に落ち着いて対処法を一緒に考えていただけました。まず、Bifilarの真正面についているセンサーは角度依存により使いものになりません。急遽左右についた前センサーに役割を受け渡す作業を開始しました。その辺のプログラムは簡単に書き換えられるように工夫して予め作ってあったので、変更は時間がかからずにできました。あとは壁の閾値調整と前壁補正のゲインを勘で決めたらある程度安定して動いていたので一安心。フレッシュマンの出走順を確認すると、この時点で60番くらいの人が出走を終えていました。もう少し時間があるので試走を続けていると、様々な人から声を掛けていただき、お話をすることができました。正直そんなに精神的な余裕はありませんでした。会場で問題だったのはセンサーの値だけのようで、最短走行のパラメータは何も調整せずとも安定していました。今思い返すとセンサー値が違うのに壁補正のゲインを触っていなかったことに気付きました。まあ適切なゲイン値から定数倍されたところで暴れるような制御の入れ方はしていないので大丈夫だとは思いますが。それと部室の迷路で壁補正を少し低めに設定していたのが良かったのかもしれません。いざフレッシュマンの予選に向かうと、結構期待されてしまっていて本当に神に祈る気持ちで走らせていました。会場で閾値調整をしたことによって、部室で走らせていた時の様に安定していて安心しました。ここまでが午前中の出来事だったとは...これからは前日入りしてしっかりと試走をするか、会場でセンサーのキャリブレーションや閾値調整をすぐに済ませられるモードを作らないといけないなと強く実感しました。今大会でどこを調整しないといけないかがわかったので、次の大会までにはキャリブレーションできるようにしようと思います。


さて、結果的な順位からすると優勝することができましたが、初代田代賞を取られた某F氏もフレッシュマンなところ辞退してエキスパートに参加されて4位を取られたとのことで、そちらの方が何倍も価値があることを先に述べておきます。私の機体では吸引機構が搭載されていないこととソフト共に全く敵わない方です。ただ、来年は負けないので覚悟していてください!(後々言わなきゃよかったと後悔するアレ)
それと誰からも聞かれていませんが、今大会で使用したパラメータを、来年のフレッシュマンに向けて公開しようと思います。ただ、DCモーターの板マウスじゃないと参考にならないかもです。ステッピングモーターを使ったことがないのでわかりませんが。来年のフレッシュマンでは最近オーソドックスになってきているDCモーター変則四輪吸引が出るんですかね。楽しみです。

まずは予選の結果
1走目:探索走行    成功(往復成功)
2走目:最短走行    00:02.788(往復成功)
3走目:最短走行    00:03.???(往復失敗)

そして決勝の結果
1走目:探索走行    00:33.500(往復成功)
2走目:最短走行    00:06.195(往復成功)
3走目:最短走行    00:06.135(往復成功)
4走目:最短走行    R
5走目:最短走行    00:05.454(往復失敗)

走行結果を並べてみると、大会の会場でも走破性高かったなと思います。
と言ってもまだこのマシンの限界は引き出せてないわけですし、力を持て余して走破性を語っても仕方ありませんが。まず予選の3走目ですが、動画を見直したところ、機体を置いたときの初期角度がズレていたような動きをしていました。Bifilarはジャイロから得られる角度を参照しながら壁情報を反映させるように壁補正を掛けているので、初期角度がズレると何も合わなくなります。それでも短い迷路だったので、最後は前壁補正でゴリ押ししてゴールにはなったものの、2走目の方がいいタイムでした。決勝4走目のリタイヤについては後に記載します。

続いては走行パラメータを公開

<フレッシュマン予選の走行パラメータ>
1走目:探索走行
    加速度(加速)    5[m/ss]
    加速度(減速)    5[m/ss]
    重心速度 0.6[m/s],
    旋回速度 0.6[m/s]
2走目:最短走行
    加速度(加速)    12[m/ss]
    加速度(減速)    15[m/ss]
    最高速度 3.5[m/s],
    旋回速度 ALL 1.0[m/s]
3走目:最短走行
    加速度(加速)    12[m/ss]
    加速度(減速)    15[m/ss]
    最高速度 3.5[m/s],
    旋回速度 {Big90deg, 45deg, 135deg, 90deg, 180deg}
      {1.4m/s, 1.2m/s, 1.0m/s, 1.0m/s, 1.0m/s}
  
<フレッシュマン決勝の走行パラメータ>
1走目:探索走行
    加速度(加速)    5[m/ss]
    加速度(減速)    5[m/ss]
    重心速度 0.6[m/s],
    旋回速度 0.6[m/s]
2走目:最短走行
    加速度(加速)    12[m/ss]
    加速度(減速)    15[m/ss]
    最高速度 3.5[m/s],
    旋回速度 ALL 1.0[m/s]
3走目:最短走行
    加速度(加速)    15[m/ss]
    加速度(減速)    20[m/ss]
    最高速度 3.5[m/s],
    旋回速度 ALL 1.0[m/s]
4走目:最短走行
    加速度(加速)    12[m/ss]
    加速度(減速)    15[m/ss]
    最高速度 3.5[m/s],
    旋回速度 {Big90deg, 45deg, 135deg, 90deg, 180deg}
      {1.4m/s, 1.2m/s, 1.0m/s, 1.0m/s, 1.0m/s}
5走目:最短走行(MAXパラメータ)
    加速度(加速)    15[m/ss]
    加速度(減速)    20[m/ss]
    最高速度 4.0[m/s],
    旋回速度 {Big90deg, 45deg, 135deg, 90deg, 180deg}
      {1.4m/s, 1.2m/s, 1.0m/s, 1.0m/s, 1.0m/s}

このようなパラメータで本番は走っていました。
実は探索速度は0.6[m/s]しか用意していませんし、最短走行のターン速度は1.0[m/s]以下のパラメータを用意していませんでした。決勝の2走目で走ったパラメータが殆ど最低パラメータです。まあこれは結果論であって、もっと時間があれば使うかどうかもわからないパラメータも用意していたと思いますが、そんなに沢山のパラメータを揃えている時間はありませんでした。最低パラメータを1.0[m/s]にしたことについて私の考えとしては、機体のポテンシャルと旋回の方法に依存しますが、私の機体の場合、ターン速度1.0[m/s]でコケるならばターン速度を落としても完走する確率は殆ど変わらないというのが経験則です。1.0[m/s]の旋回は横G的にもそれほど厳しくありません。余裕を持ち過ぎているくらいターン速度の低いパラメータを作る時間があったら、走破性を上げるための様々な補正を考えたり、大会で確実に走りたいパラメータの調整に時間を回すのが賢明かと思います。最低パラメータは、本当にその速度まで減速してターンをしないと安定しないかを考えて、適切な最低パラメータでいいように思います。しかし、1.0[m/s]ターンを最低パラメータにしたのは上げ過ぎだったかなと周りを見て思いました。それでもオール1.0[m/s]ターンで走った最短走行では、行きも帰りもコケることはなく終始安定していたので良しとします。
最短走行では行と帰りで往復させていますが、往復のパラメータは行も帰りも全て共通にしています。ハーフ・エキスパート優勝者M氏がやられているのを見てなるほどと思い、使わせていただいております。往復をする利点としては、行きで使った旋回の組み合わせを、迷路を変えることなく全て左右逆の旋回にして確認をすることができるからです。何種類もの迷路を組み替えずに、すべてのターンを効率よく確認できる最高の手段です。また、速度を上げてゴールしたときは少し位置がズレていることでしょう。そこからの復帰ができるかどうかの確認も大事なところです。練習用の迷路で旋回を完璧にし過ぎると、壁補正などの調整ができなくなってしまいます。最初のうちは、わざと旋回半径をずらして壁補正の調整をしてもいいくらいだと思います。練習用の地面と会場の地面ではグリップに差が出ます。よってスリップ角も変わってきます。練習用の迷路で旋回の調整だけに力を入れすぎると、会場の床によって調子が狂い、位置補正などの調整をしてこなかったマウスはコケやすいと思います。私の場合、旋回の調整は必要最低限の時間を使い、ガバガバな旋回からの立ち直りの補正の調整に時間をかけてきました。完璧な旋回の調整は大会の前々日頃の最後の最後にやればいい話です。なにより私の場合はターンの調整方法に問題があることに全日本大会の2週間くらい前に気付いたレベルで変なターンばかりしていました。その分補正に力を入れることができたので、結果的によかったなと思います。最初から完璧な旋回をすると大切なズレを見えなくしてしまいます。本番で安定させるには、機体があるべき位置からズレた状況から、適切に対応して素早く適当な状態に収束する補正が唯一の頼りです。
また、決勝の4走目では180degターンの最中に壁に当たってフェイルセーフがかかりました。部室の迷路では、この程度掠ったくらいではフェイルセーフがかからないようにしていたのですが、やっぱり地面の違いからか、フェイルセーフの閾値も変えないといけなかったようです。そもそもフェイルセーフを切っておけばよかったと後悔しています。あのくらいなら壁補正と壁切れで完走できていたと思います。180degターンは依然と比べるとインコースを狙わないようにはしたものの、スタートして一番最初の1.4[m/s]の90degターンで旋回半径をオーバーしているので(調整段階で合っていないことは知っていたが角速度が追従しないのでパスした)、その分のy軸にプラスされた誤差で180degで死んだと考えています。走っていくうちに補正が掛かってズレは解消されるだろうと思っていたら、まさかの一番来てはいけないタイミングと組み合わせで180degターンをするようなルートでした。まさかこんなに上手くはまってくれるとは迷路製作者も想像していなかったことでしょう。そもそも全面探索をしていればあのルートを通ることもなかったことですが。
そして、決勝の4走目でリタイヤになったのに、なぜ5走目で更に加速度を上げたかというと、速度の追従には自信があったからです。今回MAXパラメータを20m/ssに設定していますが、調整では25[m/ss]でもきれいに追従していました。しかし若干スリップしているようで、本番では使えないようにしていました。正直言って旋回時のズレ誤差は加速度とは独立なので、最後MAXパラメータを使わずに後悔するまいと使用しました。結果的には加速度を上げた方が補正がいい感じになり完走することができました。因みに壁補正は速度を上げるとゲインを線形的に下げるように組んでいるので、何か他の補正が働いてくれたのでしょうか。今は特定できていません。

さて、来年の全日本大会まで一年を切ったってマジですか?
来年はエキスパートでも戦えるハードとソフトを作りたいと考えています。現段階でハードの構成が固まってきているので、早いところプロトタイプを作って、二作目で落ち着くものにしたいです。今年の機体Bifilarですが、前作Earがあっての機体です。Earには一カ月ほどハード製作に時間をかけて、実際に走らせてみて改善点を洗い出し、Earベースで時間をかけずに作ったBifilarに落ち着けたのでよかったかなと思います。次回作もこのような流れで行きたいです。因みに、次回作の機体名はトリファイラです。よろしくお願いします。

最後に今年の機体を載せて終わります。
CxoW68aUUAAYK2e
機体名:Bifilar(バイファイラ)

それでは、長文読んでいただきありがとうございました。