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 src/util/vision/ directory contains specialized mathematical, image-processing, and neural-network helper utilities supporting the computer vision subsystems.
YOLOModel.hppThis utility encapsulates the LibTorch C++ API, providing high-level loading, tensor conversion, and inference execution for YOLO models (.pt TorchScript).
HardwareDevices::eCUDA) and host CPU execution (HardwareDevices::eCPU).cv::Mat) to normalized floating-point PyTorch tensors with shape $[1, 3, H, W]$, handling color space transformation (BGR to RGB) and memory alignment.yolomodel::Detection objects containing class indices, confidence scores, and cv::Rect bounding boxes.cv::dnn::NMSBoxes to eliminate redundant bounding boxes based on IoU overlap.BoundingBoxTracking.h & BoundingBoxTracking.cppNeural network inference on high-resolution frames requires significant GPU cycles. To maintain high tracking rates while keeping compute loads manageable, the system employs OpenCV Multi-Object Tracking.
constants::BBOX_TRACKER_LOST_TIMEOUT.constants::BBOX_TRACKER_MAX_TRACK_TIME, forcing a neural network re-evaluation.BBOX_TRACKER_IOU_MATCH_THRESHOLD).Geolocate.hppProvides the geoloc::GeolocateBox() function, which bridges the 2D optical frame and the 3D UTM global frame:
CV_32FC4 point cloud.geoops::Waypoint.TagDetectionUtilty.hpp & ObjectDetectionUtility.hppTagDetectionUtilty.hpp:
EstimatePoseFromCameraFrame(), which computes straight-line distance and optical yaw angle from tag pixel dimensions, camera resolution, and horizontal field of view.ObjectDetectionUtility.hpp:
ImageOperations.hpp & FetchContainers.hppImageOperations.hpp:
cv::cuda::GpuMat).FetchContainers.hpp:
containers::FrameFetchContainer<T>) pairing image matrices with std::promise<bool> and std::future<bool>.