多传感器融合的感知
一、传感器类型
- 摄像头
- 激光雷达
- 毫米波雷达
- 超声波雷达
- IMU
- GNSS和RTK
1. 摄像头
根据安装位置,摄像头可分为前视、侧视、后视、内置、环视等。 相关参数介绍:
- 焦距 焦距和FOV关系相反。
- 有效检测距离
- 视场角
- 分辨率大小
- 最低照度
- 信噪比
- 动态范围
2. 激光雷达
激光雷达参数:
- 视场角
- 分辨率
- 测距范围
- 刷新频率
- 扫描频率
- 激光波长:通常是纳米级,最常见的是905nm和1550nm。
- 最大辐射功率
3. 毫米波雷达
毫米波是一种波长 30~300GHz 频域波长为(1)~10nm)电磁波。其波长短,频段宽,易实现窄波束,分辨率高,不易干扰。毫米波雷达是一种高精度传感器,利用毫米波探测目标,获得目标的相对距离、相对速度和方向。
毫米波雷达参数:
- 距离
- 速度:最大检测速度、速度分辨率、速度测量精度
- 角度:探测视角范围FOV,角分辨率,测角精度。
4. IMU
自动驾驶的作用是:
- IMU可以验证RTK GPS自洽性结果,滤波和修正不能自洽的绝对定位数据;
5. GNSS和RTK
6. 超声波雷达
应用于自动驾驶:
- 停车位检测
- 高速横向辅助
二、传感器同步
。
- 时间同步
- 空间同步 也就是外参标定。
1. 时间同步
先了解传感器时间戳。 我们主机上,或者说系统上,存在着一个,有时也会成为Unix或POSIX时间戳。,例如:
传感器的频率也不同。Lidar是10Hz,Camera是20Hz。不同传感器之间的数据仍有一定的延迟,因此最近的相邻帧可以通过寻找相邻的时间戳来找到,但如果两个时间戳之间的差异很大,传感器或障碍物又在移动, 然后最终会得到更大的同步误差。
一般时间同步有两种方法:
- 硬同步
- 软同步
例如:
目前,自动驾驶的主流时间同步是GPS时间是基准时间,使用PTP/gPTP时钟同步协议完成传感器之间的时间同步,PTP 前提是交换机需要支持PTP协议可以实现高精度同步。
因为每个传感器都有自己的时间戳,所以这里的统一时钟是为了同步不同器的时间戳。如果传感器支持硬件触发,可以使用GPS硬件触发以时间戳为基准, 此时,传感器给出的数据中包含的时间戳是全局时间戳(GPS时间戳) 而不是传感器时间戳。
除时间硬件同步外,还有时间软同步。时间软同步分为以下方法:
-
时间直接配准法 类似于ROS在机制中,多个主题同时进入回调函数,但需要满足类似或对齐的时间戳。该方法误差较大,传感器之间的帧率为整数倍。
-
最小时间二乘拟合法 最小二乘法是时间配置中常用的方法, 其中一个传感器的观测数据是通过特定的拟合原理获得时间曲线, 然后通过曲线获得与另一个传感器对应的值, 可同时获得两种传感器的数据配准。
-
内插外推法 时差主要用两个传感器帧上的时间标签计算,然后结合包含运动信息的目标帧和时差计算帧中每个目标的位置,计算新帧时每个目标的位置,并在原两帧之间建立新帧。
-
其他方法 例如,虚拟融合法。
2. 空间同步
空间同步大致分为两部分:
- 运动补偿
- 标定
运动补偿方法:
-
纯估计方法 常用的方法包括ICP(Iterative Closest Point,迭代最近点算法)及其相关变体(VICP),以及ANN(Approximate Nearest Neighbor)。
可是VICP这种方法有:
- 低频激光,匀速运动假设不成立。
- 数据预处理和状态估计过程耦合。
-
里程计辅助方法 里程计辅助方法的使用IMU该信息解决了激光数据中每个激光点对应的传感器位置,即解决相应时间传感器的位置,然后将所有激光点转换为相同的坐标系,然后包装成一帧激光数据并发布(可理解为激光点云的去畸变)。 处理流程:
- 通过IMU与点云数据时间对齐,然后对每个点进行速度补偿,通过时间戳进行线性插值,然后将所有点云数据转换为初始点云IMU坐标下;
- 去完上一帧变的点云数据进行帧间匹配,计算激光姿态。并通过计算的姿态对每个点云进行线性补偿,将所有的点云数据根据时间戳转换到最后一个点云数据时间戳下,即完成了里程计方法的补偿。
这种方法有以下:
- 极高的位姿更新频率,能够比较准确地反应运动情况
- 较高精度的局部位姿估计
- 跟状态估计完全解耦
-
融合方法 Odom与匹配方法的结合。 处理流程:
- 用里程计方法进行矫正,去除绝大部分的运动畸变;
- 认为里程计存在误差,但是误差值是线性分布的;
- 用ICP的方法进行匹配,匹配的结果作为真值,得到里程计的误差值;
- 把误差值均摊在每一个点上,重新进行激光点位置修正;
- 再一次进行ICP迭代,直到收敛为止;
整车标定,可以理解多所有传感器的联合标定,即在一个专门设计过的封闭开阔区域,有很多信息比较明显的参照物(如车辆周围的标定板或者周围轮廓比较明细的障碍物),利用上述几种方法进行整车所有感知传感器的标定。
-
相机与相机 自动驾驶场景中,一般会有多个相机,长焦距用来检测远处场景,短焦距用来检测近处。 在融合图像的融合区域内,选择较远物体进行对齐判断,如果重合度高,那么精度则高,如果出现错位,那么就存在一定误差。如果误差大于一定值,就需要重新标定。
-
最常见的激光与相机联合标定方法是将激光产生的点云投影到图像内,然后寻找标记物(可能是标定设备,也可能是具有明显边缘的静止物体),查看其边缘轮廓对齐情况,如果在一定距离内(一般选50-60m)的目标,点云边缘和图像边缘能够重合,则可以证明标定结果的精度很高,如果出现错位,那么标定结果存在一定的误差,当误差超出一定范围时,标定失败。
完成时间同步后,需要完成空间同步。而空间同步一般需要在标定场进行:把一个角架放置在不同的位置,记录毫米波雷达返回的距离和角度,同时记录摄像头测量的角架下边缘的距离和角度。
-
- 直接标定法 接标定法是将雷达和视觉信息在完成标定。为了保证数据的可靠性,一般采用相机的采样速率为基准,相机每采一帧图像,则选取毫米波上一帧缓存的数据,即完成毫米波与相机融合的一帧数据(共同采样数据),从而保证了毫米波雷达数据与相机数据时间上的同步。完成时间同步后,需要完成空间同步。而空间同步一般需要在标定场进行:把一个角架放置在不同的位置,记录毫米波雷达返回的距离和角度,同时记录摄像头测量的角架下边缘的距离和角度。
- 激光雷达辅助法 激光雷达辅助标定方法则是为了更好地验证毫米波雷达与相机间外参的标定结果, 引入激光雷达作为桥梁,通过同一系统中毫米波雷达与相机的外参和相机与激光雷达的外参,计算得到毫米波雷达与激光雷达的外参,将毫米波雷达数据投影到激光雷达坐标系中与激光点云进行融合,并画出相应的鸟瞰图进行辅助验证。
-
当多激光时,需要考虑拼接以获得更大范围的3D覆盖面,那么这时就需要外参来将多个激光统一到车辆坐标系下,以便能把各个雷达的点云进行很好的拼接。除了多个激光均单独标定外,还可以利用激光SLAM建图的方式来完成点云图的拼接。
-
相机与IMU标定其原理是利用视觉建图与IMU轨迹重合来完成标定的,这里对原理不做过多介绍,等后面实战课展开。可以学习下kalibr,它支持对Camera-IMU标定。