自动驾驶仿真:Carsim、NI和VTD联合仿真课题二

文章目录

  • 前言
  • 一、设备配置
      • 1、硬件需求
        • 1.1 电脑一(Linux系统)
        • 1.2 电脑二(Window系统)
        • 1.3 NI实时机系统
      • 2、网络配置
        • 2.1 IP设置
  • 二、Carsim工程配置
      • 1、创建工程
        • 1.1 复制NI的模板,创建新工程
      • 2、创建数据库
        • 2.1 复制数据库模板,创建新的数据库
      • 3、参数配置
        • 3.1 模块概况
        • 3.2 车辆模型配置(Simulated Test Specifications)
        • 3.3 过程模型配置(Procedure)
        • 3.4 运行模式配置(Run Control)
  • 三、VTD工程配置
      • 1、创建工程
        • 1.1 复制Setup和SampleProject
        • 1.2 设置TsakControl
        • 1.3 配置ModuleManager
        • 1.4 场景编辑
  • 四、Veristand工程配置
      • 1、创建工程
        • 1.1 创建默认工程
        • 1.2 编辑System Explorer
  • 五、运行程序


前言

上篇文章《Carsim、NI和VTD联合仿真课题一》简单地介绍了三者之间的联合框架,以及NI与VTD之间简单的组包与拆包指导。这篇文章将要讲述的是如何将三个软件联合起来,如何设置软件参数,用最简单的方法把仿真车开起来。


一、设备配置

1、硬件需求

注:真正的做智能驾驶仿真项目,至少需要两台电脑,一台实时机。

1.1 电脑一(Linux系统)

① 安装VTD软件,建议安装双显卡,因为项目中可能会有多个鱼眼摄像头、双目摄像头,需要用到视屏注入的方法,将VTD的摄像头模型通过显卡输出注入到控制器,从而模拟摄像头。
② 一个摄像头将对应一路视屏输出信号,而双显卡的性价比最高,也可以使用分布式的方法将其他摄像头画面分布到其他电脑在进行视屏注入。

1.2 电脑二(Window系统)

① 安装Carsim动力学软件,用于车辆模型、动力系统、驾驶员模型等配置;
② 安装Veristand软件,用于传递传感器模型数据,动力学数据,以及控制CAN卡、以太网卡,另外自带编程语言还能用于动力学模型的优化,以及ECU控制器的逻辑交互。

1.3 NI实时机系统

① 用来运行Veristand软件的程序,实时性高,且可以选配控制卡,搭配使用。

2、网络配置

2.1 IP设置

① 将3台机器配置到同一网段内,假设分别设置成VTD:192 .168.0.1,Carsim、Veristand:192 .168.0.2,实时机192 .168.0.3,并将对应的网线插到交换机,确保互相之间能够ping通。

二、Carsim工程配置

1、创建工程

1.1 复制NI的模板,创建新工程

在这里插入图片描述
在这里插入图片描述

2、创建数据库

2.1 复制数据库模板,创建新的数据库

① 打开刚刚创建的Carsim工程,可以在该界面中进行如下操作复制数据库作为自己的数据库工程:点击Duplicate按钮弹出Duplicate Dataset界面,在2、3中可对数据库名称进行设置。
在这里插入图片描述

3、参数配置

3.1 模块概况

3.1.1 车辆模型配置(Simulated Test Specifications)
3.1.2 过程模型配置(Procedure)
3.1.3 运行模式配置(Run Control)
在这里插入图片描述

3.2 车辆模型配置(Simulated Test Specifications)

3.2.1 下列参数可根据实际情况进行更改,这里做仿真演示,不修改;
在这里插入图片描述

3.3 过程模型配置(Procedure)

