ros学习笔记之——esvo复现及davis346测试(代码片段)

gwpscut gwpscut     2023-01-03     256

关键词:

之前博客《学习笔记之——Event Camera调研》已经介绍过事件相机。本博文对科大开源的ESVO以及本团队购买的DAVIS346进行测试分析。本博文仅供本人学习记录用,不做任何商业用途~

目录

原理学习

代码运行

事件相机的driver 安装

ESVO代码下载

参考资料


原理学习

代码运行

事件相机的driver 安装

首先先配置event camera的驱动(GitHub - uzh-rpg/rpg_dvs_ros: ROS packages for DVS

该driver是基于cpp库的,即使没有dvs设备,也可以用其来读取数据。

同时该包也提供了双目及内参的校正。

1、安装ROS依赖

sudo apt-get install ros-melodic-camera-info-manager
sudo apt-get install ros-melodic-image-view

2、安装libcaer

sudo apt-get install libcaer-dev

直接运行发现是无法定位的。需要先把包下载下来

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo add-apt-repository ppa:inivation-ppa/inivation-bionic
sudo apt-get update
sudo apt-get install dv-gui

3、安装catkin工具

 sudo apt-get install python-catkin-tools

4、创建工作空间(已经有了就不需要了哈)

cd
mkdir -p catkin_ws_dvs/src
cd catkin_ws_dvs
catkin config --init --mkdirs --extend /opt/ros/melodic --merge-devel --cmake-args -DCMAKE_BUILD_TYPE=Release

5、克隆catkin_simple包

cd ~/catkin_ws_dvs/src
git clone https://github.com/catkin/catkin_simple.git

6、克隆驱动的包

cd ~/catkin_ws_dvs/src
git clone https://github.com/uzh-rpg/rpg_dvs_ros.git

7、编译

catkin build dvs_ros_driver (if you are using the DVS128)
catkin build davis_ros_driver (if you are using the DAVIS)
catkin build dvxplorer_ros_driver (if you are using the DVXplorer)

8、You can test the installation by running a provided launch file. It starts the driver (DVS or DAVIS) and the renderer (an image viewer).

  • 首先运行 catkin build dvs_renderer
  • 然后source一下
    source ~/catkin_ws_dvs/devel/setup.bash

然后运行

roslaunch dvs_renderer dvs_mono.launch (if you are using the DVS128)
roslaunch dvs_renderer davis_mono.launch (if you are using the DAVIS)
roslaunch dvs_renderer dvxplorer_mono.launch (if you are using the DVXplorer) 

插入相机,有:

当采用事件相机的时候,可以可以通过下面调整事件相机参数。

rosrun rqt_reconfigure rqt_reconfigure

选择davis_ros_driver

9、若没有事件相机,也可以查看数据集

首先可以下载这个数据集:rpg.ifi.uzh.ch/datasets/davis/slider_depth.bag

然后运行

roscore
rosbag play -l /home/kwanwaipang/dataset/stereo_event_camera/slider_depth.bag
roslaunch dvs_renderer renderer_mono.launch

视频如下所示

事件相机数据slider

ESVO代码下载

cd ~/catkin_ws_dvs/src 
git clone https://github.com/HKUST-Aerial-Robotics/ESVO.git

cd ~/catkin_ws_dvs/src 
sudo apt-get install python3-vcstool
vcs-import < ESVO/dependencies.yaml

然后安装

sudo apt-get install autoconf

编译yaml-cpp来加载校正包

cd ~/catkin_ws_dvs/src 
git clone https://github.com/jbeder/yaml-cpp.git
cd yaml-cpp
mkdir build && cd build && cmake -DYAML_BUILD_SHARED_LIBS=ON ..
make -j

安装ESVO

catkin build esvo_time_surface esvo_core

然后下载对应的bag包。

首先,注意,要改对应的数据集的launch文件才可以运行对应的数据。

然后运行esvo_time_surface来更新双目的时间地图(stereo time maps)

roslaunch esvo_time_surface stereo_time_surface.launch
roslaunch esvo_time_surface upenn_indoor_flying1.launch

效果如下所示

esvo

然后运行esvo_core,该包是实现mapping与tracking的

 roslaunch esvo_core system_upenn.launch

该launch会运行两个esvo_time_surface节点(分别对应左右两个event camera)

至于mapping与tracking节点则是同时运行的,然后运行数据集

roslaunch esvo_time_surface upenn_indoor_flying1.launch

 效果如下所示

esvo

接下来测试节点esvo_core/mvstereo。这个模块实现了ESVO以及其他的multi-iew stereo pipeline

roslaunch esvo_core mvstereo_upenn.launch
roslaunch esvo_time_surface upenn_indoor_flying1.launch

效果如下所示

esvo

参考资料

https://github.com/HKUST-Aerial-Robotics/ESVO

(项目主页)https://sites.google.com/view/esvo-project-page/home

学习资源(论文汇总)GitHub - uzh-rpg/event-based_vision_resources

一个不错的综述:http://rpg.ifi.uzh.ch/docs/EventVisionSurvey.pdf

数据集:

Semi-Dense 3D Reconstruction with a Stereo Event Camera (ECCV 2018)

Multi Vehicle Stereo Event Camera Dataset

 

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

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

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

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

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

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

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

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

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

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

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学习笔记之——dvxplorer测试(降低噪声以及不同的敏感度下的测试效果)(代码片段)

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

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

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

ros学习笔记之——messagefilters的应用(代码片段)

message_filters用于对齐多种传感信息的时间戳,对齐时间戳有两种方式,一种是时间戳完全对齐:ExactTimePolicy ,另一种是时间戳相近:ApproximateTimePolicymessage_filters作用是:同时订阅并发布话题时间同步... 查看详情

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

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

ros学习笔记之——基于qgc的px4仿真

之前博客《ROS实验笔记之——PX4仿真》已经介绍了PX4编译及QGC的安装,本博文进一步的基于QGC进行仿真控制QGC里有很多的参数控制首先打开虚拟的遥控器是实现遥控控制就可以在QGC用模拟手柄控制无人机(左边的遥感是... 查看详情

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

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

ros实验笔记之——slam无人驾驶初入门(代码片段)

最近想学习一下无人驾驶SLAM方面的内容代码测试这里先基于kitti数据集,进行测试。之前博客中已经介绍过kitti数据集了。本博文就用这个数据集来进行各种经典方法的复现TheKITTIVisionBenchmarkSuitehttp://www.cvlibs.net/datasets/kitti/eva... 查看详情

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调节如下图所示 参考资料 查看详情