[踩坑记录]rplidar A1与乐视LeTMC-520摄像头联合标定中遇到的问题
本人是初学者,手里有一个已经安装了思岚rplidar A1的小车,试图再装一个乐视LeTMC-520摄像头,通过标定外参,将二者的点云对齐。(使用的标定工具是此文中介绍的CamLaserCalibraTool)
首先使用ROS中的camera-calibration包对rgb摄像头和深度摄像头进行了标定,(没有做rgb和depth图像配准)接着按照上面的博客中介绍的方法,使用雷达和摄像头同时扫描标定板,录制rosbag数据包。当进行到联合标定的第二步,启动calibra_offline.launch 文件时,标定工具无法检测到落在标定板上的激光点。
粗略地阅读代码发现问题在src/selectScanPoints.cpp文件中的AutoGetLinePts函数,该函数的功能为在相机正前方一定角度内搜索落在标定板上的激光点,并将激光点返回。具体做法是设一帧激光有n个点,以序号为n/2的雷达点为正前方,根据雷达扫描的间隔角度和左右最大可视角度计算左右雷达点的序号,然后遍历左右序号之间的点,再搜索直线,代码如下。
/// detect and get line
// 直接从每一帧激光的正前方开始搜索一定距离范围内的符合平面标定板形状的激光线段
int n = points.size();
int id = n/2;
// std::cout << points.at(id).transpose() <<" "<<poi