A quadruped robot using cheap servos and load cells for ground force feedback. Uses Teensy and PCT.
I've redesigned the leg and implemented a force-sensing resistor (FSR) at the foot. This gives an immediate ground reaction feedback which should be faster than mounting the FSR at the leg root.
To test this leg prototype I've also built a self-standing rig made out of arrow parts and 3d printed corners. The rig is light enough that is easily lifted if the leg pushes against the ground. Therefore it is also a good setup to test whether the leg reaction to touching the ground is fast enough so as not to disturb the balance of the robot body (in a 4-leg configuration).
So far results are encouraging, as can be seen at the video below. The maximum reaction force recorded by the scale is around 50 grams. This is low enough that shouldn't be a disturbance to the quadruped stability. Even if it is, lowering the leg movement speed should be enough to improve reaction.
Next step is to write a routine to have the leg actually walk carrying the rig with it – sort of a "monopod" if you like.
In a project that comprises multiple identical parts (four legs in this case) it is always best to sort out any issues while designing the single part, before moving on to figuring out how the parts will come together. With this in mind I tried to connect and calibrate the load cells that I would be using on each leg, to the leg prototype that I built last week.
Unfortunately the deviations on the load cells were so high that it proved impossible to obtain a consistent behavior with the setup I am using, which includes an op-amp to read the strain from the load cell whetstone bridge. An alternative would be to use the HX711 ADC that is commonly in use with load cells, but that comes with it's own sets of issues (e.g. low sampling rate, drift etc.).
Instead I considered giving Force Sensitive Resistors a try. I had done an elementary test way back with an FSR and a volt meter and was not really satisfied. But yesterday I did a proper measurement circuit and got satisfactory results. So now I'm back to the drawing board to design a new FSR bracket to be located at the root of the leg.
I spent some time in the past few days to test the two leg designs that I came up with. The first one is a more "traditional" one where the two servos are placed in series just below the hip where the femur bone would be. The second one places the motors at the hip (root) of the leg, and uses a scissor mechanism to realize 2-DOF movement.
Overall I've found the second prototype to function better, providing more accurate and smoother motion, despite the fact that it's a bit harder to build.
After facing a few setbacks related to proper dimensioning in 3d printed components, I finally managed to assemble the alternative leg design today and perform a simple test using a servo tester, to verify motion behavior. The video is below:
This initial test shows satisfactory motion, although the cheap servos have a different PWM range that the servo tester supports (!) so the full range of motion can't be realized with this setup. I'll be conducting proper testing in the days to come, so stay tuned.
I just finished modeling an alternative leg design with motors mounted at root. This should allow for faster leg response, although the overall width of the design increases due to the placement of the servos. Will print and test tomorrow.