提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


  • 前言
  • 一、Ubuntu的双显卡设置
  • 二、双Fisheye的配置过程
  • 三、Fisheyes效果图

提示:以下是本篇文章正文内容,下面案例可供参考

一、Ubuntu的双显卡设置

1)我这里介绍的是使用两张显卡去处理这2个fisheye,因此显卡会有些特殊配置,包括分辨率,下图就是我想去实现的概况;
2)通过nvidia-setting将下面显卡和Screen绑定起来,因为VTD需要通过绑定Screen,并将IG分配到对应的显卡上;

3)显示器配置(配置多个显示器1920x1280 30HZ的视频输出):
打开/etc/X11/xorg.conf,需要配置2个Screen,2个monitor,2个Device,并且需要通过AW EDID Editor的方式修改每个屏幕的分辨率(可以使用xrandr命令修改分辨率,我尝试是失败的),具体配置如下所示:

Section "ServerLayout"Identifier     "Layout0"Screen      0  "Screen0" 0 0Screen      1  "Screen1" 1280 0InputDevice    "Keyboard0" "CoreKeyboard"InputDevice    "Mouse0" "CorePointer"Option         "Xinerama" "0"
EndSection
Section "Monitor"Identifier     "Monitor0"VendorName     "Unknown"ModelName      "DELL D2720DS"HorizSync       30.0 - 88.0VertRefresh     50.0 - 76.0Option         "DPMS"
EndSection
Section "Monitor"Identifier     "Monitor1"VendorName     "Unknown"ModelName      "DELL D2720DS"HorizSync       30.0 - 88.0VertRefresh     50.0 - 76.0Option         "DPMS"
EndSection
Section "Device"Identifier     "Device0"Driver         "nvidia"VendorName     "NVIDIA Corporation"BoardName      "NVIDIA GeForce RTX 3080"BusID          "PCI:115:0:0"
EndSection
Section "Device"Identifier     "Device1"
    Driver         "nvidia"VendorName     "NVIDIA Corporation"BoardName      "NVIDIA GeForce RTX 3080"BusID          "PCI:213:0:0"
EndSection
Section "Screen"Identifier     "Screen0"Device         "Device0"Monitor        "Monitor0"DefaultDepth    24Option         "CustomEDID" "GPU-0.DP-0:/home/ubunutuds/Desktop/edid_19201280_30.bin;GPU-0.DP-2:/home/ubunutuds/Desktop/edid_19201280_30.bin;GPU-0.DP-3:/home/ubunutuds/Desktop/edid_19201280_30.bin;GPU-0.DP-4:/home/ubunutuds/Desktop/edid_19201280_30.bin"  //这部分修改对应显示屏的分辨率,.bin文件是通过AW EDID Editor进行编辑的,自己使用的显示屏没有修改;Option         "Stereo" "0"Option         "nvidiaXineramaInfoOrder" "DFP-0"Option         "metamodes" "nvidia-auto-select +0+0"Option         "SLI" "Off"Option         "MultiGPU" "Off"Option         "BaseMosaic" "off"SubSection     "Display"Depth       24EndSubSection
EndSection
Section "Screen"Identifier     "Screen1"Device         "Device1"Monitor        "Monitor1"DefaultDepth    24Option      "CustomEDID" "GPU-1.HDMI-0:/home/ubunutuds/Desktop/edid_19201280_30.bin;GPU-1.DP-0:/home/ubunutuds/Desktop/edid_19201280_30.bin;GPU-1.DP-2:/home/ubunutuds/Desktop/edid_19201280_30.bin;GPU-1.DP-3:/home/ubunutuds/Desktop/edid_19201280_30.bin;GPU-1.DP-4:/home/ubunutuds/Desktop/edid_19201280_30.bin" //这部分修改对应显示屏的分辨率,.bin文件是通过AW EDID Editor进行编辑的,可以网上搜索教程;#Option         "nvidiaXineramaInfoOrder" "DFP-1"Option         "Stereo" "0"Option         "nvidiaXineramaInfoOrder" "DFP-1"Option         "metamodes" "DP-0: nvidia-auto-select +0+0, DP-2: nvidia-auto-select +1920+0"Option         "SLI" "Off"Option         "MultiGPU" "Off"Option         "BaseMosaic" "off"SubSection     "Display"Depth       24EndSubSection
EndSection注意:配置完成后显卡2没有视屏输出,黑屏属于正常现象,不影响IG画面的显示;

