[x] The implementation follows the project style conventions
[x] All project unit tests are passing
[x] If relevant, documentation has been provided or updated to discuss the changes made
[x] System integration tests were performed successfully
Changes Made
This PR refactors the original aruco_marker_detector implementation to improve the modularity of the angler_localization package. The resulting architecture can be seen above. Here it is evident that two new base classes were added: Source and Localizer. These base classes have been defined to support the development of future localization sources (e.g., sonar, motion capture, etc.) and new localizers (e.g., SLAM algorithms). In addition to the base classes added, this PR adds the Camera source which proxies the GStreamer video feed received from the BlueROV2 to ROS. By publishing to a ROS topic, the video feed can be used by more than one node. Finally, the original ArUco marker detection implementation was refactored into the ArucoMarkerLocalizer.
Associated Issues
Closes #5
Testing
Minimal testing was done with the implementation. Additional testing needs to be done with the BlueROV2 once the hardware changes have been completed.
Checklist
Changes Made
This PR refactors the original
aruco_marker_detector
implementation to improve the modularity of theangler_localization
package. The resulting architecture can be seen above. Here it is evident that two new base classes were added:Source
andLocalizer
. These base classes have been defined to support the development of future localization sources (e.g., sonar, motion capture, etc.) and new localizers (e.g., SLAM algorithms). In addition to the base classes added, this PR adds theCamera
source which proxies the GStreamer video feed received from the BlueROV2 to ROS. By publishing to a ROS topic, the video feed can be used by more than one node. Finally, the original ArUco marker detection implementation was refactored into theArucoMarkerLocalizer
.Associated Issues
Testing
Minimal testing was done with the implementation. Additional testing needs to be done with the BlueROV2 once the hardware changes have been completed.