决策规划仿真平台的搭建

以下内容笔记据来自于b站up主忠厚老实的老王,视频;链接如下:

自动驾驶决策规划算法第二章第一节 决策规划仿真平台搭建_哔哩哔哩_bilibili

使用到的软件有matlab、prescan、carsim以及visual stadio。

我电脑上软件的版本是matlab2022a,carsim2019.1、prescan8.5以及vs2022,最终可编译成功。

prescan提供道路、传感器的信息;carsim提供车辆动力学模型,matlab就提供一些仿真模型和写算法,prescan和matlab联合仿真的话需要用到c++编译器,这里使用vs。

在prescan的Experiments文件夹下有一些例子,例如在"C:\Users\Public\Documents\Experiments\DemoTemplates\Demo_PreScanCarSim3D\Demo_PreScanCarSim3D.cpar"中有一个cpar的车辆模型,是prescan自己做的一个和carsim联合仿真的模型接口。

在prescan中新建一个实验,之后拖出audi A8的车辆在面板中:

打开carsim2019.1,选择第四个选型,并在弹出来的文件夹选择中提取刚刚找到的:"C:\Users\Public\Documents\Experiments\DemoTemplates\Demo_PreScanCarSim3D\Demo_PreScanCarSim3D.cpar"这个车辆模型。

 提取之后它会让你选择将文件提取到那个文件夹下面,这里文件夹理论是可以放在电脑上的人任何地方,这里推荐放在prescan的Experiments这个文件夹下面,新建的文件夹名称最好是英文名,我将它名为dynamic。我把它放在了d盘,路径如下:D:\xuexi\dynamic选择这个新建的文件夹后carsim会把这个文件解压缩,解压缩成功后这个文件夹的最终的形态就如下:

carsim的界面如下:

回到prescan中做一些相应的设置:

(1)右键audiA8模型——在动力学模型中选择user specified用户自定义,选择到上面解压缩后的文件中的文件夹中的simulink文件夹中的模型。

(2)设置仿真步长:对于carsim的迭代步长要设置到1000,因为carsim提供的是动力学模型,否则会不收敛。其中上面20是prescan自己自带的仿真步长,由于它在这里只提供一些环境和传感器信息,所以它的迭代频率设置为20就可以。

这里设置完毕后要点build按钮,prescan中每次更新模型后都要点一下这个按钮,否者新设置的参数不会更新到simulink模型中。

下面要打开matlab进行联合仿真,要注意的进行联合仿真时不能直接打开matlab,打开方式点击prescangui中的start按钮:

一般matlab第一次和prescan联合仿真会使用vs中的c++编译器做一系列的c++程序的编译。编译完成matlab的工作路径会自动跳转到C:\Users\Public\Documents\Experiments中,此时要手动将工作路径改到prescan刚建立的工程文件夹下:C:\Users\Public\Documents\Experiments\testexperiment,其中testexperiment是我上面在prescan中建立的新工程名称。在文件夹中的

就是在prescan中build的simulink模型,打开这个模型会生成一个testexperiment.pb文件,在文件夹中也会生成一些相关的配置。

整体模型如下:

其中按钮的作用就是在prescan中每build一次后就需要在这个模型文件中按一次这个按钮以更新simulink模型。

打开这个文件中的carsim模型,模型的封装关系见图的最上面:

 双击carsim模型它需要提供simfile文件的具体路径,目前还没有生成simfile文件,生成方式如下,在carsim中点击send to simulink,会在上面将prescan中cpar文件解压缩后的文件夹中也就是D:\xuexi\dynamic生成一个simfile.sim文件:

路径就是上面carsim模型的路径D:\xuexi\dynamic\simfile.sim,将该路径赋值到simulink的carsim模块中,如下:

接下来设置一下carsim的输入和输出:

该模型中carsim的输入一共有23个,前三个分别是油门,方向盘转角和制动压力,4到15是一系列坡度,16到23是路面附着系数。在testexperiment_cs.mdl模型中设置输入和输出的参数可以参考上面选择解压缩的cpar文件所在文件夹中自带的simulink模型模版。

将模型中的carsim模块的输入输出粘贴到testexperiment_cs.mdl中即可,上图中红圈就是模板中的输入输出。

