wget http://fishros.com/install -O fishros && . fishros
sudo apt install ros-${ROS_DISTRO}-camera-calibration
sudo apt install ros-${ROS_DISTRO}-image-view2
sudo apt install ros-${ROS_DISTRO}-jsk-recognition-msgs
mkdir -p catkin_ws/src
cd catkin_ws/src
catkin_init_workspace
git clone https://github.com/KeepOnKeepOn/manual_dynamic_reconfigure.git
cd manual_dynamic_reconfigure
git checkout opencv4
cd ../../
catkin_make
source devel/setup.bash
bag需要包含相机图像数据,可以是原始图像格式,也可以是压缩图像格式。
图像数据的话题名需要和launch文件中的image_src
参数相同。
如果是压缩图像格式,需要将compressed_stream
参数设置为true
,压缩图像话题为${image_src}/compressed
形式。
launch文件里的参数bagfile, image_src, size, square, 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需要包含相机图像数据和雷达点云数据,图像可以是原始图像格式,也可以是压缩图像格式。
图像数据的话题名需要和launch文件中的image_src
参数相同。
如果是压缩图像格式,需要将compressed_stream
参数设置为true
,压缩图像话题为${image_src}/compressed
形式。
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中雷达和相机坐标系关系和点云投影效果,当点云投影与图像吻合时表明外参已经较准确。
恢复内外参数按钮
可视化窗口中调整参数时,可点击**即可恢复原始的参数