[x] The implementation follows the project style conventions
[x] All project unit tests are passing
[x] If necessary, documentation has been provided or updated to discuss the changes
[x] System integration tests are performed successfully
[x] Any new dependencies have been added to the requirements list
[x] Any changes that will not be completed or bugs that have been introduced have been added as issues
Changes Made
This PR moves the reachable set computation that was originally performed in the MavSwarm class into the Agent class. This was done to adhere to the separation of concerns principle. Furthermore, to better support the situation in which users are using a local frame for position rather than GPS, the Location class was refactored to be the Position class.
Associated Issues
Closes #105
Fixes # (issue)
Files Changed
pymavswarm/agent.py: Refactored the Location class to be Position and moved the reachable set computation into the class
pymavswarm/handlers/message_receivers.py: Refactored location to position
pymavswarm/state/position.py: Create general position class to handle positions that are not necessarily in the GPS frame
pymavswarm/utils/__init__.py: Moved latitude and longitude conversion methods to the utils package
Testing
Tests conducted include hardware tests, implementing unit tests in the test_agent.py class, and verifying that all linters passed as expected.
Checklist
Changes Made
This PR moves the reachable set computation that was originally performed in the
MavSwarm
class into theAgent
class. This was done to adhere to the separation of concerns principle. Furthermore, to better support the situation in which users are using a local frame for position rather than GPS, theLocation
class was refactored to be thePosition
class.Associated Issues
Fixes # (issue)
Files Changed
pymavswarm/agent.py
: Refactored theLocation
class to bePosition
and moved the reachable set computation into the classpymavswarm/handlers/message_receivers.py
: Refactoredlocation
toposition
pymavswarm/state/position.py
: Create general position class to handle positions that are not necessarily in the GPS framepymavswarm/utils/__init__.py
: Moved latitude and longitude conversion methods to theutils
packageTesting
Tests conducted include hardware tests, implementing unit tests in the
test_agent.py
class, and verifying that all linters passed as expected.Issues Introduced
N/A