Current sensors for ground contact sensing

A friend of mine had this idea that we could use current sensors to measure how much current the servos on a leg draws. When a leg makes contact with the ground and tries to push down the leg further (or gets blocked in any other way), it should draw much more current. This gives us a ground contact sensor that is independent on the angle the leg is put down with.

The only problem i can see with it is that more powerful servos may not be as affected in current draw as weaker ones, and we should aim for using more powerful servos.

What do you think? Might it be something to look more deeply into?

it can be done of course although unless you are making a custom servo control board, such as the OpenServo project for example, adding current sensors to each servo output could get messy fast.
If you had the time and money it might be possible to design a very small PCB that has a 3-pin socket on one end, a 3-pin header on the other end, and a current sense resistor + current to voltage converter IC such as the ZXCT1009FTA in the middle to allow an a/d converter to read the current. physically you would need to keep the thing thin enough that you can stack multiples side-by-side… or maybe just design a 4-up version since many of the servo output blocks are in groups of 4. you could possibly include a 4-channel mux to allow reading all 4 servos using only 1 analog input. anyway, something like that would minimize the physical interference that adding the sensor presents and allow using normal unmodified servos.

It is possible, though I prefer contact switch, because, as you mention, the current depends on load. The load (or reaction force) at the tip of the leg is not always constant throughout the sequence.

And when the leg reach the end of the cycle to lift the leg, a small spike will appear, due to rapid movement and reserve rotation of servo motors. It quite challenging. If the purpose is only for ground contact, I still prefer switch :wink:

Couple with an accelerometer, it will give additional feedback to the controller. Whenever the leg comes to higher ground, and start tilting, the accelerometer will provide feedback to the controller. But there is a fault in this design too! It can’t sense lower ground, until it start falling, so a good contact switch is also important here.

I am glad that somebody posted this. I have thinking the same thing.

Additionally, I believe the Dynamixel line of servos (AX-12+, etc) have built in feedback on their internal current and voltage.

They do but they are somewhat different to use… different operating voltages, half-duplex serial interface for control, rather custom mechanical interface to them. Some folks have manage to mix and match them in projects with standard hobby servos but it isn’t an unsophisticated way to go. :wink:

In the below thread I’ve done some basic testing for ground contact detection. It is important to closely define what your ultimate goal is and do a lot of thinking and basic testing of the idea prior to spending the $$$. It is a real buzz kill to spend the $$$ only to find some critical issue has been overlooked.

lynxmotion.net/phpbb/viewtopic.php?t=4658