Newsgroups: comp.robotics
Path: cantaloupe.srv.cs.cmu.edu!nntp.club.cc.cmu.edu!hudson.lm.com!netline-fddi.jpl.nasa.gov!elroy.jpl.nasa.gov!swrinde!cs.utexas.edu!rutgers!nmt.edu!hersh
From: hersh@nmt.edu (Dave Hershberger)
Subject: Re: Force feed back from R/C servo
Message-ID: <1994Dec28.185531.3683@nmt.edu>
Keywords: force servo feedback
Organization: New Mexico Tech
References: <3d6sp0$p2u@ixnews1.ix.netcom.com> <3deb44$1ia@trog.dra.hmg.gb>
Date: Wed, 28 Dec 1994 18:55:31 GMT
Lines: 49

In article <3d6sp0$p2u@ixnews1.ix.netcom.com>, dbiltcli@ix.netcom.com
(David Biltcliffe) writes:

>Need some help with force feedback from a Hobbico C5-51 R/C Servo. 
>I'm building a six legged robot and using R/C servos for leg movement. 
>I'm also using a PIC16c84 to send the pulses to the servos. What I need 
>is some way to tell when moving a leg forward if it hits up against an 
>obstacle, and when moving a leg down to measure how mush force is used 
>to hold up the body. One way could be to monitor the current drain on 
>the servo because when it hits the obstacle, the servo will stall. Or 
>maybe if there is a way to tap the servos circuit to get a difference 
>signal.

I successfully built a force-feedback circuit for my Futaba hobby
servos. I took the back off the servo case to expose the solder
side of the control PC board, and using my scope with the servo
active, I looked for contacts whose signal looked like it varied
with how much work the motor was doing. I found 2 pulse-width
modulated signals which correspond to the difference between
the command signal and the current shaft angle, one for each rotation
direction.

The signals are not logic-level, but vary between, say, 1 and 2 volts,
so I built a simple comparator circuit to convert these to logic
level. I fed these into my 68HC11 and used the Input Compare feature
to measure the timing.

To connect to these points, I used some thin stranded wire and
soldered directly to the PC board in the servo. Obviously you need
to be careful when doing this to avoid damaging the servo. Then
I threaded the pair out through the same hole that the control and
power wires use.

One thing to keep in mind with this setup is that it measures the
error signal, not the force. Therefore when you tell your
servo to move to a different angle, you'll get an error signal for
a few wavelengths until it is able to turn the shaft to the new
position, even if there is no resistance to the movement. If your
software can take this into account, it works fairly well.

There's also the problem of saturation - if the external torque on the
servo shaft is actually turning the shaft against the motor, the error
signal will be saturated, and you won't know how much past saturation
you are.


Have fun!

-Dave Hershberger            hersh@nmt.edu
