参考文献:

【1】Rajamani R. Vehicle Dynamics and Control[M]. Springer Science, 2006.

【2】https://blog.csdn.net/u013914471/article/details/82968608

1 . 单车模型(bicycle model)

假设条件:

  • 假设车辆只有前后两个轮A和B,C为车辆质心;
  • 车辆运动只考虑平面运动,不考虑Z方向的影响,如车辆颠簸等 ;
  • 车辆低速运动,此时不需要考虑滑移角的影响,书中的原话是“This is a reasonable assumption for low speed motion of the vehicle (for example, for speeds less than 5 mls). At low speeds, the lateral force generated by the tires is small 。”

在上述假设前提下,下图中的各参数说明如下:

  • δr 和 δf : 分别表示后轮和前轮相对车辆纵轴的转角,由方向盘决定通常情况下车辆只依靠前轮进行转向操作,因此实际应用中 δr = 0 ;
  • C为车辆质心位置,到前后轮胎A和B的距离为lf 和 lr , 质心C的线速度矢量表示为V,方向β表示与车身纵轴的夹角,ψ表示车身纵轴与X轴的夹角。注意:这里的X轴指的是你设定的正前方方向,这里的β指的就是假设条件里面的滑移角,低速情况下通常β值很小,也可以忽略为0;
  • O为A、B、C三点(也就是车体)的瞬时旋转中心;

数学模型推导(以下公式都是针对质心C进行推导):

  • △OCA 和△OCB由正弦定理得:

  • 二者联立,可以得到:

  • 根据V = RW 可得质心C(即车体)的角速度为:

  • 最终得到车辆的状态方程为:

* 注意,这里的X、Y、ψ均带有“·” ,指归一化后的单位时间内的变化量,实际应用需要乘△t 。

2. 阿克曼转向几何(Ackerman turning geometry)

单车模型简化了汽车的前后轮胎,实际中汽车前后均有两个轮胎,如下:

对于汽车前面的两个轮胎来说,实际转角是不同的。阿克曼转向几何(Ackerman Turning Geometry)是一种为了解决交通工具转弯时,内外转向轮路径指向的圆心不同的几何学。在单车模型中,将转向时左/右前轮偏角假设为同一角度,虽然通常两个角度大致相等,但实际并不是,通常情况下,内侧轮胎转角更大。这部分我就不再推导了,文献【2】中写的很清楚。

3. 仿真实现

根据上述原理,基于C++和opencv建立了系统仿真模型,可以根据输入的车辆信息实现对车辆模型的控制。仿真模型假设图像的x方向为车辆的前行方向,能够通过'w'/'s'/'a'/'d'/'b'/' '/'c'等按键实现对车体的速度、转向、减速等控制。

代码链接

车辆状态信息:

struct VehicleInfo{cv::Point2d location[5];  //  lt rt lb rb cdouble R[2];              //  质心R 和 右后轮R cv::Size vehSize;         //  车身尺寸double acceleration = 0;  //  车辆加速度double delta_t = 1;       //  时间间隔double speed = 0;         //  车速double delta_f = 0;       //  前轮和车身的夹角double  w = 0;            //  车辆角速度double  yaw_angle = 0;    //  偏航角,相对图像坐标系下的x轴double  beta = 0;         //  滑移角double  Lw = 99.5;        //  pixel 轮距double  L = 188.6;        //  pixel 轴距    bool   brake = true;      //  刹车 true : speed = 0;}vehInfo;

效果展示:

车辆运动学模型—bicycle model相关推荐

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

