-
Notifications
You must be signed in to change notification settings - Fork 6
Description
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!