二、双Fisheyes的配置过程

1)VTD中各文件的依赖关系:

配置2个IG,Simserver.xml,AutoCfg.xml,AutoCfgDisplay.xml,IGbase,之间的依赖关系是:

重要:由于鱼眼摄像头是需要畸变的,所以我们需要通过lensDistortion工具配置畸变表、分辨率、像素点大小、焦距、FOV角度等参数生成对应的AutoCfgDisplay.xml、IGbase、.dat畸变插件等配置文件,而实现摄像头以畸变的状态显示在IG上(lensDistortion工具是跟VTD拿的)。

注意:.dat文件需要放置在~Date/Setups/Project_name/ImageGenerator中;

3)Simserver需要做什么?

①复制2个IG的Process,并修改该对应的name和cmdline的参数,1个IG对应一个Process,如下图所示,更改红色部分。

代码如下(示例):

<Processgroup="igGroup" name="igCtr1"  auto="false"explicitLoad="false"path="$VI_CORE_DIR/ImageGenerator/bin"executable="vigcar"cmdline="$VI_CURRENT_SETUP/Config/ImageGenerator/AutoCfg1.xml -m 0x01" useXterm="true"xtermOptions="-fg Black -bg LightGoldenRod -geometry 80x10+508+163"affinitymask="0xFF"schedPolicy="SCHED_RR"schedPriority="20"workDir="$VI_CURRENT_SETUP/Bin"><EnvVar name="LD_LIBRARY_PATH" val="$VI_CORE_DIR/ImageGenerator/bin:$VI_CORE_DIR/ImageGenerator/lib"/> </Process><Processgroup="igGroup"name="igCtr2"  auto="false"explicitLoad="false"path="$VI_CORE_DIR/ImageGenerator/bin"executable="vigcar"cmdline="$VI_CURRENT_SETUP/Config/ImageGenerator/AutoCfg2.xml -m 0x01" useXterm="true"xtermOptions="-fg Black -bg LightGoldenRod -geometry 80x10+508+163"affinitymask="0xFF"schedPolicy="SCHED_RR"schedPriority="20"workDir="$VI_CURRENT_SETUP/Bin"><EnvVar name="LD_LIBRARY_PATH" val="$VI_CORE_DIR/ImageGenerator/bin:$VI_CORE_DIR/ImageGenerator/lib"/> </Process>

4)AutoCfg.xml需要做什么?

①找到对应Project文件夹中的 ~Data/Setups/Project_name/ImageGenerator/AutoCfg.xml,复制2个IG所需要的副本文件AutoCfg1.xml,AutoCfg2.xml。

②修改AutoCfg1.xml文件中的下述红色部分:

<IGconfig><Includes><Include file="IGLinks/Setup/Config/ImageGenerator/TopViewShadows.xml" /><Include file="IGLinks/Setup/Config/ImageGenerator/IGbase1.xml" /><Include file="IGLinks/Vig/data/Sky/HighContrastSky.xml" /><Include file="IGLinks/Distro/Config/ImageGenerator/MaterialsHCS.xml" /><Include file="IGLinks/Distro/Config/ImageGenerator/SymbolsStd.xml" /><Include file="IGLinks/Distro/Config/ImageGenerator/LightSrcStd.xml" /><Include file="IGLinks/Setup/Config/ImageGenerator/AutoCfgDisplay1.xml" /><Include file="IGLinks/Setup/Config/ImageGenerator/AutoCfgDatabase.xml" /></Includes>
</IGconfig>

