Coursera自动驾驶1.4——车辆建模

news2025/8/17 2:28:47

文章目录

  • 一、运动学建模(二维)
    • 1.坐标系转换
    • 2.两轮机器人运动学建模
    • 3.两轮自行车运动学建模
      • (1)后轴参考点
      • (2)前轴参考点
      • (3)重心参考点
  • 二、基本动力学模型(2D)
    • 1.平移动力学
    • 2.旋转动力学
  • 三、车辆纵向模型
  • 四、车辆横向模型
    • 横向模型的状态空间表示
  • 五、车辆控制
  • 六、轮胎模型
    • 1.概述
    • 2.轮胎模型

本节介绍了自动驾驶汽车的运动学和动力学建模。

一、运动学建模(二维)

运动学建模是指考虑定义其运动的几何约束来对车辆运动建模。

1.坐标系转换

参见坐标转换 看这篇就够了

2.两轮机器人运动学建模

对于一个两轮机器人,我们假定输入为机器人的速度v和方向变化率w,同时我们定义P是机器人的中心,L是从机器人中心到每个轮子的距离,R是轮子的半径,w1和w2是左右车轮的角速度。如下图所示
在这里插入图片描述

对于任一个物体,我们可以通过下图公式获得一组参数[x, y, θ]来代表系统的当前状态
在这里插入图片描述
对于我们的两轮机器人,我们将前进速度扩展为每个车轮的旋转速度w1和w2,根据速度与旋转速度的关系:v=w*r,我们可以知道,如果两个车轮速度相同,则车辆沿直线前进,否则会在某个瞬时旋转中心 (ICR) 的弯曲路径上运动。下图为根据车轮速度和车轮半径得到的机器人整体速度和转动角速度。
在这里插入图片描述

在这里插入图片描述

将上述角速度和之前的运动学模型进行结合,我们可以得到如下公式

在这里插入图片描述

3.两轮自行车运动学建模

对于自行车运动学建模,我们必须在车辆上选择一个参考点,该参考点可以选在后轴中心,或前轴中心或重心参考点的选择会影响所产生的运动方程,进而改变我们将要使用的控制器。

(1)后轴参考点

我们定义自行车的前进夹角为θ,速度为v,自行车长度为L,前轮的转向角为δ,参考点位置是后轴。计算过程如下,首先根据三角形相似原理计算转向角,之后得到速度在x轴和y轴的分量。

在这里插入图片描述

我们可以得到的结果如下图所示
在这里插入图片描述

(2)前轴参考点

根据上面的计算过程可得结果如下
在这里插入图片描述

(3)重心参考点

在重心处的运动方向与任一车轮的前进速度方向和自行车的前进方向都略有不同。我们用β来表示角度。

在这里插入图片描述

二、基本动力学模型(2D)

动力学建模通过考虑作用在车辆上的所有力和力矩来对车辆运动建模,汽车的动力学模型包括两种,平移动力学模型和旋转动力学模型

1.平移动力学

构建典型的动力学模型,我们可以按照以下步骤进行。

  1. 首先建立坐标系。例如车辆坐-标和惯性坐标。
  2. 接下来,我们可以将系统拆分为一个个元素并为每个元素定义一个力学模型
  3. 接下来,得到元素列表中每个刚体的受力图和作用在刚体上的所有力和力矩。
  4. 最后,通过牛顿第二定律,建立动力学模型数学方程。
    在这里插入图片描述

2.旋转动力学

我们可以按如下步骤构建旋转动力学模型

  1. 首先建立坐标系。将θ定义为车轮的角位置,将   θ ˙ \ \dot{\theta}  θ˙ 点作为其旋转速度,将   θ ¨ \ \ddot{\theta }  θ¨ 作为其角加速度。
  2. 接下来,轮胎模型由于旋转质量而具有旋转惯性J。扭转刚度k和阻尼b由轮毂中轮胎的材料属性定义。我们通过来自车辆驱动轴的驱动扭矩来驱动车轮,并通过轮胎与路面相互作用产生的扭矩来阻止车轮前进。
  3. 最终得到车轮系统的力学模型:驱动扭矩和负载扭矩之间的差定义了作用在车轮上的净扭矩。得到最终轮胎的旋转动力学方程如下图:
    在这里插入图片描述

