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

gwpscut gwpscut     2023-02-20     353

关键词:

之前博客《ROS实验笔记之——基于kalibr来标定DAVIS346》实现了基于color frame用kalibr矫正camera与imu。但是由于dvxplorer没有image,所以后面又在博客《ROS实验笔记之——基于dv-gui的camera与IMU校正(DAVIS346与DVXplorer)》直接利用dv-gui的模块进行矫正。但是感觉矫正后的bias挺大的,如下图所示

为此,本博文决定试试通过dvs_render来试试。通过dvs_render可以直接获得image,录取ros包后,直接处理,看看过程及效果如下

首先是标定板,采用跟上面一样的标定板吧(为了保证实验的一致性)

其参数为(注意这是实际的参数):

格子数目6*6

大格子边长:2cm
小格子边长:0.6cm
小格子与大格子边长比例:0.3

新建april_6x6_A4_dvs.yaml文件,格式参考上图的yaml,内容展示如下:

target_type: 'aprilgrid' #gridtype
tagCols: 6               #number of apriltags
tagRows: 6               #number of apriltags
tagSize: 0.02           #size of apriltag, edge to edge [m]
tagSpacing: 0.3          #ratio of space between tags to tagSize

录制bag,录制bag 的同时,相机对准标定板,或是固定相机或是固定标定板,晃动另一个,动作不要太大,不要让相机看不清标定板(就争取把标定板晃动到过相机像素平面的每个地方)

注意:需要修改相机帧数。“Good results have been obtained by using a camera rate of 20 Hz and an IMU rate of 200 Hz.”

此处打算把imu改为200,dvs/rendering改为20

#开启相机
roslaunch evio davis_testing.launch
 
rostopic list

#先看看两个topic的频率分别是多少
rostopic hz 话题名字
rostopic hz /dvs_rendering
rostopic hz /dvs/imu

#更改频率
rosrun topic_tools throttle messages /dvs_rendering 20.0 /event_frame
rosrun topic_tools throttle messages /dvs/imu 200.0 /imu
 
#看看是否更改成功 
rostopic hz /event_frame
rostopic hz /imu
 

#录制数据,把/dvs/imu也加入(建议降采样前后的topic都录制了)
roslaunch evio davis_raw_image_recording.launch 

录制完后,接下来就可以开始标定了

然而,在标定camera的时候,发现。根本没有办法检测到corner。。。。。。。

 试试dvxplorer

同样的也无法检测角点。。。。。故此不能用。。。。

既然如此,大概只能用回博客《ROS实验笔记之——基于dv-gui的camera与IMU校正(DAVIS346与DVXplorer)》中的方法,多次标定,尽可能的准确了。。。。。

#先校正camera
source ~/kalibr_workspace/devel/setup.bash
kalibr_calibrate_cameras --target /home/kwanwaipang/catkin_ws_dvs/src/EVIO/sensor_modeling/kalibr_davis_event/april_6x6_A4_dvs.yaml --bag /home/kwanwaipang/dataset/gwphku/kalibr_davis346_image_imu_2021-12-04-14-43-29.bag --models pinhole-radtan --topics /event_frame --show-extraction

kalibr_calibrate_cameras --target /home/kwanwaipang/catkin_ws_dvs/src/EVIO/sensor_modeling/kalibr_davis_event/april_6x6_A4_dvs.yaml --bag /home/kwanwaipang/dataset/gwphku/kalibr_davis346_image_imu_2021-12-04-15-00-57.bag --models pinhole-radtan --topics /event_frame  --show-extraction

#通过这个命令可以查看参数
#The temporal calibration is turned on by default and can be disabled using the --no-time-calibration argument. 
kalibr_calibrate_imu_camera --h

kalibr_calibrate_imu_camera --bag [filename.bag] --cam [camchain.yaml] --imu [imu.yaml] --target [target.yaml]


kalibr_calibrate_imu_camera --bag ***.bag --cam /home/kwanwaipang/catkin_ws_dvs/src/EVIO/config/kalibr_dvs/camchain.yaml --imu /home/kwanwaipang/catkin_ws_dvs/src/EVIO/config/kalibr_dvs/imu.yaml --target /home/kwanwaipang/catkin_ws_dvs/src/EVIO/config/kalibr_dvs/april_6x6_A4_dvs.yaml --show-extraction

请注意需要的模型为:

  • pinhole camera model (pinhole)
    (intrinsics vector: [fu fv pu pv])
  • radial-tangential (radtan)
    (distortion_coeffs: [k1 k2 r1 r2])

两个yaml文件的格式如下:

参考资料

https://github.com/ethz-asl/Kalibrhttps://github.com/ethz-asl/Kalibr

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

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

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

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

kalibr标定imu

步骤:1:如何标定2:标定的结果3:如何验证标定结果的正确性相机IMU标定的准备工作【1】环境配置:需要安装ROS,可根据http://wiki.ros.org/ROS/Installation选择安装版本(我安装的ubuntu版,http://wiki.ros.org/cn/jade/Installation/Ubuntu).ROS安装成功... 查看详情

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

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