③修改AutoCfg2.xml文件中的下述红色部分:

<IGconfig><Includes><Include file="IGLinks/Setup/Config/ImageGenerator/TopViewShadows.xml" /><Include file="IGLinks/Setup/Config/ImageGenerator/IGbase2.xml" /><Include file="IGLinks/Vig/data/Sky/HighContrastSky.xml" /><Include file="IGLinks/Distro/Config/ImageGenerator/MaterialsHCS.xml" /><Include file="IGLinks/Distro/Config/ImageGenerator/SymbolsStd.xml" /><Include file="IGLinks/Distro/Config/ImageGenerator/LightSrcStd.xml" /><Include file="IGLinks/Setup/Config/ImageGenerator/AutoCfgDisplay2.xml" /><Include file="IGLinks/Setup/Config/ImageGenerator/AutoCfgDatabase.xml" /></Includes>
</IGconfig>

5)AutoCfgDisplay.xml需要做什么?

①复制lensDistortion工具生成的AutoCfgDisplay.xml 文件到Project文件夹中的 ~Data/Setups/Project_name/ImageGenerator路径,建立2个IG所需要的副本文件AutoCfgDisplay1.xml,AutoCfgDisplay2.xml。

②配置对应的drawThreadCPUAffinity和 appCullThreadCPUAffinity到不同的CPU上,用于资源合理分配(命令窗口输入top,再按1,可以看到不同CPU的状态)

③配置IG到不同的Screen上;

④配置对应的鱼眼摄像头到不同的车辆安装位置;

③修改AutoCfgDisplay1.xml文件中的下述红色部分:

<IGconfig><SystemConfig><Graphics smallFeatureCullPixelSize="3.9"  lodscale="0.9" gamma="1 1 1"  enableCursor="1" enableDatabasePagerThread="0" drawThreadCPUAffinity="2" appCullThreadCPUAffinity="1"  //递增数字即可,一般不用CPU0; enableTransparencyAntialiasing="1" enableMultisampling="1" schedulerStabilization="1" configurationProfile="HIGH_CONTRAST" isLocalLightingSupportEnabled="1"
threadingModel="CullThreadPerCameraDrawThreadPerContext"targetFramerate="60">
<RenderSurface name="Fisheye" x="0" y="0" width="1280" height="960"  //name要和renderSurface中的一致;depthBits="24" stencilBits="1" sampleBuffers="0" samples="0" borderVisible="1" overrideRedirect="0" displayNum="0" screenNum="0" pbuffer="0"/>        //由于IG1显示在显卡0,因此配置到screenNum0上即可,displayNum按照Nvidia-settings→X Screen 0中的设置填写;<Camera name="cam1" renderSurface="Fisheye" viewPortX="0" viewPortY="0" viewPortWidth="1280" viewPortHeight="960"><SymmetricPerspectiveAngles fovX="210" fovY="210" near="1" far="1000" offsetHPR="180 -25.59 0" offsetXYZ="0 -3.804 0.874"/>   //自定义修改该镜头的安装参数;</Camera></Graphics></SystemConfig>
</IGconfig>

③修改AutoCfgDisplay2.xml文件中的下述红色部分:

