Skip to main content

Driving Board Protobuffers

This page: each driving_board protobuffer explained.


The protobuffers for the driving_board are passed between software, control and embedded.

DrivingBoardDiagnostics.proto

Embedded → Software / Debugging

This file contains the full diagnostic state of the driving board and all attached motors.

DrivingBoardDiagnostics is the main status message used to report the system state and motor-level health information.

DrivingBoardDiagnostics

This message contains:

  • Overall board state (IDLE, OPERATING, CALIBRATING, ERROR)
  • Motor information for all driving and steering motors

The board state is used to indicate the current operating mode of the driving board.

MotorInformation fields:

Each motor is reported using the MotorInformation protobuf, which includes:

  • motor state
  • motor ID
  • RPM
  • voltage
  • encoder angle

Motors included The diagnostics message explicitly contains 10 motors: front_left_motor middle_left_motor back_left_motor front_right_motor middle_right_motor back_right_motor steering_front_left_motor steering_back_left_motor steering_front_right_motor steering_back_right_motor

Notes: This structure is currently fixed-size, meaning all motors are explicitly defined instead of using a repeated field.

DrivingBoardMotorMessage.proto

Software → Embedded

This message is used to send motion commands to the driving board.

DrivingBoardMotorMessage Contains high-level movement instructions:

  • distance_to_go → target travel distance
  • turning_radius

Purpose: This message defines a movement request from software. The embedded system uses it as input to compute values on the control code.

DrivingBoardMotorPeriodicProgress.proto

Embedded → Software

This message provides runtime feedback during movement execution. DrivingBoardMotorPeriodicProgress

Contains:

  • distance_left → remaining distance to target

Purpose This message allows software to track progress of an ongoing movement command in real time. It is typically sent periodically while a movement is being executed.