Skip to content

Issue with Reading Motor States on Daisy Chained Lynxmotion HT1 Integration with ROS2 Humble #3

@bely2803

Description

@bely2803

Hello there! I am currently integrating the Lynxmotion HT1 motors into my robot using this hardware interface. Here is a brief overview of my setup:

Hardware Setup: 4 HT1 motors wired in daisy chain configuration, all running the firmware version 370.
Software Setup: Using ROS2 Humble.

Problem Description:

I am able to send commands successfully to all 4 motors without any issues. However, I encounter a problem when trying to read the motor states:

  • Only the first requested state of the first motor passed to lss::Bus::write_slot_config(DeviceIndex& index) in the function LssBusHardware::on_activate(const rclcpp_lifecycle::State &) is received.
  • No states are received for subsequent motors.

Workaround:

To resolve this temporarily, I applied a patch that inserts dummy motor IDs between the actual motor IDs passed to lss::Bus::write_slot_config(DeviceIndex& index). With this workaround, I am able to receive all requested motor states.

Example: My motor IDs are {10, 20, 30, 40}, but I modify the call to include {10, 15, 20, 25, 30, 35, 40}.

Questions/Clarification Requests:

  • Is this behavior expected due to some internal mechanism of lss::Bus::write_slot_config()?
  • Are there recommended settings or configurations that might avoid the need for dummy IDs?
  • Is there a potential bug in handling the read states across multiple motors in a daisy chain setup?

Thank you for your assistance and any guidance you can provide on resolving this issue!

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