自动驾驶中多传感器的标定

时间:2024-03-22 12:33:26

转自:https://blog.csdn.net/zhouyy858/article/details/100186513?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

      目前自动驾驶中常见的传感器一共三种:摄像头、毫米波雷达、激光雷达。由于成本限制因素,国内主要使用前两种方式。

      三种传感器各有优劣。摄像头方案成本低,可以识别不同的物体,在物体高度与宽度测量精度、车道线识别、行人识别准确度等方面有优势,但作用距离和测距精度不如毫米波雷达,并且容易受光照、天气等因素的影响。毫米波雷达受光照和天气因素影响较小,测距精度高,但难以识别车道线、交通标志等元素。另外,毫米波雷达通过多普勒偏移的原理能够实现更高精度的目标速度探测。激光雷达成本高,测距精度最高,但是对物体的材质属性识别较差,另外分辨率较低也是影响使用的原因之一。总之只有相互配合取长补短,才能实现更稳定可靠的自动驾驶。

       用好三种传感器的基础就是传感器的标定,这里详细展开如何标定,之前有篇文章介绍过标定,不过主要是从摄像头和激光雷达标定的角度来说的,介绍的也不是很详细,今天详细介绍三种传感器的标定工作。

                              自动驾驶中多传感器的标定

      我们的目标是将毫米波和激光雷达的坐标转换到图像的对应位置上去。在相机位置处建立三维世界坐标系。

1. 摄像头标定

        进行摄像机标定的目的:求出相机的内、外参数,以及畸变参数。
        标定相机后通常是想做两件事:一个是由于每个镜头的畸变程度各不相同,通过相机标定可以校正这种镜头畸变矫正畸变,生成矫正后的图像;另一个是根据获得的图像重构三维场景。

     世界坐标系转换为像素坐标系,成像原理:

                          自动驾驶中多传感器的标定

2. 毫米波雷达

      时间融合,雷达和视觉信息需要传感器在时间上同步采集的数据,毫米波雷达采样帧率为 20 帧/秒,摄像机采样帧率一般为25 帧/秒。为了保证数据的可靠性,以摄像机采样速率为基准,摄像机每采一帧图像,选取毫米波雷达上一帧缓存的数据,即完成共同采样一帧雷达与视觉融合的数据,从而保证了毫米波雷达数据和摄像机数据时间上的同步。

                                                  自动驾驶中多传感器的标定

      标定毫米波雷达和摄像头的空间坐标是本文讨论的关键点,一般都在标定场内进行,如图:

                               自动驾驶中多传感器的标定自动驾驶中多传感器的标定

      把一块金属板放在不同的位置,记录毫米波雷达返回的距离和角度,同时记录摄像头测量的金属板下边缘的距离和角度。

      标定其实是计算图像平面和雷达反射面之间的homography矩阵参数(注意不需要分解为旋转和平移)。因为目的就是坐标变换,且认为是刚体,不会变形。

                                                     自动驾驶中多传感器的标定

       这里是二维毫米波雷达的坐标和图片像素二维坐标的变换,当然需要相机标定,图片需要转换成俯视图。

                                                    自动驾驶中多传感器的标定

                            自动驾驶中多传感器的标定

                      自动驾驶中多传感器的标定

       通过这个转换关系,就可以把毫米波雷达采集到的空间一点通过传感器坐标转换到图像坐标系中,完成了传感器的标定。

       即便有很好的标定,不同传感器有误差,车体会变形,实际工作中很难配准传感器的数据这里需要使用D-S证据理论。其优势在于很大程度的将不确定目标点整合成可用的目标点,并且把这种可用的目标点最终归结为真实有效,它包含基本概率分配函数,信任函数,似然函数和信任区间的基本定理。

3. 激光雷达

      激光雷达和相机标定现有很多解决方案:Autowareapollolidar_camera_calibration,but_velodyne,本文直接采用Autoware的标定方案。

      首先和普通cam标定一样,通过标定板的变化算出cam的位姿矩阵;内参是使用autoware_camera_calibration脚本获得的,该脚本是官方ROS标定工具的一个分支(即ROS Camera Calibration Tools)。

      标定界面:

                                 自动驾驶中多传感器的标定

       需要手动在右下方的图中,不断的把标定板对应的点云图给框出来,为了达到比较好的标定效果,需要的数据量越多越好,图中大概选了100张图,然后project检查效果的时候把不好的十来张删了,最后用了90张图。

       通过键盘调整角度和平移,使得两部分重合:

                                         自动驾驶中多传感器的标定

        最后标定的结果文件:最重要的就是外参矩阵

                      自动驾驶中多传感器的标定