Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/stationary obstacle avoidance #80

Open
wants to merge 13 commits into
base: develop
Choose a base branch
from

Conversation

cmspencer109
Copy link
Contributor

Complete redesign of the original avoidance algorithm to use the Informed RRT* algorithm.

3 files are included, path_finder.py and helpers.py are the main important files. plotter.py is optional but very handy for visualizing the results.

An example of the usage is in the bottom of path_finder.py. To use it just call path_finder.solve() and pass in data for the boundary, obstacles, and waypoints in the original json format (list of dictionaries). Optional parameters are available for plotting.

Calling solve() takes a complete list of waypoints > 2 and returns an unobstructed route with possibly more waypoints than before (depending on number of obstructions). This function can be used for solving a path between only two waypoints, or a large list of waypoints. It returns a list of tuples in the format of (latitude, longitude, altitude).

The algorithm does not work in full 3 dimensions. It solves a path in 2d space and then adds altitudes later. Altitude for original waypoints is known (from the given json data). Altitude for new points is calculated by taking the percentage of distance the new point is from the starting point and multiplying it by the difference in height between the start and goal points. This results in an even ascent or descent between start and goal points (if the start and goal points are different altitudes, otherwise all points will be a constant height).

image

@cmspencer109 cmspencer109 added enhancement Advancement or augmentation of an already existing feature flight Pertaining to the physical movement of the drone Obstacle Avoidance Task related to the UAS stationary or moving obstacle avoidance labels May 12, 2022
@cmspencer109 cmspencer109 requested a review from cjhr95 May 12, 2022 17:33
@cmspencer109 cmspencer109 self-assigned this May 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Advancement or augmentation of an already existing feature flight Pertaining to the physical movement of the drone Obstacle Avoidance Task related to the UAS stationary or moving obstacle avoidance
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant