1 引入
CARLA是一个开源的自动驾驶模拟器。它是从头开始构建的,作为一个模块化和灵活的API,可以解决自动驾驶问题中涉及的一系列任务。“CARLA”的主要目标之一是让自动驾驶研发自主化,成为用户可以轻松使用和定制的工具。为此,模拟器必须满足一般驾驶问题中不同用例的需求(例如学习驾驶策略,训练感知算法等)。CARLA基于虚幻引擎来运行模拟,并使用opdrive标准(1.4)来定义道路和城市设置。对模拟的控制是通过Python和c++中处理的API授予的,该API随着项目的发展而不断增长。
为了使开发、培训和验证驾驶系统的过程更加顺利,CARLA发展成为一个项目生态系统,由社区围绕主平台构建。在这种情况下,了解一些关于CARLA是如何工作的事情是很重要的,这样才能充分理解它的能力。
2 仿真器
CARLA模拟器由可伸缩的客户机-服务器体系结构组成。服务器负责与模拟本身相关的一切:传感器渲染、物理计算、世界状态及其参与者的更新等等。因为它的目标是实现真实的仿真结果,所以最适合的是使用专用GPU运行服务器,特别是在处理机器学习时。
客户端由一系列客户端模块组成,这些模块控制着场景中角色的逻辑以及设置世界条件。这是通过利用CARLA API(在Python或c++中)实现的,这是一个在服务器和客户端之间进行中介的层,它不断发展以提供新功能。
仿真器的基本结构。CARLA有许多不同的特征和元素,下面列出了其中的一些主要特征,以便对CARLA可以实现的功能有一个宏观认知。
交通流管理器。carla具有控制车辆的内置系统,可以以真实的行为再现城市般的仿真环境。
传感器。车辆依靠它们来传递周围环境的信息。在CARLA中,它们是附着在车辆上的一种特定类型的actor,它们接收到的数据可以被检索和存储,以简化处理过程。目前,该项目支持不同类型的传感器,从相机到雷达,激光雷达等等。
记录器。此功能用于记录每个车辆的数据。
ROS桥接和Autoware实现。作为一个通用性问题,CARLA项目将模拟器集成到其他学习环境中。
开放的资源。CARLA为城市设置提供了不同的地图,可以控制天气条件,还提供了一个蓝图库,可以使用各种角色。但是,这些元素可以定制,并且可以按照简单的指导原则生成新的元素。
场景运行器。为了简化车辆的学习过程,CARLA提供了一系列描述不同情况的场景,让每个人都可以测试他们的解决方案。