Skip to content

only can read state_interface, cannot write to command_interface #124

Open
@gitzhangomc

Description

@gitzhangomc

My servo drive is a 1-to-3 type, with one ECAT slave controlling three servo motors. Currently, the ROS2 EtherCAT driver I configured can read all joints state_interface but cannot write to the command_interface. What could be the issue? This is my Ethercat slave configuration file:

Configuration file for Maxon EPOS3 drive

vendor_id: 0x00000748
product_id: 0x0000000B
assign_activate: 0x0300 # DC Synch register
auto_fault_reset: false # true = automatic fault reset, false = fault reset on rising edge command interface "reset_fault"
auto_state_transitions: true

rpdo: # RxPDO = receive PDO Mapping

  • index: 0x1600
    channels:
    • {index: 0x6040, sub_index: 0, type: uint16} # Control word
    • {index: 0x607a, sub_index: 0, type: int32, command_interface: position, default: .nan} # Target position
    • {index: 0x6060, sub_index: 0, type: int8} # Mode of operation
    • {index: 0x27FE, sub_index: 0, type: uint8} # Dummy Byte
  • index: 0x1610
    channels:
    • {index: 0x6840, sub_index: 0, type: uint16} # Control word
    • {index: 0x687a, sub_index: 0, type: int32, command_interface: position, default: .nan} # Target position
    • {index: 0x6860, sub_index: 0, type: int8} # Mode of operation
    • {index: 0x2FFE, sub_index: 0, type: uint8} # Dummy Byte
  • index: 0x1620
    channels:
    • {index: 0x7040, sub_index: 0, type: uint16} # Control word
    • {index: 0x707a, sub_index: 0, type: int32, command_interface: position, default: .nan} # Target position
    • {index: 0x7060, sub_index: 0, type: int8} # Mode of operation
    • {index: 0x37FE, sub_index: 0, type: uint8} # Dummy Byte
      tpdo: # TxPDO = transmit PDO Mapping
  • index: 0x1a00
    channels:
    • {index: 0x6041, sub_index: 0, type: uint16} # Status word
    • {index: 0x6064, sub_index: 0, type: int32, state_interface: position} # Position actual value
    • {index: 0x6077, sub_index: 0, type: int16, state_interface: torque} # Torque actual value
    • {index: 0x6061, sub_index: 0, type: int8} # Mode of operation display
    • {index: 0x27FF, sub_index: 0, type: uint8} # Dummy Byte
    • {index: 0x603F, sub_index: 0, type: uint16, default: 0} # Error Code
    • {index: 0x60F4, sub_index: 0, type: int32, default: 0} # Following Error Actual Value
  • index: 0x1a10
    channels:
    • {index: 0x6841, sub_index: 0, type: uint16} # Status word
    • {index: 0x6864, sub_index: 0, type: int32, state_interface: position} # Position actual value
    • {index: 0x6877, sub_index: 0, type: int16, state_interface: torque} # Torque actual value
    • {index: 0x6861, sub_index: 0, type: int8} # Mode of operation display
    • {index: 0x2FFF, sub_index: 0, type: uint8} # Dummy Byte
    • {index: 0x683F, sub_index: 0, type: uint16, default: 0} # Error Code
    • {index: 0x68F4, sub_index: 0, type: int32, default: 0} # Following Error Actual Value
  • index: 0x1a20
    channels:
    • {index: 0x7041, sub_index: 0, type: uint16} # Status word
    • {index: 0x7064, sub_index: 0, type: int32, state_interface: position} # Position actual value
    • {index: 0x7077, sub_index: 0, type: int16, state_interface: torque} # Torque actual value
    • {index: 0x7061, sub_index: 0, type: int8} # Mode of operation display
    • {index: 0x37FF, sub_index: 0, type: uint8} # Dummy Byte
    • {index: 0x703F, sub_index: 0, type: uint16, default: 0} # Error Code
    • {index: 0x70F4, sub_index: 0, type: int32, default: 0} # Following Error Actual Value

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions