Michael Farrell and Dr. Tim McLain, Mechanical Engineering Department
Unmanned aerial vehicles (UAV) are becoming increasingly prevalent in society today. One of the most important problems for such vehicles is obstacle avoidance. Common applications for small UAV require them to navigate through an environment containing many obstacles, both static and dynamic. As part of the 2017 SUAS-AUVSI undergraduate competition, this common problem was simulated with several virtual stationary and moving objects that were to be avoided during flight. The purpose of this research project was to develop a robust obstacle avoidance algorithm to be demonstrated during the mission demonstration of the 2017 SUAS-AUVSI competition.
In order to avoid known static obstacles, a path planner and path manager were developed. The path planner creates a path through all desired waypoints while avoiding known obstacles. The path manager breaks down this planned path to give lower-level, real time path commands to the UAV. Both the path planner and path manager were built around a special type of paths known as Dubins paths. A Dubins path is an optimal sequence of lines and arcs to get from one position and heading to another. Dubins paths were chosen due to a UAV’s ability to precisely follow them and their accuracy in achieving waypoints.
The path planner implements a custom rapidly-exploring random tree (RRT) algorithm to plan a path around obstacles. Before launching the UAV, the desired waypoints are inputted to the algorithm. A Dubins path is then calculated between each waypoint and checked for collisions with known obstacles. Whenever a collision is detected, the RRT algorithm is used to find additional waypoints that maneuver the UAV around the obstacle.
The RRT algorithm randomly selects new waypoints and calculates Dubins paths to each of these waypoints. Each Dubins path is tested for collisions and saved if no collisions are detected. Once ten valid paths are found connecting the waypoints, the shortest path is calculated and sent to the UAV. Extensive testing of these algorithms occurred first in MATLAB and later in the ROS/Gazebo simulation environment.
The custom path planner and manager were first proven in MATLAB and Gazebo simulations. In simulation, the UAV successfully avoided all stationary obstacles while achieving all desired waypoints.
After being proven in simulation we implemented the algorithm into ROSplane, the autopilot system to be flown by the SUAS-AUVSI team. At the competition, the locations of 3 stationary obstacles were given before take-off. The developed path planner successfully found a path which avoided all 3 obstacles and achieved all necessary waypoints.
Though the RRT algorithm successfully planned paths to avoid stationary obstacles, many additional features could be added to improve obstacle avoidance. Some of these ideas are presented here:
- Plan straight line or filleted paths, instead of Dubins paths, to improve waypoint accuracy. To account for straight line path transitions, obstacles could be inflated significantly.
- Flight boundaries could be handled dynamically instead of as stationary obstacles. Though the developed algorithm planned paths to avoid flight boundaries, the UAV flew out of bounds during competition due to path following error. One solution to this problem is a dynamic vector field approach that steers the UAV away from boundaries.
- Functionality could be added to the algorithm to avoid dynamic obstacles.
The algorithm developed as a result of this project successfully plans a set of Dubins paths to avoid static obstacles while achieving desired waypoints. The algorithm was demonstrated at the 2017 SUAS-AUVSI competition. Future work can be done to improve stationary obstacle avoidance and to avoid dynamic obstacles.