3.3.1 驾驶员模型配置;
① 设置以节气门开度0+初始速度0KM/h的控制方式,以油门踏板和速度的方式对车辆进行纵向控制,将在Veristand开放输入接口,控制车辆速度。
② 刹车设置默认的0Mpa。(以刹车踏板对车辆进行制动控制,将在Veristand开放输入接口,控制刹车。
③ 选择挡位自动控制。

在这里插入图片描述

3.3.2 起始和终止条件设置;
① 运行模式设置为Run forever,Casim动力学模型要一直运行,VTD才能和Carsim一起联动。否则,如果Carsim设置运行100m,那么100m之后VTD中的车辆将会停止,因为动力学模型只控制车辆运行100m,所以这里要设置为Run forever,让车一直在跑,直到主动断开动力学模型,即断开Carsim和VTD之间的通讯。

3.3.3 道路设置
① 道路摩檫力设置0.85,根据实际情况设定。
② 对车辆在道路上的起始位置和航向角进行设置。
在这里插入图片描述

3.4 运行模式配置(Run Control)

3.4.1 运行模式配置
① 主页Run Control中选择NI-RT Target的方式
在这里插入图片描述

3.4.2 运行模式参数配置(Run Control参数配置)
点击刚刚配置的NI -RT Target,进入内部配置相关参数
1、配置NI 实时机登录的用户名和密码,这块可以在NI-MAX配置。
2、配置NI 实时机的IP和本地电脑的IP。
3、配置Veristand的工程路径,所以需要提前建立好Veristand的工程。
4、配置Casim对NI-Veristand的输入、输出接口。

在这里插入图片描述
3.4.3 输入接口配置
① IMP_MXU:
每个轮胎的受到的摩擦力。在道路设置那里已经配置过了,可以不选,我这里是想自定义摩檫力。

② IMP_ZGND:
四轮接地点。需要从VTD端传递数据过来,用于形成VTD和Carsim的闭环的控制。

③ IMP_STEER_SW:
方向盘控制。这个也要根据项目需求选择, 正常情况下让VTD场景的Driver开就行了,可以自定义数值,但是这样的话需要Casim和VTD场景匹配(道路及场景设置),否则有可能发生这种情况,Carsim的车运行的位置不在车道内,VTD运行的车在车道内,则会出现掉帧情况,不过选上也没关系,但不输入数值不会影响到仿真。

④ IMP_THROTTLE_ENGINE:
节气门开度。车速的控制由油门踏板决定,输入对踏板需求值,经过Carsim的动力学运算,输出实际的加速度和速度,从而控制车辆。

⑤ IMP_PCON_BK:
主缸压力。经过Carsim的动力学运算,输出实际的加速度和速度,从而控制车辆。

⑥ IMP_SPEED:
目标速度。这个不选,因为我们是通过节气门的方式控制车辆速度的。
在这里插入图片描述
3.4.4 输出接口配置
注意:这里做一下特别注意选择位置、速度、加速度,不要选择以世界坐标系为主的x0,vx,ax(不用添加到输出变量中去,下图只是为了突出效果),因为这样控制车辆会基于世界坐标去移动;而我选择的是以质心为坐标系的参数,相当于是车辆坐标系,如下图Xcg_SM、VxNf_SM、Ax_SM。
以下是真正要选择的参数:
① 4-6:Pitch俯仰角、Roll横摆角、Yaw航向角;
② 13-18、31-33:基于车辆坐标系的位置、速度、加速度;
在这里插入图片描述

综上,完成了Casim最基础的配置,如果想对Casim的input、output参数修改,可以使用Veristand优化模型。

3.4.5 更新Casim的DLL文件
① 点击Send之后会更新DLL文件到C:\Users\Public\Documents\CarSim2019.0_Data\Extensions\NI-RT\Solver_DLLs(具体看安装的版本和安装位置)

在这里插入图片描述
在这里插入图片描述
最后我们将在Veristand中使用这个DLL文件。


三、VTD工程配置

1、创建工程

1.1 复制Setup和SampleProject

① 复制VTD.2021/Data/Setups中的Standard文件,VTD.2021/Data/Projects中的SampleProject并重命名作为自己的工程;
② 进入“…/VIRES/VTD.2021/bin”文件夹路径,点击鼠标右键,选择打开终端;在弹出的命令窗口输入 “./vtdStart.sh -select”回车,即打开VTD并选择需要用到的setup的数字打开VTD;;
③ 点击左上角File按钮,选择Open Projects,并在弹出的对话框中选择刚创建的SampleProject。

1.2 设置TsakControl

在VTD GUI界面中点击Parameterbrowser设置 TaskControl 的参数。在弹出的界面中先在下拉框2中选择Projects对TaskControl进行设置。其中:
①ImageGenerator里portType设置为TCP;
②RDB中portType类型为TCP ,composeSingleMessage设置为true;
③Dynamics里syncMode设置为frame;
④Sync中source设定为RDB,点击保存。在下拉框2中选择Setup继续配置,其各参数需与Projects中保持一致,完成Setup和projects的配置后,点击保存按钮并关闭该配置界面。如下图示:
在这里插入图片描述
在这里插入图片描述

1.3 配置ModuleManager

ModuleManager是配置VTD内部各模块间通讯方式的文件,本示例中需对其进行部分修改。首先打开Data/Projects/Current/Config/ModuleManager/moduleManager.xml文件,作如下更改
① 修改<RDB> < Port type=TCP” /> <RDB> 保证是TCP可以和TC通信;
② 注释掉VTD动力学模型<!--DynamicsPlugin name=”viTrafficDyn”> </DynamicsPlugin-->(!–和–是注释符号);

1.4 场景编辑

①选中仿真所用场景。在Project Configuration模块点击FILES,在右侧界面选择所用场景,右击点击Edit Scenario即可打开Scenario界面进行场景编辑;
在这里插入图片描述
② 在Scenario界面,点击左侧1添加车辆,放到2路上。双击所加车辆出现右侧界面,在Initlalisation界面设置4主车名称为Ego,因为Ego的ID一般为1,后续Carsim控制这个车辆需要用到这个ID;5 Animation选择External;
在这里插入图片描述
③ 选择1:Actions,点击2:新建NEW(element pos),3 :对新建的element pos命名为pedal,4:Release type选择Relative Position,5:选择scp命令,勾选use选项,输入驾驶员操控命令:

<Player name="Ego"><Driver ctrlLatLong="ghostdriver" sendPedals="true" brakePedalScale="1.0" throttlePedalScale="1.0"/></Player>

在这里插入图片描述
③ 点击2:新建NEW(element pos),3 :对新建的element pos命名为Contain point,4:Release type选择Relative Position,5:选择scp命令,勾选use选项,输入轮胎接地点命令:

<ContactPoint id="1"><PosPlayer Player="Ego" dx="2.7" dy="0.9"/></ContactPoint>  
<ContactPoint id="2"><PosPlayer Player="Ego" dx="2.7" dy="-0.9"/></ContactPoint>
<ContactPoint id="3"><PosPlayer Player="Ego" dx="0.0"   dy="0.9"/></ContactPoint>
<ContactPoint id="4"><PosPlayer Player="Ego" dx="0.0"   dy="-0.9"/></ContactPoint>

完成设置后,回到上一层页面,点击Save,保存一下配置。

四、Veristand工程配置

1、创建工程

1.1 创建默认工程

在这里插入图片描述

1.2 编辑System Explorer

① 点击Controller,右键选择Locate in System Explorer
在这里插入图片描述
② 右键Custom device
在这里插入图片描述
③ 右键添加制作的VTD的Custom Device(上一篇文章有介绍怎么制作CD),只要发两个包就行了,一个是Trigger和Driver Control。
在这里插入图片描述
在这里插入图片描述
④ 点击Simulation Models,添加动力学模型的DLL,第二点Casim工程有讲到怎么生成DLL。
在这里插入图片描述
在这里插入图片描述
点击OK,成功加载Carsim dll模型。

⑤ Carsim模型和VTD Custom参数连接
注意事项 :

  1. Carsim的变量和VTD的变量存在比例关系,比如Carsim的参数Pitch、Roll、YAW需要从弧度转换成角度再连接到VTD,比如Carsim的参数VxNf_SM、VyNf_SM、VzNf_SM速度是KM/H需要转换成m/s.
  2. Carsim输出的Z坐标应该是Zo,而不是Zcg_SM,因为Zcg_SM是以质心为原点的车辆坐标系,仿真的时候车会飞起来,所以要选择Z0,以世界坐标系为原点。
    3)需要给VTD参数的Playerid赋值1,用来控制VTD的Ego车。
    方向盘、油门踏板可以单独调出来控制车辆
    在这里插入图片描述
    在这里插入图片描述

