2017年10月2日月曜日

バグ大量発見

タイトル通り、今日は致命的なバグを3つほど見つけ、潰しました。

今日は16*8で試してみました。早速、訳のわからないバグに遭遇しました。帰り探索をしている途中、突如急旋回して止まってしまうというものです。しかも決まった座標で。しかもフェールセーフから動作が復帰しない…。とりあえず放置して、最短をやることにしました。
ところが、最短をやろうとすると壁に追突。というか、経路がおかしい。あれ、これ既視感があるような…と思ったら昨年の機体でもあった「帰り探索の時に森をミスると壁があるところをなぜか経路にするバグ」ではないですか!エキスパートである以上森が出る可能性は否定できません。というか出したがるところだと思います。ということでここをまず直すことにしました。
動きをよく確認してみると、未知区画を突っ切ってしまっていることに気づきました。ということは壁を閉じる動作がおかしいのかなーという感じで、試しに行き探索だけにしてみました。ですが、動作変わりません。歩数マップ展開とも思い難いしうーん、と悩んでいたら、ようやく気づきました。
最短を作る時の際の隣の区画を確認する際に、マップの上位4bitを参照していないという、割とわかりにくいものでした。壁は閉じているつもりが、実際のマップデータの確認時にミスっているといった感じです。このバグは2年前から抱えていたようです。危なかった…。
と、直したつもりがまたおかしい。斜めでの距離が狂う箇所がある…と思ったら斜めの距離をV90後に更新していないというこれも危険なバグを潰しました。このままだとV90を続けるコースで事故るところでした。
そして、最初に書いたバグも見つけました。センサのログを探索中にとっていたのですが、ない配列に値を入れようとしておかしくなっていました。16*8にして分かりました。

ということで、バグを沢山見つけました。どれも走行不能になりかねないかなり危険なものたちであり、直せたことは大きいと思います。
そのぶん調整はまだまだで、とりあえず16区画直進の最短での壁制御が相当フラついていたので、まずはそこのゲインを詰めなくてはと思いました。まだまだフル迷路での斜め最短は調整が必要です。加速度も時よりフェールセーフがかかるのできついのかな、とも感じました。

今日はこの辺で。

0 件のコメント:

コメントを投稿