三、车辆纵向模型

纵向模型考虑了在倾斜道路上行驶的车辆。我们将车辆运动限制在X-Z平面上。有几种作用在车身和轮胎上的力,包括牵引力,滚动阻力,空气阻力和重力引力产生的坡度阻力。

下图展示了车辆在倾斜路面的纵向模型
在这里插入图片描述

将上图中的公式进行简化可以得到如下的纵向模型
m x ¨ = F x − F a e r o − R x − m g α m\ddot{x} = F_{x}-F_{aero}-R_{x}-mg\alpha mx¨=FxFaeroRxmgα

  • 空气阻力与空气密度,车辆迎风面积,风阻系数和车辆的速度有关。其数学形式为:
    F a e r o = 1 2 C a ρ A x ¨ F_{aero} = \frac{1}{2} C_{a} \rho A\ddot{x} Faero=21CaρAx¨
  • 滚动阻力与法向力,轮胎压力和特性以及车速有关。其数学形式为:
    R x = N ( c ^ r , 0 + c ^ r , 1 ∣ x ˙ ∣ + c ^ r , 2 x ˙ 2 ) ≈ c ^ r , 1 ∣ x ˙ ∣ R_{x} =N(\hat{c} _{r,0}+\hat{c} _{r,1}\left|\dot{x}\right |+\hat{c} _{r,2}\dot{x}^{2})\approx \hat{c} _{r,1}\left|\dot{x}\right | Rx=N(c^r,0+c^r,1x˙+c^r,2x˙2)c^r,1x˙
  • 动力组成建模过于复杂,在此不详述,可查询汽车制造等书籍

四、车辆横向模型

横向模型将车辆运动限制在xy平面。在此模型中,还还存在一些作用在车辆上的侧向力,例如滑动力和离心力。

我们定义侧向加速度为   a y \ a_{y}  ay, 线性横向加速度   y ¨ \ \ddot{y}  y¨, 旋转向心加速度   w 2 R \ w^{2} R  w2R,则侧向动力学方程和力矩方程可表示为
在这里插入图片描述
更常见的轮胎模型可以使用简单的线性近似来模拟轮胎力的产生。这种近似值实际上仅对较小的滑移角有效。为了使用这些线性轮胎模型,我们需要定义前后滑移角   α f \ \alpha _{f}  αf   α r \ \alpha _{r}  αr
在这里插入图片描述
在这里插入图片描述

横向模型的状态空间表示

我们可以定义一个侧向状态变量   X l a t \ X_{lat}  Xlat如下图所示,其中y为汽车质心侧向位置,β为质心侧偏角,ψ为横摆角; 以及横摆角速率   Ψ ˙ \ \dot{\Psi }  Ψ˙

在这里插入图片描述

五、车辆控制

车辆常见的控制操作有转向,加速和制动。侧向力的来源是方向盘转角,纵向力的来源是油门踏板位置和制动踏板位置。车辆控制的主要任务是提供合适的转向节气门和制动命令,以使车辆保持在所需的路径上行驶。包含如下任务:

  • 转向系统:转向系统控制车辆以使车辆向右或向左旋转。主要作用是减速增扭。
  • 动力传动系统:脚踩油门踏板产生扭矩。该扭矩传递到传动系统。然后,基于工作模式和所需速度,切换变速器挡位。然后,动力通过差速器到车轮,并产生车轮扭矩,最终产生牵引力。牵引力必须大于阻力,阻力包括空气阻力和路面摩擦力,以使车辆在纵向方向上向前加速。
  • 制动系统:制动过程从驾驶员踩下制动踏板位置开始,该位置通过电子控制单元转换为制动压力。制动压力在制动盘或制动鼓上产生制动力,该制动力成为车轮上的制动扭矩。车轮上的制动扭矩会产生负的纵向力,从而使车辆减速。

