壁切れ補正


壁ぎれ制御についてまとめる予定.かなり未完成.

壁ぎれとは

横壁に対して平行に走っていると仮定する.横センサー値が急激に変化することは,それは壁の切れ目に到達したことを意味している.そのため,ロボットの現在位置の絶対位置情報(の一部)を取ったといえる.

1区画走行の終了条件

Kabegire
Kabegire2

初期位置をx_1,y_1\displaystyleとする.現在位置をx(t),y(t)\displaystyleとする.どんな条件を満たせば\theta\displaystyle方向に90[mm]進んだといえるか解析する.

l(t)\displaystyle\theta\displaystyle方向への移動量,m(t)\displaystyle\theta\displaystyle方向の垂直方向への移動量とすると,以下の関係式が成立する.

(1)    \begin{align*} \begin{bmatrix} l(t)\\m(t) \end{bmatrix} \end{align*} = \begin{bmatrix} [crayon-58d5e9e44a61d693093111/] -\sin\theta & \cos\theta \end{bmatrix} \begin{bmatrix} x(t)-x_1\\ y(t)-y_1 \end{bmatrix}

壁ぎれをしてから次区画までの距離をl_{off}\displaystyleとする.ある時刻t_{wall}\displaystyleで壁きれを検知したとすると,以下を満たせば補正込みで1区画進んだと判定することができる.

(2)    \begin{align*} l(t_{wall}) + l_{off} < l(t) \end{align*}

このように,(x,y)座標系で表示された現在位置を(l,m)座標系上で表現しておくと,壁切れの終了条件はシンプルに書くことができる.壁切れに限らず,その他の制御則についても(l,m)座標系上で計算するとシンプルに書けることが多いため,(l,m)座標系はおすすめである.

もちろん,以下のように,(x,y)座標系上で壁切れの終了条件を判定しても良い.

(3)    \begin{align*} &(x(t_{wall})-x_1)\cos\theta+(y(t_{wall})-y_1)\sin\theta + l_{off}<(x(t)-x_1)\cos\theta+(y(t)-y_1)\sin\theta\\ &l_{off}<(x(t)-x(t_{wall}))\cos\theta+(y(t)-y(t_{wall}))\sin\theta \end{align*}