ethercat_hardware

Summary

ethercat_hardware
Version:

1.8.16

Description:

Package for creating a hardware interface to the robot using the EtherCAT motor controller/driver

Maintainers:
  • Austin Hendrix <ahendrix AT willowgarage DOT com>
Licenses:
  • BSD
Urls:
Authors:
  • Rob Wheeler <wheeler AT willowgarage DOT com>
  • Derek King <dking AT willowgarage DOT com>
BuildDepends:
BuildtoolDepends:
 
BuildExportDepends:
 
ExecDepends:
Exports:
  • <ethercat_hardware plugin=”${prefix}/ethercat_device_plugin.xml”/>

Types

Message types

ethercat_hardware/BoardInfo
Field:
  • description (string) –
  • product_code (uint32) –
  • pcb (uint32) –
  • pca (uint32) –
  • serial (uint32) –
  • firmware_major (uint32) –
  • firmware_minor (uint32) –
  • board_resistance (float64) –
  • max_pwm_ratio (float64) –
  • hw_max_current (float64) –
  • poor_measured_motor_voltage (bool) –
string description
uint32 product_code
uint32 pcb
uint32 pca
uint32 serial
uint32 firmware_major
uint32 firmware_minor
float64 board_resistance
float64 max_pwm_ratio
float64 hw_max_current
bool poor_measured_motor_voltage
ethercat_hardware/RawFTData
Field:

Raw Data from WG035 F/T input via WG006 (gripper MCB).

# Raw Data from WG035 F/T input via WG006 (gripper MCB).
RawFTDataSample[] samples  # The realtime loop receives upto 4 new samples each 1hKhz cycle 
int64 sample_count         # Counts number of samples
int64 missed_samples       # Counts number of samples that were missed
ethercat_hardware/MotorTrace
Field:
Header header
string reason
ethercat_hardware/BoardInfo board_info
ethercat_hardware/ActuatorInfo actuator_info
ethercat_hardware/MotorTraceSample[] samples
ethercat_hardware/MotorTemperature
Field:
  • stamp (time) –
  • winding_temperature (float64) –
  • housing_temperature (float64) –
  • ambient_temperature (float64) –
  • heating_power (float64) –

Sample of motor heating information

# Sample of motor heating information
time    stamp
float64 winding_temperature
float64 housing_temperature
float64 ambient_temperature
float64 heating_power
ethercat_hardware/RawFTDataSample
Field:
  • sample_count (uint64) –
  • data[] (int16) –
  • vhalf (uint16) –

One raw Data sample from WG035 F/T input via WG006 (gripper MCB).

# One raw Data sample from WG035 F/T input via WG006 (gripper MCB).
uint64  sample_count
int16[] data
uint16  vhalf
ethercat_hardware/MotorTraceSample
Field:
  • timestamp (float64) –
  • enabled (bool) –
  • supply_voltage (float64) –
  • measured_motor_voltage (float64) –
  • programmed_pwm (float64) –
  • executed_current (float64) –
  • measured_current (float64) –
  • velocity (float64) –
  • encoder_position (float64) –
  • encoder_error_count (uint32) –
  • motor_voltage_error_limit (float64) –
  • filtered_motor_voltage_error (float64) –
  • filtered_abs_motor_voltage_error (float64) –
  • filtered_measured_voltage_error (float64) –
  • filtered_abs_measured_voltage_error (float64) –
  • filtered_current_error (float64) –
  • filtered_abs_current_error (float64) –
float64 timestamp
bool    enabled
float64 supply_voltage
float64 measured_motor_voltage
float64 programmed_pwm
float64 executed_current
float64 measured_current
float64 velocity
float64 encoder_position
uint32  encoder_error_count
float64 motor_voltage_error_limit
float64 filtered_motor_voltage_error
float64 filtered_abs_motor_voltage_error
float64 filtered_measured_voltage_error
float64 filtered_abs_measured_voltage_error
float64 filtered_current_error
float64 filtered_abs_current_error
ethercat_hardware/ActuatorInfo
Field:
  • id (uint32) –
  • name (string) –
  • robot_name (string) –
  • motor_make (string) –
  • motor_model (string) –
  • max_current (float64) –
  • speed_constant (float64) –
  • motor_resistance (float64) –
  • motor_torque_constant (float64) –
  • encoder_reduction (float64) –
  • pulses_per_revolution (float64) –
uint32 id
string name
string robot_name
string motor_make
string motor_model
float64 max_current
float64 speed_constant
float64 motor_resistance
float64 motor_torque_constant
float64 encoder_reduction
float64 pulses_per_revolution

Service types

ethercat_hardware/SoftProcessorFirmwareRead
Field (Request):
 
  • actuator_name (string) –
  • processor_name (string) –
Field (Response):
 
  • success (bool) –
  • error_msg (string) –
  • instructions[] (uint32) –
string actuator_name     # name of actuator that soft-processor is part of (ex : r_gripper_motor)
string processor_name    # name of soft-processor to firmware to read
                         # certain actuators may have more than one soft-processor (ex : accel, pressure)
---
bool success             # true if firmware was successfully read from device
string error_msg         # descriptive error message if call was not successful
uint32[] instructions    # list of firmware binary instructions.  
                         # not all soft-processors instructions use all 32bits for each instruction
ethercat_hardware/SoftProcessorFirmwareWrite
Field (Request):
 
  • actuator_name (string) –
  • processor_name (string) –
  • instructions[] (uint32) –
Field (Response):
 
  • success (bool) –
  • error_msg (string) –
string actuator_name     # name of actuator that soft-processor is part of (ex : r_gripper_motor)
string processor_name    # name of soft-processor to firmware to write
                         # certain devices may have more than one soft-processor
uint32[] instructions    # list of firmware binary instructions 
                         # not all soft-processors instructions use all 32bits for each instruction, 
                         # non-used bit should be zero-filled
---
bool success             # true if firmware was successfully writen to device
string error_msg         # descriptive error message if call was not successful
ethercat_hardware/SoftProcessorReset
Field (Request):
 
  • actuator_name (string) –
  • processor_name (string) –
Field (Response):
 
  • success (bool) –
  • error_msg (string) –
string actuator_name     # name of actuator that soft-processor is part of (ex : r_gripper_motor)
string processor_name    # name of soft-processor to soft-reset, 
                         # certain devices may have more than one soft-processor
---
bool success             # true if processor was successfully reset
string error_msg         # descriptive error message if call was not successful