GithubHelp home page GithubHelp logo

xiaojake / x_evaluate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jpl-x/x_evaluate

0.0 0.0 0.0 599 KB

基于事件相机的视觉里程计Evaluation for x state estimation with event-based frontend

Shell 29.19% C++ 3.15% Python 67.35% CMake 0.30%

x_evaluate's Introduction

Exploring Event Camera-based Odometry for Planetary Robots

EKLT-VIO

This repository contains code that implements the event-based VIO algorithm described in Mahlknecht et al. RAL'22. The paper can be found here, and datasets can be found here. If you use this code in an academic context, please cite the following work:

Florian Mahlknecht, Daniel Gehrig, Jeremy Nash, Friedrich M. Rockenbauer, Benjamin Morrell, Jeff Delaune, Davide Scaramuzza, "Exploring Event Camera-based Odometry for Planetary Robots", IEEE Robotics and Automation Letters (RA-L), 2022

@article{Mahlknecht22RAL,
  title={Exploring Event Camera-based Odometry for Planetary Robots},
  author={Mahlknecht, Florian and Gehrig, Daniel and Nash, Jeremy and Rockenbauer, Friedrich M. and Morrell, Benjamin and Delaune, Jeff and Scaramuzza, Davide},
  journal={IEEE Robotics and Automation Letters (RA-L)},
  year={2022}
}

x_evaluate

Performance evaluation for (range-) visual-inertial odometry xVIO framework.

Provides an extensive toolset to evaluate frontend and backend accuracy (i.e. pose and feature tracking) as well as computational efficiency, such as realtime factor, CPU and memory usage.

Dependencies

The library has been tested only on Ubuntu 20.04 with Ros Noetic. Although no roscore is needed, feature tracking evaluation requires Python3 rosbag reader, therefore lifting the requirements to Ros Noetic.

Beyond ROS, the major dependencies are the X library and gflags_catkin (see dependencies.yaml). Typical installation commands might be:

cd YOUR_ROS_WORKSPACE/
source devel/setup.zsh  # or .bash if you use BASH
cd src
git clone ... x_evaluate
vcs-import < x_evaluate/dependencies.yaml
catkin build x_evaluate  # DO NOT BUILD all packages, as the rpg_ros_driver might fail, but it's not needed

For the python package it is recommended to create a virtual environment and install the requirements with pip:

conda create -n x python=3.8
conda activate x
pip install -r requirements.txt
pip install . # Optionally install the x_evaluate in the python dist-packages

Basic architecture

The library consists of one C++ file which directly calls X library callbacks such as processIMU() from the data read from a rosbag. In this way a runtime-independent evaluation can be performed. Results are then dumped to CSV files and analyzed in Python, with the main module x_evaluate.

The python evaluation runs additionally dump all the main results to a pickle file, such that different runs can be easily compared and reproduced.

Usage

An evaluation run is performed by evaluate.py. A configuration file e.g. evaluate.yaml defines which datasets are processed and based on which base parameter files, e.g. params_rpg_davis.yaml. Parameters can be overwritten for a
single sequence or for all sequences on the respective entry in evaluate.yaml. Additionally, by passing --overrides some_param=17 some_other_param=False out-rules all other settings for the purpose of parameter tuning runs.

A simple example run:

python test/evaluate.py --configuration test/evaluate.yaml --output_folder /path/to/_out/ \
--dataset_dir /path/to_datasets --frontend XVIO --name "XVIO"

And a comparison run:

python scripts/compare.py --input_folder /path/to --sub_folders _out:_out_2 ----output_folder /path/to/results

x_evaluate's People

Contributors

florian-world avatar jeff-delaune avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.