This is the course management software for the 2026 RoboBoat competition.
-
The Protocol Buffer message definition file, report.proto, can be found in the
./protofolder. -
The Python and C++ compiled outputs of report.proto can be found in the
./msgsfolder. -
A simple python server for testing and debugging.
- This test server is using the same TCP_library that the course server uses.
-
A simple python client with setup instructions below.
-
A simple C++ client example.
RoboCommand uses v6.32.1 of the protobuf runtime library and v32.1 of the protoc compiler.
The heartbeat server accepts TCP connections, logs all incoming Report messages, validates heartbeat messages against competition rules, and serves a live web dashboard.
Start the server:
uv run python -m examples.heartbeat_server
Then open http://localhost:8080/ in a browser to see the dashboard.
Options:
--tcp-port TCP port to listen on (default: 50000)
--web-port HTTP dashboard port (default: 8080)
--interval Max allowed heartbeat gap (s) (default: 5.0)
--debug Verbose console output
Rules validated for each heartbeat:
team_idandvehicle_idare set- Body type is
heartbeat stateis notSTATE_UNKNOWNlatitudein [−90, 90] andlongitudein [−180, 180]spd_mps≥ 0heading_degin [0, 360)seqis strictly increasing per sender- Heartbeat gap does not exceed
--interval
Sync dependencies (creates .venv automatically):
uv sync
Start the server:
uv run python -m examples.test_server
In a new terminal, run the client to send a message:
uv run python -m examples.test_client
A message should have printed in the server's console.
You can update the message contents in the client script.
Run the server and test your own client software to ensure it behaves as expected.