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 Noetic. Please 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
University of Maryland
University of Maryland
Ji Zhang
CMU NREC & Robotics Institute
References
B. He, G. Chen, C. Fermuller, Y. Aloimonos and J. Zhang. Air-FAR: Fast and Adaptable Routing for Aerial Navigation in Large-scale Complex Unknown Environments. arXiv preprint arXiv:2409.11188 (2024). [PDF]