动手学运动规划:1.2 车辆运动学:阿克曼转向模型

你见过凌晨三点的洛杉矶吗 —科比 布莱恩特

🏰代码及环境配置:请参考0.2 环境配置和代码运行 | 动手学运动规划!


1.2.1 阿克曼转向模型(Ackermann steering geometry)

阿克曼转向模型是一种为了解决交通工具转弯时,内外转向轮路径指向的圆心不同的几何学,

这个想法是由德国车辆工程师“Lankensperger”于1817年提出的,之后由他的英国代理商Rudolph Ackermann于1818年提出专利。

依据阿克曼转向几何设计的车辆在转弯时,两个前轮是转向角不一样.内侧轮比外侧轮的转向角大;两个后轮不转向;四个轮子路径的圆心会交汇到同一个点,也就是瞬时转向中心.

(1) 基本参数

  • v : v: v:车辆速度。
  • ( X , Y ) : (X,Y): (X,Y):车辆后轴中心位置.
  • O : O: O:车辆瞬时转向中心.
  • R : R: R:车辆瞬时转向半径.
  • θ : \theta: θ:航向角,车辆当前位置与横坐标的夹角,即车辆的行驶方向。
  • ω : \omega: ω:车辆绕瞬时转向中心旋转的角速度。
  • δ i , δ o : \delta_i,\delta_o: δi,δo:内侧前轮转角,外侧前轮转角。
  • L : L: L:轴距,前后轮之间的距离。
  • W : W: W:车辆宽度
  • Δ t \Delta t Δt:时间步长

(2) 前轮偏角的几何关系

由于阿克曼模型的两前轮转角不同,可以分别得到

内侧前轮转角,外侧前轮转角,平均前轮转角:

t a n ( δ o ) = L R + W 2 t a n ( δ i ) = L R − W 2 t a n ( δ ) = δ o + δ i 2 ≅ L R \begin{aligned}tan(\delta_o) &=\frac{L}{R+\frac{W}{2}} \\ tan(\delta_i) & =\frac{L}{R-\frac{W}{2}}\\ tan(\delta) &= \frac{\delta_o+\delta_i}{2} \\ &\cong \frac{L}{R}\end{aligned} tan(δo)tan(δi)tan(δ)=R+2WL=R2WL=2δo+δiRL

将1,2式取倒并相减可得:

1 tan ⁡ δ o − 1 tan ⁡ δ i = r + w / 2 l − r − w / 2 l = w l \frac{1}{\tan \delta_o}-\frac{1}{\tan \delta_i}=\frac{r+w / 2}{l}-\frac{r-w / 2}{l}=\frac{w}{l} tanδo1tanδi1=lr+w/2lrw/2=lw

同样的方式,减去平均前轮转角可得:

cot ⁡ δ i − cot ⁡ δ = R − W / 2 L − R L = − W 2 L ⇔ cot ⁡ δ i = cot ⁡ δ − W 2 L cot ⁡ δ o − cot ⁡ δ = R + W / 2 L − R L = + W 2 L ⇔ cot ⁡ δ o = cot ⁡ δ + W 2 L \begin{aligned}\cot \delta_i-\cot \delta & =\frac{R-W / 2}{L}-\frac{R}{L}=-\frac{W}{2 L} \Leftrightarrow \cot \delta_i=\cot \delta-\frac{W}{2 L} \\\cot \delta_o-\cot \delta & =\frac{R+W / 2}{L}-\frac{R}{L}=+\frac{W}{2 L} \Leftrightarrow \cot \delta_o=\cot \delta+\frac{W}{2 L}\end{aligned} cotδicotδcotδocotδ=LRW/2LR=2LWcotδi=cotδ2LW=LR+W/2LR=+2LWcotδo=cotδ+2LW

整理可得内,外侧前轮转角与平均前轮转角的关系:

$$
\begin{aligned} \delta_i&=\tan ^{-1}\left(\frac{2 L \sin \delta}{2 L \cos \delta-W \sin \delta}\right) \ \delta_o&=\tan ^{-1}\left(\frac{2 L \sin \delta}{2 L \cos \delta+W \sin \delta}\right)\
\delta&=tan ^{-1}\left(
\frac{2 L \sin \delta_i}
{2 L \cos\delta_i+W\sin \delta_i}
\right) \
&=tan ^{-1}\left(
\frac{2 L \sin \delta_o}
{2 L \cos\delta_o-W\sin \delta_o}
\right)

\end{aligned}
$$

(3) 状态转移方程

完整的状态转移方程与自行车模型类似,代入相关参数即可

x ˙ = v x i Δ t y ˙ = v y i Δ t θ ˙ ≈ ω = v R = v L tan ⁡ ( δ ) = 2 v sin ⁡ δ i 2 L cos ⁡ δ i + W sin ⁡ δ i = 2 v sin ⁡ δ o 2 L cos ⁡ δ o − W sin ⁡ δ o \begin{align*} \dot{x}&=v_{x_i} \Delta t \\ \dot{y}&=v_{y_i}\Delta t \\ \dot{\theta}&\approx{\omega} \\ &=\frac{v}R \\ &= \frac{v}{L} \tan(\delta)\\ &=\frac{2 v \sin \delta_i} {2 L \cos\delta_i+W\sin \delta_i} \\ &=\frac{2 v \sin \delta_o} {2 L \cos\delta_o-W\sin \delta_o} \end{align*} x˙y˙θ˙=vxiΔt=vyiΔtω=Rv=Lvtan(δ)=2Lcosδi+Wsinδi2vsinδi=2LcosδoWsinδo2vsinδo

在规划算法中,一般不需要这么复杂的运动学模型,阿克曼转向模型应用不多. 大部分情况下,自行车模型即可.后续我们会在控制专题中详细介绍,因此这里不提供相关代码.


🏎️自动驾驶小白说官网:https://www.helloxiaobai.cn

🐮GitHub代码仓:https://github.com/Hello-Xiao-Bai/Planning-XiaoBai!

🌠代码配合官网教程食用更佳!

🚀知乎,微信,知识星球全平台同号!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值