ROBOTIS-GIT / Dynamixel2Arduino

DYNAMIXEL protocol library for Arduino
Apache License 2.0
85 stars 55 forks source link

setGoalVelocity with UNIT_PERCENT not mapping to actual max velocity #64

Open devdrik opened 3 years ago

devdrik commented 3 years ago

When using setGoalVelocity with unit set to UNIT_PERCENT I would expect it to be mapped to the servos max velocity. But instead the servo reaches max speed at around 21% and setGoalVelocity returns false for values above.

Tested on Arduino MKR WiFi 1010 with Dynamixel Shield for Arduino Series. Servo: DYNAMIXEL XL330-M288-T Power Supply: 5V (external through Shield)

ROBOTIS-Will commented 3 years ago

Hi @devdrik Thank you for bring up this issue. The reason that the velocity in percentage doesn't work correctly is that the library defines the maximum value based on the maximum available in the control table. https://github.com/ROBOTIS-GIT/Dynamixel2Arduino/blob/master/src/Dynamixel2Arduino.cpp#L1128 However, the actual value is set to more realistic and effective value, therefore, entering to a higher percentage will be neglected from DYNAMIXEL. I'll review this issue and see how the library can better explain the use of the function. Thank you.