前言
在前两篇博客中介绍的标定工具,只是 autoware 和 apollo 中的一部分,如果只做激光雷达和相机的标定工作,工作量有点大。
今天介绍的but_calibration_camera_velodyne相对轻量级。
论文:
[1] Velas, Spanel, Materna, Herout: Calibration of RGB Camera with Velodyne LiDAR
安装和运行
这个包依赖but_velodyne_lib,需要提前安装。
安装but_velodyne_lib
需要在系统中安装以下依赖项:
- Eigen3 library
- OpenCV version 2.4.9 (for OpenCV v3 compatibility see branch opencv3)
- PCL 1.7 library
git clone https://github.com/robofit/but_velodyne_lib.git
cd but_velodyne_lib
mkdir bin
cd bin
cmake ..
make
sudo make install
安装but_calibration_camera_velodyne
依赖
- ROS Hydro or Indigo
- PCl 1.7
- OpenCV 2.x library
安装
git clone https://github.com/robofit/but_velodyne
mkdir -p calibration_camera_velodyne_catkin_ws/src
cp -r but_velodyne/but_calibration_camera_velodyne calibration_camera_velodyne_catkin_ws/src
cd calibration_camera_velodyne_catkin_ws
catkin_make
用法
标定过程分两步,第一步为粗略标定,第二步为精细化标定,最后用 Camera-Velodyne 融合后的着色的点云验证标定效果的好坏。
1.粗略标定
roslaunch but_calibration_camera_velodyne calibration_coarse.launch
- 命令将使用 3D marker 运行粗略标定(在[1]中描述)
- 如果 3D marker 检测失败,则在5s后重复尝试
- 在成功之后,节点结束并打印Velodyne相对于相机的6自由度变换
2.精细化标定
roslaunch but_calibration_camera_velodyne calibration_fine.launch
- 将运行精细化标定。此过程需要较长时间(约1分钟)。
3.发布Camera-Velodyne融合后的着色的点云,可用作验证标定效果的好坏
roslaunch but_calibration_camera_velodyne coloring.launch
- 启动发布camera – Velodyne融合的着色的点云
- 必须在配置文件
conf/coloring.yaml
中设置标定过程计算的标定参数(6DoF)
配置文件说明
1.conf/calibration.yaml
包含以下参数:
- camera_frame_topic:name of the topic, where camera RGB image is published
- camera_info_topic:topic of CameraInfo type(包含相机的标定文件)
- velodyne_topic:topic, where the Velodyne pointcloud is published
- marker:physical size of the 3D marker
- circles_distance:distance between the circles centres (see [1]) (单位为米)
- circles_radius:radius of the circles in marker (also see [1])
2.在conf/coloring.yaml
中,可以指定:
- 6DoF:
- velodyne_color_topic:
后记
我跟小伙伴尝试使用这个工具对velodyne 16线激光雷达和罗技网络摄像头做标定实验,然而并没有成功,一直卡在3D marker 检测失败。
因为作者使用的是velodyne 32线激光雷达,可能线束少,算法无法检测到3D marker。
现在要么用velodyne 32线激光雷达,要么就换其他标定工具。
所以又调研了autoware 和 apollo 的标定工具,打算接下来尝试一下autoware。