ros实验笔记之——基于prometheus的无人机运动规划(代码片段)

...学习无人机的运动规划。关于该项目的配置可以参考《ROS实验笔记之——基于Prometheus自主无人机开源项目的学习与仿真》Demo演示基于2D-LiDAR的APF路径规划基于rgbdcamera的APF路径规划基于3D-LiDAR的Astar路径规划ego-planner对于ego-planner&#... 查看详情

ros实验笔记之---改变“/dvs/events“的发布频率(代码片段)

对于dvxplorer而言,要改变其事件的发布频率很简单,只需要如下设置launch文档即可:<launch><!--cameradriver--><nodename="dvxplorer_ros_driver"pkg="dvxplorer_ros_driver"type="dvxplorer_ros_driver"><paramname="bias_... 查看详情

ros实验笔记之——基于l515激光相机的flvis与mlmapping(代码片段)

之前博客《ROS实验笔记之——VINS-Mono在l515上的实现》在l515上实现了vins,博客《ROS实验笔记之——SLAM无人驾驶初入门》配置flvis并跑了对应的kitti数据集本博文在l515上先实现flvis然后再用mlmapping来建图。camera.launch<launch>&l... 查看详情

kalibr标定双目内外参数以及imu外参数(代码片段)

本文记录使用Kalibr标定双目相机内外参数以及和IMU之间外参数的标定过程.采用的硬件设备为小觅的双目VIO设备(MyntEYE),并且默认你已经有了ROS的知识基础.标定stereo-imu之前,需要知道双目的内外参数,所以先进行双目内外参数的标定... 查看详情

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

Errorwhileprocessing"dvs_trackingflyingroom"·Issue#4·uzh-rpg/rpg_dvs_evo_open·GitHub之前博客《ROS仿真笔记之——基于gazebo的eventcamera仿真(dvsgazebo)》介绍了DVS的gazebo仿真。博客《ROS学习笔记之——ESVO复现及DAVIS346测试》介绍了ESVO以及事件... 查看详情

ros实验笔记之——基于cartographer的多机器人slam地图融合(代码片段)

...图融合 》已经实现了基于gmapping的多机器人地图融合。实验和仿真都验证过了。本博文通过cartographer来实现SLAM,再做mapmerge先看视频效果two启动的文件#!/bin/bashgnome-terminal--tab-e'bash-c"roscore;execbash"'sl 查看详情

ros实验笔记之——基于cartographer方法的slam(代码片段)

之前做的2DLiDAR的实验中,大多采用gmapping,本博文试试采用cartographer。对于cartographer方法,相比起gmapping,其多了IMU以及回环检测。有了回环检测后,可以避免odom的累积误差首先安装依赖包sudoapt-getinstallros-melo... 查看详情

kalibr标定双目内外参数以及imu外参数(代码片段)

本文记录使用Kalibr标定双目相机内外参数以及和IMU之间外参数的标定过程.采用的硬件设备为小觅的双目VIO设备(MyntEYE),并且默认你已经有了ROS的知识基础.标定stereo-imu之前,需要知道双目的内外参数,所以先进行双目内外参数的标定... 查看详情

ros实验笔记之——基于eventcamera的asc*特征(代码片段)

目录原理测试参考资料:原理详细的理论部分就不阐述了,可以参考原文以及这个博客~【事件相机整理】角点检测与跟踪总结_larrydong的博客-CSDN博客测试先进入工程编译源码。注意用ros版本的~运行的节点图如下然... 查看详情

ros实验笔记之——uzh-fpv数据集的验证

UZH-FPV是一个在快速飞行的无人机上采集事件、图像等数据等数据集。该数据集对于基于事件及图像的VIO、VO都具备较大的挑战。要做出有效、鲁棒的视觉里程计算法的同行们,都建议去evaluat一下哈。TheUZHFPVDataset这里给出我... 查看详情

ros实验笔记之——px4仿真

...些基本的仿真学习~之前在做无人机仿真开发时《ROS实验笔记之——基于Prometheus自主无人机开源项目的学习与仿真》,已经安装了px4了~为此不需要 查看详情

ros实验笔记之——基于vscode的ros开发(代码片段)

在VSCODE中添加ROS的插件,可以使得其开发比较简单,但是有时候还是无法显示出一些ROS函数或者变量,修改.vscode文件夹下的c_cpp_properties.json文件如下:"configurations":["browse":"databaseFilename":"","li... 查看详情

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

参考资料Tutorials|iniVation 查看详情

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

之前博客《ROS实验笔记之——DAVIS346测试》已经对davis346相机进行了测试。接下来正式开始gan,先看看如何做calibration官方给的标定在(rpg_dvs_ros/README.mdatmaster·uzh-rpg/rpg_dvs_ros·GitHub)这里面有关于dvs的校正。由于davis有... 查看详情