<IGconfig><SystemConfig><Graphics smallFeatureCullPixelSize="3.9"  lodscale="0.9" gamma="1 1 1"  enableCursor="1" enableDatabasePagerThread="0" drawThreadCPUAffinity="4" appCullThreadCPUAffinity="3"  //递增数字即可,一般不用CPU0; enableTransparencyAntialiasing="1" enableMultisampling="1" schedulerStabilization="1" configurationProfile="HIGH_CONTRAST" isLocalLightingSupportEnabled="1"
threadingModel="CullThreadPerCameraDrawThreadPerContext"targetFramerate="60">
<RenderSurface name="Fisheye2" x="0" y="0" width="1280" height="960"  //name要和renderSurface中的一致;depthBits="24" stencilBits="1" sampleBuffers="0" samples="0" borderVisible="1" overrideRedirect="0" displayNum="0" screenNum="1" pbuffer="0"/>        //由于IG1显示在显卡0,因此配置到screenNum0上即可,displayNum按照Nvidia-settings→X Screen 0中的设置填写;<Camera name="cam2" renderSurface="Fisheye2" viewPortX="0" viewPortY="0" viewPortWidth="1280" viewPortHeight="960"><SymmetricPerspectiveAngles fovX="210" fovY="210" near="1" far="1000" offsetHPR="180 -25.59 0" offsetXYZ="0 -3.804 0.874"/>   //自定义修改该镜头的安装参数;</Camera></Graphics></SystemConfig>
</IGconfig>

安装镜头时需要参考坐标系,原点是车辆后轴中心:

 6)IGbase需要做什么?

①复制lensDistortion工具生成的IGbase.xml到对应Project文件夹中 ~Data/Setups/Project_name/ImageGenerator/,建立2个IG所需要的副本文件IGbase1.xml,IGbase2.xml。

②修改IGbase1中的RDBInterface、PostProcessingPipelineConfigurator部分:

RDBInterface:

 <RDBInterface name="MyRDBInterfaceCam1" printDebugInfo="0" ignoreShmFlags="0"><ShmLayoutImage key="0x08130" />
</RDBInterface> //配置独立的name,key,用于摄像头数据读取;
PostProcessingPipelineConfigurator:
<PostProcessingPipelineConfigurator name="OriginalSceneConfiguratorCam1" ><Pipeline hideSceneFromDefaultView="1" viewName="cam1">

TAKATA:

connectImageTransferTCP="0"  //多个IG即使显存足够也会出现屏幕渲染帧率低,因此需要设置0;

 

②修改IGbase2中的RDBInterface、PostProcessingPipelineConfigurator部分:

RDBInterface:

 <RDBInterface name="MyRDBInterfaceCam2" printDebugInfo="0" ignoreShmFlags="0"><ShmLayoutImage key="0x08130" />
</RDBInterface> //配置独立的name,key,用于摄像头数据读取;
PostProcessingPipelineConfigurator:
<PostProcessingPipelineConfigurator name="OriginalSceneConfiguratorCam2" ><Pipeline hideSceneFromDefaultView="1" viewName="cam2">

TAKATA:

connectImageTransferTCP="0"  //多个IG即使显存足够也会出现屏幕渲染帧率低,因此需要设置0;

7)修改GUI中的Setup:

imgPortConnect设置成false;

完成设置,点击运行看看效果;

三、Fisheyes效果图

