使用calibration_toolkit进行相机和三维激光雷达的联合标定(详细步骤)

5 篇文章 2 订阅

使用calibration_toolkit进行相机和三维激光雷达的联合标定(16线速腾雷达)

系统配置:
Ubuntu18.04系统 安装
ROS Melodic 安装
opencv 3.2.0
rslidar 16

calibration_toolkit,autoware 1.10.0版本中的标定工具箱单独编译安装

calibration_toolkit是autoware1.10版本以前内置标定工具,autoware是与apllol类似的自动驾驶模拟系统。
网上很多教程都会先绍autoware的安装然后单独编译标定工具。我根据官网的教程安装autoware,可能是我网络原因和系统配置的原因,一直不能成功将git工程克隆到本地,走了很多弯路。
实际上我发现如果只需要标定工具可以单独安装编译calibration_toolkit这个是大佬从autoware系统中单独“剥”出来的,可以直接安装使用

1、安装nlopt

网上很多安装教程都是ubuntu16.04的,我的系统是18.04的文章前面也已经介绍了系统配置,接下来介绍标定工具的比版以安装。

编译标定工具箱依赖于nlopt,需要先行安装,安装教程参考:https://github.com/stevengj/nlopt

2、安装标定工具箱

标定工具箱安装教程参考:https://github.com/XidianLemon/calibration_camera_lidar,教程很详细有点ros基础的都会,把工程克隆到自己本地工程的src目录下编译即可。

可能出现的问题及解决方式:

  1. 此时直接运行标定程序,会报找不到可执行文件 calibration_camera_lidar的问题。因为我的系统是ubuntu18.04对应支持的ROS是melodic,因此需要对calibration_camera_lidar功能包下的CMakeLists.txt进行修改,添加ROS的melodic版本的支持,如下图所示,修改CMakeLists.txt中所有 (" R O S V E R S I O N " M A T C H E S " ( i n d i g o ∣ j a d e ∣ k i n e t i c ) " ) 为 ( " {ROS_VERSION}" MATCHES "(indigo|jade|kinetic)")为(" ROSVERSION"MATCHES"(indigojadekinetic)")("{ROS_VERSION}" MATCHES “(indigo|jade|kinetic|melodic)”)
    在这里插入图片描述
  2. home/x/catkin_ws/devel/lib/calibration_camera_lidar/calibration_toolkit: error while loading shared libraries: libnlopt.so.0: cannot open shared object file: No such file or directory
    解决办法:
 cd /etc/ld.so.conf.d
 sudo touch libnlopt.conf
sudo gedit libnlopt.conf 

在libnlopt.conf文件中添加内容为:/usr/local/lib

$ sudo ldconfig
  1. 编译问题CMakeFiles/calibrationtoolkit.dir/CalibrationToolkit/calibrationtoolkit.cpp.o: In function nlopt::opt::get_errmsg() const': /usr/local/include/nlopt.hpp:516: undefined reference tonlopt_get_errmsg’ #10,我把nlopt安装在根目录下,实际上这个错误应该是我重复安装冲突了,解决办法:
    sudo apt remove libnlopt-dev
  2. 在编译过程中,我遇到了opencv的问题,有些函数在opencv2和opencv3的表示不一样,我的系统安装了不同版本的opencv,所以我在CMakeLists.txt需要指定opencv的版本
    find_package(OpenCV 3.2.0 REQUIRED)
    避免冲突。
  3. Could not find the required component ‘jsk_recognition_msgs’
    新开终端执行以下语句
$ sudo apt-get install ros-melodic-jsk-recognition-msgs

3、开始标定(离线标定)

编译通过后可以启动标定程序
(1)启动录制的数据包
录制的数据包需要注意
(1)标定板要同时在相机和雷达的视野内
(2)这个工具订阅的是velodyne_points,所以需要指定rslidar_points:=/points_raw
(3)不停调整标定板的角度,并且在同一个角度停留久一点,接下来标定捕获图片与点云振才能顺利。

rosbag play bagName.bag /rslidar_points:=/points_raw

(2)启动标定工具

roscore
source ~/catin_ws/devel/setup.bash
rosrun calibration_camera_lidar calibration_toolkit

出现以下选择图像以及标定类型的界面,选择你自己的相机以及标定类型,从标定类型看,该工具可以单独标定相机、雷达以及联合标定。
在这里插入图片描述

在这里插入图片描述
(2)执行标定步骤
首先在pattern size设置标定板规格,我的标定板是6x8,小方格的size是0.245X0.245,这里给出下载链接下载
先调节点云界面,右上框的颜色,默认是黑色,点一下该框,按下B键,换成浅色调(便于观察)。
qweasd六个健用于旋转,将右边框角度调到与左边一致
step1.调好角度后,按下空格暂停数据播放,点击grab按钮
step2.在右下图选择标定版所在的点云,点击calibrate标定按钮等待一会右边会出现外参矩阵等数据。没有出现下面的图像也没关系,重新播放在grab点云帧。
step3.点击project按钮左下图中红点会散落到标定板,你可以根据标定版上红点投影情况以及重投影误差确认标定结果。
不断重复以上两个步骤,达到标定目的。
点击save保存标定结果,可以保存相机,雷达各自的内参标定结果以及联合标定结果(说明这个工具是可以用于单个传感器的标定的,联合标定不需要提前标定相机的内参)
在这里插入图片描述
雷达-相机的联合标定结果如下图:
在这里插入图片描述

  • 9
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值