HKUST-Aerial-Robotics / Fiesta

Licence: mit
Fast Incremental Euclidean Distance Fields for Online Motion Planning of Aerial Robots

Projects that are alternatives of or similar to Fiesta

Dynamic robot localization
Point cloud registration pipeline for robot localization and 3D perception
Stars: ✭ 339 (+86.26%)
Mutual labels:  robotics, mapping
Cartographer
Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
Stars: ✭ 5,754 (+3061.54%)
Mutual labels:  robotics, mapping
Kimera Semantics
Real-Time 3D Semantic Reconstruction from 2D data
Stars: ✭ 368 (+102.2%)
Mutual labels:  robotics, mapping
Elevation mapping
Robot-centric elevation mapping for rough terrain navigation
Stars: ✭ 520 (+185.71%)
Mutual labels:  robotics, mapping
Rtabmap
RTAB-Map library and standalone application
Stars: ✭ 1,376 (+656.04%)
Mutual labels:  robotics, mapping
direct lidar odometry
Direct LiDAR Odometry: Fast Localization with Dense Point Clouds
Stars: ✭ 202 (+10.99%)
Mutual labels:  robotics, mapping
Voxblox
A library for flexible voxel-based mapping, mainly focusing on truncated and Euclidean signed distance fields.
Stars: ✭ 623 (+242.31%)
Mutual labels:  robotics, mapping
Iris lama
LaMa - A Localization and Mapping library
Stars: ✭ 217 (+19.23%)
Mutual labels:  robotics, mapping
Evo
Python package for the evaluation of odometry and SLAM
Stars: ✭ 1,373 (+654.4%)
Mutual labels:  robotics, mapping
Joctomap
Java/Android wrapper for Octomap: an octree-based mapping library
Stars: ✭ 11 (-93.96%)
Mutual labels:  robotics, mapping
Kimera Vio
Visual Inertial Odometry with SLAM capabilities and 3D Mesh generation.
Stars: ✭ 741 (+307.14%)
Mutual labels:  robotics, mapping
Awesome Robotic Tooling
Tooling for professional robotic development in C++ and Python with a touch of ROS, autonomous driving and aerospace.
Stars: ✭ 1,876 (+930.77%)
Mutual labels:  robotics, mapping
Door Slam
Distributed, Online, and Outlier Resilient SLAM for Robotic Teams
Stars: ✭ 107 (-41.21%)
Mutual labels:  robotics, mapping
Pythonrobotics
Python sample codes for robotics algorithms.
Stars: ✭ 13,934 (+7556.04%)
Mutual labels:  robotics, mapping
Flame
FLaME: Fast Lightweight Mesh Estimation
Stars: ✭ 164 (-9.89%)
Mutual labels:  robotics
Gym Pybullet Drones
PyBullet Gym environments for single and multi-agent reinforcement learning of quadcopter control
Stars: ✭ 168 (-7.69%)
Mutual labels:  robotics
Rl Baselines3 Zoo
A collection of pre-trained RL agents using Stable Baselines3, training and hyperparameter optimization included.
Stars: ✭ 161 (-11.54%)
Mutual labels:  robotics
Myrobotlab
Open Source Java Framework for Robotics and Creative Machine Control
Stars: ✭ 163 (-10.44%)
Mutual labels:  robotics
Anms Codes
Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution
Stars: ✭ 174 (-4.4%)
Mutual labels:  robotics
Google Maps
Google Maps Web Services API wrapper for .NET
Stars: ✭ 171 (-6.04%)
Mutual labels:  mapping

Fiesta

Incremental ESDF Map for motion planning

Euclidean Signed Distance Field (ESDF) is useful for online motion planning of aerial robots since it can easily query the distance_ and gradient information against obstacles. Fast incrementally built ESDF map is the bottleneck for conducting real-time motion planning. In this paper, we investigate this problem and propose a mapping system called Fiesta to build global ESDF map incrementally. By introducing two independent updating queues for inserting and deleting obstacles separately, and using Indexing Data Structures and Doubly Linked Lists for map maintenance, our algorithm updates as few as possible nodes using a BFS framework. Our ESDF map has high computational performance and produces near-optimal results. We show our method outperforms other up-to-date methods in term of performance and accuracy by both theory and experiments. We integrate Fiesta into a completed quadrotor system and validate it by both simulation and onboard experiments. We release our method as open-source software for the community.

The paper of this method is submitted to the 2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2019). The draft is shown on arxiv here.

Fiesta short introduction video

Installation

Required Library

  • Eigen3
  • PCL 1.7
  • OpenCV
  • ROS

Note: C++ 17 is required to run FIESTA. Please install and configure C++ 17.

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-7 g++-7

use the following command to check your gcc compilers

$ ls -lh /usr/bin/g++*

for ubuntu 14.04:

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

for ubuntu 16.04:

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5

then

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7

use the folling command to change the default compiler (choose 0 as default)

$ sudo update-alternatives --config gcc

check your current gcc compiler

$ gcc --version

Download & Compile

cd ~/catkin_ws/src
git clone https://github.com/hlx1996/Fiesta.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash

Usage example

roslaunch fiesta cow_and_lady.launch
rosbag play data.bag

Cow and lady data set can be downloaded here. A rviz will be opened with the visualization of occupancy grid map and a slice of esdf map.

_For more examples, usage and FAQ, please refer to the Wiki.

Release History

Prediction: 1.0.0 will be our first elegant version.

  • 0.6.0
    • CHANGE: Refactor code according Google C++ Code Style
  • 0.5.3
    • CHANGE: Improve the performance of the depth conversion process
  • 0.5.2
    • ADD: Support local map
    • ADD: Support raw depth image as input, and depth filter of consistency
  • 0.5.1
    • CHANGE: Improve performance of raycasting a lot
  • 0.5.0
    • ADD: Give Local / global update / visualization options
    • ADD: Show Performance visualization directly on rviz
    • CHANGE: Deprecate older visualization, will be deleted in next release
  • 0.4.1
    • CHANGE: Give better Visualization based on a slice of ESDF and pointcloud of obstacles
  • 0.4.0
    • ADD: Support LIDAR Input
    • ADD: Support Deterministic Occupancy Grid Map
  • 0.3.2
    • ADD: Implement Multi-thread Raycasting for array implementation
  • 0.3.1
    • ADD: Implement Hash table with blocks
  • 0.3.0
    • ADD: Implement Hash table
  • 0.2.0
    • ADD: Support Raycasting from point cloud_
    • ADD: Support Probabilistic Occupancy Grid Map Fusion
    • CHANGE: Patch code for limited observations
  • 0.1.0
    • The first proper release, support ESDF for fully dynamic case and implemented in array
  • 0.0.1
    • Support ESDF for insert-only case

Meta

hlx1996[email protected]

Distributed under the MIT license. See LICENSE for more information.

Contributing

  1. Fork it (https://github.com/hlx1996/Fiesta/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request
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].