目录
前言
自动驾驶仿真软件lgsvl在ubuntu的安装和配置方法,以及与ROS的联仿教程。
一、现有仿真软件介绍
现有的仿真软件主要包括CarSim、CarMaker、PreScan、PTV Vissim、SUMO、VIRES VTD、rFpro、Cognata、VIRES VTD、51Sim-One、Pilot-D GaiA、Metamoto、腾讯TAD Sim仿真平台、 百度 Apollo、AirSim 、NVIDIA Drive ConstellationWaymo Carcraft、PanoSim等。
1、CarSim
CarSim, 还有相关的 TruckSim 和 BikeSim 是 Mechanical Simulation 公司开发的强大的动力学仿真软件, 被世界各国的主机厂和供应商所广泛使用。 CarSim 针对四轮汽车, 轻型卡车, TruckSim 针对多轴和双轮胎的卡车, BikeSim 针对两轮摩托车。 CarSim 是一款整车动力学仿真软件, 主要从整车角度进行仿真, 它内建了相当数量的车辆数学模型, 并且这些模型都有丰富的经验参数, 用户可以快速使用, 免去了繁杂的建模和调参的过程。 CarSim 模型在计算机上运行的速度可以比实时快 10 倍, 可以仿真车辆对驾驶员控制, 3D 路面及空气动力学输入的响应,模拟结果高度逼近真实车辆, 主要用来预测和仿真汽车整车的操纵稳定性、 制动性、 平顺性、 动力性和经济性。 CarSim 自带标准的 Matlab/Simulink 接口, 可以方便的与 Matlab/Simulink 进行联合仿真, 用于控制算法的开发, 同时在仿真时可以产生大量数据结果用于后续使用 Matlab 或者 Excel 进行分析或可视化。 CarSim 同时提供了 RT 版本, 可以支持主流的 HIL 测试系统, 如 dSpace 和 NI 的系统, 方便的联合进行 HIL 仿真。
CarSim 也有 ADAS 相关功能的支持, 可以构建参数化的道路模型, 200 个以上的运动的交通物体, 使用脚本或者通过 Simulink 外部控制它们的运动, 同时添加最多 99 个传感器, 对运动和静止的物体进行检测。 最近的 CarSim 版本在 ADAS和自动驾驶开发方面进行了加强, 添加了更多的 3D 资源, 如交通标识牌, 行人等,以及高精地图的导入流程。 同时 CarSim 也提供了一个 Unreal 引擎插件, 可以和Unreal 引擎进行联合仿真。
2、PreScan
PreScan 是由 Tass International 研发的一款 ADAS 测试仿真软件, 2017 年 8 月被西门子收购。 PreScan 是一个模拟平台, 由基于 GUI 的、 用于定义场景的预处理器和用于执行场景的运行环境构成。 工程师用于创建和测试算法的主要界面包括 MATLAB 和 Simulink。 PreScan 可用于从基于模型的控制器设计 (MIL) 到利用软件在环 (SIL) 和硬件在环 (HIL) 系统进行的实时测试等应用。 PreScan 可在开环、 闭环以及离线和在线模式下运行。 它是一种开放型软件平台, 其灵活的界面可连接至第三方的汽车动力学模型(例如: CarSIM 和 dSPACE ASM) 和第三方的 HIL 模拟器/硬件(例如: ETAS、 dSPACE 和 Vector) 。 Prescan 由多个模块组成, 使用起来主要分为四个步骤: 搭建场景、 添加传感器、 添加控制系统、 运行仿真。场景搭建: PreScan 提供一个强大的图形编辑器, 用户可以使用道路分段, 包括交通标牌, 树木和建筑物的基础组件库, 包括机动车, 自行车和行人的交通参与者库, 修改天气条件(如雨, 雪和雾) 以及光源(如太阳光, 大灯和路灯) 来构建丰富的仿真场景。 新版的 PreScan 也支持导入 OpenDrive 格式的高精地图,用来建立更加真实的场景。添加传感器: PreScan 支持种类丰富的传感器, 包括理想传感器, V2X 传感器,激光雷达, 毫米波雷达, 超声波雷达, 单目和双目相机, 鱼眼相机等。 用户可以根据自己的许要进行添加。添加控制系统: 可以通过 MATLAB / Simulink 建立控制模型, 也可以和第三方动力学仿真模型(如 CarSim, VI-Grade, dSpace ASM 的车辆动力学模型) 进行闭环控制。运行实验: 3D 可视化查看器允许用户分析实验的结果, 同时可以提供图片和动画生成功能。 此外, 使用 ControlDesk 和 LabView 的界面可以用来自动运行实验批次的场景以及运行硬件在环模拟。
3、 CARLA
CARLA 是由西班牙巴塞罗那自治大学计算机视觉中心指导开发的开源模拟器,用于自动驾驶系统的开发、 训练和验证。 同 AirSim 一样, Carla 也依托虚幻引擎进行开发, 使用服务器和多客户端的架构。 在场景方面, CARLA 提供了为自动驾驶创建场景的开源数字资源(包括城市布局、 建筑以及车辆) 以及几个由这些资源搭建的供自动驾驶测试训练的场景。 同时, CARLA 也可以使用 VectorZero 的道路搭建软件 RoadRunner 制作场景和配套的高精地图, 也提供了简单的地图编辑器。CARLA 也可以支持传感器和环境的灵活配置, 它支持多摄像头, 激光雷达, GPS等传感器, 也可以调节环境的光照和天气。 CARLA 提供了简单的车辆和行人的自动行为模拟, 也同时提供了一整套的 Python 接口, 可以对场景中的车辆, 信号灯等进行控制, 用来方便的和自动驾驶系统进行联合仿真, 完成决策系统和端到端的强化学习训练。
4、 LGSVL Simulator
LGSVL Simulator 是 LG 的硅谷实验室基于 Unity 引擎研发的一款开源自动驾驶模拟器。 它提供了和开源自动驾驶平台 Autoware 和 Baidu Apollo 的集成。 用户可以在 Unity 内在 3D 场景的基础上进行标注并导出成和自动驾驶系统相匹配的高精地图格式。 同时它也提供了包括激光雷达, 毫米波雷达, GPS, IMU, 摄像头的传感器仿真的支持, 可以同步输出传感器的原始结果和真值。
5、比较
以上四款仿真软件均比较好用,carsim和prescan常用于windows与matlab/simulink联仿,车辆性能仿真能力稍强,但是不便与ubuntu/ROS联合使用;carla和lgsvl主要用于ubuntu下,两者功能相似,lgsvl更轻便,安装配置简单,但是应用较少,网上资料少,不如carla性能强大,lgsvl为autoware和apollo设置了专门的通讯接口,使用这两种自动驾驶框架或许lgsvl更方便。
二、lgsvl安装
1.硬件要求
仿真器需要渲染整个自动驾驶所需要的环境,为了保证足够的帧率,对系统的配置要求如下。
- 4GHz四核CPU
- Nvidia GTX 1080 (8GB memory)
- Windows 10 (64-bit), Ubuntu 18.04 (64-bit), or Ubuntu 20.04 (64-bit)
2.安装步骤
1. 下载最新发布的仿真器文件,你可以选择Windows版本或者Linux版本
2. 确认最新的NVIDIA驱动已经安装。
本人配置:ubuntu20.04 + nvidia driver 515 + cuda11.2 + cudnn + docker
(一定要装docker,否则自定义场景会出现问题! docker安装步骤官方说明有)
另外还可以源码编译运行,具体看官方教程。
三、lgsvl使用
1.在线使用
参看官方说明:见参考文献1
2.离线使用
在线使用后,自动缓存到本地空间,可以离线使用,但是如果要对场景或ego车辆做修改需要在线完成,再加载到本地。
3.与ROS联仿
安装ros包:
#ubuntu18.04
sudo apt install ros-melodic-rosbridge*
#ubuntu20.04
sudo apt install ros-noetic-rosbridge*
配置好仿真场景后,配置方法见参考文献2。
运行以下命令,将ego传感器的数据发布成ros的topic形式
roslaunch rosbridge_server rosbridge_websocket.launch
lgsvl预先定义了输入与输出,输出一般为各种传感器的仿真数据,输入可以通过向/vehicle_cmd发布VehicleControlData控制ego车辆运动,
- Detection3DArray.msg # A list of 3D detections
- Detection3D.msg # 3D detection including id, label, score, and 3D bounding box
- BoundingBox3D.msg # A 3D bounding box definition
- Detection2DArray.msg # A list of 2D detections
- Detection2D.msg # 2D detection including id, label, score, and 2D bounding box
- BoundingBox2D.msg # A 2D bounding box definition
- SignalArray.msg # A list of traffic light detections
- Signal.msg # 3D detection of a traffic light including id, label, score, and 3D bounding box
- CanBusData.msg # Can bus data for an ego vehicle published by the simulator
- VehicleControlData.msg # Vehicle control commands that the simulator subscribes to
- VehicleStateData.msg # Description of the full state of an ego vehicle
- Ultrasonic.msg # Minimum detected distance by an ultrasonic sensor
- VehicleOdometry.msg # Odometry for an ego vehicle
仿真效果:
本人改进的一个可视化ros package,作者链接:https://github.com/SS47816/lgsvl_utils
作者的开源代码有点小问题,可能编译不过,私信我可提供改进版。
四、一些开车快捷键
1.通用按键
- F1 - 帮助文档
- ← ↑ ↓ → - 控制车辆运动
- 1 - 0 - Agent select and follow cam
2.视角控制
- 鼠标右键 按住 & 拖拽 - 旋转
- W S - 快速移动
- A D - Strafe
- Q E - 上/下
3.开发者使用
- N - 重置NPC
- P - 重置行人
- End - 切换点火开关(车辆必须打开才能移动)
- Page Up - 前进档
- Page Down - 后退档
- F12 - 仿真重置
4.其他
- H - 切换前照灯
- F - 切换雾灯
- I - 切换车内灯
- Right Shift - 切换驻车制动器(需要关闭车辆才能移动)
- M - 切换危险灯
- < - 切换左转向灯
- > - 切换右转向灯
参考文献
2. LGSVL+ROS联合仿真使用过程记录_少年独剑倚清秋的博客-CSDN博客_lgsvl ros
总结
本文介绍了几种常见的自动驾驶仿真工具,简单说明了lgsvl的安装与使用方法。
欢迎交流,联系Q1456055290