Carla教程一:动力学模型到LQR
Carla教程一、动力学模型到LQR
从运动学模型和动力学模型到LQR
模型就是可以描述车辆运动规律的模型。车辆建模都是基于自行车模型的设定,也就是将四个轮子抽象为自行车一样的两个轮子来建模。
1、运动学模型
运动学模型是基于几何关系分析出来的,一般适用于低俗情况下,这种情况可以不考虑轮胎的侧偏特性。另外,这里假设前轮的方向就是当前车辆速度的方向。但是高速情况并非如此。整个控制量可以简化为加速度a和偏航角 δ \delta δ。其中油门代表a为正,刹车代表a为负。偏航角是方向盘的控制量。然后可以定义下面的几个状态量,用来描述车辆当前状态:
- x:车辆当前横轴坐标
- y:车辆纵轴坐标
- v: 车辆速度
- φ \varphi φ:车辆横摆角
最后推导得到的动力学模型如下:
x ˙ = v cos φ y ˙ = v sin φ φ ˙ = v tan δ f L \dot{x}=v\cos \varphi \\ \dot{y}=v\sin \varphi \\ \dot{\varphi}=\frac{v\tan \delta _f}{L} x˙=vcosφy˙=vsinφφ˙=Lvtanδf
其中 δ f \delta_f δf是前轮的转向角。因为后轮一般都是不转向的,所以 δ r \delta_r δr是零。
2、动力学模型
需要考虑轮胎的侧偏性质。动力学模型是通过对轮胎和地面之间的相互作用来描述车辆的运动。动力学模型是基于车辆的动力学原理进行建模的,它考虑了车辆的质量、加速度、速度、转向等因素,可以更加精确地预测车辆的运动轨迹。动力学模型的优点在于可以考虑更多的因素,更加精确地预测车辆的运动轨迹,适用于高速行驶和紧急情况下的自动驾驶。但是,动力学模型对传感器的精度要求较高,对于复杂的路况和车辆之间的交互,需要更多的计算资源。
动力学模型可以将车辆运动的横纵向解耦,而运动学模型则无法解耦。
根据自行车动力学模型的推导,注意动力学模型中一个很关键的参数就是轮胎测偏参数,轮胎测偏力和轮胎测偏角度成正比。在实际中,测偏刚度是负数。
经过推导可以计算出关于横向速度和角速度作为状态变量,横向加速度和横向角速度变化量为因变量的状态方程。如下:
( y ¨ φ ¨ ) = ( C φ f + C φ r m v x a C φ f − b C φ r I v x a C φ f + b C φ r m v x − v x a 2 C φ f + b 2 C φ r I v x ) ( y ˙ φ ˙ ) + ( − C φ f m − a C φ f I ) δ \,\,\left( \begin{array}{c} \ddot{y}\\ \ddot{\varphi}\\ \end{array} \right) \,\,=\,\,\left( \begin{array}{c} \frac{C_{\varphi _f}+\,\,C_{\varphi _r}}{mv_x}\\ \frac{aC_{\varphi _f}-\,\,bC_{\varphi _r}}{Iv_x}\\ \end{array} \right. \left. \begin{array}{c} \frac{aC_{\varphi _f}+\,\,bC_{\varphi _r}}{mv_x}-v_x\\ \frac{a^2C_{\varphi _f}+\,\,b^2C_{\varphi _r}}{Iv_x}\\ \end{array} \right) \left( \left. \begin{array}{c} \dot{y}\\ \dot{\varphi}\\ \end{array} \right) \right. \,\,+\,\,\left( \begin{array}{c} -\frac{C_{\varphi _f}}{m}\\ -\frac{aC_{\varphi f}}{I}\\ \end{array} \right) \delta (y¨φ¨)=(mvxCφf+CφrIvxaCφf−bCφrmvxaCφf+bCφr−vxIvxa2Cφf+b2Cφr
相关文章:

Carla教程一:动力学模型到LQR
Carla教程一、动力学模型到LQR 从运动学模型和动力学模型到LQR 模型就是可以描述车辆运动规律的模型。车辆建模都是基于自行车模型的设定,也就是将四个轮子抽象为自行车一样的两个轮子来建模。 1、运动学模型 运动学模型是基于几何关系分析出来的,一般适用于低俗情况下,…...

IDE/mingw下动态库(.dll和.a文件)的生成和部署使用(对比MSVC下.dll和.lib)
文章目录 概述问题的产生基于mingw的DLL动态库基于mingw的EXE可执行程序Makefile文件中使用Qt库的\*.a文件mingw下的*.a 文件 和 *.dll 到底谁起作用小插曲 mingw 生成的 \*.a文件到底是什么为啥mingw的dll可用以编译链接过程转换为lib引导文件 概述 本文介绍了 QtCreator mi…...

点击加号添加新的输入框
实现如上图的效果 html部分: <el-form-item class"forminput" v-for"(item,index) in formdata.description" :key"index" :label"描述(index1)" prop"description"><el-input v-model"formdata…...

SQL AND OR 运算符
AND & OR 运算符用于基于一个以上的条件对记录进行过滤。 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。 下面是选自 "students" 表的数据&a…...
6、C++内存模型
原文: https://my.oschina.net/u/2516597/blog/805489 背景 C11开始支持多线程,其中提供了原子类型atomic, 和atomic关系比较密切的是memory_order,所有的内存模型都是指atomic类型 enum memory_order {memory_order_relaxed,memory_order…...
上海市青少年算法2023年1月月赛(丙组)
上海市青少年算法2023年1月月赛(丙组)T1 实验日志 题目描述 小爱正在完成一个物理实验,为期n天,其中第i天,小爱会记录ai条实验数据在实验日志中。 已知小爱的实验日志每一页最多纪录m条数据,每天做完实验后他都会将日志合上,第二天,他便从第一页开始依次翻页,直到找到…...

移动开发之Wifi列表获取功能
一、场景 业务需要通过App给设备配置无线网络连接,所以需要App获取附近的WiFi列表,并进行网络连接验证。 二、安卓端实现 1、阅读谷歌官网文档,关于Wifi 接口使用 https://developer.android.com/guide/topics/connectivity/wifi-scan?hl…...
MyBatisPlus - 实体类 的 常用注解
TableName(“表名”) 假设 表名是 book,实体类类名是 Book MyBatisPlus会进行自动映射 但如果 表名是 tab_book,实体类类名是 Book 那么MyBatisPlus就无法进行自动映射,需要我们使用 TableName注解 去指定实体类对应的表 如下 TableNa…...

vue3+ts+elementui-plus二次封装树形表格实现不同层级展开收起的功能
一、TableTreeLevel组件 <template><div classmain><div class"btns"><el-button type"primary" click"expandLevel(1)">展开一级</el-button><el-button type"primary" click"expandLevel(2…...

Qt之切换语言的方法(传统数组法与Qt语言家)
http://t.csdn.cn/BVigB 传统数组法: 定义一个字符串二维数组, QString weekStr[2][7] {"星期一","星期二","星期三","星期四","星期五","星期六","星期日",\ "Monday&…...
qt root start faild
深入解析chown -r root:root命令_笔记大全_设计学院 ffmpeg第五弹:QtSDLffmpeg视频播放演示_txp玩Linux的博客-CSDN博客...

数据结构—串
4.1串 4.1.1串的定义 串(String)——零个或多个任意字符组成的有限序列 S"a1 a2...an"串的定义——几个术语 子串:串中任意个连续字符组成的子序列称为该串的子串 例如,“abcde”的子串有: “ ”、“a”、…...

hive 全量表、增量表、快照表、切片表和拉链表
全量表:记录每天的所有的最新状态的数据,增量表:记录每天的新增数据,增量数据是上次导出之后的新数据。快照表:按日分区,记录截止数据日期的全量数据切片表:切片表根据基础表,往往只…...

数据结构07:查找[C++][B树Btree]
图源:文心一言 考研对于B树的要求重点在推理手算的部分,只参考王道论坛咸鱼老师的视频就可以了;若时间非常充裕的小伙伴,也可以往下滑了解一下代码~🥝🥝 备注: 这次的代码是从这里复制的&…...
在CSDN学Golang云原生(Kubernetes集群管理)
一,Node的隔离与恢复 在 Kubernetes 集群中,Node 的隔离与恢复通常可以通过以下方式实现: 使用 Taints 和 Tolerations 实现隔离 Taints 和 Tolerations 是 Kubernetes 中用于节点调度的机制。通过给节点添加 taints(污点&…...
WPF实战学习笔记18-优化设计TodoView
文章目录 优化设计TodoView修复新增项目无法编辑问题增加了对完成状态的区分增加了选项卡删除功能更新删除请求URI添加删除命令并初始化UI添加删除按钮更改控制器 增加查询结果为空的图片增加转换器修改UI添加资源、命名空间 添加相关元素 增加了根据状态查询的功能Mytodo.Serv…...
Python版day59
503. 下一个更大元素 II 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数&…...
[SQL挖掘机] - 算术运算符
在 sql 中,算术运算符主要用于执行数值计算操作,并且在查询语句中具有重要的地位。下面是算术运算符在 sql 中的一些作用和地位: 进行数值计算:算术运算符可以对数值类型的数据进行加减乘除等数值计算操作。例如,可以…...
机器学习基础 数据集、特征工程、特征预处理、特征选择 7.27
机器学习基础 1. 数据集 2. 特征工程 3. 学习分类 4. 模型 5. 损失函数 6. 优化 7. 过拟合 8. 欠拟合数据集 又称资料集、数据集合或者资料集合,是一种由数据所组成的集合特征工程 1. 特征需求 2. 特征设计 3. 特征处理特征预处理、特征选择、特征降维 4. 特征验…...
Sass 常用的功能!
Sass 常用功能 Sass 功能有很多,这边只列举一些比较常用的。 嵌套规则 (Nested Rules) Sass 允许将一套 CSS 样式嵌套进另一套样式中,内层的样式将它外层的选择器作为父选择器。 编译前 .box {.box1 {background-color: red;}.box2 {background-col…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...