How schradivarius/urc-task3 works
URC Rover is a Jetson-to-Teensy CAN command and telemetry link with a shared wire protocol and watchdog-based fail-safe control. The principal workflow is: the Jetson sends CONTROL frames, the Teensy validates commands and applies safe outputs, and the Teensy returns motion and status telemetry. README statements establish the firmware wiring and host harness roles; the sampled sources show codec, controller, and simulator details. Hardware validation is not documented as complete, and motor and sensor I/O are stubs.
Main entry points: rover_firmware.ino Hardware Wiring · rover_controller.cpp Safety Controller · can_link.py CAN Backends · jetson_test.py Jetson Link Harness
Components 15
Jetson Host
- Jetson Link Harness
host/jetson_test.py - CAN Backends
host/can_link.py - Telemetry Consumer
host/jetson_test.py
CAN Protocol
- Python Codec
host/rover_protocol.py - C++ Codec
firmware/src/rover_protocol.cpp - Message Definitions
firmware/src/rover_protocol.h - Motion Telemetry
firmware/src/rover_protocol.h - Status Telemetry
firmware/src/rover_protocol.h
Teensy Firmware
- Hardware Wiring
firmware/rover_firmware.ino - Safety Controller
firmware/src/rover_controller.cpp
Rover Hardware
- Motor Outputs
firmware/rover_firmware.ino - Sensor Inputs
firmware/rover_firmware.ino - Rover Plant
Other components
- Operator / Autonomy
- CAN Bus
Connections 20
- Operator / Autonomy → Jetson Link Harness: sets commands
README.md - Jetson Link Harness → Python Codec: encodes commands
README.md - Jetson Link Harness → CAN Backends: sends and receives
README.md - CAN Backends → CAN Bus: transmits frames
README.md - CAN Bus → Hardware Wiring: delivers frames
README.md - Hardware Wiring → Safety Controller: routes frames
README.md - Safety Controller → C++ Codec: decodes CONTROL
firmware/src/rover_controller.cpp - Safety Controller → Message Definitions: uses definitions
- Hardware Wiring → C++ Codec: encodes frames
README.md - Safety Controller → Motor Outputs: provides safe outputs
README.md - Sensor Inputs → Safety Controller: supplies readings
README.md - Motor Outputs → Rover Plant: drives
README.md - Rover Plant → Sensor Inputs: produces measurements
README.md - Hardware Wiring → CAN Bus: transmits telemetry
README.md - Hardware Wiring → Motion Telemetry: emits frames
README.md - Hardware Wiring → Status Telemetry: emits frames
README.md - CAN Bus → CAN Backends: delivers frames
README.md - CAN Backends → Telemetry Consumer: passes frames
README.md - Telemetry Consumer → Python Codec: decodes telemetry
README.md - Python Codec → Operator / Autonomy: reports state
README.md