Torque Control in AX-12A

What model of servo are you using?
AX-12A servo motor

Describe your control environment. This includes the controller or interface, and any power source.
I intend to control the servo motor using a Raspberry Pi 4b through MATLAB with the aid of the Raspberry PI support package.

Specify the operating mode for applicable models, and any firmware settings you are using.
I’m going to use the servo in joint mode.

Include pictures if possible.

Include a full description of the issue.
I’m working with the AX-12A motors and my goal is to try to implement a torque control of robot manipulator (using the computed torque method) by using position or velocity commands. I have the following questions concerning the load estimation and torque control of these motors:

  1. Does the current load field refer to outer load or does it refer to the motor’s internal torque? Does it reflect the value of the outer disturbance torque applied on the motor?

  2. How accurate is the load estimation in the AX-12A motors? it’s mentioned that it’s an inferred value and not based on a true measurement of current with no mention of relative accuracy. Precisely, how well suited are these measurements to perform a dynamic identification of the robot arm?

  3. Does the Compliance curve (torque vs position error) imply that there is a proportional controller between the torque and the position error at any instant (of course neglecting the saturation limits) ? Is this the type of controller implemented in the AX-12A? In other words, is it possible to find out the motor’s internal torque value by measuring the position error and reversing this linear relation (again assuming the work is in the linear region) ? to my knowledge, it’s possible to adjust the parameters of this curve so the proportional gain is actually known.

Any help or discussion is really appreciated.
Thank you very much for your effort and attention :blush:

1 Like
  1. The AX series does not have a current sensor. The Present Load(40) value can be used for simple reference because it calculates the direction of force through the position value.

  2. For me Compliance Margin and Slope is similar to combined PID controller. This is the step count “margin of error” that the Dynamixel will use when attempting to follow a trajectory. When DYNAMIXEL have a margin between Present Position and Goal Position, this can be useful to compensate position error. But this does not mean that you can exatly find torque constant or torque value. You should find great value by doing experiment approach.

1 Like

Thank you very much for your reply. I would just like to clarify … Does the Compliance curve reflect the idea that the inner controller of the AX-12A motor “Applies” a torque proportional to the position error when the error is confined to the linear region? If so, does the same idea work for the RX-28 motors?
This idea is pretty important since I’m trying to get the most out of these motors to compensate for the dynamic effects of the robot manipulator that I’m working on for the purpose of creating a good tracking controller.

According to the Robotis e-Manual, both the AX-12 and RX-28 use the same control approach, along the same type of Parameters Punch, Margins, Slopes and Present Load.

If I understand your posting correctly, you plan to use the Present Load parameter (Add 40) for some kind of tracking controller?

Quite a few years back, I did an application of “Present Load” to achieve a very crude “Force Control” effect so that a single AX-12 gripper could adjust to objects of different sizes. You can check out this YouTube video to see how Present Load was used for my application. Maybe it can help you evaluate or design your own approach to use Present Load.

My first goal was to try to perform a dynamic identification process of the robot manipulator that I’m working on (I’m trying to find the relation between applied torques and the accelerations of the robot joints). The second part was to use this model to enhance the built-in tracking controller of the AX-12A motors by using a suitable control algorithm.

Second of all, thank you very much for sharing your amazing work. It really helped me get my head around the present load parameter. So basically, present load gives a rough estimate of the load the motor is trying to resist. But now I’m getting the impression that the present load parameter might not be accurate enough to perform an identification process of the dynamic model of the robot controller so I’ll have to look for other solutions.

Again, thanks a lot for your response and for taking the time to share your work. It really helped me get a better feeling of the situation.