目录

  • 一、车辆自行车运动学模型(kinematic bicycle model)
    • 1.基于车辆重心的运动学模型
    • 2. 以后轴中心为原点的运动学模型
  • 二、车辆自行车动力学模型(kinematic bicycle model)
    • 1、基本模型建立
    • 2、力的计算
    • 3、动力学模型总结

规划控制模块在整个自动驾驶领域占有相当重要的位置;对规划而言,能够规划出一条符合车辆运动规律的轨迹对底层的控制来说是至关重要。对于控制而言,其建立的模型越准确,则控制通常就会更加精准。因此建立比较精确的车辆数学模型对规划和控制都相当重要。本文以将车辆简化为自行车模型,然后分别建立运动学模型和动力学模型。

一、车辆自行车运动学模型(kinematic bicycle model)

运动学模型基于如下假设:

  1. 不考虑车辆在垂直方向(z轴方向上的运动),即假设车辆在一个二维平面上运动。
  2. 忽略车辆受力情况,只考虑车辆在运动中的几何关系;
  3. 两个前轮(后轮)合并成一个单独的轮胎(自行车模型的由来);
  4. 轮胎运动方向和轮胎平面水平.

1.基于车辆重心的运动学模型

车辆自行车模型示意如下 图所示。

点O为车辆旋转中心,A为前轮中心,B为后轮中心,C为重心(质心)。
其它符号含义入下:

符号 含义 符号 含义
δf\delta_fδf​ 前轮偏角 δr\delta_rδr​ 后轮偏角
lrl_r lr​ 后轮中心到重心之间的距离 lfl_flf​ 前轮中心到重心的距离
vvv 重心速度 β\betaβ 滑移角
ψ\psiψ 航向角 u1u_1u1​ 车辆加速度
xxx 车辆x轴方向位置 yyy y轴位置

其根据几何关系可以得到如下数学模型1 2
根据三角形正弦定理,对于OCA有:
sin(δf−β)lf=sin(π2−δf)R(1.1)\frac{sin(\delta_f-\beta)}{l_f} = \frac{sin(\frac{\pi}{2}-\delta_f)}{R}\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:(1.1) lf​sin(δf​−β)​=Rsin(2π​−δf​)​(1.1)
对OCB有:
sin(β−δr)lr=sin(π2+δr)R(1.2)\frac{sin(\beta-\delta_r)}{l_r} = \frac{sin(\frac{\pi}{2}+\delta_r)}{R}\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:(1.2) lr​sin(β−δr​)​=Rsin(2π​+δr​)​(1.2)
从(1.1)得到:
sin(δf)cos(β)−sin(β)cos(δf)lf=δfR(1.3)\frac{sin(\delta_f)cos(\beta) - sin(\beta)cos(\delta_f)}{l_f} = \frac{\delta_f}{R}\:\:\:\:\:\:\:\:\:\:\:\:\:(1.3) lf​sin(δf​)cos(β)−sin(β)cos(δf​)​=Rδf​​(1.3)
从(1.2)得到:
cos(δr)sin(β)−cos(β)sin(δr)lr=cos(δr)R(1.4)\frac{cos(\delta_r)sin(\beta) - cos(\beta)sin(\delta_r)}{l_r} = \frac{cos(\delta_r)}{R}\:\:\:\:\:\:\:\:\:\:\:\:\:(1.4) lr​cos(δr​)sin(β)−cos(β)sin(δr​)​=Rcos(δr​)​(1.4)
(3)两边乘以lfcos(δf)\frac{l_f}{cos(\delta_f)}cos(δf​)lf​​得到:
tan(δf)cos(β)−sin(β)=lfR(1.5)tan(\delta_f)cos(\beta)-sin(\beta)=\frac{l_f}{R}\:\:\:\:\:\:\:\:\:\:\:\:\:(1.5) tan(δf​)cos(β)−sin(β)=Rlf​​(1.5)
同理(4)两边乘以lrcos(δr)\frac{l_r}{cos(\delta_r)}cos(δr​)lr​​得到:
sin(β)−tan(δr)cos(β)=lrR(1.6)sin(\beta)-tan(\delta_r)cos(\beta) = \frac{l_r}{R}\:\:\:\:\:\:\:\:\:\:\:\:\:(1.6) sin(β)−tan(δr​)cos(β)=Rlr​​(1.6)
将(5)(6)相加得:
(tan(δf)−tan(δr))cos(β)=lf+lrR(1.7)(tan(\delta_f)-tan(\delta_r))cos(\beta)=\frac{l_f+l_r}{R}\:\:\:\:\:\:\:\:\:\:\:\:\:(1.7) (tan(δf​)−tan(δr​))cos(β)=Rlf​+lr​​(1.7)
在上述假设条件下,很容易得到如下关系:
ψ˙=vR(1.8)\dot{\psi} = \frac{v}{R}\:\:\:\:\:\:\:\:\:\:\:\:\:(1.8) ψ˙​=Rv​(1.8)
代入(1.7)中,可以得到:
ψ˙=vcos(β)lf+lr(tan(δf)−tan(δr))(1.9)\dot{\psi} = \frac{vcos(\beta)}{l_f+l_r}(tan(\delta_f)-tan(\delta_r))\:\:\:\:\:\:\:\:\:\:\:\:\:(1.9) ψ˙​=lf​+lr​vcos(β)​(tan(δf​)−tan(δr​))(1.9)
综上,可得到自行车运动学模型:
x˙=vcos(ψ+β)y˙=vsin(ψ+β)ψ˙=vcos(β)lr+lftan(δf−δr)v˙=u1}(1.10)\left. \begin{matrix} \dot{x} = v\,cos(\psi + \beta) \\ \dot{y} = v\,sin(\psi + \beta) \\ \dot{\psi} = \frac{v cos(\beta)}{l_r + l_f}\, tan(\delta_f-\delta_r) \\ \dot{v} = u_1\\ \end{matrix} \right\}\:\:\:\:\:\:\:\:\:\:\:\:\:(1.10) x˙=vcos(ψ+β)y˙​=vsin(ψ+β)ψ˙​=lr​+lf​vcos(β)​tan(δf​−δr​)v˙=u1​​⎭⎪⎪⎬⎪⎪⎫​(1.10)

