目录
1 标定相机
2 激光雷达、相机粗标定
3 精细化标定激光雷达和相机
1 标定相机
使用Kaliber标定D435i相机,本次标定的分辨率为1920*1080,相机的内参如下:
FX:1439.96402547
FY:1442.82612329
CX:979.00103052
CY:565.47085426
K1:0.10055069
K2:-0.2034116
P1:0.00245444
P2:-0.00117788
由于做点云赋色,并不要求VIO性能,因此重投影误差不要求很小,本次重投影误差为2pixel:
2 激光雷达、相机粗标定
使用autoware的雷达相机标定工具,粗略的求出Lidar->Camera和Camera->Lidar的旋转平移变换:
Tcl
[[-0.06861033 -0.99751013 -0.01631455 0.03627205]
[ 0.03137146 0.01418779 -0.99940709 -0.03832164]
[ 0.99715017 -0.06908146 0.03031992 -0.03982055]
[ 0. 0. 0. 1. ]]Tlc
[[-0.06861033 0.03137146 0.99715016 0.04339791]
[-0.99751013 0.0141878 -0.06908146 0.03397458]
[-0.01631454 -0.9994071 0.03031992 -0.0364998 ]
[ 0. 0. 0. 1. ]]
3 精细化标定激光雷达和相机
使用录制好的标定包,删除掉工作空间的这三个文件夹的内容:
在外刷新ROS环境。并进入clion:
启动groundremove节点,并播放标定用包。位置在/bag/PatchmatchNet-main/data/清明/assistBD.bag中。
得到了拆分的雷达点云和图像:
得到拆分图像后,运行/home/liuhongwei/catkin_mask/src/predict_in_lvi.py文件,执行DetectMask函数,将文件夹换成mask文件夹。
执行。得到标定的mask信息。
在assistBiaoding.cpp中,将相机参数换掉。
代码的57-59行替换雷达->相机的变换矩阵。
27-33行读入邻近的帧
原本的标定结果是这样的,需要调整,对齐图像:
得到精细化标定结果:
选择另外图像进行微调:
微调成功!标定成功!