多传感器标定测试工具

依赖

  • ROS
wget http://fishros.com/install -O fishros && . fishros
  • 相机内参标定:camera_calibration包
sudo apt install ros-${ROS_DISTRO}-camera-calibration
  • 相机雷达联合标定:image_view2
sudo apt install ros-${ROS_DISTRO}-image-view2
  • 相机雷达标定结果测试:jsk_recognition_msgs
sudo apt install ros-${ROS_DISTRO}-jsk-recognition-msgs

操作步骤

  1. 新建工作空间
mkdir -p catkin_ws/src
cd catkin_ws/src
catkin_init_workspace
  1. clone功能包并且切换到指定分支(opencv4.x环境需要切换到opencv4分支,版本小于opencv4则不用)
git clone https://github.com/KeepOnKeepOn/manual_dynamic_reconfigure.git
cd manual_dynamic_reconfigure
git checkout opencv4
  1. 在工作空间catkin_ws中进行编译
cd ../../
catkin_make 
source devel/setup.bash

相机内参标定

准备bag数据

bag需要包含相机图像数据,可以是原始图像格式,也可以是压缩图像格式。
图像数据的话题名需要和launch文件中的image_src参数相同。
如果是压缩图像格式,需要将compressed_stream参数设置为true,压缩图像话题为${image_src}/compressed形式。

启动launch文件

launch文件里的参数bagfile, image_src, size, square, k-coefficients为默认值,用户可根据自身场景修改。

  • bagfile:bag文件路径
  • image_src:原始图像topic
  • size: 棋盘格标定板的格子数-1
  • square:每个小格的边长,单位m
  • k-coefficients: 畸变系数
roslaunch calibration_bringup camera_calibration.launch playbag:=true compressed_stream:=true

相机内参标定过程
标定板需要在图像的各个位置标定,先转动偏航角,再转动俯仰角
相机内参标定结果测试

roslaunch calibration_bringup display_camera_calibration.launch playbag:=true compressed_stream:=true

相机雷达联合标定

准备bag数据

bag需要包含相机图像数据和雷达点云数据,图像可以是原始图像格式,也可以是压缩图像格式。
图像数据的话题名需要和launch文件中的image_src参数相同。
如果是压缩图像格式,需要将compressed_stream参数设置为true,压缩图像话题为${image_src}/compressed形式。

启动launch文件

roslaunch calibration_bringup lidar_camera_calibration.launch playbag:=true compressed_stream:=true

在rviz中选择雷达显示雷达点云的话题数据,将rviz坐标系设置为雷达坐标系。

联合标定过程
观察图像和点云,在 image-view2 中用鼠标选择一个像素点,然后在rviz中点击Publish Point按钮,选择像素点对应的点云数据点(要尽量选择准确),当你的鼠标右下角出现一个浅红色的路标记号时即可点击该数据点,观察终端中是否出现 points 的提示信息,当选择了9个点后,就能自动计算,输出标定结果(为提高标定精度,通常会选择再添加一些点对进行计算,注意每次计算结果时检查是否正确)。

联合标定结果测试

roslaunch calibration_bringup display_lidar_camera_calibration.launch playbag:=true compressed_stream:=true

rqt_reconfigure可视化窗口中调整参数,观察rviz中雷达和相机坐标系关系和点云投影效果,当点云投影与图像吻合时表明外参已经较准确。

恢复内外参数按钮
可视化窗口中调整参数时,可点击**即可恢复原始的参数

演示效果

你可能感兴趣的:(自动驾驶,人工智能)