车辆运动学模型—bicycle model
参考文献:
【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相关推荐
- Apollo代码学习(二)—车辆运动学模型
Apollo代码学习-车辆运动学模型 前言 车辆模型 单车模型(Bicycle Model) 车辆运动学模型 阿克曼转向几何(Ackerman turning geometry) 小结 Apollo( ...
- 【自动驾驶】车辆运动学模型
文章目录 参考资料 1. 以车辆重心为中心的单车运动学模型 1.1 参数说明 1.2 几何关系 1.2.1 偏航角ψ\psiψ的关系 1.2.1 滑移角 β\betaβ 的关系 1.2.2 运动学模型 ...
- 自动驾驶(五)---------车辆运动学模型
车辆运动学模型 我的定义:正常直线行驶,位置变化等于速度*时间,车辆不是直线行驶,已知速度和方向盘转角等,求新的位置. 1.单车模型(Bicycle Model) 其中将左/右前轮合并为一个点,位于A ...
- 自动驾驶控制算法——车辆运动学模型
车辆运动学模型 自行车模型(Bicycle Model) 自行车模型(Bicycle Model)的建立基于如下假设: 不考虑车辆在垂直方向(Z轴方向)的运动,即假设车辆的运动是一个二维平面上的运动; ...
- Apollo学习笔记(7)车辆运动学模型
这里又整了一遍车辆运动学,之前在Autoware那会,已经在控制那一部分整过一次了,就当复习了吧. 前言 车辆的控制目前用的最广的有三种方式: PID LQR MPC 其中,PID是一种对模型无要求的 ...
- 车辆运动学模型到动力学模型推导
车辆运动学模型到动力学模型推导 参考 https://www.bilibili.com/video/BV1St411A7nH/?spm_id_from=333.788.recommend_more_v ...
- 自动驾驶车辆控制(车辆运动学模型)
本文应配合b站up主"忠厚老实的老王"的自动驾驶控制算法系列视频食用. 文章目录 1. 两个车辆运动学模型 1.1 三个坐标系 1.2符号定义 1.3车辆运动学模型 1.4车辆动力 ...
- 基于阿克曼转向的车辆运动学模型
基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型,为路径规划奠定基础,能够更好的检验简化的运动学模型反映运动过程的准确性. 包括:1.simulink仿真验证(版本为2018b) ...
- 基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型
基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型,为路径规划奠定基础,能够更好的检验简化的运动学模型反映运动过程的准确性. 包括:1.simulink仿真验证(版本为2018b) ...
最新文章
- VS.NET2003 开发环境 生成样式表 和 自动书写HTML对象模型
- Python 错误和异常
- 538. Convert BST to Greater Tree 把二叉搜索树转换为累加树
- CountDownLatch应用及原理
- 你未必知道的49个CSS知识点
- java 关闭时_java – 活动关闭时服务停止
- System Center Technical Preview DPM(2016)对Exchange2016的灾难恢复
- 断开式 DataGridView控件 winform
- 开源中国源码学习(八)——枚举类
- linux怎么实时查看目录下是否有文件生成
- 软件开发流程:需求评审流程
- Youtube CC字幕是什么,Caption和Subtitle的解释
- mysql 触发器 instead of_AFTER触发器与INSTEAD OF触发器
- 在 linux ubuntu 18.04 上运行QQ音乐
- 通常网站当中的关键词密度如何控制呢
- eharts散点图 调整点的颜色和大小。
- zmud之汉字转换为数字
- 探索有趣的微观世界:微生物的种类、生存、应用
- Firefox 尝试与您指定的代理服务器连接时被拒绝
- 认识电子计算机ppt幼儿园,大班科学优质课教案《认识电子计算器》含PPT课件