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

快毕业了,计划入职的公司的产品经理,让我写一下关于使用Carla的使用心得,所以就简单得写了一下,我个人对自动驾驶仿真软件的看法。

对自动驾驶软件的个人看法

在介绍Carla的基本功能前,我想先说一下,我个人对自动驾驶仿真软件的看法(当然问题可能考虑不周到)。

  • 较快的构建三维测试场景,同时具有测试场景的高精地图,提高场景构建的自动化程度。用脚本的方式,尽可能多的构建测试场景,目前Carla已经支持通过.xodr文件生成道路,但是无论是美观或实用性离实际应用都还差的远,通过学习教程PanoSim也支持这个功能,不过好像也是面临这个问题,自动化程度还不够高。

还有另一种三维场景建设思路,使用成熟三方建模软件如CityEngine快速建立三维模型,导入仿真软件中,然后手动控制一辆主车,使用系统中虚拟传感器进行场景信息采集,获得高精地图。这种方法也不太好,效率低。

  • 更加真实的交通流仿真。通过网上资料和观看视频,我觉得当前主流的自动驾驶仿真软件其实功能都大致相同,IPG、VTD等具备高精度的车辆动力学模型,Carla、AirSim等基于游戏引擎开发提供高保真度的测试场景。

目前大多数自动驾驶软件的宣传案例大多是ADAS的测试案例,ADAS测试中PreScan一直在业内占主导地位。上海智能网联汽车示范区让我导师公司完成一个用于比赛的自动驾驶仿真测试平台项目,重点要求的就是对交通流的模拟,需要有堵车、发生车祸、交通流危险驾驶等场景(后来因为主办方的原因项目流产)。

我觉得更加真实的交通流仿真也可以是我们公司重点突破的地方,51Sim-One的宣传也一直突出他们的交通流仿真,场景仿真,但是和他们公司的人员交流,他们也只是停留在基于SUMO进行联合仿真(大多数公司好像都是这样),SUMO交通流最大缺点就是缺乏车辆动力学特性,和主车交互性差。PTV-vissim没有使用过,不知道它的特点(听说比较贵)。Carla 自带的交通流管理系统,我觉得值得我们研究一下,感觉比较有特点。

  • 中国化,专业化。目前国内投入市场的国产商业化自动驾驶仿真软件只有我们PanoSim和51Sim-One,代理国外的沛岱,当然还有中汽研、华为、腾讯、阿里,这些暂未公开商业应用的。

和国外仿真厂商相比我们的优势是中国化,自动驾驶的仿真测试是结合道路环境的仿真测试,和周围环境有很的高交互性,中国的道路场景、道路环境和国外的有显著区别,路标、指示牌、地上标线、三轮车、电瓶车等等中国化元素。

和国内科技公司相比我们的优势是专业化,科技公司最擅长的是计算机领域,所以它们的仿真软件渲染的特别真实,视觉效果好,我们公司核心基因是懂车,这也是PanoSim的整车模型可以对标CarSim的原因。

我们可以从这两个方面深度挖掘。当然增加仿真场景的保真度、渲染效果也非常重要,毕竟所有仿真软件都在提高这一块,增强现实。

  • 寻找PanoSim更多的可以应用场景,不局限于XIL测试。PanoSim可以很好的充当数字孪生应用的仿真场景服务器,发掘PanoSim在智能网联、数字孪生、虚实结合方面的应用场景,以仿真软件为核心,进行软硬件产品开发,技术解决方案、实验室等。
  • 可否适当增加软件的开放性,给予用户个性化开发权利。这个想法可能我看的比较片面。因为我去官网看了一下公司的合作伙伴,发现好像没有财大气粗的新兴的全栈自动驾驶科技公司,这些公司大多使用Carla作为自己的仿真测试平台或者商业软件VTD、PreScan,Carla最大的优势就是有丰富接口和支持ROS,这就意味用户即使不从底层开发,就可以和其他硬件软件联合仿真,弥补Carla的劣势。当然商业化和开源软件有着本质的区别,我的这个想法应该不切实际。
  • 学校是重要市场。公司一直很重视这个市场,为有影响力的大赛提供仿真测试平台,很利于在学校中提高产品知名度。公司已经这么做了,PanoSim为CIVC大赛提供比赛仿真平台,个人感觉应该很好,不知道实际效果怎么样。
  • 网上关于PanoSim 的资料太少。在CSDN、博客园等这些程序员社区都找不到多少关于PanoSim的介绍,而且有的只是简单的介绍,信息很久远,更没有使用的教程。公司可以在一些平台或社区发布一些PanoSim教程或者相关行业的指导性文章视频。
  • 工业仿真软件需要和用户深度交流及时反馈。

