利用ROS camera_calibration对usb相机标定

1 准备

1.1 ubuntu18.04 ROS-melodic

准备好一台装有ubuntu18.04的电脑,装好ROS-melodic

1.2 打印棋盘格

一个棋盘格下载网址:https://markhedleyjones.com/projects/calibration-checkerboard-collection

2 源码安装usb_cam功能包

2.1 创建工作空间

mkdir -p ~/catkin_ws/src
cd catkin_ws/src
初始化工作空间
catkin_init_workspace
cd ~/catkin_ws/
编译工作空间
catkin_make

2.2 下载usb_cam包

git clone https://github.com/bosch-ros-pkg/usb_cam.git # 如果失败多试几次
mkdir -p ~/catkin_ws/src/usb_cam/build
cd ~/catkin_ws/src/usb_cam/build
cmake ..
make

2.3 编译工作空间

cd ~/catkin_ws
catkin_make #会报一些警告 不影响使用
设置环境变量
source devel/setup.bash

2.4 查看摄像头id

ls /dev/video*

2.5 根据需要,修改usb_cam的launch文件中需要启动的摄像头

roslaunch usb_cam usb_cam-test.launch

运行会报没有标定文件(head_camera.yaml)不能自动对焦的警告(unknown control ‘focus_auto’)

3 标定

3.1查看是否有camera_calibration功能包

rosdep install camera_calibration

3.2 标定

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 image:=/usb_cam/image_raw camera:=/usb_cam

标定语句中
size参数为棋盘格角点数量。比如8x9=72个格子的棋盘格,角点个数为7x8=63个,size参数就要写7x8
square参数为s为棋盘格一个小格子的宽度(单位为m)。
image:=/usb_cam/image_raw 为当前订阅的图像来自名为/usb_cam/image_raw的topic
camera:=/head_camera为摄像机名

标定界面中
x:表示标定板在视野中的左右位置。
y:表示标定板在视野中的上下位置。
size:标定板在占视野的尺寸大小,也可以理解为标定板离摄像头的远近。
skew:标定板在视野上下左右中的倾斜位置。
标定完成后点击Calculate会稍微有点卡顿,不要担心后台正在进行标定,完成后下面的SAVE和COMMIT按钮变为可用状态,点击SAVE即可保存标定完成后的文件。
点击commit即可把标定文件存储到系统的~/.ros/camera_info/xxx.yaml目录
标定文件自动存放于
/home/nick/.ros/camera_info/head_camera.yaml

标定文件:

image_width: 640
image_height: 480
camera_name: head_camera
camera_matrix:
  rows: 3
  cols: 3
  data: [1807.379192905262, 0, 412.678580070881, 0, 1826.869385763768, 112.0237197131278, 0, 0, 1]
distortion_model: plumb_bob
distortion_coefficients:
  rows: 1
  cols: 5
  data: [-0.5967665245839386, -2.383274614510551, 0.02970595362225658, -0.02948523227082381, 0]
rectification_matrix:
  rows: 3
  cols: 3
  data: [1, 0, 0, 0, 1, 0, 0, 0, 1]
projection_matrix:
  rows: 3
  cols: 4
  data: [1773.645385742188, 0, 412.1578431076359, 0, 0, 1810.642211914062, 111.8633748078282, 0, 0, 0, 1, 0]

其中:
camera_matrix:摄像头的内部参数矩阵
distortion_matrix:畸变系数矩阵
rectification_matrix:矫正矩阵,一般为单位阵
projection_matrix:外部世界坐标到像平面的投影矩阵

参考:
ubuntu18.04 + ROS Melodic + usb摄像头 + 相机标定

ROS学习笔记(1)——创作工作空间/安装usb_cam来调用摄像头

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值