Leg Data and a 1501MG Servo Problem
Piston characteristics |
I connected the servos, the pressure sensors and the hip
rotation sensors to an Arduino test program. This allowed me to measure the
pressure in each piston as the servos moved though their entire range. This
back-pressure is caused by the heavy return springs pushing in on the piston,
slightly compressing the air inside. Because the piston head has seven square
inches of surface area, I can calculate the force on the springs as well. I
also measured the knee angle and hip to foot distance for each servo position.
The results are summarized in the excel graph.
Rotation sensor data. |
The hip angle sensors produced these digital outputs
and voltages for each hip angle. Note that the right and left leg data are mirror images. The leg is perpendicular to the floor at an angle of 90º. The angle gets lower as the leg swings forward; higher as it moves backward.
Power HD 1501MG servo |
I think I found a solution to the servo problem. I am going
to convert these analog servos into digital servos. I found an excellent
white-paper on how to do this:
Analog to digital servo conversion. |
In the servo, the potentiometer is replaced with two fixed
resistors; causing the servo input signal to control servo speed, not servo
position. The servo potentiometer output is sent back to the microprocessor to
use to control the servo speed. Added benefits are: real-time info on the
servos actual position, and also, direct control over servo speeds, making
movement smoother. The down-side is that I will need two more controller analog
inputs and that my code will be more complex.
*** The 1501MG servos are good. See July 19, 2014 entry for explanation.
*** The 1501MG servos are good. See July 19, 2014 entry for explanation.