TARE Exploration Planner
TARE planner involves a hierarchical framework for highly efficient exploration - one level in the framework maintains data densely and computes a detailed path within a local planning horizon, another level maintains data sparsely and computes a coarse path at the global scale. The paths at both levels are joined together to form the exploration path. The framework draws the insight that detailed processing is most effective close to the vehicle, while coarse processing provides sufficient utility far away from the vehicle. The framework trades off details at the global scale for computational speed. In practice, the framework prioritizes the exploration in the surroundings of the vehicle while keeping the global picture in mind. Here is the TARE Planner repository.
TARE planner was used by the CMU-OSU Team in attending DARPA Subterranean Challenge.
TARE hierarchical exploration framework. Inside the local planning horizon, data is densely maintained and a local detailed path (dark-blue) is computed. At the global scale, data is sparsely maintained in the distant subspaces and a global coarse path (light-blue) is computed. The local path and global path are connected on the boundary of the local planning horizon to form the exploration path.
Urban circuit competition result from DARPA Subterranean Challenge in Satsop Nuclear Plant, WA. Our vehicle traveled over 886m in 1458s to explore the site, fully autonomously.
The repository has been tested in Ubuntu 18.04 with ROS Melodic and Ubuntu 20.04 with ROS Noetic. Due to usage of Google OR-Tools library, the code only supports AMD64 architecture and currently does not compile on ARM computers. Follow instructions in Autonomous Exploration Development Environment to setup the development environment. Make sure to checkout the branch that matches the computer setup, compile, and download the simulation environments.
To setup TARE Planner, clone our repository.
git clone https://github.com/caochao39/tare_planner.git
In a terminal, go to the folder and compile.
To run the code, go to the development environment folder in a terminal, source the ROS workspace, and launch.
roslaunch vehicle_simulator system_garage.launch
In another terminal, go to the TARE Planner folder, source the ROS workspace, and launch.
roslaunch tare_planner explore_garage.launch
Now, users should see autonomous exploration in action. To launch with a different environment, use the command lines below instead and replace 'environment' with one of the environment names in the development environment, i.e. 'campus', 'indoor', 'garage', 'tunnel', and 'forest'.
roslaunch vehicle_simulator system_environment.launch
roslaunch tare_planner explore_environment.launch
To run TARE Planner in a Matterport3D environment, follow instructions to setup the development environment to use the Matterport3D environment. Then, use the command lines below to launch the system and TARE Planner.
roslaunch vehicle_simulator system_matterport.launch
roslaunch tare_planner explore_matterport.launch
Users can also set a navigation boundary to constrain the areas to explore. Please follow instructions from the link above to generate a boundary file using CloudCompare. Replace 'src/tare_planner/data/boundary.ply' with the boundary file and set 'use_boundary = true' in 'src/tare_planner/launch/explore_matterport.launch'.
Below are evaluation results using Autonomous Exploration Development Environment in default settings. The vehicle navigates at 2m/s. Each method is run a number of 10 times. The trajectories are the best of the 10 runs and the exploration metrics (explored volume, traveling distance, and algorithm runtime on vertical axis) are the means of the 10 runs with the time on horizontal axis spanning the longest run. A run is ended if the method reports completion, the vehicle almost stops (< 10m of movement within 5 minutes), or the time limit is reached. Here, the time limit is set to twice of TARE Planner or DSV Planner (our alternative method), depending on which one is longer. Note that TARE Planner and DSV Planner send the vehicle home after completion of exploration. The process of returning home is not considered in the evaluation. The algorithm runtime is evaluated based on a 4.1GHz i7 CPU in system time. All algorithms use a single CPU thread for exploration planning. In addition, we provide the best results from human practice as a reference. These results are from many times of practice. In other words, prior knowledge of the environment has been incorporated. The autonomous exploration does not utilize prior knowledge of the environment. The results of TARE Planner, DSV Planner, and best human practice are made available.
NBVP: Bircher et al. Receding Horizon “Next-Best-View” Planner for 3D Exploration. ICRA 2016.
MBP: Dharmadhikari et al. Motion primitives-based path planning for fast and agile exploration using aerial robots. ICRA 2020.
GBP: Dang et al. Graph‐based subterranean exploration path planning using aerial and legged robots. Journal of Field Robotics. 37(8):1363-1388, 2020.
DSVP (our alternative method): Zhu et al. DSVP: Dual-Stage Viewpoint Planner for Rapid Exploration by Dynamic Expansion. IROS 2021.
Indoor Corridors Environment
Multi-storage Garage Environment
Tunnel Network Environment
This is an interesting environment - all exploration methods fall short significantly in comparison to human practice based on a pre-planned path pattern. A question arises as to whether it is worth solving the exploration problem in this type of environments. A naive method may perform even better.
C. Cao, H. Zhu, H. Choset, and J. Zhang. TARE: A Hierarchical Framework for Efficiently Exploring Complex 3D Environments. Robotics: Science and Systems Conference (RSS). Virtual, July 2021. Best Paper Award and Best System Paper Award. [PDF] [Spotlight Talk]
C. Cao, H. Zhu, H. Choset, and J. Zhang. Exploring Large and Complex Environments Fast and Efficiently. IEEE Intl. Conf. on Robotics and Automation (ICRA). Xian, China, May 2021. [PDF] [Talk]
TARE is named after the efforts to develop Technologies for Autonomous Robot Exploration.