    Apollo代码学习-车辆运动学模型 前言 车辆模型 单车模型(Bicycle Model) 车辆运动学模型 阿克曼转向几何(Ackerman turning geometry) 小结 Apollo( ...

  2. 【自动驾驶】车辆运动学模型

    文章目录 参考资料 1. 以车辆重心为中心的单车运动学模型 1.1 参数说明 1.2 几何关系 1.2.1 偏航角ψ\psiψ的关系 1.2.1 滑移角 β\betaβ 的关系 1.2.2 运动学模型 ...

  3. 自动驾驶(五)---------车辆运动学模型

    车辆运动学模型 我的定义:正常直线行驶,位置变化等于速度*时间,车辆不是直线行驶,已知速度和方向盘转角等,求新的位置. 1.单车模型(Bicycle Model) 其中将左/右前轮合并为一个点,位于A ...

  4. 自动驾驶控制算法——车辆运动学模型

    车辆运动学模型 自行车模型(Bicycle Model) 自行车模型(Bicycle Model)的建立基于如下假设: 不考虑车辆在垂直方向(Z轴方向)的运动,即假设车辆的运动是一个二维平面上的运动; ...

  5. Apollo学习笔记(7)车辆运动学模型

    这里又整了一遍车辆运动学,之前在Autoware那会,已经在控制那一部分整过一次了,就当复习了吧. 前言 车辆的控制目前用的最广的有三种方式: PID LQR MPC 其中,PID是一种对模型无要求的 ...

  6. 车辆运动学模型到动力学模型推导

    车辆运动学模型到动力学模型推导 参考 https://www.bilibili.com/video/BV1St411A7nH/?spm_id_from=333.788.recommend_more_v ...

  7. 自动驾驶车辆控制(车辆运动学模型)

    本文应配合b站up主"忠厚老实的老王"的自动驾驶控制算法系列视频食用. 文章目录 1. 两个车辆运动学模型 1.1 三个坐标系 1.2符号定义 1.3车辆运动学模型 1.4车辆动力 ...

  8. 基于阿克曼转向的车辆运动学模型

    基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型,为路径规划奠定基础,能够更好的检验简化的运动学模型反映运动过程的准确性. 包括:1.simulink仿真验证(版本为2018b) ...

  9. 基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型

    基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型,为路径规划奠定基础,能够更好的检验简化的运动学模型反映运动过程的准确性. 包括:1.simulink仿真验证(版本为2018b) ...

最新文章

  1. VS.NET2003 开发环境 生成样式表 和 自动书写HTML对象模型
  2. Python 错误和异常
  3. 538. Convert BST to Greater Tree 把二叉搜索树转换为累加树
  4. CountDownLatch应用及原理
  5. 你未必知道的49个CSS知识点
  6. java 关闭时_java – 活动关闭时服务停止
  7. System Center Technical Preview DPM(2016)对Exchange2016的灾难恢复
  8. 断开式 DataGridView控件 winform
  9. 开源中国源码学习(八)——枚举类
  10. linux怎么实时查看目录下是否有文件生成
  11. 软件开发流程:需求评审流程
  12. Youtube CC字幕是什么,Caption和Subtitle的解释
  13. mysql 触发器 instead of_AFTER触发器与INSTEAD OF触发器
  14. 在 linux ubuntu 18.04 上运行QQ音乐
  15. 通常网站当中的关键词密度如何控制呢
  16. eharts散点图 调整点的颜色和大小。
  17. zmud之汉字转换为数字
  18. 探索有趣的微观世界:微生物的种类、生存、应用
  19. Firefox 尝试与您指定的代理服务器连接时被拒绝
  20. 认识电子计算机ppt幼儿园,大班科学优质课教案《认识电子计算器》含PPT课件

热门文章

  1. 洗拖吸地一体机哪个牌子好、吸拖洗一体机 推荐
  2. 安卓在项目中添加Android兼容包( v4、v7 、、、)
  3. cocos creator 热更新
  4. Execution failed for task ':app:preDebugAndroidTestBuild
  5. 进程的用户态和内核态
  6. 大气商务公司新年计划精美PPT模板共享
  7. 5G黎明前 AI或成手机市场焦点趋势 1
  8. 美图秀秀美化图片之【边框】界面设计【重大更新】
  9. pageInfo参数大全
  10. acwing-献给阿尔吉侬的花束