自动驾驶中的车辆运动学模型

自动驾驶中的车辆运动学模型

要控制车辆的运动,首先要对车辆的运动建立数字化模型,模型建立的越准确,对车辆运动的描述越准确,对车辆的跟踪控制的效果就越好。除了真实反映车辆特性外,建立的模型也应该尽可能的简单易用。自行车模型(Bicycle Model)是一种常见的车辆运动学模型。

自行车模型(Bicycle Model)的建立基于如下假设:

1)不考虑车辆在垂直方向(Z轴方向)的运动,即假设车辆的运动是一个二维平面上的运动。

2) 假设车辆左右侧轮胎在任意时刻都拥有相同的转向角度和转速;这样车辆的左右两个轮胎的运动可以合并为一个轮胎来描述。

3)假设车辆行驶速度变化缓慢,忽略前后轴载荷的转移。

4) 假设车身和悬架系统都是 刚性系统

5)假设车辆的运动和转向是由 前轮驱动( front wheel only ) 的。

1、以后轴为原点的车辆运动模型



自动驾驶中的车辆模型可以简化为二维平面上运动的刚体结构,任意时刻车辆的状态 q=(x,y, \theta) ,车辆坐标的原点位于后轴的中心位置,坐标轴与车身平行。s表示车辆的速度, \phi 表示steering angle(左为正,右为负),L表示前轮和后轮的距离,如果steering angle保持 \phi 不变,车辆就会在原地转圈,半径为 \rho

车辆运动模型:

\dot{x} = f_1 (x, y, \theta, s, \phi)

\dot{y} = f_2 (x, y, \theta, s, \phi)

\dot{\theta} = f_3(x,y, \theta, s, \phi)

在一个非常短的时间 \Delta t 内,可以近似认为车辆按照车身的方向运动, d_x d_y 表示在 d_t 时间内车辆在x轴、y轴移动的距离。

\frac{dy}{dx} = tan{\theta}

\frac{dy}{dx} = \frac{\dot{y}}{\dot{x}}

tan{\theta} = sin{\theta} / cos{\theta}

可以推出:

-\dot{x} sin{\theta} + \dot{y} cos{\theta} = 0

\omega 表示 \Delta t 时间内车身运动的距离,于是由

d \omega = \rho d {\theta}

\rho = L / tan {\phi}

可以推出:

d \theta = \frac{tan{\phi}}{L} d \omega

对等式两侧除以 d_t ,并且基于

\dot{\omega} = s

的条件可以最终得到等式:

\dot{\theta} = \frac{s}{L} tan{\phi}

至此一个简化的非完整约束的车辆运动模型完成了,汇总如下:

\begin{bmatrix} \dot{x} \\ \dot{y} \\ \dot{\theta} \end{bmatrix} = s * \begin{bmatrix} cos(\theta) \\ sin(\theta) \\ \frac{tan \phi}{L} \end{bmatrix}

\dot{s} = a

基于这个简单的运动学模型,在给定了某个时刻的控制输入(a, \phi )以后,我们就可以估算车辆在下一时刻的状态信息(坐标,偏航角以及速度)。

2、以质心为中心的车辆运动学模型

其中A点是前轮,B是后轮,C为车辆质心点,O为OA、OB的交点,是车辆的瞬时滚动中心,线段OA、OB分别垂直于两个滚动轮的方向; \beta 为滑移角(Tire Slip Angle),指车辆行进方向和轮圈所指方向两者间所成的角度; \psi 为航向角(Heading Angle),指车身与X轴的夹角。


\frac{\sin(\delta_f-\beta)}{\ell_f}=\frac{\sin(\frac{\pi}{2}-\delta_f)}{R} \tag{1.1}

\frac{\sin(\beta-\delta_r)}{\ell_r}=\frac{\sin(\frac{\pi}{2}+\delta_r)}{R} \tag{1.2}

展开公式(1.1)(1.2)可得:

\frac{\sin\delta_f\cos\beta-\sin\beta\cos\delta_f}{\ell_f}=\frac{\cos\delta_f}{R} \tag{1.3}

\frac{\cos\delta_r\sin\beta-\cos\beta\sin\delta_r}{\ell_r}=\frac{\cos\delta_r}{R} \tag{1.4}

联立公式(1.3)(1.4)可得:

