Air-FAR Planner

Air-FAR is a robust framework for 3D path planning that leverages a visibility graph updated dynamically for real-time replanning (<20ms for 500m trajectory). This planner represents the environment using 3D polyhedrons and employs a novel heuristic, multi-layer visibility graph construction algorithm to sidestep dimensional catastrophes. Its path planning guarantees asymptotic optimality through a combination of divide-and-conquer based path pruning and heuristic random sampling techniques. The planner is capable of handling both known and unknown environments. In a known environment, paths are planned based on a prior map. In an unknown environment, multiple paths are attempted to guide the vehicle to goal based on the environment observed during the navigation. 

Although full technical details will be disclosed in an upcoming paper, we have made the project available on GitHub: https://github.com/Bottle101/Air-FAR. Please refer to our instructions to get started!

3 Minutes Quick Start

The repository has been tested in Ubuntu 20.04 with ROS NoeticPlease make sure you have setup the Aerial Development Environment.

Step 1: Clone the repository and compile.

git clone https://github.com/Bottle101/Air-FAR.git

cd Air-FAR

catkin_make

Step 2: Launch the simulator. Go to the development environment folder in a terminal, source the ROS workspace, and launch.

source ./devel/setup.bash  

roslaunch vehicle_simulator system_unity.launch  

Step 3: Launch the Air-FAR planner. Go to the Air-FAR Planner folder, source the ROS workspace, and launch.

source ./devel/setup.bash  

roslaunch airfar_planner airfar.launch

Now, users can send a goal by 3 step: 1. click the 'Goalpoint3D' button in RVIZ; 2. click a point in the map, hold the left mouse button and scroll the mouse wheel to adjust the altitude;  3. release the mouse. The vehicle will navigate to the goal and build a visibility graph along the way. Areas covered by the visibility graph become free space. When navigating in free space, the planner uses the built visibility graph, and when navigating in unknown space, the planner attempts to discover a way to the goal. By pressing the 'Reset Visibility Graph' button, the planner will reinitialize the visibility graph. 

Change Configuration

The default configuration works well in most cases, if you are using outdoor environments and the planner runs too slow to fir your runtime requirement for your task, please use our configuration for large-scale complex outdoor environments. In /airfar_planner/launch/airfar.launch, change the Line 7 :    

<arg name="config_file" default="outdoor"/>

People

Botao  He
University of Maryland

Guofei Chen
CMU Robotics Institute

Cornelia Fermuller

University of Maryland

Yiannis Aloimonos

University of Maryland

Ji Zhang
CMU NREC & Robotics Institute