六、轮胎模型

1.概述

轮胎模型有两个重要的概念:侧偏角和滑移率。

  • 侧偏角是车辆前进方向与车辆实际运动方向之间的夹角,公式如下
    β = tan ⁡ − 1 V y V x = tan ⁡ − 1 y ˙ x ˙ \beta =\tan^{-1} \frac{V_{y} }{V_{x}} = \tan^{-1} \frac{\dot{y} }{\dot{x}} β=tan1VxVy=tan1x˙y˙
    对于汽车前后轮的侧偏角公式如下
    在这里插入图片描述
  • 滑移率:当汽车加速或制动时,轮胎与路面之间会发生滑动现象。公式为
    s = w r e − V v s = \frac{wr_{e}-V }{v} s=vwreV

车速和轮胎角速度之间存在三种情况。

  • 首先,当车速v大于   w r e \ wr_{e}  wre 。在这种情况下,车轮会发生打滑。这在车辆制动时发生。
  • 第二,当车速v小于   w r e \ wr_{e}  wre时。这种情况通常发生在结冰的道路上行驶。
  • 第三,当轮胎速度为零且车速为非零时。轮胎被锁死。这是第一种情况的扩展,可能在紧急制动期间发生。

2.轮胎模型

轮胎模型将车辆侧偏角,滑移率,道路摩擦系数以及作用在轮胎上的法向力作为输入。然后计算侧向和纵向力。我们可以将这些模型分为三种主要的建模方法:分析模型,数值模型和参数化模型。

参数化模型的两个经典模型是线性模型和Pacejka轮胎模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/14832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中台和微服务有什么区别?

中台不就是微服务吗?这种说法实际上混淆了中台与微服务的定义,要说清楚这个问题,就要先了解,什么是中台?什么是微服务?中台和微服务之间有什么样的关系? 什么是中台 来自阿里官方的定义&#x…

【强化学习】TensorFlow2实现DQN(处理CartPole问题)

文章目录1. 情景介绍2. DQN(Deep Q Network)核心思路:3. DQN算法流程4. 代码实现以及注释5. 实验结果文章阅读预备知识:Q Learning算法的基本流程、TensorFlow2多层感知机的实现。1. 情景介绍 CartPole问题:黑色小车上…

【并发编程五】c++进程通信——信号量(semaphore)

【并发编程五】c进程通信——信号量(semaphore)一、概述二、信号量三、原理四、过程1、进程A过程2、进程B过程五、demo1、进程A2、进程B六、输出七、windows api介绍1. 创建信号量 CreateSemaphore()2. 打开信号量 OpenSemaphore()3. 等待 WaitForSingle…

一种基于IO口的模拟串口(LOG)实现方法

一、使用背景 当MCU的串口不够用时,可以通过IO模拟的方式将任意一个具有输出功能的管脚配置为串口输出,从而方便开发和调试。 二、实现原理 通过IO口模拟串口发送波形,配置对应的波特率等信息,然后映射printf函数,从…

