Skip to content

EscReport (UORB message)

TOPICS: esc_report

Fields

NameTypeUnit [Frame]Range/EnumDescription
timestampuint64time since system start (microseconds)
esc_errorcountuint32Number of reported errors by ESC - if supported
esc_rpmint32Motor RPM, negative for reverse rotation [RPM] - if supported
esc_voltagefloat32Voltage measured from current ESC [V] - if supported
esc_currentfloat32Current measured from current ESC [A] - if supported
esc_temperaturefloat32Temperature measured from current ESC [degC] - if supported
esc_addressuint8Address of current ESC (in most cases 1-8 / must be set by driver)
esc_cmdcountuint8Counter of number of commands
esc_stateuint8State of ESC - depend on Vendor
actuator_functionuint8actuator output function (one of Motor1...MotorN)
failuresuint16Bitmask to indicate the internal ESC faults
esc_powerint8Applied power 0-100 in % (negative values reserved)

Constants

NameTypeValueDescription
ACTUATOR_FUNCTION_MOTOR1uint8101
ACTUATOR_FUNCTION_MOTOR2uint8102
ACTUATOR_FUNCTION_MOTOR3uint8103
ACTUATOR_FUNCTION_MOTOR4uint8104
ACTUATOR_FUNCTION_MOTOR5uint8105
ACTUATOR_FUNCTION_MOTOR6uint8106
ACTUATOR_FUNCTION_MOTOR7uint8107
ACTUATOR_FUNCTION_MOTOR8uint8108
ACTUATOR_FUNCTION_MOTOR9uint8109
ACTUATOR_FUNCTION_MOTOR10uint8110
ACTUATOR_FUNCTION_MOTOR11uint8111
ACTUATOR_FUNCTION_MOTOR12uint8112
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)
ESC_FAILURE_COUNTuint810Counter - keep it as last element!

Source Message

Source file (GitHub)

Click here to see original file
c
uint64 timestamp					# time since system start (microseconds)
uint32 esc_errorcount					# Number of reported errors by ESC - if supported
int32 esc_rpm						# Motor RPM, negative for reverse rotation [RPM] - if supported
float32 esc_voltage					# Voltage measured from current ESC [V] - if supported
float32 esc_current					# Current measured from current ESC [A] - if supported
float32 esc_temperature					# Temperature measured from current ESC [degC] - if supported
uint8 esc_address					# Address of current ESC (in most cases 1-8 / must be set by driver)
uint8 esc_cmdcount					# Counter of number of commands

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_MOTOR2 = 102
uint8 ACTUATOR_FUNCTION_MOTOR3 = 103
uint8 ACTUATOR_FUNCTION_MOTOR4 = 104
uint8 ACTUATOR_FUNCTION_MOTOR5 = 105
uint8 ACTUATOR_FUNCTION_MOTOR6 = 106
uint8 ACTUATOR_FUNCTION_MOTOR7 = 107
uint8 ACTUATOR_FUNCTION_MOTOR8 = 108
uint8 ACTUATOR_FUNCTION_MOTOR9 = 109
uint8 ACTUATOR_FUNCTION_MOTOR10 = 110
uint8 ACTUATOR_FUNCTION_MOTOR11 = 111
uint8 ACTUATOR_FUNCTION_MOTOR12 = 112

uint16 failures					# Bitmask to indicate the internal ESC faults
int8 esc_power					# Applied power 0-100 in % (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!