All Projects → robin-shaun → event-slam-accumulator-settings

robin-shaun / event-slam-accumulator-settings

Licence: other
Research on Event Accumulator Settings for Event-Based SLAM

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects
shell
77523 projects
c
50402 projects - #5 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to event-slam-accumulator-settings

bench ws
A catkin workspace to compare against different state-estimation algorithms namely VINS-Mono, VINS-Fusion, ORBSLAM3, Stereo-MSCKF, etc.
Stars: ✭ 15 (-6.25%)
Mutual labels:  slam, vio
TinyGrapeKit
A bunch of state estimation algorithms
Stars: ✭ 184 (+1050%)
Mutual labels:  slam, vio
SJS DROPS
Script using requests module to register accounts to Slam Jam Socialism raffles.
Stars: ✭ 21 (+31.25%)
Mutual labels:  slam
G2LTex
Code for CVPR 2018 paper --- Texture Mapping for 3D Reconstruction with RGB-D Sensor
Stars: ✭ 104 (+550%)
Mutual labels:  slam
2019-UGRP-DPoom
2019 DGIST DPoom project under UGRP : SBC and RGB-D camera based full autonomous driving system for mobile robot with indoor SLAM
Stars: ✭ 35 (+118.75%)
Mutual labels:  slam
M2DGR
M2DGR: a Multi-modal and Multi-scenario Dataset for Ground Robots
Stars: ✭ 238 (+1387.5%)
Mutual labels:  slam
Rotation Coordinate Descent
(CVPR 2020 Oral) A fast global rotation averaging algorithm.
Stars: ✭ 44 (+175%)
Mutual labels:  slam
pybot
Research tools for autonomous systems in Python
Stars: ✭ 60 (+275%)
Mutual labels:  slam
Slam-Dunk-Android
Android implementation of "Fusion of inertial and visual measurements for rgb-d slam on mobile devices"
Stars: ✭ 25 (+56.25%)
Mutual labels:  slam
direct lidar odometry
Direct LiDAR Odometry: Fast Localization with Dense Point Clouds
Stars: ✭ 202 (+1162.5%)
Mutual labels:  slam
SLAM AND PATH PLANNING ALGORITHMS
This repository contains the solutions to all the exercises for the MOOC about SLAM and PATH-PLANNING algorithms given by professor Claus Brenner at Leibniz University. This repository also contains my personal notes, most of them in PDF format, and many vector graphics created by myself to illustrate the theoretical concepts. Hope you enjoy it! :)
Stars: ✭ 107 (+568.75%)
Mutual labels:  slam
OPVO
Sample code of BMVC 2017 paper: "Visual Odometry with Drift-Free Rotation Estimation Using Indoor Scene Regularities"
Stars: ✭ 40 (+150%)
Mutual labels:  slam
slam-python
SLAM - Simultaneous localization and mapping using OpenCV and NumPy.
Stars: ✭ 80 (+400%)
Mutual labels:  slam
EventEMin
Event-based Vision Motion Estimation
Stars: ✭ 25 (+56.25%)
Mutual labels:  event-camera
vslam research
this repo is for visual slam research
Stars: ✭ 22 (+37.5%)
Mutual labels:  slam
gmmloc
Implementation for IROS2020: "GMMLoc: Structure Consistent Visual Localization with Gaussian Mixture Model"
Stars: ✭ 91 (+468.75%)
Mutual labels:  slam
Dynamic ORB SLAM2
Visual SLAM system that can identify and exclude dynamic objects.
Stars: ✭ 89 (+456.25%)
Mutual labels:  slam
VINS-Mono
VINS-Mono中文注释
Stars: ✭ 149 (+831.25%)
Mutual labels:  slam
SALSA-Semantic-Assisted-SLAM
SALSA: Semantic Assisted Life-Long SLAM for Indoor Environments (16-833 SLAM Project at CMU)
Stars: ✭ 52 (+225%)
Mutual labels:  slam
awesome-lidar
😎 Awesome LIDAR list. The list includes LIDAR manufacturers, datasets, point cloud-processing algorithms, point cloud frameworks and simulators.
Stars: ✭ 217 (+1256.25%)
Mutual labels:  slam

Research on Event Accumulator Settings for Event-Based SLAM

This is the source code for paper "Research on Event Accumulator Settings for Event-Based SLAM". For more details please refer to https://arxiv.org/abs/2112.00427

1. Prerequisites

See dv_ros and VINS-Fusion

2. Build

cd ~/catkin_ws/src
git clone https://github.com/robin-shaun/event-slam-accumulator-settings.git
cd ../
catkin_make # or catkin build
source ~/catkin_ws/devel/setup.bash

3. Demo

We evaluate the proposed method quantitatively on the Event Camera Dataset. This demo takes the dynamic_6dof sequence as example.

First, start dv_ros. Notice that the event accumulator depends on the timestamp, so when you restart the dataset or davis driver, you should restart dv_ros.

roslaunch dv_ros davis240.launch

And then, start VINS-Fusion

roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/davis/rpg_240_mono_imu_config.yaml

Finally, play the rosbag

cd ~/catkin_ws/src/event-slam-accumulator-settings/dataset
rosbag play dynamic_6dof.bag

Notice that the default frequency of VINS-Fusion is the same as the event frame frequency, 30 Hz. If your CPU is not strong enough, maybe you should decrease it to 15 Hz in this file by uncommenting the code. However, this will decrease the performance as well.

        // if(inputImageCnt % 2 == 0)
        // {
            mBuf.lock();
            featureBuf.push(make_pair(t, featureFrame));
            mBuf.unlock();
        // }

4. Run with your devices

We have tested the code with DAVIS240 and DAVIS346. If you want to run with your devices, you should use rpg_dvs_ros. The most important thing to do is calibrating the event camera and imu. We advise to use Kalibr with traditional image from APS and IMU, because the intrinsics and extrinsics are almost the same for APS and DVS.

If you want to compare the event-based VINS Fusion with traditional VINS Fusion with DAVIS346, you should use this code. Because the frame from APS of DAVIS346 sometimes changes the size, we do some modification for VINS-Fusion.

5. Run with ORBSLAM3 for Stereo Visual SLAM

Event frame based stereo visual SLAM is not introduced in the paper. We use ORBSLAM3 to process the event frames from dv_ros. The dataset is stereo DAVIS dataset.The result shows that the proposed method performs better than ESVO by computing absolute trajectory error (RMS, unit: cm), using Python package for the evaluation of odometry and SLAM.

Sequence Proposed ESVO
monitor 1.49 3.3
bin 2.66 2.8
box 3.51 5.8
desk 3.14 3.2

Event window size: 15000, Event contribution: 0.33

monitor

bin

box

desk

First compile ORBSLAM3 with ROS according to this. And then you can use this script to run ORBSLAM3, which subscribes event frames and publish estimated poses (We modify ORBSLAM3 a little to publish estimated poses).

6. Evalute results

We modify rpg_trajectory_evaluation to print mean position error and mean yaw error in the terminal. You can evalute results showed in the paper by

python analyze_trajectory_single.py ../results/boxes_6dof

7. Acknowledgements

Thanks for dv_ros and all the open source projects we use.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].