基于粒子群优化算法的冷热电联供型综合能源系统运行优化(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

redis 支持的数据类型

Redis 数据库支持五种数据类型。 字符串(string) 哈希(hash) 列表(list) 集合(set) 有序集合(sorted set) 位图 ( Bitmaps ) 基数统计 ( HyperLogLogs ) 字…

Vue3.2 + Element-Plus 二次封装 el-table(Pro版)

前言 📖 ProTable 组件目前已是 2.0版本🌈,在 1.0版本 中大家提出的问题与功能优化,目前已经得到优化和解决。 😀 欢迎大家在使用过程中发现任何问题或更好的想法,都可以在下方评论区留言,或者我…

【计算机网络】局域网体系结构、以太网Ethernet详解

注:最后有面试挑战,看看自己掌握了吗 文章目录局域网LAN决定局域网的要素网络拓扑传输介质局域网的分类以太网令牌环网FDDI网----Fiber Distributed Data InterfaceATM网---Asynchronous Transfer Mode无线局域网WLAN----Wireless Local Area NetworkMAC…

Red Hat Enterprise Linux (RHEL) 9 更新了哪些新特性?

文章目录1. 前言2. 软件3. 支持的硬件架构4. GNOME更新到40版5. 安全和身份6. 构建容器的通用基础镜像7. 改进了用于管理 RHEL 9 的 Cockpit Web 控制台1. 前言 体验一下最新的rhel 9.0 是什么感觉。它会飞吗? Red Hat Enterprise Linux (RHEL) 9现已普遍可用 (GA…

吃柿子的禁忌靠谱吗?

图片来源:pixabay 秋冬是柿子上市的季节,虽然柿子并不是苹果、香蕉这样的大宗水果,但是秋天不吃个柿子,冬天不吃个柿饼,总觉得少了点什么。 关于吃柿子有很多禁忌,比如说柿子不能与螃蟹同时吃,柿…

​怎么保留硬盘数据合并分区 ,如何才能合并且不丢失数据

硬盘分区合并是比较常见的操作,​怎么保留硬盘数据合并分区,还是具有一定的难度。因为在Windows操作系统中,用户可以通过磁盘管理来实现硬盘分区合并,但是要删除该磁盘分区右侧的相邻分区,但是对于部分不懂计算机的用户…

Tailscale的子网路由和出口节点

2 年前,老苏写了 『 外网访问群晖的新方案Tailscale 』,第一次隆重的给大家推荐了 Tailscale,但当时还有很多功能并不具备,比如今天要介绍的 Subnet Router 和 Exit Node 【特别说明】:老苏使用的是DSM6 ,所…

RabbitMQ初步到精通-第一章-消息中间件介绍

第一章 消息中间件介绍 1.MQ概述 MQ全称是Message Queue,消息的队列,因为是队列,所以遵循FIFO 先进先出的原则,它是一种跨进程的通信机制,用于上下游传递消息。 在互联网架构中,MQ是一种非常常见的上下游“…

论文阅读笔记 | 三维目标检测——VeloFCN算法

如有错误,恳请指出。 文章目录paper:《Vehicle Detection from 3D Lidar Using Fully Convolutional Network》 对于64线激光雷达全范围扫描出来的点云进行特征图的构建。对于具体的点(xyz坐标),其在水平方向上可以通…

一个是证书服务和web安全访问配置,一个是PGP的使用

一个是证书服务和web安全访问配置,一个是PGP的使用 IIS介绍 IIS是本机自带的服务,用于上线web网页;虽然是自带但因为非开发人员用不到,所以属于预安装;在本机搜索下载即可, 打开后 证书服务,认…

LeetCode[105]从前序与中序遍历序列构造二叉树

难度:中等 题目: 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,1…

Vue基础4

Vue基础4计算属性姓名案例 - 第一种用click.keyup的方法姓名案例 - 第二种用v-model双向绑定的方法姓名案例 - 第三种使用methods方法姓名案例 - 第四种使用计算属性的方法计算属性的简写—只考虑读取,不考虑修改时候使用监视属性第一种普通写法第二种用计算属性的写…

【信号处理】卡尔曼(Kalman)滤波(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

Java内部类分类

文章目录内部类分类局部内部类的使用匿名内部类成员内部类静态内部类一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。是我们类的第五大成员 思考:类的五大成员是哪些? - 属性、方法、构造器、代码块、内…

Windows安装Git教程(2022.11.18 Git2.38.1)

(1)首先前往Git官网,下载安装文件: (2)打开安装程序,把Only show new options的勾去掉,点击Next: (3)此处可以选用默认设置,也可以勾…