| by YoungTimes | No comments

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

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

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

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

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

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

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

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

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}
=
v * \begin{bmatrix}
cos(\theta) \\
sin(\theta) \\
\frac{tan \alpha}{L}
\end{bmatrix}
$

$\dot{v} = a$

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

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

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

符号定义符号定义
A前轮中心B后轮中心
C车辆质心O转向圆心
$l_r$后悬长度$l_f$前悬长度
V质心车速R转向半径
$\beta$滑移角$\psi$航向角
$\delta_r$后轮偏角$\delta_f$前轮偏角

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

相关文章

自动驾驶路径规划器-Lattice Planner详解
自动驾驶定位算法(十三)-粒子滤波(Particle Filter)
自动驾驶硬件系统(十二)-激光雷达(Lidar)测量模型
自动驾驶硬件系统(十一)-Global Navigation Satellite Systems (GNSS)
自动驾驶定位算法(九)-直方图滤波(Histogram Filter)定位

发表评论