激光雷达和相机的联合标定(Camera-LiDAR Calibration)之but_calibration_camera_velodyne

前言

在前两篇博客中介绍的标定工具,只是 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。

猜你喜欢

转载自blog.csdn.net/learning_tortosie/article/details/82385394