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.
Trajectory analysis, path planning verification, and control-loop diagnostics are supported by dedicated offline playback tooling and runtime logging analytics. This document details how log data is parsed, visualized, and evaluated to assess rover navigation performance.
log_playback.py Visualization SuiteLocated at tools/logging/log_playback.py, this Python analysis script parses the tab-delimited CSV log produced by Quill during an autonomy session (logs/<timestamp>/console_output.csv) and generates animated, synchronized multi-panel plots using matplotlib.
The script uses regular expressions to extract structured metrics from the unstructured and semi-structured Quill log messages:
GPS Data: (<lat> lat, <lon> lon, <alt> alt).Rover Pose: <lat> (lat), <lon> (lon), <alt> (alt), <deg> (degrees), GNSS/VIO FUSED? = <bool>.Axes3D) comparing raw GPS against the visual-inertial fused pose.Incoming Compass Data: <heading>.Incoming Accuracy Data: (2D: <val>, 3D: <val>, Compass: <val>, FIX_TYPE: <fix>).Threads FPS messages.main_process_fpsmain_cam_fpsleft_cam_fpsright_cam_fpsground_cam_fpsmain_detector_fpsleft_detector_fpsright_detector_fpsstate_machine_fpsrovecomm_udp_fpsrovecomm_tcp_fpsDriving at: (<left_power>, <right_power>) and Current State: <state_name>.Navigating, ApproachingMarker, Stuck, etc.).Run the playback script from within the autonomy workspace:
python3 tools/logging/log_playback.py path/to/logs/2026-09-08_15-30-00/console_output.csv
VisualizationHandlerWhile log_playback.py operates offline after a run, real-time spatial trajectories and planned paths are maintained dynamically by the VisualizationHandler:
m_vPathHistory):
DisplayPoint structs containing Easting, Northing, and Altitude relative to the local session origin m_stOriginUTM.m_vPlannedPath):
GeoPlanner::GetPlannedPath()./api/planned_path) to display upcoming A* trajectory splines and search pattern geometries.For standalone benchmarking, algorithm evaluation, and C++ plotting routines, the build environment provides pre-compiled packages for Matplot++ (located in tools/package-builders/matplotplusplus/).
Matplot++ provides a C++ syntax mirroring MATLAB plotting functions, allowing developers to:
.svg or .png) for technical design reports and competition review documentation.