五、运行程序

VTD
点击红框1中的apply按钮,将配置好的Setup和Project等文件加载到VTD软件中,当红框2中的run等按钮激活变蓝后,表明配置成功,点击2即可运行VTD。
在这里插入图片描述
Veristand
点击Deploy即可登录
在这里插入图片描述

综上完成简单的Carsim、NI、VTD的联合仿真,后续会细化里面的一些逻辑控制。

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

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

相关文章

【关于NI CAN USB-8473在实际应用中的案例分析】

【NI CAN USB-8473在实际应用中的案例分析】 NI CAN USB-8473是国际上比较先进的一种控制器区域网络&#xff08;Controller Area Network&#xff0c;CAN&#xff09;总线适配器&#xff0c;可实现多个CAN总线与PC的连接。这种适配器的出现&#xff0c;在许多工业控制领域中得…

【python】pyvisa运用——NI-VISA安装和TCP/IP设备配置

文章目录 安装NI-VISA打开NI MAX新建TCPIPpyvisa验证设备连接 安装NI-VISA 安装前关闭杀毒软件&#xff0c;双击NI-VISA runtime17.0后 下载地址&#xff1a;https://download.csdn.net/download/xiakejiqiren/85110993 点击确定 默认安装路径即可&#xff0c;点击unzip&a…

