1.下载标定工具,并解压缩到`$APOLLO_HOME/modules/calibration“目录下。(APOLLO_HOME是apollo代码的根目录)
2.相机内参文件
内参包含相机的焦距、主点和畸变系数等信息,可以通过一些成熟的相机标定工具来获得,例如 ROS Camera Calibration Tools 和 Camera Calibration Toolbox for Matlab。内参标定完成后,需将结果转换为 .yaml 格式的文件。下面是一个正确的内参文件样例:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: short_camera
height: 1080
width: 1920
distortion_model: plumb_bob
D: [-0.535253, 0.259291, 0.004276, -0.000503, 0.0]
K: [1959.678185, 0.0, 1003.592207, 0.0, 1953.786100, 507.820634, 0.0, 0.0, 1.0]
R: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
P: [1665.387817, 0.0, 1018.703332, 0.0, 0.0, 1867.912842, 506.628623, 0.0, 0.0, 0.0, 1.0, 0.0]
binning_x: 0
binning_y: 0
roi:
x_offset: 0
y_offset: 0
height: 0
width: 0
do_rectify: False
我们建议每一只相机都需要单独进行内参标定,而不是使用统一的内参结果。这样可以提高外参标定的准确性。
3.初始外参文件
本工具需要用户提供初始的外参值作为参考。一个良好的初始值可以帮助算法得到更精确的结果。下面是一个正确的相机到激光雷达的初始外参文件样例,其中translation为相机相对激光雷达的平移距离关系,rotation为旋转矩阵的四元数表达形式:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: velodyne64
child_frame_id: short_camera
transform:
rotation:
y: 0.5
x: -0.5
w: 0.5
z: -0.5
translation:
x: 0.0
y: 1.5
z: 2.0
注意:相机到激光雷达的标定方法比较依赖于初始外参值的选取,一个偏差较大的外参,有可能导致标定失败。所以,请在条件允许的情况下,尽可能提供更加精准的初始外参值。
4.标定场地
我们的标定方法是基于自然场景的,所以一个理想的标定场地可以显著地提高标定结果的准确度。我们建议选取一个纹理丰富的场地,如有树木,电线杆,路灯,交通标志牌,静止的物体和清晰车道线。图1是一个较好的标定环境示例:
5.所需Topics
确认程序所需传感器数据的topics均有输出。如何查看传感器有数据输出?
| 传感器 | Topic名称 | Topic发送频率(Hz) |
| Short_Camera | /apollo/sensor/camera/traffic/image_short | 9 |
| Velodyne HDL64 | /apollo/sensor/velodyne64/compensator/PointCloud2 | 10 |
| INS | /apollo/sensor/gnss/odometry | 100 |
| INS | /apollo/sensor/gnss/ins_stat | 2 |
所有标定程序需要用到车辆的定位结果。请确认车辆定位状态为56,否则标定程序不会开始采集数据。输入以下命令可查询车辆定位状态:
rostopic echo /apollo/sensor/gnss/ins_stat
1.运行方法
使用以下命令来启动标定工具:
cd /apollo/scripts
bash sensor_calibration.sh lidar_camera
2.采集标定数据
3.配置参数
配置文件保存在以下路径,详细说明请参照表。
/apollo/modules/calibration/lidar_camera_calibrator/conf/lidar_camera_calibrtor.conf
4.输出内容
所有标定结果均保存在配置文件中所设定的 output 路径下,标定后的外参以 yaml 格式的文件提供。此外,根据传感器的不同,标定结果会保存在 output 目录下的不同文件夹中,具体如下表所示:
当标定完成后,会在 [output]/validation 目录下生成相应的标定结果验证图片。下面会详细介绍每一类验证图片的基本原理和查看方法。
基本方法:在产生的点云投影图像内,可寻找其中具有明显边缘的物体和标志物,查看其边缘轮廓对齐情况。如果50米以内的目标,点云边缘和图像边缘能够重合,则可以证明标定结果的精度很高。反之,若出现错位现象,则说明标定结果存在误差。当误差大于一定范围时(范围依据实际使用情况而定),该外参不可用。
结果示例:如下图所示,图1为准确外参的点云投影效果,图2为有偏差外参的点云投影效果