基本介绍

Carla是由西班牙巴塞罗那自治大学计算机视觉中心指导开发的开源模拟器,用于自动驾驶系统的开发、训练和验证。

Carla 从头开始开发,除开源代码和协议外,Carla 还提供为此目的而创建的开放式数字资产(城市布局,建筑物,车辆等),并可自由使用。支持灵活的传感器套件规格和环境条件(白天、 夜晚、雨雪天气等)。

基于UE4游戏引擎开发,引擎提供最先进的渲染质量、逼真的物理效果,可构建高保真度的测试环境。

NPC车辆的运行机制

Carla是基于UE4开发的,简而言之Carla就是UE4的一个项目,它支持UE4具备所有功能。UE4有一种特殊的编程语言—蓝图,蓝图编程是一种可视化的面对对象编程语言,具有可继承性(父子类),因此Carla许多功能实现都是通过蓝图编程实现的。

Carla中所有车辆都共用内置的一个车辆蓝图,当然可以对特定车辆的车辆蓝图动力学参数进行设置。内置车辆的动力学特性相对简单,只有横向和纵向动力学(新版本中测试版Carla已经支持和CarSim联合仿真,当然复杂的动力学模型是用于主车的)。针对背景车辆Carla自带的整车模型,可以满足要求。

八代i5 CPU、8G内存、GTX1050 这种配置的台式电脑上,就可以正常运行80辆左右的背景车,对电脑性能要求上,Carla做的还是比较好的。

从PanoSim的教程上解到PanoSim比较吃内存,对电脑性能要求比较高,通过和蒋工(蒋鹏飞)的交流,了解到PanoSim的整车动力学模型来自于Simulink(在Simulink中自建的整车模型),使用这种方式如果只是生成几辆车测试案例的背景车,应该没有问题。但是如果是想生成具有车辆动力学特性的车辆交通流(比如一个服务器场景内运行50辆车),感觉这种方式就非常吃内存。

我不太了解PanoSim的背景车辆控制机制,只是听蒋工介绍说,背景车辆是通过Simulink 中算法控制,不了解NPC控制算法具备的功能,是否只是简单的横向、纵向控制,能否识别障碍物和红绿灯。

Carla中的背景车辆都是由一种简单的自动驾驶算法控制,依赖于底层的蓝图机制,跟着航路点行驶,可以识别障碍物,遵循红绿灯控制。这种通用的车辆控制机制,对电脑性能要求不是太高。也是生成随机交通流的关键,个人觉得是它一个优点。

支持的传感器

  1. GNSS
  2. IMU
  3. Lidar
  4. Radar
  5. RSS传感器
  6. 碰撞检测器
  7. 障碍物检测器
  8. 车道入侵探测器
  9. 深度相机、RGB相机、语义分割相机、DVS(动态视觉传感器)相机
  10. 语义Lidar传感器

Carla的传感器模型相对简单,过于理想化,和实际的物理传感器相比仿真精度偏低。

三维场景构建

Carla的官方指导是使用RoadRunner进行道路三维场景构建和配套的高精地图。由于RoadRunner不是免费的,而且不太适合中国的交通场景,所以我们使用自己的一套三维场景建设工具链。

