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

Posted gwpscut

tags:

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

之前博客《学习笔记之——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学习笔记之——ESVO复现及DAVIS346测试的主要内容,如果未能解决你的问题,请参考以下文章

ROS实验笔记之——EVO

ROS实验笔记之——event camera产生TS与EM

ROS仿真笔记之——基于gazebo的event camera仿真(dvs gazebo)

ROS学习笔记之——DAVIS346 calibration

ROS实验笔记之——基于kalibr来标定DAVIS346

ROS学习笔记之——dvxplorer测试