其中
β=atan[lrtan(δf)+lftan(δr)lr+lf](1.11)\beta = atan[\frac{l_rtan(\delta_f)+l_ftan(\delta_r)}{l_r+l_f}] \:\:\:\:\:\:\:\:\:\:\:\:\:(1.11) β=atan[lr​+lf​lr​tan(δf​)+lf​tan(δr​)​](1.11)

2. 以后轴中心为原点的运动学模型


根据几何关系可以的得到如下模型
{x˙=s∗cos(θ)y˙=s∗sin(θ)θ˙=s∗tan(α)Ls˙=u1\begin{cases} \dot{x} = s*cos(\theta) \\ \dot{y} = s*sin(\theta) \\ \dot{\theta} = s* \frac{tan(\alpha)}{L} \\ \dot{s} = u_1 \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧​x˙=s∗cos(θ)y˙​=s∗sin(θ)θ˙=s∗Ltan(α)​s˙=u1​​
其中s为车速(后轴中心速度),u1 为加速度,基于该模型,当我们确定了某个控制输入(u1,α)(u_1,\alpha)(u1​,α)时,我们就可以估算下一时刻车辆的状态信息。

二、车辆自行车动力学模型(kinematic bicycle model)

上面介绍的运动学模型在速度较低时,能够较为准确的反映车辆运动状态,但在高速条件下,其车轮的侧滑角已经不能在忽略。下面将建立自行车的动力学模型。

1、基本模型建立

在建模之前我们作如下假设:

  1. 车辆所受的空气的力只会对车身坐标系x轴方向上的运动有影响,y轴方向和沿着z轴的旋转不会受到空气力的影响;
  2. 车辆运行在二维平面中,也就是z轴无速度。
  3. 车辆轮胎力运行在线性区间。

建立如下坐标系,X,Y表示全局坐标系,x,y则表示车身坐标系,x轴方向沿车辆中轴方向向前,y轴方向朝右,其原点在质心位置。

根据牛顿运动定律有:
may=Fyf+Fyr(2.1)ma_y = F_{yf} + F_{yr}\qquad\qquad(2.1) may​=Fyf​+Fyr​(2.1)
其中ay=d2ydt2a_y=\frac{d^2y}{dt^2}ay​=dt2d2y​表示在y方向的质心加速度。
max=Fxf+Fxr−Faero(2.2)m a_x = F_{xf} + F_ {xr}-F_{aero}\qquad\qquad(2.2) max​=Fxf​+Fxr​−Faero​(2.2)
其中:ax=d2xdt2a_x=\frac{d^2x}{dt^2}ax​=dt2d2x​表示在x方向的质心加速度。

Fyf\qquad F_{yf}Fyf​、 FyrF_{yr}Fyr​分别表示车前轮和后轮所受到的力在y轴方向上的分量。

Fxf\qquad F_{xf}Fxf​、 FxrF_{xr}Fxr​分别表示车前轮和后轮所受到的力在x轴方向上的分量。

Faero\qquad F_{aero}Faero​、 FxrF_{xr}Fxr​表示车在x轴方向受到的空气阻力。

其沿着x和y轴方向上的加速度包括两部分,一部分是沿着轴方向运行加速度,另一部分为离心加速度。
ax=vx˙−vyψ˙ay=vy˙+vxψ˙}(2.3)\left. \begin{matrix} a_x = \dot{v_x}-v_y\dot{\psi} \\ a_y = \dot{v_y}+v_x \dot{\psi} \end{matrix} \right\}\qquad\qquad(2.3) ax​=vx​˙​−vy​ψ˙​ay​=vy​˙​+vx​ψ˙​​}(2.3)
另外,在z轴方向转动方程:
Izψ¨=lfFyf−lrFyr(2.4)I_z \ddot{\psi} = l_f F_{yf} - l _r F_{yr}\qquad\qquad(2.4) Iz​ψ¨​=lf​Fyf​−lr​Fyr​(2.4)

