Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

AX-12 Current, Position, Speed, Temp Measurement Capability

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
2 postsPage 1 of 1
2 postsPage 1 of 1

AX-12 Current, Position, Speed, Temp Measurement Capability

Post by matt_fl » Sun Oct 04, 2009 4:58 pm

Post by matt_fl
Sun Oct 04, 2009 4:58 pm

Looking at the AX_12 schematics, it appears that the hardware is capable/not capable of the following:
-no current measurement , because there is absolutely no current sensing built in.
The only thing this hardware could do to estimate current is relate PWM to current when the servo is holding, NOT during motion (it doesn't measure back EMF either).
-no speed sensing built in.
The best it could do to estimate speed would be calculate based on successive position changes (based on the potentiometer , which is noisy and prone to all sorts of errors). The problem is that while position errors tend to average and even out for position holding , the same position errors yield relatively larger errors for speed calculation .
-position is based on the feedback potentiometer , which is not the greatest position sensing device .
It has noise, thermal drift, mechanical wear, etc.
-temperature is via a thermistor, which is not the most acurate , but probably adequate. Although modern temp sensors cost very little and do not require more board space than a thermistor , nor do they require support circuitry.
-Even an easy thing such as properly bypassing the AREF pin wasn't done .
It appears that a slight modification to the board could add real current measurement capabilities during motion.
A sense resistor needs to be added + a single opamp and wire its output to one of the unused A/D inputs (ADC1 or ADC4-7) .
However, the firmware will be more work , because it needs to be changed or rewritten .
Does anybody have a source file for the AX12 firmware or know how to get it, to use as a starting point ?
Writing brand new firmware is certainly doable except for the fact that the specification is too loose or vague in some respects so it's going to be a lot of measurements+trial and error, prone to future revisions backward compatibility problems etc.
Looking at the AX_12 schematics, it appears that the hardware is capable/not capable of the following:
-no current measurement , because there is absolutely no current sensing built in.
The only thing this hardware could do to estimate current is relate PWM to current when the servo is holding, NOT during motion (it doesn't measure back EMF either).
-no speed sensing built in.
The best it could do to estimate speed would be calculate based on successive position changes (based on the potentiometer , which is noisy and prone to all sorts of errors). The problem is that while position errors tend to average and even out for position holding , the same position errors yield relatively larger errors for speed calculation .
-position is based on the feedback potentiometer , which is not the greatest position sensing device .
It has noise, thermal drift, mechanical wear, etc.
-temperature is via a thermistor, which is not the most acurate , but probably adequate. Although modern temp sensors cost very little and do not require more board space than a thermistor , nor do they require support circuitry.
-Even an easy thing such as properly bypassing the AREF pin wasn't done .
It appears that a slight modification to the board could add real current measurement capabilities during motion.
A sense resistor needs to be added + a single opamp and wire its output to one of the unused A/D inputs (ADC1 or ADC4-7) .
However, the firmware will be more work , because it needs to be changed or rewritten .
Does anybody have a source file for the AX12 firmware or know how to get it, to use as a starting point ?
Writing brand new firmware is certainly doable except for the fact that the specification is too loose or vague in some respects so it's going to be a lot of measurements+trial and error, prone to future revisions backward compatibility problems etc.
matt_fl
Newbie
Newbie
Posts: 1
Joined: Sat Oct 03, 2009 6:30 pm

Post by i-Bot » Sun Oct 04, 2009 10:18 pm

Post by i-Bot
Sun Oct 04, 2009 10:18 pm

The AX12 is obviously full of compromises as you describe and the source is not available. The interface is fairly well defined, so it is possible to write alternative software. Also alternative software can be bootloaded to the AX12.

The AX12 is primarily a positioning servo, so velocity and torque are not part of its primary job description and not really necessary in the first order. The temperature measurement is less of a problem in accuracy, but it would be better if it was on the motor!.

You may find that the OpenServo is a better starting point for you as it meets your expecations better and source is available. However the AX12 is just part of the whole bioloid suite, so you lose all that. I haven't seen an OpenServo dance yet !

I know RandomMatt and StuartL have done some alternative AX12 code, and I have done some AX interface compatible code for larger motors with optical encoders based on Elm.

The AX12 remains a compromise, but an adequate and good value one for entry level robotics including small humanoids.

Please keep us informed of your objectives and progress.
The AX12 is obviously full of compromises as you describe and the source is not available. The interface is fairly well defined, so it is possible to write alternative software. Also alternative software can be bootloaded to the AX12.

The AX12 is primarily a positioning servo, so velocity and torque are not part of its primary job description and not really necessary in the first order. The temperature measurement is less of a problem in accuracy, but it would be better if it was on the motor!.

You may find that the OpenServo is a better starting point for you as it meets your expecations better and source is available. However the AX12 is just part of the whole bioloid suite, so you lose all that. I haven't seen an OpenServo dance yet !

I know RandomMatt and StuartL have done some alternative AX12 code, and I have done some AX interface compatible code for larger motors with optical encoders based on Elm.

The AX12 remains a compromise, but an adequate and good value one for entry level robotics including small humanoids.

Please keep us informed of your objectives and progress.
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am


2 postsPage 1 of 1
2 postsPage 1 of 1