美国机动工程师协会(SAE)和美国国家公路交通安全管理局(NHTSA)分别对自动驾驶等级做出划分。市面上主要采用的是SAE的说法,在L3级中当车辆提出接管需求时,驾驶者必须立刻接管车辆。当驾驶者无法满足L3级别自动驾驶的接管需求时,车辆可能会自动回退到L2级别。 而在L4级别中,车辆不会请求驾驶者对车辆进行接管,为特定道路下的高度自动驾驶(现阶段),L5则为无车辆和环境限制的完全自动驾驶,可以应对负责的人、车、道路。
传感器:
IMU(惯性测量单元)
一个IMU内会装有三轴的陀螺仪和三个方向的加速度计,分别用来测量物体在三维空间中的角速度和加速度,并以此解算出物体的姿态。
RTK天线:
RTK(Real-time kinematic),称为实时动态差分法,又称为载波相位差分技术,是实时处理两个测量站载波相位观测量的差分方法。简单来说就是利用已有基站向测量点发送信息,校准卫星定位。通过RTK技术可以将原先只有1米精度的GPS提升到10厘米内
激光雷达
激光雷达最基本的工作原理是由雷达发射系统发送一个光信号,经目标反射后被接收系统收集,通过测量反射光的运行时间而确定目标的距离。通过多束光速就能形成三维的图像。
摄像头
通过图像技术实现物体识别、物体追踪、距离测量(多目)。
超声波雷达
超声波雷达的工作原理是通过超声波发射装置向外发出超声波,到通过接收器接收到发送过来超声波时的时间差来测算距离
自动驾驶是如何实现的
一、定位
- GNSS(Global Navigation Satellite System)全球导航卫星系统定位
GNSS当前主要有GPS、北斗、Galileo、GLONASS四种卫星系统组成。
GPS能够实现定位的原理
因为卫星时间和接收机时间差(传播时间)的存在,所以需要四颗卫星,解方程即可得到接收机的位置。
一个GNSS信号:
$GNRMC,004129.40,A,3514.0854393,N,13700.3090060,E,5.9921,147.814,240315,7.320,E,D*1
其中包含经纬度和航向角信息。
- 激光雷达定位
激光雷达的SLAM,利用车辆自带的GPS和IMU做出大概位置判断,然后用预先准备好的高精度地图与激光雷达SLAM云点图像与之对比,放在一个坐标系内做配准。配对(Matching)成功后确认自车位置。这是目前最成熟,准确度最高的方法。
- 制作底图,根据提前采集扫描整个路线中的点,通过ndt_mapping算法生成底图。
- 匹配地图:ndt_matching 基于建好的3D地图和车辆当前扫描的点云帧,得到车辆位置和朝向
- 传感器融合定位。
由于IMU会随着时长增加精确度明显下降,GNSS受到天气条件影响,lidar定位会由于底图环境发生变化而失去精度,所以当前的自动驾驶设计都是多传感器互补与冗余的,达到及时纠正定位的功能。
一种定位方法:
- 首先会结合IMU和odom数据进行一个基本位置预测,然后就是根据,传感器传过来的点云数据进行矩阵变化,加入到ndt的算法内进行计算得到一个ndt的预测位置。得到了点云匹配算法加入后的位置,与之前利用IMU和里程计计算的位置进行比较, 小于0.5(算法参数)说明和计算匹配值相近,则说明定位没有跳跃,设当前位置为点云计算匹配值,否则使用惯导和IMU物理计算综合值。
- 接收到gnss消息,判断为ndt算法点云匹配算法返回的可信值是否大于500(算法调参),则对当前位置进行重新设置,判断ndt可能存在失准,改用GNSS位置为当前正确位置。这也是对激光雷达定位的一个辅助,这里将会重新设置点云的起始位置,本身点云匹配就会有累计误差出现的,加上gnss后使点云匹配恢复准确度,接下来继续使用以 激光雷达定位为主的定位方式。
简单说就是,首先由GNSS信息确定一个初始点,然后使用点云匹配得到精确位置,随着车辆前进,不断计算gnss的值和点云匹配的值,并结合IMU,若出现点云不精确的情况,立即使用gnss重新定位初始点,一直重复。
4. 视觉
使用识别算法,可以达到特征点匹配定位,但受到光照影响,一般只适合白天使用,单车智能可以不依赖摄像头。
车辆网:
V2X: vehicle to everything,即车对外界的信息交换
网联化通过车路协同、车车协同, 能够极大地拓展单车的感知范围,并且不受遮挡限制,能够让单车提 早发现未知状况,能够应对目标突然驶入等目前在自动驾驶测试和事故中难以应对的状況。
常规的设备可以是,路口红绿灯,路口摄像头,高速公路边缘计算基站,车辆信息共享设备,马路井盖。
同时未来如果v2x设备能提供实时路面信息辅助车辆行进,就达到了自动驾驶在未知道路上行驶的可能性。
机器人操作系统ROS
ROS会创建一个连接所有进程(节点)的网络,其中的任何进程(节点)都可以访问此网络,并通过该网络与其他进程(节点)交互,获取其他进程(节点)发布的信息,并将自身数据发布到网络上,这个计算图网络中的节点(node)、主题(topic)、服务(server)等都要有唯一的名称做标识
//ROS一个消息的定义
void Nmea2TFPoseNode::initForROS()
{
// ros parameter settings
private_nh_.getParam("plane", plane_number_);
// setup subscriber
// 创建Subscribe,订阅名为nmea_sentence的话题,注册回调函数callbackFromNmeaSentence
sub1_ = nh_.subscribe("nmea_sentence", 100, &Nmea2TFPoseNode::callbackFromNmeaSentence, this);
// setup publisher
// 创建一个消息发布者,发布名为gnss_pose的topic,消息类型为geometry_msgs::PoseStamped
pub1_ = nh_.advertise<geometry_msgs::PoseStamped>("gnss_pose", 10);
}
规划与决策
在决策阶段,行为预测、路径规划及邂障机制三者结合起来实时地完成无人驾驶动作规划。
行为预测
为了预测其他车辆的行驶行为,可以使用随机模型产生这些车辆的可达位置集合,并 采用概率分布的方法预测每一个可达位置集的相关概率。
路径规划
路径规划中采取的一个方法是使用 完全确定模型,它搜索所有可能的路径并利用代价函数的方式确定最佳路径。
避障
第一层级是基于交通情况预测的前瞻层级。交通情况 预测机制根据现有的交通状况如拥堵、车速等,估计出碰撞发生时间与最短预测距离等参 数。基于这些估计,避障机制将被启动以执行本地路径重规划。如果前瞻层级预测失效, 则第二级实时反应层将使用雷达数据再次进行本地路径重规划。
当前普遍技术阶段:基于已采集地图的限定道路或者封闭区域的自动驾驶。