决策规划仿真平台的搭建
以下内容笔记据来自于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上的算法模型和一些个接口数据粘到自己的模型中:

这样整个基础的仿真模型搭建完毕,关于模型的介绍请看老王的视频解析。
相关文章:
决策规划仿真平台的搭建
以下内容笔记据来自于b站up主忠厚老实的老王,视频;链接如下: 自动驾驶决策规划算法第二章第一节 决策规划仿真平台搭建_哔哩哔哩_bilibili 使用到的软件有matlab、prescan、carsim以及visual stadio。 我电脑上软件的版本是matlab2022a&am…...
RustGUI学习(iced/iced_aw)之扩展小部件(十八):如何使用badge部件来凸显UI元素?
前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 概述 这是本专栏的第十八篇,主要讲述badge标记部件的使用,会结合实…...
触摸播放视频,并用iframe实现播放外站视频
效果: html: <div:style"{ height: homedivh }"class"rightOne_content_div_div"mouseenter"divSeenter(i)"mouseleave"divLeave(i)"click"ItemClick(i)"><!-- isUser是否是用户上传 --><divv-if…...
接口自动化-requests库
requests库是用来发送请求的库,本篇用来讲解requests库的基本使用。 1.安装requests库 pip install requests 2.requests库底层方法的调用逻辑 (1)get / post / put / delete 四种方法底层调用 request方法 注意:data和json都…...
队列的实现与OJ题目解析
"不是你变优秀了, 那个人就会喜欢你." 文章索引 前言1. 什么是队列2. 队列的实现3. OJ题目解析4. 总结 前言 感情可以培养是个伪命题. 如果有足够多的时间和爱, 就可以让另一个人爱上你的话, 那谁和谁都可以相爱了. 爱情之所以会让人死去活来, 是因为, 答案都写在了…...
中北大学软件学院javaweb实验三JSP+JDBC综合实训(一)__数据库记录的增加、查询
目录 1.实验名称2.实验目的3.实验内容4.实验原理或流程图5.实验过程或源代码(一)编程实现用户的登录与注册功能【步骤1】建立数据库db_news2024和用户表(笔者使用的数据库软件是navicat)【步骤2】实现用户注册登录功能(与上一实验报告不同的是࿰…...
高通QCS6490开发(一): 广翼智联FV01 AI板卡简介
《高通QCS6490开发》是一系列AIoT应用开发文章,我们将会在系列文章中陆续介绍基于QCS6490平台上的AIoT应用开发,在文章中,我们选择了广翼智联(FAIOT)公司的FV01产品作为开发板,介绍如何从底层的硬件板卡接线…...
【知识拓展】大白话说清楚:IP地址、子网掩码、网关、DNS等
前言 工作中常听别人说的本地网络是什么意思?同一网段又是什么意思?它俩有关系吗? 在工作中内经常会遇到相关的网络问题,涉及网络通信中一些常见的词汇,如IP地址、子网掩码、网关和DNS等。具体一点:经常会…...
Java 高级面试问题及答案2
Java 高级面试问题及答案 问题 1: 请解释 Java 中的多线程和并发的区别,并举例说明如何避免常见的并发问题。 答案: 多线程是指程序中有多个线程同时执行,而并发是指程序设计中允许多个操作看起来是同时执行的,即使它们可能不是…...
2024年网络安全威胁
随着2024年的到来,数字世界的版图正在以前所未有的速度扩张,引领我们进入一个技术革新的新时代。然而,这飞速的发展同时也催生了一系列错综复杂的网络安全挑战。在这个数字平台与我们生活日益紧密交织的时代,深入了解这些新兴的威…...
应用层之 HTTP 协议
HTTP 协议 HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议。所谓 "超文本" 的含义, 就是传输的内容不仅仅是文本(比如 html, css 这个就是文本), 还可以是一些 其他的资源, 比如图片, 视频, 音频等二进制的数据。浏览器获取到网页&#…...
解决Word文档中页眉有部分有,有部分没有的问题
问题描述:一个Word文档中,在页眉上添加文档名称和页码,但是有的有,有的没有,选择“链接到前一节”也无法解决该问题。 原因分析:页眉页脚中,勾选了“首页不同”的选项,如下图&#…...
Python爬虫基础知识学习(以爬取某二手房数据、某博数据与某红薯(书)评论数据为例)
一、爬虫基础流程 爬虫的过程模块化,基本上可以归纳为以下几个步骤: 1、分析网页URL:打开你想要爬取数据的网站,然后寻找真实的页面数据URL地址; 2、请求网页数据:模拟请求网页数据,这里我们介…...
JavaScript-输入输出语句
输出语句 document.write( 输出的内容 ) 语法:document.write( 输出的内容) 作用:内容会显示在网页上 如果输出的内容是标签,也会被解析为网页元素 代码: <!DOCTYPE html> <html lang"en"> <head>&…...
peft+llama3训练自定义数据
要微调自己的模型训练 LLaMA 3,则需要准备一个 JSON 格式的数据集,其中每个条目包含输入文本和相应的标签(如果有的话)。以下是一个 JSON 数据集的示例格式: [{"input": "这是一个输入样本。",&q…...
vue+ts+vite+pinia+less+echarts 前端可视化 实战项目
1.初始化前端 输入 npm init vuelatest 命令 然后 选择需要的插件2.构建完成后 在终端切换到vue-project文件夹下 npm install 下载依赖 3.下载 less样式 npm install less less-loader -D 4.下载axios npm install axios 5.下载echarts npm install echarts -S 6.引入中国…...
文心一言指令多样化,你知道的有哪些?
文心一言的指令非常多样化,可以根据用户的需求和场景进行灵活调整。以下是一些常见的文心一言指令示例: 知识问答: 帮我解释一下什么是芯片?中国的历史上有哪些重要的朝代?人工智能在未来会有哪些发展趋势?…...
QT状态机8-使用恢复策略自动恢复属性
当状态分配的属性不再活动时,可能希望将其恢复到初始值,通过设置全局的恢复策略可以使状态机进入一个状态而不用明确制定属性的值。 QStateMachine machine; machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties);当设置了恢复策略以后,状态机将自动恢复所有…...
第83天: 代码审计-PHP 项目RCE 安全调试追踪代码执行命令执行
案例一:CNVD拿1day-RCE命令执行-百家CMS 这里用代码审计系统搜索system,可以利用的是第一种 打开看细节 查找函数引用 查找$_file第一次出现的地方 这个时候就明白了,必须上传文件,然后利用文件名,去执行system命令 …...
学习Uni-app开发小程序Day8
前面几天,学习了vue的button组件、input组件,vue模版语法、计算属性等,在昨天又根据前面学习的,跟着做了一个小的购物车功能,今天学习了侦听器和计算属性 计算属性 computed computed是一个只读的状态,如果要修改…...
为什么92.7%的临床研究者用错Perplexity药物检索?——2024年真实审计案例暴露的4个致命盲区
更多请点击: https://intelliparadigm.com 第一章:Perplexity药物信息检索的临床价值与审计背景 在精准医疗快速演进的当下,临床决策对实时、可信、上下文感知的药物信息依赖日益加深。Perplexity作为基于推理增强型大语言模型的信息检索系统…...
LibSVM在Matlab里的实战:从分类到回归,手把手调参与结果解读
LibSVM在Matlab里的实战:从分类到回归,手把手调参与结果解读 当你第一次在Matlab中成功运行LibSVM时,看到命令行窗口跳出"Accuracy 86.6667%"的那一刻,可能既兴奋又困惑。兴奋的是工具终于跑通了,困惑的是那…...
用STM32和HC-SR04做个智能小车避障,代码和接线图都给你准备好了
STM32与HC-SR04构建智能小车避障系统实战指南 1. 项目概述与核心组件选型 智能小车避障系统是嵌入式开发中极具实用价值的练手项目,它能综合考察开发者对传感器数据采集、电机控制和简单算法的掌握程度。这个项目的核心在于如何让小车自主感知环境并做出避障决策&…...
如何在Windows电脑上直接运行安卓应用:APK安装器终极解决方案
如何在Windows电脑上直接运行安卓应用:APK安装器终极解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经希望在Windows电脑上直接运行安卓应…...
抖音下载器完整指南:从零构建高效批量下载系统的技术实践
抖音下载器完整指南:从零构建高效批量下载系统的技术实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...
别再死记硬背了!用这个商品库存表案例,5分钟搞懂HTML表格的rowspan属性
别再死记硬背了!用商品库存表案例5分钟掌握HTML表格的rowspan属性 每次看到HTML表格代码里那些rowspan和colspan属性就头疼?别担心,今天我们不谈枯燥的语法定义,而是通过一个真实的商品库存管理案例,带你理解rowspan的…...
Auto Edit 日常迭代踩坑实录:OpenAI Codex CLI 三种权限模式配置差异与 2 类高频报错修复
1. Auto Edit 模式不是“全自动”,而是最易失控的权限模式 大多数人第一次在项目里启用 codex cli --mode=auto-edit,是冲着“自动改代码”去的。我也是。直到某天凌晨两点,CI 流水线突然报出 17 个 test failure,而 git diff 显示——它把一个 if (user.role === admin) …...
别再混淆了!用PyTorch代码带你彻底搞懂PointNet里的Shared MLP和普通MLP
用PyTorch代码解密PointNet中的Shared MLP与普通MLP本质差异 第一次阅读PointNet论文时,看到"Shared MLP"这个术语总让人困惑——它和普通MLP到底有什么区别?为什么点云处理非要强调"共享"这个概念?本文将通过PyTorch代码…...
从U盘启动OpenWRT:零门槛打造你的x86软路由实验平台
1. 为什么选择U盘启动OpenWRT软路由? 去年我帮朋友改造旧笔记本时,偶然发现用U盘跑OpenWRT简直是个宝藏方案。相比直接刷入硬盘,U盘启动有三大不可替代的优势:零成本实验、无损体验和随身携带。你完全可以用吃灰的旧U盘࿰…...
从仿真到现实:用Unity+ROS2搭建激光雷达小车,为实体机器人开发做预演
从仿真到现实:用UnityROS2搭建激光雷达小车,为实体机器人开发做预演 在机器人开发领域,仿真环境正逐渐成为不可或缺的工具。想象一下,你可以在不购买任何硬件的情况下,验证复杂的导航算法;或者在投入大量资…...
