Advertisement

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

阅读量:

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

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


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

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

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

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

(1) 基本参数

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

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

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

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

\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}

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

\frac{1}{\tan \delta_o}-\frac{1}{\tan \delta_i}=\frac{r+w / 2}{l}-\frac{r-w / 2}{l}=\frac{w}{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}

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

\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) 状态转移方程

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

\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*}

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


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

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

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

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

全部评论 (0)

还没有任何评论哟~