Autonomous waypoint navigation has been an integral part of the Ardupilot project for a long time. This approach works well when the multicopter is flying at high altitudes without obstructions. In case of low altitude flights though, it becomes difficult for the drone to navigate autonomously and requires sensors to restrain it from colliding with the obstacles around. This is done by locally dividing the regions around the multicopter into sectors and scaling the attitude proportional to the distance from obstacles. This would sometimes lead to the vehicle to stop and a manual intervention would be required to let it out of the obstruction.
Situations like these could be avoided if a planning algorithm could take advantage of the observations made previously in the form of a 3D map and use it to direct the multicopter in the collision free path maintaining the global plan for waypoint navigation. This could be done by building a framework for mapping which would utilize depth information from stereo cameras or lidars and generate an occupancy map. The planner would use this map and global plan as an input and generate control commands for the multicopter to navigate autonomously.