PDA

View Full Version : closed loop speed control on AX 12A



yang
08-15-2013, 02:42 PM
Hello everyone,

I am new to using Dynamixel AX-12A. In my project I need to perform closed-loop speed control on these motors in WHEEL MODE.

The only way I can think of is to use 'Present Moving Speed' as feedback and do a PID or PI. But I am not sure 'Present Moving Speed' reflects the correct speed.

Has anyone tried to do closed-loop speed control on AX-12A before? Any better ideas?

Thanks,
Yang

YoMarchYo
08-15-2013, 03:51 PM
Is the purpose of the project to learn closed loop control? If not you might as well just use joint mode since that's already closed loop.

Anyways, The manual states that if it's in Wheel Mode you're only controlling torque. And you can't use present speed to measure rotational frequency when in Wheel mode. You'll have to get an encoder to measure the speed of rotation and base your PID off that.

yang
08-15-2013, 04:14 PM
In addition to position, which I understand joint mode provides, I also would like to have speed controlled.

Thanks for the reply, I would look into suitable encoders.

YoMarchYo
08-15-2013, 04:25 PM
If you have to use wheel mode then just make sure you buy an absolute encoder, you'll be able to control speed and position with that.

tician
08-15-2013, 04:40 PM
I am new to using Dynamixel AX-12A. In my project I need to perform closed-loop speed control on these motors in WHEEL MODE.

Why the AX-12? It is not well suited to external control as a plain motor driver (H-bridge and motors), so why not just use some small gear motors, motor driver boards, and cheap encoders from some place like pololu or solarbotics?

The only way I can think of is to use 'Present Moving Speed' as feedback and do a PID or PI. But I am not sure 'Present Moving Speed' reflects the correct speed.
Not even "Present Load" reflects a real-world value, only the PWM value applied to the H-bridge.


Anyways, The manual states that if it's in Wheel Mode you're only controlling torque.
And by "torque", Robotis actually means "applied PWM value" for all servos except the EX-106, MX-64, and MX-106.


In addition to position, which I understand joint mode provides, I also would like to have speed controlled.
The AX-12 uses a simple trapezoidal control algorithm when in joint mode, and it uses only a potentiometer to roughly calculate speed of the servo horn as it is far more interested in controlling position of the horn, not its speed. If you want accurate speed control, you want a quadrature encoder on the output shaft of the motor before the gear train, not on the system output shaft (horn). Doing that will require modifications to the AX-12, such as extending the motor shaft through either face of the servo and connecting that to a quadrature encoder. So, as said before, if you are not absolutely required to use an AX-12 for this project, then don't.

yang
08-15-2013, 05:34 PM
Thanks for your in-depth explanation. I think I have a better understanding of the AX-12 now.