Coder Social home page Coder Social logo

aeplanner's Introduction

Autonomous Exploration Planner - aeplanner

aeplanner is an exploration planning package for 3d environments. It subscribes to an OctoMap and will propose waypoints that maximizes the information gain while minimizing the traversed distance. For a more detailed description see our paper.

Use aeplanner? If you are using aeplanner, please cite our paper Efficient Autonomous Exploration Planning of Large-Scale 3-D Environments in IEEE Robotics and Automation Letters, vol. 4, no. 2, pp. 1699-1706, April 2019.

BibTeX:

@ARTICLE{8633925,
    author={M. {Selin} and M. {Tiger} and D. {Duberg} and F. {Heintz} and P. {Jensfelt}},
    journal={IEEE Robotics and Automation Letters},
    title={Efficient Autonomous Exploration Planning of Large-Scale 3-D Environments},
    year={2019},
    volume={4},
    number={2},
    pages={1699-1706},
    keywords={Planning;Sensors;Uncertainty;Drones;Mobile robots;Path planning;Search and rescue robots;motion and path planning;mapping},
    doi={10.1109/LRA.2019.2897343},
    ISSN={2377-3766},
    month={April},}

System Requirements

This repository has been tested with:

Ubuntu 16.04
ROS Kinetic (Desktop full installation)
catkin tools
catkin simple
OctoMap

it might work with other setups, but no guarantees are given.

Assumptions

  1. You are running Ubuntu 16.04
  2. You are using bash, zsh is also possible with some modifications.
  3. You have ros-kinetic-desktop-installed, otherwise follow installation instructions here
  4. You have created a workspace in ~/catkin_ws, without running catkin_make. If in another location these things need to be modified.
  5. You have installed catkin tools

Installation of dependencies

  1. You have installed octomap if not install it by running sudo apt-get install "ros-kinetic-octomap-*" or install from source.

  2. Catkin simple is needed to build the rtree package

cd ~/catkin_ws/src
git clone https://github.com/catkin/catkin_simple.git
  1. PIGain depends on rtree which in turn needs libspatialindex (note this rtree is different from the one above).
pip install rtree
sudo apt-get install libspatialindex-dev

Setup workspace

If you do not already have a workspace, set up a new one.

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
catkin build

Setup aeplanner

Clone this package (make sure that you are in catkin_ws/src)

cd ~/catkin_ws/src/
git clone https://github.com/mseln/aeplanner.git
cd ..
catkin build

Simulation environment

To run the example directly without having to integrate the interface, the kth uav simulation package can be installed, see:

https://github.com/danielduberg/kth_uav

Read the Assumptions and follow the install instructions on that page.

Troubleshooting installation of kth_uav

If you get couldn't find python module jinja2: install jinja2 by running:

sudo apt-get install python-jinja2

If you get No rule to make target '/home/rpl/catkin_ws/src/kth_uav/Firmware/Tools/sitl_gazebo/PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND', needed by 'Groundtruth.pb.cc'. Stop., install libprotobuf by running:

sudo apt-get install protobuf-compiler

If you get ImportError: No module named future install it by running:

pip install future

If you get Could not find a package configuration file provided by "geographic_msgs" with any of the following names: install it by running:

sudo apt-get install ros-kinetic-geographic-msgs

If you get Could NOT find GeographicLib (missing: GeographicLib_LIBRARIES GeographicLib_INCLUDE_DIRS) fix it by installing:

sudo apt-get install libgeographic-dev

If gazebo is complaining about GeographicLib exception: File not readable /usr/share/GeographicLib/geoids/egm96-5.pgm, install geographiclib-tools and run the install script again.

sudo apt-get install geographiclib-tools
sudo ./kth_uav/mavros/mavros/scripts/install_geographiclib_datasets.sh

When running roslaunch simulation simulation.launch if you get Arg xml is <arg default="$(find mavlink_sitl_gazebo)/worlds/empty.world" name="world"/> fix it by changing line 14 and 15 in kth_uav/Firmware/launch/mavros_posix_sitl.launch to

    <arg name="world"/>  
    <arg name="sdf"/>

do the same with line in file 12 and 13 kth_uav/Firmware/launch/posix_sitl.launch.

aeplanner's People

Contributors

danielduberg avatar mseln 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

aeplanner's Issues

no RC and no offborad

Hi,

I found the drone will fly to the roof in the simulation when the WARM no RC and no OFFBOARD occur and then switch to RETURN mode, I change the RTL_* parameter in the controller PX4, but it still flies higher than I set RTL_*.

Best,
Yiyong

Regards

Hej @mseln,
(I just got an update via Daniel Duberg Github activity and wanted to say hi. Feel free to close this issue)

This package is great! Congrats. Hope everything is going well :D

(I'll test tagging @kholdcro @danielduberg)

Kind regards,
Yoshua

Gain calculation different in paper

Hi,

Thank you for the source code of the aeplanner. :) I have a question regarding the gain calculations. In aeplanner.cpp in function gainCubature, you perform three for loops corresponding to the summations given in equation 6 in the paper. But.. with different upper and lower bounds. For instance, in the paper the azimuth angle, theta, ranges from yaw - fov_theta/2 and yaw + fov_theta/2 but in the code, theta ranges from -180 to 180. Similarly, in the paper the polar angle, phi, ranges from -fov_phi/2 to +fov_phi/2 where as in the code phi ranges from 90-fov_p/2 to 90 + fov_p/2. It is unclear to me why you changed these ranges in the implementation, could you please explain why? Is this due to the specifications of the camera such as FOV limits of the camera or due to the position of the camera on the drone?

Thanks a lot in advance. :)

Return to home

Would be great if the drone could return to home or the start position after completing exploration while avoiding the obstacles.

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.