ros相机标定
1、需要的包
- usb_cam
sudo apt-get install ros-melodic-usb-cam
2.camera_calibration
sudo apt-get install ros-melodic-camera-calibration
2、需要的launch文件
<launch> <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" > <param name="video_device" value="/dev/video0" /> <param name="image_width" value="640" /> <param name="image_height" value="480" /> <param name="pixel_format" value="yuyv" /> <param name="camera_frame_id" value="usb_cam" /> <param name="io_method" value="mmap"/> </node> </launch>
注意:链接不同摄像头更改video0->video1
2.开始标定
1.准备标定纸
2.启动标定程序
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam
size 是指棋盘内部角点个数,我是用的标定板公有12x8个角点(即12列8行),”x”是字母,而不是乘号…square指方形的边长,我使用的标定板方形边长为24mm,image为输出图像的话题,usb_cam为相机的名称(即在/image_raw前面部分)
注意:可能会出现
Waiting for service“/camera/set_camera_info” Service not found
运行如下语句: 角点数 棋盘格大小 topic映射
rosrun camera_calibration cameracalibrator.py --size 9x7 --square 0.108 image:=/usb_cam/image_raw camera:=/usb_cam --no-service-check
3.开始标定
在出现上述窗口后,拿标定板在窗口中移动,
我们从图1中可以看到,在GUI的右侧有X,Y,Size,Skew这几个标志条
它们的含义是:
(1)x:标定板在图像中的左右位置,从左到右x由小变大。
(2)y:标定板在图像中的上下位置,从上到下y由小变大。
(3)Size:标定板在图像中的大小,由远及近,Size由小变大。
(4)Skew:标定板在图像中倾斜的角度大小
操作过程:
(1)为了得到尽量丰富的x,y值:标定的过程中要尽量缓慢移动标定板,使标定板的位置出现在图像中的各个地方(上中下左右)。
(2)为了得到丰富的Size值缓慢移动标定板,使标定板由远及近,采集到丰富的尺寸信息,最好有一张,标定板占据视野绝大部分的图像。
(3)为了得到丰富的Skew信息,缓慢移动标定板,使标定板的俯仰,偏航,滚动变化。
注:在操作的过程中,标定板移动不要过快,并且,每移动到一个位置要停顿下,如果发现这四标志条都变绿了说明采集到了足够的信息。并且如果可以执行标定,CALIBRATE就会变亮。
4.执行标定,得到结果
CALIBRATE选项变亮后,就可以点击,执行标定(最好各标志条也都变绿),此时图像会变灰,等待几分钟,标定完成后,再把标定板拿到摄像机前会出现如下画面:
转载:https://blog.csdn.net/xu1129005165/article/details/52948992