(\tan\delta_f-\tan\delta_r)\cos\beta=\frac{\ell_f+\ell_r}{R} \tag{1.5}

低速环境下,车辆行驶路径的转弯半径变化缓慢,此时我们可以假设车辆的方向变化率等于车辆的角速度。则车辆的角速度为:

\dot{\psi}=\frac{V}{R} \tag{1.6}

联立公式(1.5)(1.6)可得:

\dot{\psi}=\frac{V\cos\beta}{\ell_f+\ell_r}(\tan\delta_f-\tan\delta_r) \tag{1.7}

则在惯性坐标系XY下,可得车辆运动学模型:

\begin{cases} \dot{X}=V\cos(\psi+\beta) \\ \dot{Y}=V\sin(\psi+\beta) \\ \dot{\psi}=\frac{V\cos\beta}{\ell_f+\ell_r}(\tan\delta_f-\tan\delta_r) \tag{1.8} \end{cases}

此模型中有三个输入: \delta_f \delta_r 、和V。

滑移角 \beta 可由公式(1.3)(1.4)求得:

\beta=\tan^{-1}(\frac{\ell_f\tan\delta_r+\ell_r\tan\delta_f}{\ell_f+\ell_r}) \tag{1.9}

作为一种自行车模型,运动学自行车模型也假定车辆形如一辆自行车,整个的控制量可以简化为 (a, \delta_f) ,其中a是车辆的加速度,踩油门踏板意味着正的加速度;踩刹车踏板意味着负的加速度; \delta_f 是方向盘转角。

前轮驱动的车辆运动模型

当车辆为前轮驱动(front−wheel−only)时,可假设 \delta_r 恒为0,同时由于我们假设汽车是前轮驱动的,所以我们认为方向盘的转角就等于前轮的转角。此时,车辆运动学公式如下:

\begin{cases} \dot{X}=V\cos(\psi+\beta) \\ \dot{Y}=V\sin(\psi+\beta) \\ \dot{\psi}=\frac{Vsin(\beta)}{l_r} \\ \dot{v}=a \\ \end{cases}

\beta=\tan^{-1}(\frac{\ell_r}{\ell_f+\ell_r} \tan\delta_f)

3、阿克曼转向几何(Ackerman turning geometry)

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

在单车模型中,将转向时左/右前轮偏角假设为同一角度,虽然通常两个角度大致相等,但实际并不是,通常情况下,内侧轮胎转角更大。如下图所示。

\delta_o \delta_i 分别为外侧前轮和内侧前轮偏角,当车辆右转时,右前轮胎为内侧轮胎,其转角 \delta_i 较左前轮胎转角 \delta_o 更大。 \ell_w 为轮距,L为轴距,后轮两轮胎转角始终为0°。当以后轴中心为参考点时,图中红线为转向半径R。

当滑移角 \beta 很小时,且后轮偏角为0时,公式(1.7)可表述为:

\frac{\dot{\psi}}{V}\approx\frac{1}{R}=\frac{\delta}{L} \tag{1.10}

由于内外侧轮胎的转向半径不同,因此有:

\delta_o=\frac{L}{R+\frac{\ell_w}{2}} \tag{1.11}

\delta_i=\frac{L}{R-\frac{\ell_w}{2}} \tag{1.12}

则前轮平均转角:

\delta=\frac{\delta_o+\delta_i}{2}\cong\frac{L}{R}\tag{1.13}

内外转角之差:

\Delta\delta=\delta_i-\delta_o=\frac{L}{R^2}\ell_w=\delta^2\frac{\ell_w}{L} \tag{1.14}

因此,两个前轮的转向角的差异 \Delta\delta 与平均转向角 \delta 的平方成正比。

依据阿克曼转向几何设计的车辆,沿着弯道转弯时,利用四连杆的相等曲柄使内侧轮的转向角比外侧轮大大约2~4度,使四个轮子路径的圆心大致上交会于后轴的延长线上瞬时转向中心,让车辆可以顺畅的转弯。

参考链接

本文主要整理自以下文章:

无人驾驶汽车系统入门(五)——运动学自行车模型和动力学自行车模型

Apollo代码学习(二)—车辆运动学模型

Kinematic and Dynamic Vehicle Models for Autonomous Driving
Control Design

个人博客地址:

相关文章

编辑于 2020-04-16 22:18

文章被以下专栏收录