Dynamixel - U2D2 communication speed

  • Servo: Dynamiel XM430 series

  • Environment: Using ROS Noetic, on Ubuntu 20.04. Im using the moveit framework to plan trajectories

  • Code: dynamixel sdk using python, using the bulk read write function to move a robot arm.

  • Problem:
    I would like to know the best way to keep receiving motor feedback while a planned trajectory is being executed. i.e. if the motor is getting commands at 100Hz, is it possible to have the motor send is position at the same frequency without missing any move commands/messages?

I have already modified the return delay time for each motor to 0.

Due to the half duplex communication used by DYNAMIXEL actuators, they cannot send and receive packets simultaneously.

My recommendation for implementing this while maximizing communication speed and minimizing packet errors is to implement polling for position using Fast Sync Read (or Fast Bulk Read if you need to read multiple different addresses.) These commands return a single status packet for any number of commanded DYNAMIXELs, to minimize time spent sending return packets for multiple read commands.