USB_camera单目相机的标定

USB_camera单目相机的标定

单目相机官方标定流程:

标定的前提:在工作空间src中安装usb_cam包:git clone https://github.com/bosch-ros-pkg/usb_cam.git

  1. 启动ROSroscore
  2. 进入工作空间cd ~/catkin_ws2
    source devel/setup.bash
  3. 进入launchcd src/usb_cam/launch
  4. 打开摄像头cd src/usb_cam/launch
  5. 重新打开终端,进入矫正窗口:
    (未安装camera_calibration的需要检查是否安装:rosdep install camera_calibration
    rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.0245 image:=/usb_cam/image_raw camera:=/usb_cam
  6. 采集数据样本时,最好将上下左右远近倾斜等多个角度进行测试,将矫正窗口右侧x,y,size,skew全部铺满;
    size:标定板在占视野的尺寸大小,也可以理解为标定板离摄像头的远近;
    square:标定板方格边长(m);
    skew:标定板在视野上下左右中的倾斜位置。

计算矫正参数:

点击CALIBRATE按钮,稍等1-2分钟,可以在命令窗中看到标定参数,点击COMMIT将结果保存到电脑路径:/home/sun/.ros/camera_info/head_camera.yaml,再次启动相机时就不会有Camera Calibration文件找不到的警告了。
矫正图像,请使用image_proc包。

如果没有自动载入矫正文件 ,那么就需要调用下image_proc这个包。两种解决方案:
1.在启动usb_cam的launch文件下面再加上。
2.或者启动usb_cam后,在终端命令窗口加上ROS_NAMESPACE=usb_cam rosrun image_proc image_proc。

摄像机标定的目的:求出相机的内、外参数,以及畸变参数
参矩阵: Intrinsic Matrix
焦距: Focal Length
主点: Principal Point
径向畸变: Radial Distortion
切向畸变: Tangential Distortion
旋转矩阵: Rotation Matrices
平移向量: Translation Vectors
平均重投影误差: Mean Reprojection Error
重投影误差: Reprojection Errors
重投影点: Reprojected Points

相机的各项Parameters:
~video_device (string, default: “/dev/video0”)

The device the camera is on. 

~image_width (integer, default: 640)

Image width 

~image_height (integer, default: 480)

Image height 

~pixel_format (string, default: “mjpeg”)

Possible values are mjpeg, yuyv, uyvy 

~io_method (string, default: “mmap”)

Possible values are mmap, read, userptr 

~camera_frame_id (string, default: “head_camera”)

The camera's tf frame 

~framerate (integer, default: 30)

The required framerate 

~contrast (integer, default: 32)

Contrast of video image (0-255) 

~brightness (integer, default: 32)

Brightness of video image (0-255) 

~saturation (integer, default: 32)

Saturation of video image (0-255) 

~sharpness (integer, default: 22)

Sharpness of video image (0-255) 

~autofocus (boolean, default: false)

Enable camera's autofocus 

~focus (integer, default: 51)

If autofocus is disabled, the focus of the camera (0=at infinity) 

~camera_info_url (string, default: )

An url to the camera calibration file that will be read by the CameraInfoManager class 

~camera_name (string, default: head_camera)

The camera name. This must match the name in the camera calibration 
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ROS2是一个开源的机器人操作系统,其中包含了许多用于机器人应用开发的功能库和工具。而单目相机标定是在机器人视觉应用中非常重要的一步,可以帮助我们得到相机的内参和外参等参数,从而对图像进行更加准确的处理和分析。下面是ROS2单目相机标定的教程: 1. 首先需要安装ROS2,可以参考ROS2官方网站进行安装。 2. 安装相机驱动程序,例如USB相机可以使用UVC Camera驱动程序,可以通过以下命令进行安装: ``` sudo apt-get install ros-<distro>-uvc-camera ``` 其中`<distro>`为ROS2的版本号。 3. 安装相机标定工具包,可以使用以下命令进行安装: ``` sudo apt-get install ros-<distro>-camera-calibration ``` 4. 打开终端并输入以下命令,启动相机: ``` ros2 run uvc_camera camera_node ``` 5. 接下来需要收集标定所需的数据。可以通过运行以下命令启动图像采集节点: ``` ros2 run image_tools cam2image ``` 6. 在运行节点之后,会自动保存一些图像文件。需要尽可能地采集不同的角度、距离和姿态的图像,以便后续标定的准确性。 7. 完成图像采集后,运行以下命令进行标定: ``` ros2 run camera_calibration cameracalibrator --ros-args -p camera:=/camera -p image:=/image_raw ``` 其中`/camera`和`/image_raw`分别为相机和图像采集节点的话题名称。执行该命令后,会自动打开一个图形界面,显示采集到的图像。按照指导完成标定即可。 8. 标定完成后,可以通过以下命令查看标定结果: ``` ros2 run camera_calibration cameracheck.py ``` 以上就是ROS2单目相机标定的教程,希望能够帮助到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

古月长青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值