This code uses OMPL, The Open Motion Planning Library, for optimal (shortest path) planning in the space with collision avoidance
The Optimal Planning Tutorial performs checks for collision with one circular obstacle which is embedded directly in the function that calculates clearance. The code in this repository enables setting up multiple circular obstacles in the planning space through a dedicated function. Validity of the states is determined from results of collision checks with all of them.
The optimal path is shown in cyan. The red and black dots represent the start and goal points, respectively.