当前位置: 首页 > news >正文

决策规划仿真平台的搭建

以下内容笔记据来自于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.lryc.cn/news/349799.html

相关文章:

  • RustGUI学习(iced/iced_aw)之扩展小部件(十八):如何使用badge部件来凸显UI元素?
  • 触摸播放视频,并用iframe实现播放外站视频
  • 接口自动化-requests库
  • 队列的实现与OJ题目解析
  • 中北大学软件学院javaweb实验三JSP+JDBC综合实训(一)__数据库记录的增加、查询
  • 高通QCS6490开发(一): 广翼智联FV01 AI板卡简介
  • 【知识拓展】大白话说清楚:IP地址、子网掩码、网关、DNS等
  • Java 高级面试问题及答案2
  • 2024年网络安全威胁
  • 应用层之 HTTP 协议
  • 解决Word文档中页眉有部分有,有部分没有的问题
  • Python爬虫基础知识学习(以爬取某二手房数据、某博数据与某红薯(书)评论数据为例)
  • JavaScript-输入输出语句
  • peft+llama3训练自定义数据
  • vue+ts+vite+pinia+less+echarts 前端可视化 实战项目
  • 文心一言指令多样化,你知道的有哪些?
  • QT状态机8-使用恢复策略自动恢复属性
  • 第83天: 代码审计-PHP 项目RCE 安全调试追踪代码执行命令执行
  • 学习Uni-app开发小程序Day8
  • OpenHarmony标准设备应用开发(二)——布局、动画与音乐
  • mysql字段乱序 information_schema
  • 使用php和redis实现分布式锁
  • 大龄程序员是否要入职嵌入式python岗位?
  • STL—string类(1)
  • 科技查新中化工领域查新点如何确立与提炼?案例讲解!
  • 国网698.45报文解析工具
  • 留学资讯 | 2024英国学生签证申请需要满足哪些条件?
  • Python 中的分步机器学习
  • C++错题集(持续更新ing)
  • 静态IP代理:网络世界的隐秘通道