环境:Ubuntu20.04、ROS2 foxy
相机标定使用的是棋盘格的内部顶点,因此 "12x9" 的棋盘板,其内部顶点参数为 "11x8"。
安装 Image Pipeline
安装相机标定所需软件包:
sudo apt install ros-galactic-camera-calibration-parsers
sudo apt install ros-galactic-camera-info-manager
sudo apt install ros-galactic-launch-testing-ament-cmake
创建相机标定工作空间:
cd ~
mkdir -p camera_calibration/src
下载 Image Pipeline 源码:https://github.com/ros-perception/image_pipeline/tree/foxy
将下载的压缩包解压并放置于 camera_calibration/src 文件夹下。
编译软件包:
cd ~/camera_calibration
colcon build
下载打印标定板
打开链接:https://calib.io/pages/camera-calibration-pattern-generator
根据自己的需要设定标定板参数,然后下载下来打印在纸上,比如我的参数:
相机标定
启动相机节点,并将 topic 重映射为 /camera/iamge_raw:
cd ~/camera_calibration
source install/setup.bash
ros2 run image_tools cam2image --ros-args -p width:=640 -p height:=480 -p frequency:=30.0 -p device_id:=-1 -r /image:=/camera/image_raw
打开新终端,启动相机标定节点(标定板的参数需根据自己的实际情况设置):
cd ~/camera_calibration
source install/setup.bash
ros2 run camera_calibration cameracalibrator --size 11x8 --square 0.50 image:=/camera/image_raw camera:=/camera
窗口右侧的 x 对应左右方向的运动,y 对应上下方向的运动,size 对应接近/靠近相机,skew 对应倾斜姿态。
为了得到更好的标定结果,需要在相机视野范围内不断移动棋盘格,直到窗口右侧的 x,y,size,skew
显示条变绿,且 CALIBRATE
按钮变亮后,点击 CALIBRATE
按钮,大概会有一分钟左右的计算时间。
校准完成后,点击 SAVE
按钮保存标定文件,结果保存在 /tmp/calibrationdata.tar.gz 中。
根据标定数据配置单目相机参数
参数主要修改这些:
解压 /tmp/calibrationdata.tar.gz 压缩包,打开里面的 ost.yaml 文件,camera matrix 里的参数和 ORB_SLAM3 的参数对应关系是:
distortion_coefficients 里的参数和 ORB_SLAM3 对应的关系是:[k1 k2 p1 p2 k3]
标签:相机,calibration,image,标定,foxy,camera,参数,单目,ROS2 From: https://www.cnblogs.com/xiaoaug/p/17790613.html