Home

Awesome

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.

<p align="center"> <a href="http://www.youtube.com/watch?feature=player_embedded&v=pgRi8LOnT6Y " target="_blank"><img src="figure/shortIntroduction.png" alt="Fiesta short introduction video" width="720" height="540" /></a> </p>

Installation

Required Library

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.

Meta

hlx1996hlx1996@example.com

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
<!-- Markdown link & img_ dfn's -->