⽹络中的网络(NIN)

《动手学深度学习pytorch》部分学习笔记&#xff0c;仅用作自己复习。 网络中的网络&#xff08;NIN&#xff09; 前几节介绍的LeNet、AlexNet和VGG在设计上的共同之处是&#xff1a;先以由卷积层构成的模块充分抽取空间特征&#xff0c;再以由全连接层构成的模块来输出分类结…

机器学习理论与实战(十二)神经网络

神经网络又火了,因为深度学习火了,所以必须增加个传统神经网络的介绍,尤其是back propagation算法。很简单,俺也就不舞文弄墨的说复杂咯,神经网络模型如(图一)所示: (图一) (图一)中的神经网络模型是由多个感知器(perceptron)分几层组合而成,所谓感知器就是单层的…

打通NI LabVIEW与飞桨工具链,百度携手NI探索工业硬科技新方向

小到一部手机、大到一辆汽车&#xff0c;地上的网络通信、天上的卫星&#xff0c;所有的高科技产品从设计到生产使用的每个环节&#xff0c;都需要进行复杂的测试与验证。因此&#xff0c;自动化测试测量以及对数据的分析能力和效率不仅推动着科技的革新&#xff0c;也具有巨大…

NI9185与NI9234硬件在NI MAX中的设置

NI CDAQ-9185是一款四槽机箱&#xff0c;通过TCP协议&#xff08;网线&#xff09;与电脑相连。NI 9234是声振采集卡&#xff0c;4通道。用来测量来自集成电子压电&#xff08;IEPE&#xff09;和非IEPE传感器信号&#xff0c;例如振动传感器&#xff08;加速度计&#xff09;&…

计算机系统:网络编程

所有的网络应用都是基于相同的基本编程模型&#xff08;客户端-服务器编程模型&#xff09;&#xff0c;有着相似的整体逻辑结构&#xff0c;并且依赖相同的编程接口。 客户端-服务器编程模型 每个网络应用都是基于客户端-服务器模型的。采用这个模型&#xff0c;一个应用是由一…

NoC片上网络

片上网络&#xff1a; 一般采用2D mesh拓扑&#xff0c;其核心为路由算法/流控机制&#xff0c;路由一般使用固定XY或虫孔算法&#xff0c; 目前比较好的NoC开源参考工程为&#xff1a;LisNoC http://www.lisnoc.org/flowcontrol.html ARM官方也有一些NoC应用&#xff1a; …

LabVIEW中MAX在我的网络上不显示“远程系统”选项卡或设备

LabVIEW中MAX在我的网络上不显示“远程系统”选项卡或设备 无法在NI MAX中看到“远程系统”选项卡。 无法在NI MAX的“远程系统”选项卡下看到我的设备。 解决方案 如果设备是实时操作系统&#xff0c;则设备只会显示在NIMeasurement&#xff06;Automation Explorer&#xff0…

网络中的网络:NiN

前面几篇文章介绍的LeNet、AlexNet和VGG在设计上的共同之处是&#xff1a;先以由卷积层构成的模块充分抽取空间特征&#xff0c;再以由全连接层构成的模块来输出分类结果。其中&#xff0c;AlexNet和VGG对LeNet的改进主要在于如 何对这两个模块加宽&#xff08;增加通道数&…

LabVIEW网络服务器何使用,有哪些不同

