From dc9aafce6d957dc4d65c50176553862cf20bffd1 Mon Sep 17 00:00:00 2001 From: bueche Date: Tue, 24 Feb 2026 13:53:39 -0800 Subject: [PATCH 1/3] support for additional present current, temperature, load, and voltage --- msg/DynamixelState.msg | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/msg/DynamixelState.msg b/msg/DynamixelState.msg index 7aae937..a320348 100644 --- a/msg/DynamixelState.msg +++ b/msg/DynamixelState.msg @@ -1,9 +1,16 @@ std_msgs/Header header +# all arrays in tandem, elements at ith position correspond to servo noted in id[] +# see corresponding servo manuals for return values and ranges + int32 comm_state int32[] id bool[] torque_state int32[] dxl_hw_state +int16[] present_temperature +int16[] present_input_voltage +int16[] present_current +int16[] present_load int32 COMM_STATE_OK = 0 int32 COMM_STATE_CANNOT_FIND_CONTROL_ITEM = -1 From 3fb76fddeecddc01890f92c39332d2308f32c41d Mon Sep 17 00:00:00 2001 From: bueche Date: Mon, 9 Mar 2026 15:42:02 -0700 Subject: [PATCH 2/3] additional documentation in the message definition --- msg/DynamixelState.msg | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/msg/DynamixelState.msg b/msg/DynamixelState.msg index a320348..01b3514 100644 --- a/msg/DynamixelState.msg +++ b/msg/DynamixelState.msg @@ -7,10 +7,10 @@ int32 comm_state int32[] id bool[] torque_state int32[] dxl_hw_state -int16[] present_temperature -int16[] present_input_voltage -int16[] present_current -int16[] present_load +int16[] present_temperature # Unit: Celsius, scaled by 1 +int16[] present_input_voltage # Unit: mV, scaled by 10 (123 means 12.3V) +int16[] present_current # Unit: mA, scaled by 1 and +/- indicates rotation direction +int16[] present_load # Unit: 0.1% (209 means 20.9%) and +/- indicates rotation direction int32 COMM_STATE_OK = 0 int32 COMM_STATE_CANNOT_FIND_CONTROL_ITEM = -1 @@ -37,3 +37,20 @@ int32 COMM_STATE_DXL_REBOOT_FAIL = -17 # dxl_hw_state = 8: motor encoder # dxl_hw_state = 16: electrical shork # dxl_hw_state = 32: Overload +# +# Additional notes on temperature, input_voltage, current, etc: +# 1. To enable the reporting of these add the corresponding GPIO state_interface +# elements in the URDF file. For example: +# +# +# +# dxl +# 3 +# +# +# +# +# +# +# +# From 1c0f4f51eda24bddb291b7d20b92ea5b36d51ded Mon Sep 17 00:00:00 2001 From: Ed Bueche <40256397+bueche@users.noreply.github.com> Date: Tue, 10 Mar 2026 10:20:07 -0700 Subject: [PATCH 3/3] Update msg/DynamixelState.msg Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Ed Bueche <40256397+bueche@users.noreply.github.com> --- msg/DynamixelState.msg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/msg/DynamixelState.msg b/msg/DynamixelState.msg index 01b3514..3d5bdaf 100644 --- a/msg/DynamixelState.msg +++ b/msg/DynamixelState.msg @@ -1,8 +1,8 @@ std_msgs/Header header -# all arrays in tandem, elements at ith position correspond to servo noted in id[] -# see corresponding servo manuals for return values and ranges - +# All per-servo arrays below MUST have the same length as `id`. For each index i, +# servo id[i] has its corresponding state stored at index i in every array. +# See the corresponding servo manuals for return values and ranges. int32 comm_state int32[] id bool[] torque_state