2、力的计算

车辆轮胎在y轴方向受到的力FyfF_{yf}Fyf​、 FyrF_{yr}Fyr​实验结果表明,其大小正比于轮胎的侧滑角。其侧滑角如下图所示:

可以得到,前轮侧滑角:
αf=δ−θvf(2.5)\alpha_f = \delta -\theta_{vf}\qquad\qquad(2.5)αf​=δ−θvf​(2.5)
后轮侧滑角:
αr=−θvr(2.6)\alpha_r= -\theta_{vr}\qquad\qquad(2.6)αr​=−θvr​(2.6)
因此,有:
Fyf=2Cαf(δ−θvf)(2.7)F_{yf} = 2 C_{\alpha f}(\delta-\theta_{vf})\qquad\qquad(2.7)Fyf​=2Cαf​(δ−θvf​)(2.7)
Fyr=2Cαr(−θvr)(2.8)F_{yr} = 2 C_{\alpha r}(-\theta_{vr})\qquad\qquad(2.8)Fyr​=2Cαr​(−θvr​)(2.8)
其中CαfC_{\alpha f}Cαf​、CαrC_{\alpha r}Cαr​分别表示前后轮的转弯刚度(cornering stiffness)

根据运动关系可以得到:
tan(θvf)=vy+lfψ˙vx(2.9)tan(\theta_{vf}) = \frac{v_y + l_f \dot{\psi}}{v_x}\qquad\qquad(2.9)tan(θvf​)=vx​vy​+lf​ψ˙​​(2.9)
tan(θvr)=vy−lrψ˙vx(2.10)tan(\theta_{vr}) = \frac{v_y - l_r \dot{\psi}}{v_x}\qquad\qquad(2.10)tan(θvr​)=vx​vy​−lr​ψ˙​​(2.10)

车辆在x轴方向的力FxfF_{xf}Fxf​、 FxrF_{xr}Fxr​与轮胎的滑比σx\sigma_xσx​成正比。其定义为:
σx=reffωw−vxvx刹车时σx=reffωw−vxreffωw加速时}(2.11)\left. \begin{matrix} \sigma_x= \frac{r_{eff} \omega_w - v_x}{v_x} 刹车时 \\ \\ \sigma_x= \frac{r_{eff} \omega_w - v_x}{r_{eff} \omega_w} 加速时 \end{matrix} \right\}\qquad\qquad(2.11) σx​=vx​reff​ωw​−vx​​刹车时σx​=reff​ωw​reff​ωw​−vx​​加速时​⎭⎪⎬⎪⎫​(2.11)
因此有:
Fxf=2Cσfσxf(2.12)F_{xf} = 2 C_{\sigma f} \sigma_{xf}\qquad\qquad(2.12)Fxf​=2Cσf​σxf​(2.12)
Fxr=2Cσrσxr(2.13)F_{xr} = 2 C_{\sigma r} \sigma_{xr}\qquad\qquad(2.13)Fxr​=2Cσr​σxr​(2.13)
其中CσrC_{\sigma r}Cσr​为纵向的轮胎刚性参数(tire stiffness parameters)。