其中输入一共23个,正好对应carsim模型中的三个:

输入第一个是方向盘转角,第二个是油门,第三个是刹车坡度一共有8个,将其接地即可,附着系数全部设置成0.9,这样的话输入就全部设置完毕。

输出设置如下:

原本的carsim输出一共有35个:

在模型中增加了ax、ay,需要在carsim软件中新增

在simulink模型中设置,点击小箭头进入:

这样在外部将相关的参数连接起来即可

至此输入和输出接口已经全部设置完毕,效果如下:

 接下来打开老王在github上的文件夹,将算法文件复制到我们上面新建prescan项目的根目录下:

其中emplanner.m文件是EM PLANNER初始化与配置文件,主要是加载全局路径,加载油门刹车标定表,设置一些规划和控制参数等等。

将老王github上的算法模型和一些个接口数据粘到自己的模型中:

 这样整个基础的仿真模型搭建完毕,关于模型的介绍请看老王的视频解析。

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

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

相关文章

Java | 增强for底层工作机制

✍🏼作者:周棋洛,bilidown开发者。 ♉星座:金牛座 🏠主页:我的个人网站 🌐关键:Java 增强for 工作机制 目录 引言增强for循环语法增强for工作机制探究简单总结1.对于实现了Iterable接…

威纶通触摸屏下载项目文件后,文本都变成了框框的解决办法

威纶通触摸屏下载项目文件后,文本都变成了框框的解决办法 我们在用Easy builder pro编辑某些项目的情况下,编译没问题,为什么下载到触摸屏之后,文本都变成了框框了呢? 分析:: 不能正常显示文本的原因是字体文件缺失。 解决办法: 如下图所示,在Easy builder pro软件中,…

nginx反向代理kafka集群实现内外网隔离访问 —— 筑梦之路

背景说明 我们在使用Kafka客户端连接到Kafka集群时,即使连接的节点只配置了一个集群的Broker地址,该Broker将返回给客户端集群所有节点的信息列表。然后客户端使用该列表信息(Topic的分区信息)再与集群进行数据交互。这里Kafka列表…

街道治安新利器:EasyCVR智能视频管理方案助力城市安全新高度

一、背景分析 随着城市化进程的加快和社会治安形势的日趋复杂,街道治安管理面临着前所未有的挑战。对于街道治安的管理,面临着街道上机动车、非机动车违停、游商摊贩、垃圾堆积、人员监管等问题,既影响市容市貌,又有安全隐患。传…

SpringBoot(一)之初始化

SpringBoot(一)之初始化 文章目录 SpringBoot(一)之初始化SpringBoot框架 SpringBoot简化配置1. 创建SpringBoot项目关于初始化错误 2. SpringBoot项目结构主类pom.xml1. 关于spring-boot-starter-parent2. 关于spring-boot-starter-web3. 关于spring-boot-starter-test4. 关于…

NFC交友名片源码

NFC交友名片源码 效果图部分源码领取源码下期更新预报 效果图 部分源码 <html lang"en"><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport"…

解决Word文档中页眉有部分有,有部分没有的问题

问题描述&#xff1a;一个Word文档中&#xff0c;在页眉上添加文档名称和页码&#xff0c;但是有的有&#xff0c;有的没有&#xff0c;选择“链接到前一节”也无法解决该问题。 原因分析&#xff1a;页眉页脚中&#xff0c;勾选了“首页不同”的选项&#xff0c;如下图&#…

AI交互数字人赋能农业数字化、智能化推广营销

2024陵水荔枝文化节上“数字新农人”陵小荔身着黎族服饰、佩戴银器亮相开幕式现场&#xff0c;AI交互数字人生动地以互动式推介和歌舞等形式&#xff0c;带领宾客们了解陵水荔枝的发展历程、产业布局、未来愿景等。如今&#xff0c;越来越多农产品品牌通过3D虚拟数字人定制&…

【Java基础】集合(2) —— List

List 存储的对象是有序的&#xff08;集合中存储对象的顺序和使用add方法添加对象的顺序一致&#xff09;&#xff0c;存储的对象是可重复的。 List的特有的功能: 都是可以操作索引的功能。 增: void add(int index, E element )boolean addAll(int index, Collection<? …

