斜めの壁制御、完全に理解した
ほんとぉ?
斜めの壁制御、完全に理解した
— Inp (@noutinp) November 2, 2018
いままで斜め最短ができないのは、ターンのズレを補正する斜めの壁制御が不完全だったことが原因かと思います。
そこで、いままであれこれやった斜めの壁制御についてまとめたいと思います。
といっても、理論的に考えることのできる脳ではないので、ざっくりとした書き方になりますがご了承ください。
・斜めの制御 [Mice Wiki]を参考に前センサだけで制御
→前センサの角度が浅すぎて壁や柱にかなり近づいたときしか補正がかからない
・半区画先を見る横センサだけで制御
→姿勢を少しでも崩すと真ん中に戻りきらない、壁や柱に寄りすぎると制御がかかりすぎる
・センサ値ー壁からの距離の関数を用いてセンサからの値を線形化したものを用いて横センサだけで制御
→閾値の調整やPゲインの調整をどう頑張っても壁や柱に寄りすぎたときの制御量が小さいため避けきれない
→制御のかかるタイミングが短い、寄りすぎてると判断したときには手遅れ
・横センサ同様に線形化したものを用いて前センサ+横センサで制御
→寄りすぎる前に前センサで補正、寄りすぎなくても横センサで補正
→成功
ということで、斜めではセンサ値を線形化した前センサと横センサを用いて補正するとうまくいきました。
ただ、自分の場合は前センサと横センサを使うのは斜め直進をするときだけで、各ターンの直線区間や壁切れを読むときは横センサのみを使うようにしています。
閾値の調整がうまくいってるのか、斜め直進時の速度は直進時の速度と変わらずに走れるようになりました。
気合で調整頑張りましょう。
以上、雑な斜めの壁制御の説明でした。