diff --git a/dsdl/uavcan/equipment/actuator/600.Status.uavcan b/dsdl/uavcan/equipment/actuator/600.Status.uavcan index 600abac1df..ef15e5e395 100644 --- a/dsdl/uavcan/equipment/actuator/600.Status.uavcan +++ b/dsdl/uavcan/equipment/actuator/600.Status.uavcan @@ -5,9 +5,12 @@ uint8 actuator_id -float16 position # Position feedback; same units as command -float16 power -float16 force # Sign depends on the direction of the force +# +# Whether the units are linear or angular depends on the actuator type (refer to the Command data type). +# +float16 position # meter or radian +float16 force # Newton or Newton metre +float16 speed # meter per second or radian per second uint7 POWER_RATING_PCT_UNKNOWN = 127 -uint7 power_rating_pct # 0 - unloaded, 100 - full load/overload +uint7 power_rating_pct # 0 - unloaded, 100 - full load diff --git a/dsdl/uavcan/equipment/actuator/Command.uavcan b/dsdl/uavcan/equipment/actuator/Command.uavcan index 2728d682c3..e4d3d74084 100644 --- a/dsdl/uavcan/equipment/actuator/Command.uavcan +++ b/dsdl/uavcan/equipment/actuator/Command.uavcan @@ -6,10 +6,15 @@ uint8 actuator_id # -# Recommended units are, either: -# - Unitless [-1; 1] -# - Angular position in radians -# - Linear position in meters -# Status report should normally use the same units. +# Whether the units are linear or angular depends on the actuator type. # -float16 command +uint4 COMMAND_TYPE_UNITLESS = 0 # [-1, 1] +uint4 COMMAND_TYPE_POSITION = 1 # meter or radian +uint4 COMMAND_TYPE_FORCE = 2 # Newton or Newton metre +uint4 COMMAND_TYPE_SPEED = 3 # meter per second or radian per second +uint4 command_type + +# +# Value of the above type +# +float16 command_value