Add motor telemetry (temperature/current) for RMD & SMC, update README#46
Conversation
IshanDutta11
left a comment
There was a problem hiding this comment.
Looks mostly good, but you are missing the actual motor state broadcaster. The state interfaces exist, but we want the status broadcaster to display these. I'm thinking you make a subsystem folder called general, have a controllers package in it, and create the motor status broadcaster here. Access this plugin in all of the other subsystems so you don't need to repeat code. If you find another better way, you can do that too and I'll review it.
IshanDutta11
left a comment
There was a problem hiding this comment.
This is mostly correct. I will approve this for now, but remember that you need to activate this controller in arm, drive, and science. That itself shouldn't take too long and this broadcaster is not super integral, so we can continue that later, just keep it in mind.
7d31dad to
fc7b197
Compare
umdloop#46) * Add motor telemetry (temp/current) for RMD/SMC, update README, add can_setup.sh * add motor_status_broadcaster and fix CAN script paths in README * fix: use Humble-compatible get_value() and include path
Summary
motor_temperature(°C) andtorque_current(A) as state interfaces per joint. These are decoded from the existing CAN reply frames (commands 0xA2, 0xA4, 0x9C all share the same response layout). Published automatically viajoint_state_broadcasteron/dynamic_joint_states.<state_interface name="motor_temperature"/>and<state_interface name="torque_current"/>to all joints inarm.rmd.ros2_control.xacroandarm.smc.ros2_control.xacro.src/tools/scripts/can_setup.sh