Documentation for namespace cwrubaja

cwrubaja

cwrubaja.fuelgauge

cwrubaja.fuelgauge.Fuelstate (v0.1) [extent 15.0 bytes] [max length 19.0 bytes]

uavcan.time.SynchronizedTimestamp (v1.0) timestamp [extent 7.0 bytes] [max length 7.0 bytes]

Nested data type used for representing a network-wide synchronized timestamp with microsecond resolution.
This data type is highly recommended for use both in standard and vendor-specific messages alike.

truncated uint56 microsecond

The number of microseconds that have passed since some arbitrary moment in the past.
The moment of origin (i.e., the time base) is defined per-application. The current time base in use
can be requested from the time synchronization master, see the corresponding service definition.

This value is to never overflow. The value is 56-bit wide because:

  - 2^56 microseconds is about 2285 years, which is plenty. A 64-bit microsecond counter would be
    unnecessarily wide and its overflow interval of 585 thousand years induces a mild existential crisis.

  - Classic-CAN (not FD) transports carry up to 7 bytes of payload per frame.
    Time sync messages shall use single-frame transfers, which means that the value can't be wider than 56 bits.

saturated uint56 UNKNOWN = 0

Zero means that the time is not known.


    
    
    




uavcan.primitive.scalar.Real32 (v1.0) percent [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 value

Exactly representable integers: [-16777216, +16777216]


    
    
    
    

cwrubaja.fuelgauge.Fuelvolume (v0.1) [extent 23.0 bytes] [max length 27.0 bytes]

uavcan.time.SynchronizedTimestamp (v1.0) timestamp [extent 7.0 bytes] [max length 7.0 bytes]

Nested data type used for representing a network-wide synchronized timestamp with microsecond resolution.
This data type is highly recommended for use both in standard and vendor-specific messages alike.

truncated uint56 microsecond

The number of microseconds that have passed since some arbitrary moment in the past.
The moment of origin (i.e., the time base) is defined per-application. The current time base in use
can be requested from the time synchronization master, see the corresponding service definition.

This value is to never overflow. The value is 56-bit wide because:

  - 2^56 microseconds is about 2285 years, which is plenty. A 64-bit microsecond counter would be
    unnecessarily wide and its overflow interval of 585 thousand years induces a mild existential crisis.

  - Classic-CAN (not FD) transports carry up to 7 bytes of payload per frame.
    Time sync messages shall use single-frame transfers, which means that the value can't be wider than 56 bits.

saturated uint56 UNKNOWN = 0

Zero means that the time is not known.


    
    
    




uavcan.si.unit.volume.Scalar (v1.0) volume [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 cubic_meter


    
    
    
    

    
    
    
    

cwrubaja.hallmonitorunit

cwrubaja.hallmonitorunit.Rpm (v1.0) [extent 11.0 bytes] [max length 11.0 bytes]

Rotations per minuite. 
we can stop messing up conversions now

uavcan.time.SynchronizedTimestamp (v1.0) timestamp [extent 7.0 bytes] [max length 7.0 bytes]

Nested data type used for representing a network-wide synchronized timestamp with microsecond resolution.
This data type is highly recommended for use both in standard and vendor-specific messages alike.

truncated uint56 microsecond

The number of microseconds that have passed since some arbitrary moment in the past.
The moment of origin (i.e., the time base) is defined per-application. The current time base in use
can be requested from the time synchronization master, see the corresponding service definition.

This value is to never overflow. The value is 56-bit wide because:

  - 2^56 microseconds is about 2285 years, which is plenty. A 64-bit microsecond counter would be
    unnecessarily wide and its overflow interval of 585 thousand years induces a mild existential crisis.

  - Classic-CAN (not FD) transports carry up to 7 bytes of payload per frame.
    Time sync messages shall use single-frame transfers, which means that the value can't be wider than 56 bits.

saturated uint56 UNKNOWN = 0

Zero means that the time is not known.


    
    
    

saturated float32 rpm


    
    
    
    

cwrubaja.hallmonitorunit.Status (v0.1) [extent 39.0 bytes] [max length 39.0 bytes]

A Status message from HMU 

uavcan.time.SynchronizedTimestamp (v1.0) timestamp [extent 7.0 bytes] [max length 7.0 bytes]

Nested data type used for representing a network-wide synchronized timestamp with microsecond resolution.
This data type is highly recommended for use both in standard and vendor-specific messages alike.

truncated uint56 microsecond

The number of microseconds that have passed since some arbitrary moment in the past.
The moment of origin (i.e., the time base) is defined per-application. The current time base in use
can be requested from the time synchronization master, see the corresponding service definition.

This value is to never overflow. The value is 56-bit wide because:

  - 2^56 microseconds is about 2285 years, which is plenty. A 64-bit microsecond counter would be
    unnecessarily wide and its overflow interval of 585 thousand years induces a mild existential crisis.

  - Classic-CAN (not FD) transports carry up to 7 bytes of payload per frame.
    Time sync messages shall use single-frame transfers, which means that the value can't be wider than 56 bits.

saturated uint56 UNKNOWN = 0

Zero means that the time is not known.


    
    
    




saturated float32[4] rpm [max length 16.0 bytes]

saturated float32



    
    
    




uavcan.si.unit.voltage.Scalar.1.0[4] voltage [max length 16.0 bytes]

uavcan.si.unit.voltage.Scalar (v1.0) [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 volt


    
    
    
    


    
    
    
    

cwrubaja.hierarchy

cwrubaja.hierarchy.Level (v0.1) [extent 1.0 bytes] [max length 1.0 bytes]

Basic datatype that details what algorithmic level the request/message is at

saturated uint4 value


    
    
    
    

cwrubaja.hmi

cwrubaja.hmi.notasteeringwheel

cwrubaja.hmi.notasteeringwheel.State (v0.1) [extent 16.0 bytes] [max length 16.0 bytes]

uavcan.time.SynchronizedTimestamp (v1.0) timestamp [extent 7.0 bytes] [max length 7.0 bytes]

Nested data type used for representing a network-wide synchronized timestamp with microsecond resolution.
This data type is highly recommended for use both in standard and vendor-specific messages alike.

truncated uint56 microsecond

The number of microseconds that have passed since some arbitrary moment in the past.
The moment of origin (i.e., the time base) is defined per-application. The current time base in use
can be requested from the time synchronization master, see the corresponding service definition.

This value is to never overflow. The value is 56-bit wide because:

  - 2^56 microseconds is about 2285 years, which is plenty. A 64-bit microsecond counter would be
    unnecessarily wide and its overflow interval of 585 thousand years induces a mild existential crisis.

  - Classic-CAN (not FD) transports carry up to 7 bytes of payload per frame.
    Time sync messages shall use single-frame transfers, which means that the value can't be wider than 56 bits.

saturated uint56 UNKNOWN = 0

Zero means that the time is not known.


    
    
    

saturated uint16 rotary0


    
    
    

saturated uint16 rotary1


    
    
    

saturated float32 potentiometer


    
    
    

saturated bool toggle


    
    
    
    

cwrubaja.hmi.steeringwheel

cwrubaja.hmi.steeringwheel.Knobs (v0.1) [extent 4.0 bytes] [max length 4.0 bytes]

saturated uint16 left


    
    
    

saturated uint16 right


    
    
    
    

cwrubaja.hmi.steeringwheel.State (v0.1) [extent 8.0 bytes] [max length 8.0 bytes]

uavcan.time.SynchronizedTimestamp (v1.0) timestamp [extent 7.0 bytes] [max length 7.0 bytes]

Nested data type used for representing a network-wide synchronized timestamp with microsecond resolution.
This data type is highly recommended for use both in standard and vendor-specific messages alike.

truncated uint56 microsecond

The number of microseconds that have passed since some arbitrary moment in the past.
The moment of origin (i.e., the time base) is defined per-application. The current time base in use
can be requested from the time synchronization master, see the corresponding service definition.

This value is to never overflow. The value is 56-bit wide because:

  - 2^56 microseconds is about 2285 years, which is plenty. A 64-bit microsecond counter would be
    unnecessarily wide and its overflow interval of 585 thousand years induces a mild existential crisis.

  - Classic-CAN (not FD) transports carry up to 7 bytes of payload per frame.
    Time sync messages shall use single-frame transfers, which means that the value can't be wider than 56 bits.

saturated uint56 UNKNOWN = 0

Zero means that the time is not known.


    
    
    

saturated uint8 value


    
    
    

saturated uint8 NORMAL = 0


    
    
    

saturated uint8 RUH_ROH = 1


    
    
    

saturated uint8 MANUAL = 2


    
    
    

saturated uint8 SEMI_ACTIVE = 3


    
    
    
    

cwrubaja.honeybee

cwrubaja.honeybee.Angle (v0.1) [extent 11.0 bytes] [max length 11.0 bytes]

uavcan.time.SynchronizedTimestamp (v1.0) timestamp [extent 7.0 bytes] [max length 7.0 bytes]

Nested data type used for representing a network-wide synchronized timestamp with microsecond resolution.
This data type is highly recommended for use both in standard and vendor-specific messages alike.

truncated uint56 microsecond

The number of microseconds that have passed since some arbitrary moment in the past.
The moment of origin (i.e., the time base) is defined per-application. The current time base in use
can be requested from the time synchronization master, see the corresponding service definition.

This value is to never overflow. The value is 56-bit wide because:

  - 2^56 microseconds is about 2285 years, which is plenty. A 64-bit microsecond counter would be
    unnecessarily wide and its overflow interval of 585 thousand years induces a mild existential crisis.

  - Classic-CAN (not FD) transports carry up to 7 bytes of payload per frame.
    Time sync messages shall use single-frame transfers, which means that the value can't be wider than 56 bits.

saturated uint56 UNKNOWN = 0

Zero means that the time is not known.


    
    
    

saturated float32 degree


    
    
    
    

cwrubaja.midi

cwrubaja.midi.Note (v0.1) [extent 3.0 bytes] [max length 3.0 bytes]

saturated bool on


    
    
    

saturated uint8 note


    
    
    

saturated uint8 velocity


    
    
    
    

cwrubaja.navigation

cwrubaja.navigation.Acceleration (v0.1) [extent 12.0 bytes] [max length 12.0 bytes]

represents linear acceleration. north points to true north

uavcan.si.unit.acceleration.Scalar (v1.0) north [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second_per_second


    
    
    
    

    
    
    




uavcan.si.unit.acceleration.Scalar (v1.0) east [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second_per_second


    
    
    
    

    
    
    




uavcan.si.unit.acceleration.Scalar (v1.0) down [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second_per_second


    
    
    
    

    
    
    
    

cwrubaja.navigation.Angular_velocity (v0.1) [extent 12.0 bytes] [max length 12.0 bytes]

Rotation speed relative to an NED coordinate system
representation is euler angles around the coordinate system
(0,0,0) is defined as the car not rotation at all
then the angles are the degrees around each axis with postitive defined by the right hand rule
so rotating from directly north to directly east in 1 second would be north=0, east=0, down=90

saturated float32 north_degrees_per_second


    
    
    

saturated float32 east_degrees_per_second


    
    
    

saturated float32 down_degrees_per_second


    
    
    
    

cwrubaja.navigation.Location (v0.1) [extent 12.0 bytes] [max length 12.0 bytes]

a position on the earth

saturated float32 latitude_degrees


    
    
    

saturated float32 longitude_degrees


    
    
    




uavcan.si.unit.length.Scalar (v1.0) altitude [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter


    
    
    
    

    
    
    
    

cwrubaja.navigation.Orientation (v0.1) [extent 12.0 bytes] [max length 12.0 bytes]

Orrientation relative to an NED coordinate system
representation is euler angles around the coordinate system
(0,0,0) is defined as the car perfectly upright and pointing directy north
then the angles are the degrees around each axis with postitive defined by the right hand rule
so perfectly upright facing straight east would be north=0, east=0, down=90

saturated float32 north_degrees


    
    
    

saturated float32 east_degrees


    
    
    

saturated float32 down_degrees


    
    
    
    

cwrubaja.navigation.Uncertainty (v0.1) [extent 60.0 bytes] [max length 60.0 bytes]

returns the 1 sigma uncertainty of all the quantities measured by the gps
that is to say, 1 std deviation of the measurement assuming gausian distribution
so we are 67% sure that this range is true: reported_val - uncertainty < real_val < reported_val + uncertainty

cwrubaja.navigation.Location (v0.1) location [extent 12.0 bytes] [max length 12.0 bytes]

a position on the earth

saturated float32 latitude_degrees


    
    
    

saturated float32 longitude_degrees


    
    
    




uavcan.si.unit.length.Scalar (v1.0) altitude [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter


    
    
    
    

    
    
    
    

    
    
    




cwrubaja.navigation.Velocity (v0.1) velocity [extent 12.0 bytes] [max length 12.0 bytes]

represents linear velocity. north points to true north

uavcan.si.unit.velocity.Scalar (v1.0) north [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second


    
    
    
    

    
    
    




uavcan.si.unit.velocity.Scalar (v1.0) east [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second


    
    
    
    

    
    
    




uavcan.si.unit.velocity.Scalar (v1.0) down [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second


    
    
    
    

    
    
    
    

    
    
    




cwrubaja.navigation.Acceleration (v0.1) acceleration [extent 12.0 bytes] [max length 12.0 bytes]

represents linear acceleration. north points to true north

uavcan.si.unit.acceleration.Scalar (v1.0) north [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second_per_second


    
    
    
    

    
    
    




uavcan.si.unit.acceleration.Scalar (v1.0) east [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second_per_second


    
    
    
    

    
    
    




uavcan.si.unit.acceleration.Scalar (v1.0) down [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second_per_second


    
    
    
    

    
    
    
    

    
    
    




cwrubaja.navigation.Orientation (v0.1) orientation [extent 12.0 bytes] [max length 12.0 bytes]

Orrientation relative to an NED coordinate system
representation is euler angles around the coordinate system
(0,0,0) is defined as the car perfectly upright and pointing directy north
then the angles are the degrees around each axis with postitive defined by the right hand rule
so perfectly upright facing straight east would be north=0, east=0, down=90

saturated float32 north_degrees


    
    
    

saturated float32 east_degrees


    
    
    

saturated float32 down_degrees


    
    
    
    

    
    
    




cwrubaja.navigation.Angular_velocity (v0.1) angular_velocity [extent 12.0 bytes] [max length 12.0 bytes]

Rotation speed relative to an NED coordinate system
representation is euler angles around the coordinate system
(0,0,0) is defined as the car not rotation at all
then the angles are the degrees around each axis with postitive defined by the right hand rule
so rotating from directly north to directly east in 1 second would be north=0, east=0, down=90

saturated float32 north_degrees_per_second


    
    
    

saturated float32 east_degrees_per_second


    
    
    

saturated float32 down_degrees_per_second


    
    
    
    

    
    
    
    

cwrubaja.navigation.Velocity (v0.1) [extent 12.0 bytes] [max length 12.0 bytes]

represents linear velocity. north points to true north

uavcan.si.unit.velocity.Scalar (v1.0) north [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second


    
    
    
    

    
    
    




uavcan.si.unit.velocity.Scalar (v1.0) east [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second


    
    
    
    

    
    
    




uavcan.si.unit.velocity.Scalar (v1.0) down [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 meter_per_second


    
    
    
    

    
    
    
    

cwrubaja.navigation.testing

cwrubaja.navigation.testing.Raw_gnss (v0.1) [extent 39.0 bytes] [max length 39.0 bytes]

used for sending raw gnss data from the neo-m9n driver in gofobomo 2026
I need this to get raw data I can use to validate my kalman filter for 
real driving conditions
for heading, north is 0 degrees, clockwise is positive

saturated uint8 fixType


    
    
    

saturated uint8 flags


    
    
    

saturated uint8 gnssFixOK


    
    
    

saturated int32 lon_degree


    
    
    

saturated int32 lat_degree


    
    
    

saturated int32 height_mm


    
    
    

saturated uint32 horizontal_accuracy_mm


    
    
    

saturated uint32 vertical_accuracy_mm


    
    
    

saturated int32 ground_speed_mm_per_second


    
    
    

saturated int32 heading_degree_1E_minus_5


    
    
    

saturated uint32 speed_accuracy_mm_per_second


    
    
    

saturated uint32 heading_accuracy_1E_minus_5


    
    
    
    

cwrubaja.navigation.testing.Raw_imu (v0.1) [extent 19.0 bytes] [max length 19.0 bytes]

used for sending raw data from the ICM20948 imu driver in gofobomo 2026
I need this to get raw data I can use to validate my kalman filter for 
real driving conditions

saturated int16 x_deci_degree_per_second


    
    
    

saturated int16 y_deci_degree_per_second


    
    
    

saturated int16 z_deci_degree_per_second


    
    
    

saturated int16 x_acceleration_milli_G


    
    
    

saturated int16 y_acceleration_milli_G


    
    
    

saturated int16 z_acceleration_milli_G


    
    
    

saturated int16 x_micro_tesla


    
    
    

saturated int16 y_micro_tesla


    
    
    

saturated int16 z_micro_tesla


    
    
    

saturated bool magnometer_data_fresh


    
    
    
    

cwrubaja.physics

cwrubaja.physics.Color (v0.1) [extent 3.0 bytes] [max length 3.0 bytes]

type that encapsulates a 24-bit RGB color

saturated uint8 r


    
    
    

saturated uint8 g


    
    
    

saturated uint8 b


    
    
    

saturated uint8 MAX_RED = 255


    
    
    

saturated uint8 MAX_GREEN = 255


    
    
    

saturated uint8 MAX_BLUE = 255


    
    
    
    

cwrubaja.servocontroller

cwrubaja.servocontroller.Manual (v1.0) [extent 8.0 bytes] [max length 8.0 bytes]

Servo Controller Manual Driving datatype
Mostly used for debug/exploration of servo & controller behavior
Think of it as teleoperation for the entire board (e.g. connect a joystick to Yakut and have control of all actuator axes)

saturated bool pwmEnable


    
    
    

saturated uint32 pwmMicrosecond


    
    
    

saturated bool buckEnable


    
    
    




cwrubaja.physics.Color (v0.1) neopixelColor [extent 3.0 bytes] [max length 3.0 bytes]

type that encapsulates a 24-bit RGB color

saturated uint8 r


    
    
    

saturated uint8 g


    
    
    

saturated uint8 b


    
    
    

saturated uint8 MAX_RED = 255


    
    
    

saturated uint8 MAX_GREEN = 255


    
    
    

saturated uint8 MAX_BLUE = 255


    
    
    
    

    
    
    
    

cwrubaja.servocontroller.State (v0.1) [extent 19.0 bytes] [max length 23.0 bytes]

Servo Controller State datatype
Encapsulates the current status of Servo Controller

uavcan.time.SynchronizedTimestamp (v1.0) timestamp [extent 7.0 bytes] [max length 7.0 bytes]

Nested data type used for representing a network-wide synchronized timestamp with microsecond resolution.
This data type is highly recommended for use both in standard and vendor-specific messages alike.

truncated uint56 microsecond

The number of microseconds that have passed since some arbitrary moment in the past.
The moment of origin (i.e., the time base) is defined per-application. The current time base in use
can be requested from the time synchronization master, see the corresponding service definition.

This value is to never overflow. The value is 56-bit wide because:

  - 2^56 microseconds is about 2285 years, which is plenty. A 64-bit microsecond counter would be
    unnecessarily wide and its overflow interval of 585 thousand years induces a mild existential crisis.

  - Classic-CAN (not FD) transports carry up to 7 bytes of payload per frame.
    Time sync messages shall use single-frame transfers, which means that the value can't be wider than 56 bits.

saturated uint56 UNKNOWN = 0

Zero means that the time is not known.


    
    
    




uavcan.si.unit.electric_current.Scalar (v1.0) servoCurrent [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 ampere


    
    
    
    

    
    
    

saturated bool engaged


    
    
    

saturated uint8 state


    
    
    

saturated uint8 ServoStartup = 1


    
    
    

saturated uint8 ServoDisengaged = 2


    
    
    

saturated uint8 ServoEngaged = 3


    
    
    

saturated uint8 ServoFault = 4


    
    
    

saturated uint8 ServoTrimEngagedMenu = 5


    
    
    

saturated uint8 ServoTrimDisengagedMenu = 6


    
    
    

saturated uint8 ServoLocateInit = 7


    
    
    

saturated uint8 ServoLocateOne = 8


    
    
    

saturated uint8 ServoLocateTwo = 9


    
    
    

saturated uint8 ServoLocateDecide = 10


    
    
    

saturated uint8 ServoAutoTrim = 11


    
    
    
    

cwrubaja.suspension

cwrubaja.suspension.vcm

cwrubaja.suspension.vcm.Setpoint (v0.2) [extent 7.0 bytes] [max length 11.0 bytes]

A specific Semi-Active Suspension valve setpoint.

saturated uint4 priority


    
    
    




uavcan.si.unit.electric_current.Scalar (v1.0) current [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 ampere


    
    
    
    

    
    
    
    

cwrubaja.suspension.vcm.Setpoint (v0.1) [extent 7.0 bytes] [max length 11.0 bytes]

A specific Semi-Active Suspension valve setpoint.

uavcan.si.unit.electric_current.Scalar (v1.0) current [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 ampere


    
    
    
    

    
    
    
    

cwrubaja.suspension.vcm.Status (v0.1) [extent 28.0 bytes] [max length 32.0 bytes]

A status message from VCM

uavcan.time.SynchronizedTimestamp (v1.0) timestamp [extent 7.0 bytes] [max length 7.0 bytes]

Nested data type used for representing a network-wide synchronized timestamp with microsecond resolution.
This data type is highly recommended for use both in standard and vendor-specific messages alike.

truncated uint56 microsecond

The number of microseconds that have passed since some arbitrary moment in the past.
The moment of origin (i.e., the time base) is defined per-application. The current time base in use
can be requested from the time synchronization master, see the corresponding service definition.

This value is to never overflow. The value is 56-bit wide because:

  - 2^56 microseconds is about 2285 years, which is plenty. A 64-bit microsecond counter would be
    unnecessarily wide and its overflow interval of 585 thousand years induces a mild existential crisis.

  - Classic-CAN (not FD) transports carry up to 7 bytes of payload per frame.
    Time sync messages shall use single-frame transfers, which means that the value can't be wider than 56 bits.

saturated uint56 UNKNOWN = 0

Zero means that the time is not known.


    
    
    




uavcan.si.unit.temperature.Scalar (v1.0) valve [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 kelvin


    
    
    
    

    
    
    




uavcan.si.unit.temperature.Scalar (v1.0) module [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 kelvin


    
    
    
    

    
    
    




uavcan.si.unit.temperature.Scalar (v1.0) mcu [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 kelvin


    
    
    
    

    
    
    




uavcan.si.unit.electric_current.Scalar (v1.0) current [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 ampere


    
    
    
    

    
    
    




uavcan.si.unit.voltage.Scalar (v1.0) voltage [extent 4.0 bytes] [max length 4.0 bytes]

saturated float32 volt