大家好,我已经把CSDN上的博客迁移到了知乎上,欢迎大家在知乎关注我的专栏慢慢悠悠小马车(https://zhuanlan.zhihu.com/duangduangduang)。希望大家可以多多交流,互相学习。
自动驾驶算法的调试和效果评测首先要在仿真环境中去做,因此,一个强大、灵活的仿真环境是开发、测试过程中必不可少的要素。我在查找可用的仿真工具时主要关注以下几个特性:
第一条基本上把商用的软件排除掉了,如PreScan等······在检索过程中,CARLA是出现频率最高的,因此先介绍它的特性如何。本文主要是对CARLA论文的梳理,这篇文章是2017年发布的,后续CARLA进行了很多更新和release,本文主要针对地图场景进行了补充。
CARLA包含了自动驾驶系统的3种方法:
针对3D的城市场景(urban driving),开源免费,支持感知、规划、控制。
基于Unreal Engine 4,server-client结构。
可安装于Linux和Windows。
Python API,没有C++ API。
包含静态物体的3D模型,如建筑物、草地绿植、交通标志、基础设置等,动态物体如车辆、行人等。累计40种不同的建筑物,16种车辆,50种行人模型。能反映真实物体的大小。
创建城市环境的3个步骤:
最初有2个town,training town有2.9Km可行驶道路,testing town有1.4Km。更新后的版本逐渐支持了如下towns:
0.8.3版本,添加了two-wheeled vehicles, 3 bicycles and 4 motorbikes
0.8.4版本,开始支持ROS,添加了Tesla Model 3。
0.9.0版本,Every vehicle can now be controlled, cameras can be placed anywhere, and any number of client applications can connect simultaneously to the same instance of the simulator.
0.9.1版本,Town03,a complex urban scene with multi-lane roads, tunnels, roundabouts and many other interesting features, as an example of a map generated semi-automatically from an external tool.
0.9.2版本,新的ROS-bridge。Town03 has been upgraded to include a setup of traffic lights that is compatible with US standards,包含了unsignalized intersection。Changed traffic lights in Town03 to American style。Added new junction types with only stop signs。
0.9.3版本,Town04,最大的地图,用来测试高速路以及不同高度的坡道, connection ramps with different heights and a small town。Town05包含一小段高速和大量的街道以及交叉路口。Town05 includes a small freeway and a lot of different street layouts with more junctions.
0.9.4版本,Town06,用来测试“Michigan Left”,以及高速路中的进出匝道和变道,on-and-off connections ramps between two highways and dedicated turning lanes。增加了可导入地图。
0.9.5版本,Rural Town: Town07,用来测试狭窄道路、缺少交通信号灯、没有信号标识的交叉路口等场景。
non-player车辆的行为包括:车道跟随、遵守交通灯、速度限制、路口的决策。
支持2种光照条件:正午和傍晚;9种天气。
只有RGB相机一种传感器和2种分别提供深度信息和语义信息的伪传感器,语义包含物体的12种分类。
提供有GPS坐标、朝向、速度、加速度、碰撞等数据,以及交通规则评估数据,如行驶过的轨迹占据错误的车道比例等,还提供了所有动态物体的准确位置和bounding boxes。
0.9.1版本,增加了检测碰撞和变道的传感器,增加了对Lidar的支持。
没有使用带长度的地图(即没有长度单位),局部规划仅依赖于感知探测到的环境。内部有状态机:车道跟随,左转,右转,路口前进,停车。
PID控制。
感知的语义分割基于RefineNet。
判断是否处于路口基于AlexNet二分类。
A3C算法(asynchronous advantage actor-critic algorithm)
目前好像在使用RoadRunner生成自定义的地图时,会遇到一些问题。具体可以关注issues。