需要的软件:JOSM、SUMO、City Engine、Infra works、3D max

三维场景建设和道路编辑流程如下:

 

因为CityEngine生成的道路,路面是平的,没有起伏,有时使用Infraworks 生成3D道路,3Dmax用来创建特殊的3D模型。

缺点,这样生成的高精地图是不完整的,只包含路面信息,路宽、转弯半径之类的信息,缺乏路侧设备的信息如:红绿灯、路灯、指示牌位置等。这里的.xodr文件主要是用来生航路点,供背景车辆使用。

三维显示

Carla基于UE4开发,使用官方提供BaseMap,可以简单的获得较好的渲染效果。Carla的环境渲染,物理特性做的都比较好。

数据导入导出

目前只使用过ROS信息发布给Carla,没有接触过交通测试案例的数据注入OpenSCENARIO,但是Carla的交通场景模拟:引擎ScenarioRunner允许用户基于模块化行为定义和执行不同的交通状况。

数据导出,Carla可以发布ROS信息,测试数据、结果也都可以通过使用python脚本打印出来。

Carla的记录器使用二进制文件格式。

特征

下图是Carla官网对Carla特征的总结

 

  1. 支持多客户端
  2. 提供丰富的接口,对车辆、信号灯进行控制。通过脚本命令使用Carla,没有图形化操作界面,对初学者很不友好,但是这样可以让资深用户拥有更多的自主权,根据自己实际需求个性化开发,除了免费,这也是很多自动驾驶初创公司喜欢用Carla的原因
  3. Carla虽然提供的传感器丰富,但是传感器模型相对简单
  4. 快速模拟规划和控制:这种模式禁用渲染,以提供快速执行的交通模拟和道路行为,图形是不需要的。
  5. 三维场景构建官方指导是使用RoadRunner
  6. 交通场景仿真这一块,研究生期间没有涉及,所以暂时不太了解,不过配合它的背景车辆控制机制,我觉的应该是一个很不错的模块
  7. 支持ROS,这是开源软件的一大特色,支持ROS用户就可以搭建分布式仿真系统,和其他支持ROS的软硬件联合仿真,大大拓展了软件的应用场景,软硬件结合能力。
  8. 关于自动驾驶基线这一部分,我也没有涉及,也不太清楚

支持模仿学习、强化学习

 

随机交通流

Carla有一个交通管理系统,通过这个交通管理系统可以设置危险驾驶工况:超速、闯红灯、缩短安全驾驶距离等。在交通管理器的作用下,车辆可以识别车辆、行人、障碍物、识别红绿灯,且车辆具备动力学特性,同时背景车辆支持RSS(责任敏感安全模型),和主车之间可以有很好的交互。

具体详细介绍网址:

https://carla.readthedocs.io/en/latest/adv_traffic_manager/

Carla的劣势

  1. 传感器模型简单,直接提供的传感器模型简单,但是支持用户从底层新建传感器,当然这也非常复杂。
  1. 车辆动力学模型简单,不过为了解决这个问题,新版本的测试版中,已经支持和CarSim联合仿真。
  2. 全命令行控制,无图形化操作界面,操作非常不友好;系统安装复杂,容易出现诸多安装问题(这个应该不算劣势,毕竟这是开源软件的性质决定的)。
  3. 缺乏环境真值数据,车辆运行的风速,环境温度、地面坡度等(后期应该会支持)。

Carla的优势

  • 支持ROS、提供丰富的API,方便用户根据自己所需个性开发,支持分布式架构,很多初创自动驾驶测试企业,都是对Carla二次开发,研究测试系统和方法,形成自己的产品。
  • 物理特性做的很好,细节到位。

 

  • 交通管理系统,可以同时控制许多具有简单自动驾驶功能的车辆。
  • 除了使用和安装太难,自动驾驶仿真仿真软件的基本功能它都基本具备。
  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值