/tmplanner

Terrain monitoring planner

Primary LanguageC++

tmplanner

This repository contains a real-time capable informative motion planning framework for terrain monitoring applications using unmanned aerial vehicles (UAVs). The framework is suitable for monitoring either discrete or continuous target variables.

The planner operates in a finite-horizon fashion, alternating between replanning and plan execution, while taking new sensor data into account. The replanning stage consists of two steps: (1) coarse 3D grid search in the UAV configuration space and (2) optimization of this trajectory for maximized information/exploratory gain using an evolutionary scheme.

This README gives a short overview of the repository contents. For more information, please refer to the wiki.

Author: Marija Popović
Maintainer: Marija Popović, mpopovic@ethz.ch
Affiliation: Autonomous Systems Lab., ETH Zurich


Bibliography

More information about our mapping and planning methods can be found in the following papers. Please cite them if you use our software in a scientific publication.

  • For our discrete variable planner:

Marija Popović, Gregory Hitz, Juan Nieto, Inkyu Sa, Roland Siegwart, and Enric Galceran “Online Informative Path Planning for Active Classification Using UAVs”. In IEEE Int. Conf. on Robotics and Automation (ICRA), Singapore, May 2017.

@inproceedings{popovic2017icra,
  author={Popović, Marija and Hitz, Gregory and Nieto, Juan and Sa, Inkyu and Siegwart, Roland and Galceran, Enric},
  booktitle={Robotics and Autmation (ICRA), 2017 IEEE International Conference on},
  title={Online Informative Path Planning for Active Classification Using UAVs},
  year={2017},
  address={Singapore},
  month={May}
}
  • For our continuous variable planner:

Marija Popović, Teresa Vidal-Calleja, Gregory Hitz, Inkyu Sa, Roland Siegwart, and Juan Nieto “Multiresolution Mapping and Informative Path Planning for UAV-based Terrain Monitoring”. In IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS), Vancouver, September 2017.

@inproceedings{popovic2017iros,
  author={Popović, Marija and Vidal-Calleja, Teresa and Hitz, Gregory and Sa, Inkyu and Siegwart, Roland and Nieto, Juan},
  booktitle={Intelligent Robots and Systems (IROS), 2017 IEEE International Conference on},
  title={Multiresolution Mapping and Informative Path Planning for UAV-based Terrain Monitoring},
  year={2017},
  address={Vancouver},
  month={September}
}

Installation Instructions (Ubuntu)

To install this package with ROS Indigo or ROS Kinetic:

  1. Install additional system dependencies (swap kinetic for indigo as necessary):
sudo apt-get install python-wstool python-catkin-tools ros-kinetic-cmake-modules libyaml-cpp-dev
  1. Set up a catkin workspace (if not already done):
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
catkin config --extend /opt/ros/kinetic
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin config --merge-devel
  1. Install the repository and its dependencies (with rosinstall):
cd src
wstool init
wstool set --git tmplanner git@github.com:ethz-asl/tmplanner.git -y
wstool update
wstool merge tmplanner/install/tmplanner.rosinstall
wstool update -j8
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. Use catkin_build to build the repository:
catkin build

Code Structure

This repository contains three packages: two stand-alone planning frameworks corresponding to discrete (tmplanner_discrete) and continuous (tmplanner_continuous) variable monitoring, in addition to a toolset (tmplanner_tools) of convenience functions and simulation infrastructure used by both frameworks.

Each planning framework includes the following key components (same name under different package names):

  • Node interface for ROS communication - tmplanner_node.cpp
  • Planning unit - tmplanner.cpp
  • Mapping unit - grid_map.cpp

Simulation demos for both packages are provided, as described below.

Simulation Demo Instructions

In this repository, we provide illustrative demos of both discrete (binary) and continuous target variable terrain monitoring in the Gazebo-based RotorS environment. The simulation set-up includes a rotorcraft-type UAV equipped with a downward-facing camera, as per the algorithms' problem formulation.

The following steps outline the terminal commands to run an example for mapping a continuous variable. The same procedure can be applied to map discrete variables, by replacing for the tmplanner_discrete package name in the commands.

  1. Start the simulation environment by running:
$ roslaunch tmplanner_continuous monitoring_example.launch
  1. Start the planner node:
$ roslaunch tmplanner_continuous tmplanner.launch

Note: The appropriate parameters must be loaded in the launch file.

  1. Initialize the planning routine via the rosservice:
$ rosservice call /firefly/start_planning

You should now be able to see the UAV moving in the Gazebo window as the planning routine is executed.

Acknowledgement

This work was funded by the European Community’s Horizon 2020 programme under grant agreement no 644227-Flourish and from the Swiss State Secretariat for Education, Research and Innovation (SERI) under contract number 15.0029.
http://flourish-project.eu

Contact

You can contact the maintainer for any question or remark: