Advanced Search
Search Results
188 total results found
Layout
Code Structure Architecture (Summary) Each board’s main.c acts strictly as an orchestrator. It initializes the runtime, creates tasks, and delegates all functional behavior to component modules. Core Design Contract The repository enforces a strict separation ...
Unit Testing
Purpose Unit tests in this repository are designed to validate component behavior, not entrypoint wiring. Tests target logic in components/common/* and components/<board>/*.src/<board>/main.c remains focused on initialization and task orchestration.Test owners...
Post-Generation Scripts
Introduction We use one post code generation script. We do this because we do not want to write code inside the auto-generated code, and this helps with that. If you are on Linux or (possibly, untested but likely) mac, you can refer to the script in the cubeMX...
Web app
RFID Scanner
Computer Vision
YOLO
This section is under construction until we define more things for computer vision with YOLO.
Overview
The computer vision subsystem of the rover is utilized in the Navigation, Surface Sampling and Maintenance Tasks of ERC. It is accomplished through the use of the rover cameras: Gripper camera (digital Arducam), Bottom chassis camera (digital Arducam), Front c...
Business Logic
Rover Communications
Path Planning
Protobuffers
What are Protobuffers? Protocol Buffers (Protobuffers or protobufs) are Google's binary serialization format for structured data. Compared to alternatives like JSON or XML, they are significantly more compact and faster to serialize/deserialize, making them we...
Integration with ROS2
Overview The Communications node bridges the gap between raw UDP/protobuf packets and the ROS2 ecosystem running on Jonny Boi. This page explains how incoming protobuf messages get converted into ROS2 messages and published on topics, the handler pattern that ...
Simple PIOC
Introduction This Python script processes a custom PlatformIO configuration file (platformio.pioc) and generates a standard platformio.ini file. It extends PlatformIO’s configuration capabilities by: Supporting dynamic include paths using glob patternsExtracti...
.pioc file
Introduction The platformio.pioc file is the central configurationhere file used to define build environments, dependencies, compiler flags, and project structure. It uses a format with sections and key-value pairs. It is similar to platformio.ini, which is ac...
Sending your first message
This page: how to initialize your Ethernet driver and send your first message. A lot of constants can be seen in the explanatory code. Those can be found in components/common/networking_constants. They are also added at the end of this file. The functions that...
PBEnvelope
What is the PBEnvelope? The PBEnvelope is a wrapper message defined in components/common/envelope.proto in the ERC-Protobufs repository. Every protobuf message sent over UDP on this rover — whether from the Basestation, the Jetson, or a hardware microcontrolle...