Giter VIP home page Giter VIP logo

eva-planner's Introduction

EVA-planner

EVA-planner: an EnVironmental Adaptive Gradient-based Local Planner for Quadrotors.

0. Overview

Author: Lun Quan, Zhiwei Zhang, Xingguang Zhong, Chao Xu and Fei Gao from ZJU FAST Lab.

Related Paper: EVA-Planner: Environmental Adaptive Quadrotor Planning, Lun Quan, Zhiwei Zhang, Chao Xu and Fei Gao accepted by 2021 IEEE International Conference on Robotics and Automation (ICRA).

Video Links: Google, Bilibili(for Mainland China)

1. File Structrue

  • All planning algorithms along with other key modules, such as mapping, are implemented in adaptive_planner
    • path_searching: includes multi-layer planner (A*, low-MPC and high-MPCC).

    • path_env: includes online mapping algorithms for the planning system (grid map and ESDF(Euclidean signed distance filed)).

    • path_manage: High-level modules that schedule and call the mapping and planning algorithms. Interfaces for launching the whole system, as well as the configuration files are contained here

2. Compilation

Requirements: ubuntu 16.04, 18.04 or 20.04 with ros-desktop-full installation

Step 1. Install Armadillo, which is required by uav_simulator.

sudo apt-get install libarmadillo-dev

Step 2. We use NLopt to solve the non-linear optimization problem. Please follow the Installation process in NLopt Documentation.

Step 3. Clone the code from github.

git clone https://github.com/ZJU-FAST-Lab/EVA-planner.git

Step 4. Compile.

cd EVA-planner
catkin_make

3. Run a simple example.

Open rviz:

source devel/setup.bash
roslaunch plan_manage rviz.launch

Then, open another terminal and run code:

source devel/setup.bash
roslaunch plan_manage simulation.launch

Then you can enter G with the keyboard and use the mouse to select a target.

4. Use GPU or not

Packages in this repo, local_sensing have GPU, CPU two different versions. By default, they are in CPU version for better compatibility. By changing

set(ENABLE_CUDA false)

in the CMakeList.txt in local_sensing packages, to

set(ENABLE_CUDA true)

CUDA will be turned-on to generate depth images as a real depth camera does.

Please remember to also change the 'arch' and 'code' flags in the line of

    set(CUDA_NVCC_FLAGS 
      -gencode arch=compute_61,code=sm_61;
    ) 

in CMakeList.txt, if you encounter compiling error due to different Nvidia graphics card you use. You can check the right code here.

Don't forget to re-compile the code!

local_sensing is the simulated sensors. If ENABLE_CUDA true, it mimics the depth measured by stereo cameras and renders a depth image by GPU. If ENABLE_CUDA false, it will publish pointclouds with no ray-casting. Our local mapping module automatically selects whether depth images or pointclouds as its input.

For installation of CUDA, please go to CUDA ToolKit

Acknowledgements

  • The framework of this repository is based on Fast-Planner by Zhou Boyu who achieves impressive proformance on quaorotor local planning.
  • We use NLopt for non-linear optimization.
  • The hardware architecture is based on an open source implemation from Teach-Repeat-Replan.
  • The benchmark compared in our paper is ICRA2020_RG_SDDM.

Licence

The source code is released under GPLv3 license.

Maintaince

For any technical issues, please contact Lun Quan ([email protected]) or Fei GAO ([email protected]).

For commercial inquiries, please contact Fei GAO ([email protected]).

eva-planner's People

Contributors

samuraichamploo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

eva-planner's Issues

The drone is not avoiding the simulator obstacle

Hi, thanks for open-sourcing this repo!

I have one problem when running this repo with its default simulation. The drone is not avoiding the obstacle. There is no local_map published in the /map_generator/local_cloud topic.

image
image
.
.
the data published in the /sdf_map/esdf is shown in the figure below:
image
.
.
this is the output of rqt_graph
image
.
I don't see the map sent to the /adaptive_planner_node here

Fuel, Ego planners compatibility

Hi, is it possible compile the three planners and can use them without smash the the others, would be nice as they are complementary of each other, but when I have active EVA, ROS cannot find the FUEL .launch file of plan_manage in example.
If I put them in the same catkin workspace, what will happen?
I'm scary to try because it was very hard make them work all of them. My knowledge is quite limited.
Thanks by share your work, I wish you the best of the success.

实机部署

实机的话用的东西是不是和ego差不多啊

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.