MS5173M-16bit、单通道、200kSPS、 SAR 型 ADC

MS5173M 是单通道、 16bit 、电荷再分配逐次 逼近型模数转换器&#xff0c;采用单电源供电。 MS5173M 包含一个低功耗、高速数据采样且 无失码的真 16 位 SAR ADC 和一个内部转换时钟。 MS5173M 使用通用的串口接口实现转换结果 的接收&#xff0c;还包含低噪声、宽…

【C语言】自定义类型之---结构体超详解(结构体的定义使用、指针结构体,内存对齐,......代码详解)

目录 前言&#xff1a; 一&#xff1a;结构体 1.1&#xff1a;什么是结构体&#xff1f; 1.2&#xff1a;结构体类型的声明 1.3&#xff1a;结构体变量的定义 1.4&#xff1a;结构体的内存对齐 1.5&#xff1a;结构体传参 二&#xff1a;位段 2.1&#xff1a;位段是什…

4 软件定义安全综合:使用c/s模式进行控制器数据安全交互管理

在SDN三层结构中&#xff0c;我们通过OpenFlow 协议可以控制数据转发设备的相关行为&#xff08;包括收集设备的信息&#xff09;&#xff0c;那么控制器上的数据能否通过应用层的程序进行管理调用呢&#xff1f; SDN&#xff08;软件定义网络&#xff09;的北向开发是指通过编…

Arduino红外遥控器,控制继电器水泵

我们将讨论如何使用Arduino和IRremote库来实现通过红外遥控器控制继电器的开关。通过这个项目&#xff0c;你将学会如何接收和解码红外信号&#xff0c;并根据接收到的信号控制继电器&#xff08;这里的继电器可以换成其他传感器&#xff09;的状态。 项目简介 我们将使用Ard…

【Linux网络编程】IO多路转接之poll

poll 1.poll初始2.poll函数接口3.poll服务器4.poll的优点缺点 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.poll初始 poll也是一种linux…

静态IP代理:网络世界的隐秘通道

在数字化时代&#xff0c;网络安全和隐私保护日益受到重视。静态IP代理作为一种网络服务&#xff0c;为用户提供了一个稳定且可预测的网络连接方式&#xff0c;同时保护了用户的在线身份。本文将从五个方面深入探讨静态IP代理的概念、优势、应用场景、技术实现以及选择时的考量…

英语单词量测试

网址&#xff1a;https://preply.com/en/learn/english/test-your-vocab 测试结果&#xff1a; 细节&#xff1a;英语母语者有20000-35000个单词的词汇量&#xff0c;8岁孩子的词汇量在8000个左右。而不是我们教育系统里说的&#xff0c;6000个单词足够用了。足够用&#xff0…

基于EBAZ4205矿板的图像处理:05均值滤波算法

基于EBAZ4205矿板的图像处理&#xff1a;05均值滤波算法 项目全部文件已经上传&#xff0c;是免费的 先看效果 可以明显看到图像变糊了&#xff0c;这就是均值滤波的特点&#xff0c;将噪声均摊到每个点上的同时&#xff0c;也会让图像丢失细节。 算法讲解 均值滤波&#x…

Mini Cheetah 代码分析(八)基于零空间的任务分级

一、主要公式 二、源代码注释 三、相关原理解释 一、主要公式 二、源代码注释 该功能的实现在文件KinWBC.cpp中的FindConfiguration函数&#xff0c;主要看注释&#xff0c;与公式是能够对应起来的&#xff0c;由第0个任务&#xff0c;也就是接触任务开始进行迭代&#xff0…

基于SSM的“羽毛球馆管理系统”的设计与实现(源码+数据库+文档)

基于SSM的“羽毛球馆管理系统”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统结构图 登录界面 后台用户添加 后台用户管理 球场添加 球场…

「前端」性能优化问题总结

前言 本文主要介绍一些前端通用的性能优化方案总结&#xff0c;非写代码阶段的性能优化。 分包 React router V6.4 数据路由新特性 <Route path/xx lazy{async()>{const module await import(./xx)const XX module.defaultreturn{element:(<Suspense fallback…