HIL自动驾驶仿真:VTD分布式显示配置详解

一、什么是VTD分布式显示系统?

VTD (Virtual Test Drive)是德国VIRES公司开发的一套用于驾驶辅助系统,主动安全和自动驾驶的完整模块化仿真工具。其运行于Linux 平台,功能覆盖了道路环境建模、交通场景建模、天气和环境模拟、简单和物理真实的传感器仿真以及高精度的实时画面渲染等。

VIRES公司是自动驾驶仿真开放格式OpenDrive, OpenCRG 和OpenScenario的主要贡献者,VTD的功能和存储也依托于这些开放格式。

而VTD分布式显示系统:只要有一台主机Master安装了VTD软件,主机就可以通过局域网共享本地的VTD文件;从机也可以通过访问局域网获取主机上的VTD文件,另外从机上只需要安装部分依赖包就可以打开VTD的IG模块,从而实现VTD的分布式系统;VTD分布式显示系统适用于有多路视屏输出的场景仿真;

二、如何配置VTD分布式显示系统?

                           一步步走一定能成功

注意1:指导是基于VTD2021.4版本拟制的;
注意2:需要License支持分布式;
注意3:指定主机Master和从机Slave:
(从机不用安装VTD,只需要安装依赖包即可;主机需要安装VTD和Helium)

1、从机依赖包安装及系统配置

  1. 安装 python 2.7 因为 ROD 需要老版本来处理 track;
  2. 自动更新软件镜像源
    点击 system settings,选择 software & update,在 Ubuntu Software 标签下,看到:
    Download From,下拉菜单中选择就近的镜像源,后续安装依赖都会从这里下载。
    在这里插入图片描述
    或者通过命令:
    需要编辑 $ sudo vim /etc/apt/sources.list 手动更改列表里面的 source (填写资源地址);

3)然后更新 $ sudo apt-get update ;
4)安装必要依赖 $ sudo apt-get install xterm freeglut3 openssh-server synaptic
nfs-common mesa-utils xfonts-75dpi libusb-0.1-4 libpng12
若无 libpng12,尝试安装 libpng12-0 若仍然找不到资源则在网络中搜索,举例 URL:
http://kr.archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-
1ubuntu1_amd64.deb
5) 最后执行 $ sudo apt-get update
在这里插入图片描述

6) 安装 $ sudo apt install libqt4-qt3support libqt4-svg qt4-qtconfig
7) 执行 $ qtconfig-qt4 在 Appearance 标签下,设置 GUI Style 为 plastique
然后点击“Tune Palette…” 在弹出窗口中的 Central color roles 下来菜单选择 ToolTipText
然后在 Select Color 中点击颜色,调节成黑色
在这里插入图片描述

2、配置两台电脑的网络关系,使彼此可以通过 ssh 免密登陆

假设当前主机Master:
IP:192.168.0.1
用户名:Master_username
主机名:Master_hostname
假设当前从机Slave:
IP:192.168.0.2
用户名:Slave_username
主机名:Slave_hostname

1、 $ sudo apt-get install ssh 保证安装了最新的版本
1)从主机 Master打开一个新的终端 $ ping 192.168.0.2, 从机Slave 打开一个新的终端 上 $ ping 192.168.0.1 能互相ping通(需要两台主机连接到同一交换机上)。

2、Master 和 Slave 分别需要生成 RSK 给彼此使用
1)在 Master 上执行 $ ssh-keygen -t rsa 然后回车三次完成生成
2)进入/home/Master_username/.ssh/id_rsa 寻找生成的文件 id_rsa 和 id_rsa.pub
然后在终端中输入$ ssh Master_username@Master_hostname ,需要输入登陆密码(成功的标志是.ssh 文件夹多出来一个文件 known_hosts)
3)成功后则输入$ exit 退出
注意:在 home 下点击 Ctrl+H 可以显示所有隐藏文件找到在文件夹
4)/home/Master_username/.ssh/并打开一个新的终端:
5)执行 $ cp id_rsa.pub authorized_keys 此命令复制生成新文件:authorized_keys,并且$ sudo chmod 600 authorized_keys (文件读写权限)
6)测试验证 $ ssh Master_username@Master_hostname 后可以无密码登陆自己
7)成功后则输入$ exit 退出
8)使用下列任一种方式在从机上生成新的authorized_keys:
① 把 id_rsa.pub 的内容复制,然后粘贴到从机的/home/Slave_username/.ssh/authorized_keys 下面
② 在/home/Slave_username/.ssh/打开一个新的终端:
通过命令进行拷贝 $ scp id_rsa.pub Slave_username@192.168.0.2:home/Slave_username/.ssh/ ;
然后$ cat id_rsa.pub >> authorized_keys 在slave上拷贝生成一个authorized_keys
9)在 Master终端上输入$ ssh Slave_username@192.168.0.2成功后输入$ exit
10)在 Slave 终端上输入$ ssh Master_username@192.168.0.1 成功后输入$ exit
11)打开Slave 终端登录到Master;使用名字,而不是 IP 进行登录$ ssh Master_username@Master_hostname,修改/etc/hosts
$ sudo vim /etc/hosts打开以后填写上对方的 IP 和 Name 即可,192.168.0.2 Slave_username
12)打开Master 终端登录到Slave;使用名字,而不是 IP 进行登录$ ssh Slave_username@Slave_hostname,修改/etc/hosts
$ sudo vim /etc/hosts 打开以后填写上对方的 IP 和 Name ;
在Slave添加:192.168.0.1 Master_username
注意:这个文件中通常已经有两行: 127.0.0.1 localhost 和 127.0.1.1 本机名 (无用)

