【摄像头标定】HD USB Camera

准备工作

1) 棋盘格打印参数:
  • 内部焦点个数8x6;
  • 每个棋盘格正方形边长为24mm;
2) 安装ros相机标定程序
rosdep install camera_calibration #安装标定程序
mkdir catkin_ws
cd catkin_ws
mkdir src
git clone https://github.com/bosch-ros-pkg/usb-cam.git
cd ..
catkin_make
source devel/setup.bash
roslaunch usb_cam usb_cam-test.launch
# 打开一个新终端
rostopic list
# 输入一个标定指令
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam

标定步骤

  • 打开一个终端,执行roscore命令启动ros
  • 再开一个终端,将usb-camera下载到catkin_ws下的src目录中;
  • 然后在catkin_ws目录进行catkin_make
  • 在catkin_ws目录下会生成两个builddevel目录
  • source一下devel下的setup.bash文件source devel/setup.bash
  • 再打开一个新终端,执行启动USB摄像头命令:roslaunch usb_cam usb_cam-test.launch
  • 再打开一个终端,执行启动标定程序命令:
    rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam
采集标定图像,直到右上角X、Y、Size、Skew都为绿色
采集标定图像,直到右上角X、Y、Size、Skew都为绿色
采集标定图像,直到右上角X、Y、Size、Skew都为绿色

上述命令出现的几个输入参数。
1)--size 8x6:表示标定棋盘格的内部角点数目的长和宽,6行8列
2)--square 0.024:每个正方形棋盘格的边长,单位m。这里的每个棋盘小格子是2.4cm也就是0.024m;
3)image和camera:设置摄像头发布的图像topic。

  • 标定程序使用方法:
    为了得到一个好的标定结果,应该使得标定板尽量出现在摄像头视野的各个位置里:如标定板出现在视野中的左边,右边,上边和下边,标定板既有倾斜的,也有水平的。
    x:表示标定板在视野中的左右位置。
    y:表示标定板在视野中的上下位置。
    size:标定板在占视野的尺寸大小,也可以理解为标定板离摄像头的远近。
    skew:标定板在视野中的倾斜位置。

  • 从不同视角对准标相机定板,使得calibration 按钮变绿而且相机运动满足右上角“X,Y,Size,Skew”长条变绿为止;

  • 此时CALIBRATE按钮从灰色不可点击变为绿色,点击CALIBRATE开始标定参数

点击变绿色了的CALIBRATE按钮开始标定
标定结束保存本地
Screenshot from 2020-12-22 09-46-12.png

相机内参yaml文件

image_width: 640
image_height: 360
camera_name: narrow_stereo
camera_matrix:
  rows: 3
  cols: 3
  data: [ 767.61835,    0.     ,  346.00876,
            0.     ,  767.70392,  176.00989,
            0.     ,    0.     ,    1.     ]
camera_model: plumb_bob
distortion_coefficients:
  rows: 1
  cols: 5
  data: [-0.440663, 0.343160, -0.000965, -0.002679, 0.000000]
rectification_matrix:
  rows: 3
  cols: 3
  data: [ 1.,  0.,  0.,
          0.,  1.,  0.,
          0.,  0.,  1.]
projection_matrix:
  rows: 3
  cols: 4
  data: [ 708.30072,    0.     ,  347.95183,    0.     ,
            0.     ,  746.67316,  175.1875 ,    0.     ,
            0.     ,    0.     ,    1.     ,    0.     ]

用ROS下采集的标定图像方法Matlab R2020a上进行验证

Camera Calibration工具箱中加载所有图像
点击标定Calibrate按钮进行标定
重投影误差
image.png
标定信息
相机标定后得到的参数
Matlab相机内参矩阵
ROS相机内参矩阵
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容