自动驾驶仿真:VTD建立多个Fisheye模型相关推荐

  1. 对自动驾驶仿真软件研发方向的看法

    快毕业了,计划入职的公司的产品经理,让我写一下关于使用Carla的使用心得,所以就简单得写了一下,我个人对自动驾驶仿真软件的看法. 对自动驾驶软件的个人看法 在介绍Carla的基本功能前,我想先说一下 ...

  2. Unity自动驾驶仿真

    编者按: 最近Unity上市了,网上也有一种自动驾驶仿真第一股的说法.其实这个说法蹭热度的嫌疑居大,毕竟仿真只是Unity众多业务中的一个而已.但话又说回来,Unity做自动驾驶仿真是天经地义的事情, ...

  3. 自动驾驶仿真平台概述

    自动驾驶仿真平台概述 文章目录 自动驾驶仿真平台概述 1. 前言 2. 51 Sim-One平台 3. Virtual Test Drive 3.1 静态场景文件 **3.1.1 tdo文件** ** ...

  4. 介绍一款开源的自动驾驶仿真模拟器-Carla

    大家好,我是李慢慢. 不管你是一个自动驾驶的算法工程师,还是仿真工程师,不管你是业界大佬还是小白,我都建议你了解甚至使用一下这个软件. 目录: 0.前言 1.Carla简介 2.Carla的官方资源 ...

  5. 自动驾驶系统入门(八)- 自动驾驶仿真技术

    1.什么是自动驾驶汽车 1.1 基本概念定义 1)自动驾驶汽车是通过搭载先进的车载传感器.控制器和数据处理器.执行机构等装置,借助车联网.5G和V2X等现代移动通信与网络技术实现交通参与物与彼此间的互 ...

  6. 自动驾驶仿真(六)—— SIL软件在环仿真测试

    自动驾驶仿真六-- SIL软件在环仿真测试 1. 在环仿真测试 2. SIL软件在环仿真测试 2.1 模型配置参数 2.2 S function生成实现 2.3 结果对比 3. 参考学习的书目教材 博 ...

  7. 华为、腾讯、百度扎堆进入的自动驾驶仿真市场,到底藏着怎样的秘密?

    文 | 魏启扬 来源 | 智能相对论(ID:aixdlun) 提到自动驾驶的商业竞争,车联网无疑是其中最为惨烈的一个领域,里面充斥着各种巨头博弈.屌丝逆袭的励志故事. 可是,自动驾驶赛道的复杂性远远不 ...

  8. 自动驾驶仿真 (三)—— 基于PreScan与Simulink的AEB系统仿真

    自动驾驶仿真三-- 基于PreScan与Simulink的AEB系统仿真 1. AEB自动紧急制动系统 1. 1 TTC碰撞时间模型 1. 2 C-NCAP法规部分术语与定义 1. 3 主动安全ADA ...

  9. 【Carsim Simulink自动驾驶仿真】基于MPC的轨迹跟踪控制

    如果对Carsim的基础使用还不了解,可以参考:[Carsim Simulink自动驾驶仿真]基于MPC的速度控制 如果对MPC算法原理不清楚,可以参考:如何理解MPC模型预测控制理论 项目介绍: 教 ...

最新文章

  1. 《Head First Java》读书笔记(3) - 异常和IO
  2. SQL Server 2012笔记分享-52:可用性指标
  3. php acl rbac,建站常用的用户权限管理模型ACL和RBAC的区别
  4. 蚂蚁金服资深技术专家经国:云原生时代微服务的高可用架构设计
  5. “大数据”有哪些具体的成功应用?
  6. 微信小程序手机号快速填写及会员卡开卡组件开放
  7. 进程篇—进程整理(转)
  8. MSDEV.EXE 版本
  9. 网络继电器的EPICS IOC搭建
  10. python抓取北京所有社区医院经纬度
  11. c++实现计算二十四点--zj
  12. 迅雷7新版支持迷你播放器和应用平台
  13. 2022年东南亚电商市场分析,跨境电商增长新途径
  14. 智慧地产-售楼中心 3D 沙盘可视化
  15. vue项目中金额小写转换为汉字大写的功能封装
  16. Spring Bean装配以及依赖注入
  17. 美国国防科研情报追踪系统发布,200余所美国实力高校尽收眼底!
  18. Zeromq 学习笔记1
  19. matlab双纵坐标的绘图命令_MATLAB画双纵坐标
  20. java转人工智能_[转]人工智能缩略语大全

热门文章

  1. 学术-物理:克莱因瓶
  2. COM, OLE技术概述
  3. 简述力法计算弹性固定无铰拱的原理_实用建筑结构静力计算手册的目录
  4. SSM+科技馆预约系统 毕业设计-附源码182154
  5. SSM+工业关键设备监测运维系统 毕业设计-附源码191400
  6. Windows更改远程桌面默认使用的3389端口
  7. java工厂模式三种详解(部分转载)
  8. Python实现课堂随机提问并语音播报学生姓名
  9. sql server 数据库表中增加列,增加字段,插入列,插入字段,修改列,修改字段,
  10. BZOJ 2427: [HAOI2010]软件安装 Tarjan缩点 + DP