3、安装Helium将License共享到对应端口上,使局域网成员可以访问到License;

这个步骤的目的是为了使从机有打开VTD IG模块的权限
注:具体查看文档《Study_LicServer.pdf》进行License的配置

4、配置 NFS 在 Master 电脑上( Master )

1)Master 作为 NFS server 存在,在 Master 中$ sudo apt-get install nfs-kernel-server
2)编辑文件 $ sudo vim /etc/exports 进行编辑
添加 %ADDRESS_VTD% %SLAVE_IP% %AUTHORITY%
如/home/Master_username/VIRES/VTD2021 *(rw,sync,no_root_squash,no_subtree_check)
格式:主机VTD的文件路径 (rw,sync,no_root_squash,no_subtree_check)
注意:其中
相当于任意 client-IP;
3)使设置生效 $ service portmap restart 然后 $ sudo service nfs-kernel-server restart
然后 $ sudo exportfs 然后显示出 /home/Master_username/VIRES/VTD2021
(出现上述这句话说明,主机的VTD2021文件夹处于共享状态)
4)在从机上可以通过 $ showmount -e %Master_IP% 命令查看指定 IP 上的共享的服务(Master 共享到从机的路径)
5)要改变 VTD 安装文件夹权限 $ chmod 777 /home/Master_username/VIRES/VTD2021
6) 使用命令 $ sudo ufw status 查看防火墙状态

5、配置 NFS 在运行 IG 的电脑( Slave )

1) Slave 上安装$ sudo apt-get install nfs-common
2) 使用$ showmount -e %Master_IP% 才看到服务端的共享文件夹路径
这是可以看到 /home/Master_username/VIRES/VTD2021
3) 创建一个文件夹用来挂载主机上的 VTD 安装位置 $ mkdir /home/Slave_username/SLAVE/VTD2021
4)$ chmod 777 /home/Slave_username/SLAVE 更改文件夹权限
然后进行挂载 $ mount --target nfs %Master IP%:%Master VTD ADDRESS% %SLAVE VTD ADDRESS%即
5)$ sudo mount --target nfs 192.168.0.1: /home/Master_username/VIRES/VTD2021
/home/Slave_username/SLAVE/VTD2021
或者不用–target 而是-t ; 在客户端 Slave 电脑打开文件夹,可以看到 Master 上的内容
6) $ sudo umount /home/Slave_username/SLAVE/VTD2021 卸载后再关机
(如果主机VTD文件夹内容有发生改变,则需要在从机上重新挂载VTD文件夹)

6、配置 VTD 的 Setup 来实现分布式 IG 仿真

1) 从机的前提条件是安装好所有正常安装 VTD 所需要的依赖,尤其是显卡驱动;
2) 打开主机的 /home/Master_username/VIRES/VTD2021/Data/Setups并复制一个DualHost文件夹然后重命名DualHost_1;
3)配置~/DualHost_1/Setup/Config/SimServer中的 simServer.xml文件
4)找到<!-- this is the remote host-- >,操作下面的host;

位置如下:

 </Host>
 <Host name="Slave_username" vtdRoot="/home/Slave_username/SLAVE/VTD2021" username="Slave_hostname"> 
 <Process
 </Process>
 </Host>

5)将workDir 和 cmdline 中的$ VI_SET_DIR改成 V I C U R R E N T S E T U P ;例如: C m d l i n e = " VI_CURRENT_SETUP; 例如: Cmdline=" VICURRENTSETUP;例如:Cmdline="VI_CURRENT_SETUP/Config/Imgegenerator/AutoCfg1.xml nottrigger -m 0x01"
上述的AutoCfg1.xml具体配置请参考 :七、VTD中IG配置的基本架构
6)添加Licesen的环境变量,其中eno1是你的网卡名称;
方法如下:

</Host>
<Process
</Process>
<EnvVar name=”VI_LIC_DEVICE” val=”eno1” /> 
</Host>

7)修改 IG 的配置
~/DualHost_1/Bin/IGLinks/Setup/Config/Imgegenerator中的
IGbase.xml 中更改标签 taskControlServerAddress 和 imageTransferServerAddress 的地址
从“127.0.0.1”更改成 TC 在网络上的 IP,即 Master 192.168.0.1 否则 IG 无法和 TC 通信

7、VTD中IG配置的基本架构

在这里插入图片描述

1、因为每个IG都需要有独立的参数,所以需要复制下述两份文件;
1)复制一个 ~/Config/Imgegenerator/AutoCfg.xml 并重命名为AutoCfg1.xml
2)复制一个 ~/Config/Imgegenerator/AutoCfgDisplay.xml 并重命名为AutoCfgDisplay1.xml
注意:
AutoCfg1.xml在Simserver.xml中被调用;
AutoCfgDisplay.xml在AutoCfg1.xml中被调用;

3)修改增加的AutoCfg1.xml文件
修改AutoCfg1.xml文件中调用的IG参数文件名称为AutoCfgDispla1.xml。
在这里插入图片描述

4)修改增加的AutoCfgDisplay1.xml文件
修改AutoCfgDisplay1.xml文件中的IG参数。
在这里插入图片描述

重启VTD软件,新的IG配置即可生效

综上,完成VTD的分布式配置,经过一个周才把VTD分布式调好,如果有不懂的,请留言;

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自动驾驶simulation

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值