LabVIEW网络服务器何使用&#xff0c;有哪些不同 NI有几款不同的Web服务器&#xff0c;可使用不同的产品并覆盖不同的用例。它们具有非常相似的名称&#xff0c;可以互换使用&#xff0c;但每个都提供不同的功能。 应用程序Web服务器 描述&#xff1a;NI应用Web服务器加载使用L…

LabVIEW NI网络设备在MAX中不显示或未识别

LabVIEW NI网络设备在MAX中不显示或未识别 有一个NI设备通过网络连接到主机。发生以下情况之一&#xff1a; 尝试在Measurement&#xff06;AutomationExplorer&#xff08;MAX&#xff09;中配置设备。设备未显示在“远程系统”下。 NIMAX中未检测到CompactRIO&#xff08;cRI…

站点平台技术架构

系统架构部署思维导图 一、前期工作 1.系统保持一致性方案&#xff1a; GIT版本控制&#xff1a;通过总控端向租户端发送一个更新同步请求&#xff0c;租户端收到请求后执行GIT PULL 命令&#xff0c;执行完成命令后会进行获取当前版本指定的SQL文件&#xff0c;进行同步更新…

选购Redshift工作站需要注意哪些方面?

GPU 渲染在过去几年中变得非常流行。这并不奇怪&#xff0c;这要归功于 GPU 功能的巨大进步。专为 Redshift 等 GPU 加速渲染引擎量身定制的经过良好优化的工作站可以实时生成高度详细的渲染。 Maxon Redshift 与许多行业领先的 3D 设计应用程序完美集成&#xff0c;使其成为建…

华为mate x2什么时候更新鸿蒙系统,华为Mate X2真机发布,今年四月可升级鸿蒙系统...

沉寂许久的华为终于迎来新的动作&#xff0c;新一代折叠屏旗舰机Mate X2于2月22日晚上正式发布。有人即使不在江湖&#xff0c;暂时退场&#xff0c;当他回归时&#xff0c;江湖依然会有人翘首以盼&#xff0c;等待着他带来新的震撼。 华为折叠屏新机Mate X2发布的消息一经传出…

华为matexs什么时候可以升级鸿蒙,华为 Mate X2 真机发布,今年四月可升级鸿蒙系统...

沉寂许久的华为终于迎来新的动作&#xff0c;新一代折叠屏旗舰机 Mate X2 于 2 月 22 日晚上正式发布。有人即使不在江湖&#xff0c;暂时退场&#xff0c;当他回归时&#xff0c;江湖依然会有人翘首以盼&#xff0c;等待着他带来新的震撼。 华为折叠屏新机 Mate X2 发布的消息…

华为Mate X2售价17999元起,Mate X2将首批省级鸿蒙系统

昨日晚间&#xff0c;华为正式发布新一代折叠屏手机Mate X2&#xff0c;搭载麒麟9000芯片&#xff0c;其256GB版售价17999元&#xff0c;512GB版售价18999元&#xff0c;万元的价格&#xff01;一个字‘贵’ 核心规格方面&#xff0c;华为Mate X2搭载5nm制程工艺的麒麟9000 5G …

Docker部署MongoDB 5.0.5

1、查看目录 rootwielun:~# tree mongo mongo ├── conf │ └── mongod.conf ├── data ├── docker-compose.yml └── logrootwielun:~# cd mongo rootwielun:~/mongo# chmod 777 log2、配置docker-compose.yml rootwielun:~/mongo# cat docker-compose.yml ve…

科技资讯|荷兰电动自行车丢失将被拒保,苹果Find My可以减少丢失

荷兰最大的自行车协会荷兰皇家旅游俱乐部宣布&#xff0c;将不再为胖胎电动自行车提供保险&#xff0c;因为这种自行车的被盗风险极高。 随着电动自行车的销量飙升&#xff0c;胖胎也变得更受欢迎。但问题是&#xff0c;胖胎电动自行车也成为了自行车盗窃者的首选目标。ANWB …

Linux centos7 高频词统计

如何统计文章中高频词?是我们经常遇到的问题&#xff0c;也是多场合考察个人知识整合能力的重要手段。招聘经典问题&#xff1a;linux中命令行统计文件中前10个高频词。 在讨论此问题中&#xff0c;主要应用到的知识点有&#xff1a;排序、去重、单词查询、grep、sed和awk使用…