ros学习笔记之——davis346calibration(代码片段)

gwpscut gwpscut     2023-01-06     233

关键词:

之前博客《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学习笔记之——esvo复现及davis346测试(代码片段)

之前博客《学习笔记之——EventCamera调研》已经介绍过事件相机。本博文对科大开源的ESVO以及本团队购买的DAVIS346进行测试分析。本博文仅供本人学习记录用,不做任何商业用途~目录原理学习代码运行事件相机的driver安... 查看详情

ros实验笔记之——基于kalibr来标定davis346(代码片段)

之前博客《ROS学习笔记之——DAVIS346calibration》已经实现了用dv-gui(Calibration[Tutorial]·DV)来标定eventcamera了。但是缺少了跟IMU的外参标定等等。本博文利用Kalibr库来对其进行标定。Kalibr安装先创建一个工作空间mkdir-p~/kalibr_... 查看详情

ros学习笔记之——dvxplorer测试

继之前《ROS实验笔记之——DAVIS346测试》测试了DAVIS346后,最近团队又购买了dvxplorer。长相上跟davis346差不多。但是实际上对于噪声的敏感程度完全不是一个等级首先需要调镜头。如下图所示。中间为光圈,需要调到最大... 查看详情

ros实验笔记之——基于dv-gui的camera与imu校正(davis346与dvxplorer)

参考资料Tutorials|iniVation 查看详情

ros学习笔记之——基于dv-gui的多种事件相机标定的方法对比(代码片段)

之前博客《ROS学习笔记之——DAVIS346calibration》与《ROS实验笔记之——基于dv-gui的camera与IMU校正(DAVIS346与DVXplorer)》已经试过对事件相机的内参进行校正但是由于ETH组出了名的以造假、故意做出其他学者用不好的算法来... 查看详情

ros实验笔记之——evo(代码片段)

...eventcamera仿真(dvsgazebo)》介绍了DVS的gazebo仿真。博客《ROS学习笔记之——ESVO复现及DAVIS346测试》介绍了ESVO以及事件相 查看详情

ros学习笔记之——dvxplorer测试(降低噪声以及不同的敏感度下的测试效果)(代码片段)

davis346与dvxplorer的对比davis346+dvxplorer先编译dvxplorer_ros_drivercatkinbuilddvxplorer_ros_driver然后运行看看roslaunchdvs_rendererdvxplorer_mono.launch没问题,然后修改该launch文件<launch><!--cameradriver--><nodename="dvxplorer_ros_driver"... 查看详情

ros实验笔记之——eventcamera产生ts与em(代码片段)

...相机整理角点检测与跟踪总结|码农家园ESVO之前博客《ROS学习笔记之——ESVO复现及DAVIS346测试》已经介绍过ESVO了安装1.driver的安装,之前已经安装过了,所以这里跳过2.依赖安装(也装过了~)而单纯是包esvo_time_surface应该就可以 查看详情

ros仿真笔记之——基于gazebo的eventcamera仿真(dvsgazebo)(代码片段)

首先安装DVS的驱动包,之前博客《ROS学习笔记之——ESVO复现及DAVIS346测试》已经配置过了~然后clone工程,随便放到一个文件下gitclonehttps://github.com/HBPNeurorobotics/gazebo_dvs_plugin.git然后编译,即可将dvs模型安装到系统... 查看详情

ros实验笔记之——基于dv-gui多次标定event与imu的实验记录

之前博客《ROS实验笔记之——基于dv-gui的camera与IMU校正(DAVIS346与DVXplorer)》已经实现了event与imu的标定,但是几次标定下来发现误差还挺大的。。。。本来打算用dvsrender获取图像,然后用原始版本的kalibr来标定&#x... 查看详情

ros实验笔记之——基于kalibr标定event与imu(代码片段)

之前博客《ROS实验笔记之——基于kalibr来标定DAVIS346》实现了基于colorframe用kalibr矫正camera与imu。但是由于dvxplorer没有image,所以后面又在博客《ROS实验笔记之——基于dv-gui的camera与IMU校正(DAVIS346与DVXplorer)》直接利... 查看详情

ros实验笔记之——基于allan_variance_ros标定imu(代码片段)

之前标定IMU都是采用imu_utils的,但是今天发现,在kalibr里面作者推荐用的是allan_variance_ros本博文就试试用此算法的标定结果,同时也可以跟之前imu_utils标定的结果对比一下~下载文件后,编译catkinbuildallan_variance_rosR... 查看详情

ros实验笔记之——px4仿真

 之前博文《ROS学习笔记之——PX4开发初入门》《ROS学习笔记之——PX4生态系统》已经对PX4做了一些基本的学习,并且在mac上搭建了px4开发环境。本博文在ubuntu下对PX4进行一些基本的仿真学习~之前在做无人机仿真开发时... 查看详情

ros学习笔记之——remark

此博文用于本人备忘一些资料~Real-TimePanoramicTrackingforEventCamerashttps://github.com/VLOGroup/dvs-panotrackinghttps://github.com/VLOGroup/dvs-reconstructionCeresSolver一文助你Ceres入门——CeresSolver新手向全攻略_福尔摩睿的工作站-CSDN 查看详情

ros学习笔记之——px4位置环pid控制

之前博客《ROS学习笔记之——基于QGC的PX4在线仿真调PID》已经学习了如何在仿真环境下,调节PID位置环与姿态环。本博文细细的看一下PX4位置环PID调节如下图所示 参考资料 查看详情

ros学习笔记之——px4生态系统

之前博客已经初步学习了PX4《ROS学习笔记之——PX4开发初入门》,本博文进一步的学习PX4的相关知识,部分资料来源于购买的阿木实验室的课程《PX4智能无人机二次开发》与《Prometheus自主无人机二次开发课程》目录 PX4... 查看详情

ros学习笔记之——3dmapmerge(代码片段)

之前博客《ROS实验笔记之——基于cartographer的多机器人SLAM地图融合》已经实现了2Dmapmerge,也做了大量这方面的demotwo基于两个turtlebot2的多机器人SLAM地图融合本博文看看3dmapmerge方面的资料首先呢有CCM-SLAM(https://github.com/VI... 查看详情

ros进二阶学习笔记(10)--rospy.publisher()之queue_size

ROS进二阶学习笔记(10)--rospy.Publisher()之queue_sizeref link===============queue_size:publish()behaviorandqueuingpublish()inrospyissyn 查看详情