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

Integrate real-time safety verification #95

Merged
merged 33 commits into from
Aug 4, 2022

Conversation

evan-palmer
Copy link
Contributor

@evan-palmer evan-palmer commented Jul 24, 2022

Checklist

  • I have performed a thorough review of my code
  • I have sufficiently commented my code
  • The implementation follows the project style conventions
  • All project unit tests are passing
  • If necessary, documentation has been provided or updated to discuss the changes
  • System integration tests are performed successfully
  • Any new dependencies have been added to the requirements list
  • Any changes that will not be completed or bugs that have been introduced have been added as issues

Changes Made

This PR implements real-time safety verification (collision prevention) using reachability analysis. The result of this is that users can execute multi-agent missions with safety verification enabled.

Associated Issues

Files Changes

  • pymavswarm/mavswarm.py: Implemented user-facing methods that can be used to enable/disable collision avoidance. Additionally, added support for collision responses.
  • pymavswarm/safety/interval.py: Implemented a hyperrectangle interval for safety usage
  • pymavswarm/safety/hyperrectangle.py: Implemented a reachable state polytope and helper methods to enable reachable state computation
  • pymavswarm/safety/safety_checker.py: Implemented an interface for computing the reachable state of agents
  • examples/collision_prevention_no_flight.py: Implemented an example that demonstrates multi-agent collision avoidance without flying agents into each other
  • examples/collision_prevention.py: Implemented an example that demonstrates multi-agent collision avoidance during flight
  • pymavswarm/state/*: Removed default values for constructors
  • pymavswarm/agent.py: Updated agent to provide default values to state

Testing

Two testing approaches have been integrated to verify the correctness of the collision avoidance system:

  1. Implemented unit tests that verify that the system properly detects collisions and computes the correct reachable state
  2. Deployed the collision avoidance system in a field test to evaluate the ability of the system to handle collisions

Issues Introduced

N/A

@evan-palmer evan-palmer self-assigned this Jul 24, 2022
@evan-palmer evan-palmer marked this pull request as ready for review August 3, 2022 05:47
@evan-palmer evan-palmer merged commit 88dd79b into main Aug 4, 2022
@evan-palmer evan-palmer deleted the feature_safety_verification branch August 4, 2022 03:52
@evan-palmer evan-palmer mentioned this pull request Aug 18, 2022
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEATURE]: Implement real-time position-based safety verification for missions
1 participant