ROS学习笔记之——DAVIS346 calibration

Posted gwpscut

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS学习笔记之——DAVIS346 calibration相关的知识,希望对你有一定的参考价值。

之前博客《ROS实验笔记之——DAVIS346测试》已经对davis346相机进行了测试。接下来正式开始gan,先看看如何做calibration

官方给的标定

在(rpg_dvs_ros/README.md at master · uzh-rpg/rpg_dvs_ros · GitHub)这里面有关于dvs的校正。由于davis有image输出,所以建议当成是普通的单目相机进行校正。但对于dvs就建议采用闪烁的LED来校正。

而官网中,也有给出校正的方法(Calibration [Tutorial] · DV

下载棋盘格:https://inivation.gitlab.io/dv/dv-docs/docs/assets/calib.io_checker_279x210_6x9_30.pdf
用标准A4纸打印,即可应用DV中Calibration模块的默认设置。并且将棋盘格的A4纸贴在硬质的背景板上。
当然建议使用标准的标定棋盘格(玻璃的等等),并根据实际的一个格子的大小和数量进行参数调整。
采集30张(这个也可以自己设置)合适的图像:根据keep选择,discard遗弃。
首先打开dv-gui。进入structure

将结构改为如下图所示

 

满足30张后,DV软件会进行自动标定。标定结果为.xml格式的文件,打开后即有所标定相机的参数,包括内参矩阵参数、畸变系数参数、标定误差、相机分辨率等信息。如下所示:

<?xml version="1.0"?>
<opencv_storage>
<DAVIS346_00000589>
  <camera_matrix type_id="opencv-matrix">
    <rows>3</rows>
    <cols>3</cols>
    <dt>d</dt>
    <data>
      1.9878276685398509e+02 0. 1.1228075705687088e+02 0.
      1.9734812584365113e+02 7.0750652805207991e+01 0. 0. 1.</data></camera_matrix>
  <distortion_coefficients type_id="opencv-matrix">
    <rows>5</rows>
    <cols>1</cols>
    <dt>d</dt>
    <data>
      -1.1985357391762412e-01 -9.8958697325729816e-02
      3.0709392836820643e-02 3.9418591165145921e-02
      1.2116012582248603e-01</data></distortion_coefficients>
  <image_width>346</image_width>
  <image_height>260</image_height></DAVIS346_00000589>
<use_fisheye_model>0</use_fisheye_model>
<type>camera</type>
<pattern_width>8</pattern_width>
<pattern_height>5</pattern_height>
<pattern_type>chessboard</pattern_type>
<board_width>9</board_width>
<board_height>6</board_height>
<square_size>30.</square_size>
<calibration_error>5.5529658666877568e-01</calibration_error>
<calibration_time>"Sat Sep 25 21:18:27 2021"</calibration_time>
</opencv_storage>

标定成功!

再标定一次看看

<?xml version="1.0"?>
<opencv_storage>
<DAVIS346_00000589>
  <camera_matrix type_id="opencv-matrix">
    <rows>3</rows>
    <cols>3</cols>
    <dt>d</dt>
    <data>
      3.9653583499966118e+02 0. 1.6787507921185320e+02 0.
      3.9612207099065148e+02 1.4389847656722665e+02 0. 0. 1.</data></camera_matrix>
  <distortion_coefficients type_id="opencv-matrix">
    <rows>5</rows>
    <cols>1</cols>
    <dt>d</dt>
    <data>
      -1.6359667472587300e-01 -9.1389981562977995e-01
      7.1507755344497846e-03 -2.7210822750768568e-03
      2.6374031579450103e+00</data></distortion_coefficients>
  <image_width>346</image_width>
  <image_height>260</image_height></DAVIS346_00000589>
<use_fisheye_model>0</use_fisheye_model>
<type>camera</type>
<pattern_width>8</pattern_width>
<pattern_height>5</pattern_height>
<pattern_type>chessboard</pattern_type>
<board_width>9</board_width>
<board_height>6</board_height>
<square_size>30.</square_size>
<calibration_error>3.9269118486286703e-01</calibration_error>
<calibration_time>"Sun Sep 26 16:54:06 2021"</calibration_time>
</opencv_storage>

kalibr标定

也可以使用下面方法来进行标定

davis346相机与IMU标定_啊啊虎的博客-CSDN博客

Installation · ethz-asl/kalibr Wiki · GitHub

而cvpr2021最新版也给出了这样的校正GitHub - uzh-rpg/e2calib: CVPRW 2021: How to calibrate your event camera

参考资料

GitHub - uzh-rpg/rpg_dvs_ros: ROS packages for DVShttps://github.com/uzh-rpg/rpg_dvs_rosrpg_dvs_ros/README.md at master · uzh-rpg/rpg_dvs_ros · GitHubhttps://github.com/uzh-rpg/rpg_dvs_ros/blob/master/dvs_calibration/README.md【事件相机标定】_black_buaa的博客-CSDN博客【事件相机标定】标定的原理:参考博客:https://blog.csdn.net/weixin_43843780/article/details/89294131实现方法:https://blog.csdn.net/black_buaa/article/details/109306941

以上是关于ROS学习笔记之——DAVIS346 calibration的主要内容,如果未能解决你的问题,请参考以下文章

ROS实验笔记之——DAVIS346测试

ROS学习笔记之——ESVO复现及DAVIS346测试

ROS学习笔记之——基于dv-gui的多种事件相机标定的方法对比

ROS学习笔记之——基于dv-gui的多种事件相机标定的方法对比

ROS学习笔记之——dvxplorer测试

ROS实验笔记之——基于dv-gui的camera与IMU校正(DAVIS346与DVXplorer)