移動機器人的運動學模型:車式移動機器人

車式移動機器人運動學模型

問題

車式移動機器人更具有普遍意義。
在這裏插入圖片描述

參數

  • vv:機器人自身線速度
  • ω\omega:前輪轉向角速度
  • u\textbf{u}:輸入,包括vvω\omega
  • q˙\dot{\textbf{q}}:機器人在環境中的位姿描述
  • θ\theta:機器人縱向軸與x軸之間的夾腳
  • ϕ\phi:前輪轉角
  • LL:車身長度

推導1

當知道機器人自身前進速度前輪轉角角速度時,求機器人在環境中的位姿。

q˙\dot{\textbf{q}}= f(u)f(\textbf{u})

定義機器人在環境中位姿:
q=[xyθϕ] \textbf{q}=\left [ \begin{aligned} x \\ y \\ \theta \\ \phi \end{aligned} \right]
機器人輸入,包括自身線速度和前輪轉角角速度:
u=[vω] \textbf{u}=\left [ \begin{aligned} v \\ \omega \\ \end{aligned} \right]

x˙=cos(θ)vy˙=sin(θ)vϕ˙=ω \begin{aligned} \dot{x} &= \cos(\theta) v \\ \dot{y} &= \sin(\theta) v\\ \dot{\phi} &= \omega \end{aligned}
對與計算角速度可以參照下圖(其他地方扣過來的,注意符號使用不太一樣)
在這裏插入圖片描述
就有了θ˙=tanϕLv \dot{\theta} = \frac{\tan\phi}{L} v
那麼,
q˙=[cos(θ)0sin(θ)0tanϕL001]u \dot{\textbf{q}}= \begin{aligned} \begin{bmatrix} \cos(\theta) & 0 \\ \sin(\theta) & 0 \\ \frac{\tan\phi}{L} & 0 \\ 0 & 1 \end{bmatrix} \end{aligned} \textbf{u}
更詳細的,即:
[x˙y˙θ˙ϕ˙]=[cos(θ)0sin(θ)0tanϕL001][vω] \left [ \begin{aligned} \dot{x} \\ \dot{y} \\ \dot{\theta} \\ \dot{\phi} \end{aligned} \right]= \begin{aligned} \begin{bmatrix} \cos(\theta) & 0 \\ \sin(\theta) & 0 \\ \frac{\tan\phi}{L} & 0 \\ 0 & 1 \end{bmatrix} \end{aligned} \left [ \begin{aligned} v \\ \omega \\ \end{aligned} \right]

推導2

另一種情況是,知道機器人的前輪轉角角度(即方向盤角度)和加速度(即油門),想要求機器人的狀態。

  • vv:機器人自身線速度(前進速度)
  • θ\theta:機器人縱向軸與x軸之間的夾腳
  • u\textbf{u}:輸入,包括vvθ\theta
  • q˙\dot{\textbf{q}}:機器人在環境中的位姿描述
  • ϕ\phi:前輪轉角
  • LL:車身長度
    機器人的狀態
    q=[xyθv]T \textbf{q}=\left [ \begin{aligned} x \\ y \\ \theta \\ v \end{aligned} \right]^T
    機器人輸入,包括(油門)加速度和(方向盤)前輪轉角:
    u=[aϕ] \textbf{u}=\left [ \begin{aligned} a \\ \phi \\ \end{aligned} \right]
    那麼,
    x˙=vcos(θ)y˙=vsin(θ)θ˙=vtan(ϕ)/Lv˙=a \begin{aligned} \dot{x} &= v * \cos (\theta)\\ \dot{y} &= v * \sin (\theta)\\ \dot{\theta} &= v * \tan(\phi) / L \\ \dot{v} &= a \end{aligned}
    更進一步單步更新可以表示爲:
    xt+1=xt+vcos(θ)dtyt+1=yt+vsin(θ)dtθt+1=θt+vtan(ϕ)/Ldtvt+1=vt+adt \begin{aligned} x_{t+1} &= x_{t} + v * \cos (\theta) * dt\\ y_{t+1} &= y_{t} + v * \sin (\theta)* dt\\ \theta_{t+1} &= \theta_{t} + v * \tan(\phi) / L*dt\\ v_{t+1} &= v_{t} + a * dt \end{aligned}

Reference

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章