2021.4.3| ROS下相机标定
启动摄像头
roslaunch robot_vision usb_cam.launch
启动标定包
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam
1.size:标定棋盘格的内部角点个数,这里使用的棋盘一共有6行,每行有8个内部角点;
2.square:对应每个棋盘格的边长,单位是米;
3.image和camera:设置摄像头发布的图像话题。
X:标定靶在摄像头视野中的左右移动
Y:标定靶在摄像头视野中的上下移动
Size:标定靶在摄像头视野中的前后移动
Skew:标定靶在摄像头视野中的倾斜转动
运行并采集足够的数据之后就可以标定了,点击calibration,等待计算结束,点击save,再点击commit就将结果保存在home目录下隐藏的.ros/camera_info/head_camera.yaml里了。
由于手里没有标定板,其实是懒得打印,就用gazebo做了个简单的仿真。
首先在仿真环境里加入立体相机和标定板,如下图。
运行
rosrun camera_calibration cameracalibrator.py --size 7x5 --square 0.2 image:=/stereo_camera/right/image_rect_color camera:=/stereo_camera/right
标定右镜头

在gazebo选项卡里不断调整标定板的位姿,直到CALIBRATE点亮,点击标定,等待计算完成然后保存结果,如下图。

对左镜头重复相同的步骤。
标定完后,找到目录下的yaml文件。
里面保存了相机参数和畸变系数。

image_width、image_height代表图片的长宽
camera_name为摄像头名
camera_matrix规定了摄像头的内部参数矩阵
distortion_model指定了畸变模型
distortion_coefficients指定畸变模型的系数
rectification_matrix为矫正矩阵,一般为单位阵
projection_matrix为外部世界坐标到像平面的投影矩阵
今天就做到这里。

浙公网安备 33010602011771号