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 MultimediaBoard driver (src/drivers/MultimediaBoard.h & MultimediaBoard.cpp) manages the rover’s visual signaling hardware, controlling high-intensity LED light strips and indicators to communicate operational status to judges and operators.
manifest::Autonomy::TELEMETRY["STATEDISPLAY"]) and a hardware microcontroller command packet (manifest::Core::COMMANDS["STATEDISPLAY"]).SendRGB()) to command custom hexadecimal or RGB values directly.Lighting behavior is governed by the MultimediaBoardLightingState enumeration:
| Enum State | Commanded Color | Associated Robot Status |
|---|---|---|
eOff |
Black / Off [0, 0, 0] |
System shutdown, idle standby, or unpowered LEDs. |
eAutonomy |
Solid Red | Autonomy state machine active and in control of chassis movement. |
eTeleOp |
Solid Blue | Manual teleoperation active; operator joystick override. |
eReachedGoal |
Flashing Green | Target waypoint reached, ArUco post verified, or prop detected. |
eCustom |
User-defined RGB | Diagnostic test patterns or custom animations. |
When SendLightingState() is called:
stTelemPacket is constructed with Data ID manifest::Autonomy::TELEMETRY["STATEDISPLAY"], notifying the Basestation GUI to update on-screen indicators.stCorePacket is constructed with Data ID manifest::Core::COMMANDS["STATEDISPLAY"], instructing the physical Core microcontroller to toggle LED driver relays or WS2812B strips.network::g_pRoveCommUDPNode. Because lighting commands represent discrete state changes rather than continuous control loops, transmission occurs only on state transitions to conserve network bandwidth.enum class MultimediaBoardLightingState
{
eOff,
eTeleOp,
eAutonomy,
eReachedGoal,
eCustom
};
void SendLightingState(MultimediaBoardLightingState eState);
void SendRGB(const RGB& stRGB);
MultimediaBoardLightingState GetCurrentLightingState() const;