Central engineering reference and operations manual for the MRDT Autonomy Software.
View the Project on GitHub MissouriMRDT/Autonomy_Software
Return to RoveSoDocs Guides for Today, Tomorrow, and Forever.
The TagDetectionHandler (src/handlers/TagDetectionHandler.h & TagDetectionHandler.cpp) orchestrates all ArUco marker detection pipelines across active camera feeds.
TagDetector worker threads for assigned cameras (eHeadMainCam, eRearCam).RequestDetectionOverlayFrame()) containing marker bounding boxes, coordinate axes, IDs, and estimated distances for transmission to the Basestation GUI or WebRTC stream.RecordingHandler configured in RecordingType::eTagDetectionHandler mode to save annotated detection feeds to disk.The handler provides access to detectors via the TagDetectors enumeration:
TagDetectors::eHeadMainCam: Primary detector analyzing frames from the forward mast camera.TagDetectors::eRearCam: Secondary detector monitoring the rear camera feed when enabled.TagDetector runs as an independent AutonomyThread<void>.CameraHandler is asynchronous.tagdetectutils::ArucoTag structs with creation timestamps, enabling TagDetectionChecker to evaluate lifetime persistence before triggering state machine transitions.// Initialization in main.cpp
globals::g_pTagDetectionHandler = new TagDetectionHandler();
globals::g_pTagDetectionHandler->StartAllDetectors();
globals::g_pTagDetectionHandler->StartRecording();
// Querying detection overlay for UI streaming:
cv::Mat cvAnnotatedFrame = globals::g_pTagDetectionHandler->RequestDetectionOverlayFrame(
TagDetectionHandler::TagDetectors::eHeadMainCam
);