ROS学习笔记之——ESVO复现及DAVIS346测试
Posted gwpscut
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS学习笔记之——ESVO复现及DAVIS346测试相关的知识,希望对你有一定的参考价值。
之前博客《学习笔记之——Event Camera调研》已经介绍过事件相机。本博文对科大开源的ESVO以及本团队购买的DAVIS346进行测试分析。本博文仅供本人学习记录用,不做任何商业用途~
目录
原理学习
代码运行
事件相机的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仿真笔记之——基于gazebo的event camera仿真(dvs gazebo)