adi_tmc_coe_interfaces

Custom interfaces for adi_tmc_coe

README

adi_tmc_coe_interfaces

Custom interfaces for ROS Driver for Trinamic Motor Controllers (TMC) that uses CANopen-over-etherCAT(CoE) protocol.

Custom msg

adi_tmc_coe_interfaces/msg/TmcCoeInfo

Data Data Type Description
interface_name string Interface name, commonly starting in "en" or "eth"
slave_number uint8 Slave number starting with 1 up to 255
motor_number uint8 Motor number starting with 0 (for motor 0 or axis 0)
mode_of_operation string "None",
"Profile Position",
"Profile Velocity",
"Homing Mode",
"Cyclic Synchronous Position Mode",
"Cyclic Synchronous Velocity Mode",
"Cyclic Synchronous Torque Mode"
status_word int32 Reflects status of the CiA402 state machine
velocity float32 If wheel_diameter parameter is set to 0, the unit for published velocity is rpm, else m/s
position int32 If Position Scaler and Encoder steps are not available as device parameter, the unit for published position is steps, else degree angle
torque int32 Units in mA

Custom srv

adi_tmc_coe_interfaces/srv/ReadWriteSDO

Data Data Type Description Input
Request
slave_number uint8 Slave number of the selected device.
The count should start with "1"
1-255
object_name string Object Name of the Parameter Check the autogenerated yaml of the used module and use the obj_name
value string When reading, not required -
When writing, should be input value When writing, this is integer in string form. Check the object limits on device's firmware manual. e.g. TMCM-1461
Response
output int32 Returns the actual value of the SDO -
result bool Returns true if successful, false if an error occurs (wrong input/s, data not received correctly) -

adi_tmc_coe_interfaces/srv/ReadWritePDO

Request

Data Data Type Description Input
Request
slave_number uint8 Slave number of the selected device.
The count should start with "1"
1-255
cmd string Commands available in PDO to read When reading,
"modes of operation display",
"statusword",
"actual velocity",
"demand velocity",
"actual position",
"demand position",
"actual torque",
"demand torque"
Commands available in PDO to write to When writing,
"modes of operation",
"controlword",
"target velocity",
"target position",
"target torque"
value int32 When reading, not required -
When writing, should be input value When writing, this is integer in string form. Check the object limits on device's firmware manual. e.g. TMCM-1461
Response
actual_value int32 Returns the actual value of the PDO -
result bool Returns true if successful, false if an error occurs (wrong input/s, data not received correctly) -

adi_tmc_coe_interfaces/srv/ChangeNMTState

Data Data Type Description Input
Request
slave_number uint8 Slave number of the selected device.
The count should start with "1"
1-255
request_state string Requested state of the device;
Check the NMT state diagram for correct sequence.
"init",
"preop",
"safeop",
"operational"
Response
current_state string Returns the current state of the device -
result bool Returns true if successful, false if an error occurs (wrong input/s, wrong sequence) -

adi_tmc_coe_interfaces/srv/ChangeCia402State

Data Data Type Description Input
Request
slave_number uint8 Slave number of the selected device.
The count should start with "1"
1-255
request_state string Requested CiA402 or DS402 state of the device;
Check the DS402 State Diagram for correct sequence.
"switch on disable",
"ready to switch on",
"swithed on",
"operation enabled",
"quick stop active"
Response
current_state string Returns the current state of the device -
result bool Returns true if successful, false if an error occurs (wrong input/s, wrong sequence) -

adi_tmc_coe_interfaces/srv/CyclicSyncMode

Data Data Type Description Input
Request
slave_number uint8 Slave number of the selected device.
The count should start with "1"
1-255
CS_cmd string Cyclic Synchronous Modes "csp" - Cyclic Synchronous Position,
"csv" - Cyclic Synchronous Velocity,
"cst" - Cyclic Synchronous Torque
interpolation_time_period uint8 Sets the delay for every cycle of data sent 1-255
interpolation_time_index int8 Index for interpolation time period where the value increases by the factor of 10 -3 to 3
value int32[] Set of values to be sent to the device array/vector of int32
Response
bool result Returns true if successful, false if an error occurs (wrong input/s) -