对于空气阻力2
Faero=12ρCdAF(vx+vwind)2(2.14)F_{aero} = \frac{1}{2}\rho C_d A_F(v_x + v_{wind})^2\qquad\qquad(2.14) Faero​=21​ρCd​AF​(vx​+vwind​)2(2.14)
另外在全局坐标系下:
X˙=vxcos(ψ)−vysin(ψ)Y˙=vxsin(ψ)+vycos(ψ)}(2.15)\left. \begin{matrix} \dot{X} = v_x cos(\psi) - v_y sin(\psi) \\ \dot{Y} = v_x sin(\psi) + v_y cos(\psi) \end{matrix} \right\}\qquad\qquad(2.15) X˙=vx​cos(ψ)−vy​sin(ψ)Y˙=vx​sin(ψ)+vy​cos(ψ)​}(2.15)

3、动力学模型总结

总结上述建模过程,我们可以轻松得到如下车辆自行车动力学模型:
{X˙=vxcos(ψ)−vysin(ψ)Y˙=vxsin(ψ)+vycos(ψ)x˙=vxy˙=vyvx˙=2Cσrσxr+2Cσfσxf−12ρCdAF(vx+vwind)2m+vyψ˙vy˙=2Cαf[δ−atan(vy+lfψ˙vx)]+2Cαr[−atan(vy−lrψ˙vx)]m−vxψ˙ψ¨=2lfCαf[δ−atan(vy+lfψ˙vx)]−2lrCαr[−atan(vy−lrψ˙vx)]Iz\left \{ \begin{matrix} \dot{X} = v_x cos(\psi) - v_y sin(\psi) \\ \\ \dot{Y} = v_x sin(\psi) + v_y cos(\psi) \\ \\ \dot{x}= v_x\\ \\ \dot{y} = v_y\\ \\ \dot{v_x} = \frac{2 C_{\sigma r} \sigma_{xr} + 2 C_{\sigma f} \sigma_{xf} - \frac{1}{2}\rho C_d A_F(v_x + v_{wind})^2 }{m} + v_y\dot{\psi}\\ \\ \dot{v_y} = \frac{2 C_{\alpha f}[\delta- atan(\frac{v_y + l_f \dot{\psi}}{v_x} )]+ 2 C_{\alpha r}[-atan(\frac{v_y - l_r \dot{\psi}}{v_x})]}{m}-v_x \dot{\psi}\\ \\ \ddot{\psi} =\frac{ 2l_f C_{\alpha f}[\delta- atan(\frac{v_y + l_f \dot{\psi}}{v_x} )] - 2 l _r C_{\alpha r}[-atan(\frac{v_y - l_r \dot{\psi}}{v_x})]}{I_z} \end{matrix} \right. ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​X˙=vx​cos(ψ)−vy​sin(ψ)Y˙=vx​sin(ψ)+vy​cos(ψ)x˙=vx​y˙​=vy​vx​˙​=m2Cσr​σxr​+2Cσf​σxf​−21​ρCd​AF​(vx​+vwind​)2​+vy​ψ˙​vy​˙​=m2Cαf​[δ−atan(vx​vy​+lf​ψ˙​​)]+2Cαr​[−atan(vx​vy​−lr​ψ˙​​)]​−vx​ψ˙​ψ¨​=Iz​2lf​Cαf​[δ−atan(vx​vy​+lf​ψ˙​​)]−2lr​Cαr​[−atan(vx​vy​−lr​ψ˙​​)]​​


  1. 自动驾驶中的车辆运动学模型 ↩︎

  2. Rajamani R. Vehicle Dynamics and Control[M]. Springer Science, 2006. ↩︎ ↩︎

自动驾驶规划控制系列文章(一)——车辆数学模型相关推荐

  1. 自动驾驶规划控制(A*、pure pursuit、LQR算法,使用c++在ubuntu和ros环境下实现)

    文章目录 1 目录概述 2 算法介绍 2.1 Astart改进 2.2 ROS(Gazebo仿真) 2.2.1 使用Gazebo仿真需要安装的功能包 2.2.2 创建工作空间 catkin_ws 2. ...

  2. 自动驾驶规划控制软硬一体化控制器解决方案(一)

    随着社会的进步,汽车工业和电子科技发展迅速,车载电子器件的数量越来越多,汽车 电子的平台集成度越来越高,两者的融合正在革新着人们的驾乘体验.本文基于 x86 SoC 进 行系统设计,实现高效的汽车智能 ...

  3. 自动驾驶规划方法综述

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:本文来源: ...

  4. 自动驾驶采标系列二:车载感知与车载传感器标定

    上一篇文章对自动驾驶采标问题中的一系列法律问题进行了浅析,接下来自动驾驶采标系列里面会对自动驾驶相关技术和知识点进行进一步梳理,来帮助小伙伴深入的了解自动驾驶的架构逻辑与数据采标工作的关系. 上文中提 ...

  5. 自动驾驶采标系列七:复杂场景语义理解-可行驶区域检测

        标注猿的第58篇原创        一个用数据视角看AI世界的标注猿   本篇文章我们继续学习自动驾驶采标系列的算法基础理论,关于复杂场景语义理解中的可行驶区域检测部分. 车辆可行驶区域包括结 ...

  6. 自动驾驶规划术语与搜索空间的几种方法

    1. 导读 目前,自动驾驶或自动驾驶汽车是学术界和汽车界研究的核心,因为它具有多方面的优势,包括提高安全性.减少拥堵.降低排放和提高机动性.其实软件是支持自动驾驶的关键驱动因素,在将乘客或货物从指定的 ...

  7. 自动驾驶采标系列三:基于图像的目标检测技术

        标注猿的第54篇原创        一个用数据视角看AI世界的标注猿    上一篇文章我们从"环境感知"数据的采集设备上进行了详细说明,已经了解了相应设备采集的数据及采集前 ...

  8. 自动驾驶采标系列六:复杂场景语义理解-交通识别检测技术

        标注猿的第57篇原创        一个用数据视角看AI世界的标注猿   前几篇文章从两种数据的角度去学习了基于图片和激光雷达数据的算法,较为通俗的说明了其算法的逻辑,从而为理解其标注数据在使 ...

  9. Arduino毕业设计——基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现(毕业论文+程序源码)——自动驾驶小车控制系统

    基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现,文章末尾附有本毕业设计的 ...

最新文章

  1. java创建对象_java 创建对象的五种方式
  2. 查看MYSQL数据库中所有用户及拥有权限
  3. 华为面试题——一道关于指针方面的编程题(C/C++)
  4. Maven打包详细流程
  5. https安全传输揭秘
  6. 高数第七版_习题解答_3-1行列式习题
  7. python语言设计简单计算器_Python 设计一个简单的计算器-Go语言中文社区
  8. bzoj5039:[Jsoi2014]序列维护
  9. webform 简单的服务器控件。
  10. php+MySql注入非暴力爆字段名
  11. 如何用python实现地图定位_基于 PyQt5 实现地图中定位相片拍摄位置
  12. springboot加载配置文件优先级
  13. PHP新手之学习类与对象(4)
  14. 二分法02:寻找第一个和最后一个的满足条件的位置
  15. [公告]博客迁移通知
  16. Win7 SP1语言包微软官方下载地址及使用方法
  17. 鲁百年创新设计思维学习总结
  18. 编程都是人上人,果不其然!2020年度十大高薪岗位,程序员独领风骚!
  19. qq音乐mp3解析php源码,QQ音乐PHP解析源码
  20. 新浪微博 redis mysql_新浪微博:史上最大的Redis集群

热门文章

  1. KNN(k近邻算法)实例之医用判断良性恶性肿瘤
  2. 百度和GOOGLE谁在中国占的份额大?
  3. 一文详解自动驾驶的运行设计域(ODD)| 自动驾驶系列
  4. 我做软件测试六年的一些感悟
  5. .Net Core 读取Excel 模板 导出 Excel 文件
  6. 开发进度月报【列文】2022.5.11
  7. ios大神班学习大纲
  8. iOS培训之iOS 8正式发布:增加多个新功能
  9. 关于学习Java是应该是自学还是选择培训班
  10. 如何做APP界面设计