Kinect DK相机和VLP-16雷达外参标定
一、播放bag
1.1 回放提前雷达相机录制好的bag
标定工具订阅的是/points_raw话题,需要将激光雷达的原始节点名称改为/points_raw,即在如下命令后添加 /velodyne_points:=/points_raw
roscore
#在存放录制好的bag所在文件下新建终端
rosbag play --pause image_lidar_calibration.bag /velodyne_points:=/points_raw
PAUSED表示停止播放状态,后面需要时按空格键进行播放和暂停控制。
1.2 启动标定工具
新建终端
source ~/calibration_toolkit/calibration/devel/setup.bash
rosrun calibration_camera_lidar calibration_toolkit
1.3 修改Pattern Size和Number参数
配置标定板棋盘格参数:
·Pattern Size(m):标定板单元格边长,单位m,此处实验使用的标定板是0.097×0.097;
·Pattern Number:棋盘格标定板(每列单元格的个数-1)×(每行单元格的个数-1),即实际7×9——实验使用的标定板为6×8;
·修改Pattern Size和Number后关闭再重新运行上述命令,启动标定工具
配置标定板棋盘格参数;
·点击Load导入相机内参YAML文件(此处需先在ROS下进行Kinect相机的内参标定实验来得到.ymal文件)。
1.4 返回bag终端下空格播放数据
可以看到对应标定工具下出现image画面
二、开始外参标定
2.1 在bag终端按空格继续回放数据
选择到认为较好图像时按空格暂停
在黑色窗口下按键调试直至出现清晰的激光雷达扫描情况
(一般先按“2”看到出现稀疏点云后,按减号“-”放大,然后不断通过“a、d、w、s、q、e”进行旋转点云直至与左边图像角度基本一致)
调整视图 | 操作按键 |
---|---|
移动点云 | ↑、↓、←、→、PageUp、PageDown |
旋转点云 | a、d、w、s、q、e |
切换视角 | “1”透视投影 ,“2”正交投影 |
放大放小 | “-”放大 ,“+”缩小 |
点云大小 | “o”点云变小 ,“p”点云变大 |
改变点云窗口背景颜色 | b |
2.2 点击[Grab]进行捕捉
就可以得到相机标定面和对应的雷达点云图
2.3 选择标定区域
在右下角的点云图中,在标定板的中心位置左键选择圆形标定区域,尽可能与左图一致
2.4 按“2”切回正交投影,按“-”不断放大直至看清
2.5 不断调整选择圆形区域
不断调整选择圆形区域,直至符合即表示完成一帧的标定
2.6 重复上述2.1-2.5的步骤
在录制的每个位置(大概9个)均选择多张(大概3-4张)进行标定,直至bag播放完毕
三、结束外参标定,生成标定结果
3.1 点击[Calibrate],计算生成外参矩阵数据;
3.2 点击[Project]查看标定结果
左下图中会散落红点到标定板上,根据标定版上红点投影情况以及重投影误差来判断标定结果的准确性;
3.3 点击[save]保存标定结果
保存的结果会生成.yaml文件,其中存放了Kinect相机和激光雷达各自的内参标定结果以及联合标定的外参结果。