阿克曼与双阿克曼模型正逆运动学以及状态空间方程

阿克曼与双阿克曼模型正逆运动学以及状态空间方程

前言 阿克曼转向是一种现代汽车的转向方式,主要体现在汽车转弯时,内外轮转的角度是不一样的,内侧轮胎转弯半径小于外侧轮胎,这将有效的减少轮胎的摩擦,增加运动平稳性以及轮胎的寿命。而双阿克曼系统则是前后轮都是阿克曼转向的一种系统,可以让车辆的转弯半径更小,行动更加灵活。 正向运动学 这里的正向运动学是基

前言

阿克曼转向是一种现代汽车的转向方式,主要体现在汽车转弯时,内外轮转的角度是不一样的,内侧轮胎转弯半径小于外侧轮胎,这将有效的减少轮胎的摩擦,增加运动平稳性以及轮胎的寿命。而双阿克曼系统则是前后轮都是阿克曼转向的一种系统,可以让车辆的转弯半径更小,行动更加灵活。

正向运动学

这里的正向运动学是基于输入的V(线速度)W(角速度)来计算车辆的转弯半径R以及两个前轮的转向角度δi和δo

阿克曼

image-20240609161210991

  • δi:右前轮转向角度

  • δo:左前轮转向角度

  • δ:单车模型中输入的角度

  • R:转弯半径

  • L:车辆轴距

  • L_w:车辆轮宽

求解转弯半径R和前轮转角

已知条件
  • V:输入的线速度

  • W:输入的角速度

  • δ:由W对时间积分可得

  • L:车辆轴距

  • L_w:车辆轮宽

求解过程

利用已知条件和简单的三角几何知识,我们可以得出

R = \frac{L}{\tan(δ)}


对于左右前轮转角,我们可以计算得出

tan(δ_o) =\frac{L}{R+\frac{L_w}2}


tan(δ_i) =\frac{L}{R-\frac{L_w}2}


求解完毕

双阿克曼

image-20240609164038186

对于双阿克曼而言,所有的部分与单阿克曼一样,唯一的区别的地方在于,双阿克曼因为后轮也转动的缘故,所以转弯半径将会缩短,如果前后阿克曼的角度相同,那么就会使得转弯半径为之前的一半

R = \frac{\frac{1}{2}L}{\tan(δ)}=\frac{L}{2\tan(δ)}


后轮转向角度的计算方法与前轮保持一致

逆向运动学

对于阿克曼车辆,假设我们希望从当前状态 (x0,y0,θ0) 移动到目标状态 (xg,yg,θg),逆运动学可以帮助计算需要的速度 V 和转向角 δ

另外,对于car-like机器人,使用机械结构实现阿克曼转向的情况,轮子的转向角度情况,双阿克曼和单阿克曼是一样的角度

阿克曼

转弯半径

转弯半径通过预期路径来进行确定

转向角的计算

δ_i = \arctan\left(\frac{L}{R - \frac{W}{2}}\right)


δ_o = \arctan\left(\frac{L}{R + \frac{W}{2}}\right)


对于单车模型而言

\tan(δ) = \frac{L}{R}


双阿克曼

对于前后阿克曼模型来,也就是夹角进行改变,因为相同δ下,前后阿克曼的转弯半径会更小,所以区别也就是

\tan(δ) = \frac{\frac{1}{2}L}{R} = \frac{L}{2R}


状态空间方程的建立

运动学模型描述

位置变化率

\dot{x} = v \cos(\theta)


\dot{y} = v \sin(\theta)


这里,xdtydt 分别是位置 x 和 y 关于时间的导数,表示机器人在x和y方向上的速度分量。

朝向变化率

\dot{θ} = \frac{v}{L} \tan(\delta)


这里的θ指的是车辆的朝向角,而δ指的是车辆的前轮与车辆朝向之间的夹角,这里的推到过程如下所示

\dot{θ} = \frac{v}{R}=\frac{v}{\frac{L}{\tan(δ)}}=\frac{v}{L} \tan(\delta)


对于双阿克曼来说,这个地方的变化为

\dot{θ} = \frac{v}{R}=\frac{v}{\frac{L}{2\tan(δ)}}=\frac{2v}{L} \tan(\delta)


状态空间方程的建立

定义各种变量

\text{状态向量 } \mathbf{x} = \begin{bmatrix} x \\ y \\ \theta \end{bmatrix}


\text{控制输入向量 } \mathbf{u} = \begin{bmatrix} v \\ \delta \end{bmatrix}


非线性状态空间方程

\dot{\mathbf{x}} = \begin{bmatrix} \dot x \\ \dot y \\ \dot θ\end{bmatrix} = \begin{bmatrix} v\cos(\theta) \\ v \sin(\theta) \\ \frac{v}{L} \tan(\delta) \end{bmatrix}


  • xdt 由当前的速度和朝向角决定,代表在x方向上的速度分量。

  • ydt 同样由速度和朝向角决定,代表在y方向上的速度分量。

  • θdt 由速度、车辆轴距 L,以及前轮转向角 δ 共同决定,描述了车辆的旋转速率。

对于双阿克曼来说,这个地方的变化同样也就只有一个地方

\dot{\mathbf{x}} = \begin{bmatrix} \dot x \\ \dot y \\ \dot θ\end{bmatrix} = \begin{bmatrix} v\cos(\theta) \\ v \sin(\theta) \\ \frac{2v}{L} \tan(\delta) \end{bmatrix}



Comment