When placed in position control mode and given a goal position, the motor moves towards the goal position but stops before reaching that position (+- 10 positions i.e. +- 0.88 degrees). Example: If i give the goal_position as 1000 , the motor stops at 995 (present_position); goal_position 1450, actual position 1446
I am using ROS dynamixel SDK to control the motors. What can be done to make the motors reach the position exactly?
You can adjust the difference between Present Position and Goal Position with PID gain settings.
Increasing I gain will allow you to decrease the difference, but if there's a load on the output shaft(horn), there will be some differences even with adjusting PID gains.
These gaps could get bigger within a certain limit with bigger load.
I am using these same servos with almost no load on them.
Using the following position PID settings I get almost always an accurate positioning.
also I pulled to zero the moving threshold.
hope this helps.