壁情報の上書き

今まで壁情報は最新の検出結果に全て上書きしていたのを、
壁有りと判定済みの壁は上書き禁止にしてみる

同様に壁無しと判定済みの壁も上書き禁止にしたほうが良いのだろうか?

ターンの補正


180度ターンと、直線から斜めに入る135度のターンの補正を入れる
①でターン直前にターン方向と逆の壁との距離を測り、壁に近づき過ぎている場合にはターンの半径を大きくする。ここでは、外側の壁が無い場合もありえるので壁に近い場合のみを評価している
②今回補正の対象とする2つのターンは内側に壁があることが保証されているので、その壁との距離を測る。具体的には壁切れの20~25mm前の壁との距離を測る、内側に近づき過ぎている場合はターン半径を小さくし、内側から離れすぎている場合はターン半径を大きくする

ターン中の壁切れチェック


前壁がある場合に前壁との距離を合わせ、ターン中に壁切れを監視し、
ターン後に壁切れからの距離を評価して、
基準値よりも距離が長ければ、ターン後のオフセット距離を長くし、
基準値よりも距離が短かければ、ターン後のオフセット距離を短くする
これで、やっと↓のパターンの迷路をクリアできるようになった

吸引ファン変更


薄い吸引ファンが届いたので早速組付けてみる
吸引力は3.5Vで29g。ファンモータの劣化の状態もあるかもしれないが元の7㎜厚の物より強くなって、ついに自重を超えた。

ところで、今回はDMMのアクリルUltra Modeで出力したのだけど、以前のXtreme Modeに比べると造形のエッジが丸いように見える。ギヤとか大丈夫なんだろうか?

超信地旋回の処理


180度一括で回転するようにして、回転後に左右壁が見えるまで後退するようにする。
さらに、袋小路では左右の壁との距離を測って、直後のターンでターン後のオフセット距離を変更する。

連続ターンの横壁補正


探索中のターンの中で前壁補正が使えないパターンが苦手だったのが解決できた
まず①で、右ターンの直前に左壁との距離を測り、ターン後のオフセット距離を補正することでX方向のズレを補正する
次に②で、左ターンの直前に右壁との距離を測り、ターン後のオフセット距離を補正することでY方向のズレを補正する

串区間の制御


〇久々に串区間の制御を入れる
左右の壁切れ位置の差を測って、差が5mm以上差があるようなら、進行方向を3度ずらして30mm進む。

〇変則四輪では90度づつの超信地旋回はあまり適切ではないのでないか?タイヤの汚れ具合にによっては90度回転したときに車体の位置が前後左右に大きくズレることがある。
だとすれば、素直に1回で180度回転をして、その後に、左右センサで左右のずれを測定して、壁切れで前後位置のズレを測定して、次のターンのオフセット距離で補正したほうが良いように思う

〇直線の終わりの定速度走行区間
ターン前には一定速度で走る区間はどのくらいにすべきか?というか揺らぎはどの程度が?
最高速度から定加速度で減速していく作りなので、最高速度が速いほどに減速中の誤差の蓄積が厳しくなってしまう。
とりあえず2cm、または、最高速度で10ms進む距離(4m/sなら4cm)の長いほうに設定するが、
リアルタイムに位置と速度から加速度を更新したほうがよいのだろうか?

こつこつ

ターンの目標最終角度をグローバルな角度にしているため、長期間の探索で0度がずれてくるのが不安になっていた。
そこで、5区間以上両壁がある区間で左右のセンサ値が少ないまま走行している場合に現在の角度を0度にするように変更。

前壁での角度補正を、壁に近づきすぎている場合には行わないように変更。
センサの値がサチル寸前なのと、左右の前センサのバラツキの修正が難しいので一旦無視する。

上2つの処理を入れていると前壁センサは左右に2つも要らないような気がしてきた
前1個、真横2個、斜め2個の5個の構成が気になる