Skip to content

EscReport (UORB message)

TOPICS: esc_report

Fields

NameTypeUnit [Frame]Range/EnumDescription
timestampuint64usTime since system start
esc_errorcountuint32Number of reported errors by ESC - if supported
esc_rpmint32rpmMotor RPM, negative for reverse rotation - if supported
esc_voltagefloat32VVoltage measured from current ESC - if supported
esc_currentfloat32ACurrent measured from current ESC - if supported
esc_temperaturefloat32degCTemperature measured from current ESC - if supported
motor_temperatureint16degCTemperature measured from current motor - if supported
esc_stateuint8State of ESC - depend on Vendor
actuator_functionuint8Actuator output function (one of Motor1...MotorN)
failuresuint16FAILUREBitmask to indicate the internal ESC faults
esc_powerint8%[0 : 100]Applied power (negative values reserved)

Enums

FAILURE

NameTypeValueDescription
FAILURE_OVER_CURRENTuint80(1 << 0)
FAILURE_OVER_VOLTAGEuint81(1 << 1)
FAILURE_MOTOR_OVER_TEMPERATUREuint82(1 << 2)
FAILURE_OVER_RPMuint83(1 << 3)
FAILURE_INCONSISTENT_CMDuint84(1 << 4) Set if ESC received an inconsistent command (i.e out of boundaries)
FAILURE_MOTOR_STUCKuint85(1 << 5)
FAILURE_GENERICuint86(1 << 6)
FAILURE_MOTOR_WARN_TEMPERATUREuint87(1 << 7)
FAILURE_WARN_ESC_TEMPERATUREuint88(1 << 8)
FAILURE_OVER_ESC_TEMPERATUREuint89(1 << 9)

Constants

NameTypeValueDescription
ACTUATOR_FUNCTION_MOTOR1uint8101
ACTUATOR_FUNCTION_MOTOR_MAXuint8112output_functions.yaml Motor.start + Motor.count - 1
ESC_FAILURE_COUNTuint810Counter - keep it as last element!

Source Message

Source file (GitHub)

Click here to see original file
c
uint64 timestamp # [us] Time since system start

uint32 esc_errorcount # [-] Number of reported errors by ESC - if supported
int32 esc_rpm # [rpm] Motor RPM, negative for reverse rotation - if supported
float32 esc_voltage # [V] Voltage measured from current ESC - if supported
float32 esc_current # [A] Current measured from current ESC - if supported
float32 esc_temperature # [degC] Temperature measured from current ESC - if supported
int16 motor_temperature # [degC] Temperature measured from current motor - if supported

uint8 esc_state # [-] State of ESC - depend on Vendor

uint8 actuator_function # [-] Actuator output function (one of Motor1...MotorN)

uint8 ACTUATOR_FUNCTION_MOTOR1 = 101
uint8 ACTUATOR_FUNCTION_MOTOR_MAX = 112 # output_functions.yaml Motor.start + Motor.count - 1

uint16 failures # [@enum FAILURE] Bitmask to indicate the internal ESC faults
int8 esc_power # [%] [@range 0,100] Applied power (negative values reserved)

uint8 FAILURE_OVER_CURRENT = 0 # (1 << 0)
uint8 FAILURE_OVER_VOLTAGE = 1 # (1 << 1)
uint8 FAILURE_MOTOR_OVER_TEMPERATURE = 2 # (1 << 2)
uint8 FAILURE_OVER_RPM = 3 # (1 << 3)
uint8 FAILURE_INCONSISTENT_CMD = 4 # (1 << 4) Set if ESC received an inconsistent command (i.e out of boundaries)
uint8 FAILURE_MOTOR_STUCK = 5 # (1 << 5)
uint8 FAILURE_GENERIC = 6 # (1 << 6)
uint8 FAILURE_MOTOR_WARN_TEMPERATURE = 7 # (1 << 7)
uint8 FAILURE_WARN_ESC_TEMPERATURE = 8 # (1 << 8)
uint8 FAILURE_OVER_ESC_TEMPERATURE = 9 # (1 << 9)
uint8 ESC_FAILURE_COUNT = 10 # Counter - keep it as last element!