DPRG
DPRG List  



[DPRG] Velocity Profiling move of RC Servos

Subject: [DPRG] Velocity Profiling move of RC Servos
From: Chuck McManis cmcmanis at mcmanis.com
Date: Sun Dec 8 17:12:01 CST 2002

At 04:10 PM 12/8/2002 -0600, Randy M. Dumse wrote:
>You, or anyone, got a good site or reference on kinematics and
>inverse kinematics?

If you Chritchlow's book "Introduction to Robotics" section 6.6 has a good 
overview and section 6.7 talks about building a controller based on the 
understanding of the kinematics. ISBN on this book is 0-02-325590-0 (some 
Amazon sellers have it for as low as $5.00) The references at the back of 
chapter 6 would be a good start too.

Also another source of interesting inverse kinematics information is the 
game industry as they are always looking for ways to get a game character 
>from where it is to where it should be in a natural way.

> > Alternatively
> > with appropriate trimming components and a dual
> > op-amp you could bring out
> > a 3 wire (position, load, ground) feed back connector
> > and hook it into the
> > control processor (probably an Iso-POD in your case :-)
>
>Yes, that sounds better. We have the 8 ch of 12bit A/D there.
>Might as well make use of it. Atleast I can direct read 4 of the
>eight servos. Have to think about what that means for the 5th
>servo. None are non-critical, in any sense. I'd have to run one
>open loop, or come up with an alternative plan... hum...

You could always put an analog MUX on the inputs.

>Well, our '807 IsoPod(TM) in layout has 16 ch. of A/D.

That would be even better :-)

>We looked at the swing on the center tap of the pot, and it was
>limited from .5 to 2.3 or so. That's a nice fit for the Pod's
>A/D being limited to 3V inputs.
>
>The supply signal presents a different problem. That opamp would
>have to be special, CMOS as a minimum I'd think. It would have
>to work up very close to its top rail, and output the signal
>relative to its bottom rail.

Not necessarily, remember that you're worried about relative magnitude not 
absolute values so something like:

                             Rf
                        +---/\/\------+
                        |             |
                   R1   |  +------\   |
       VPower ---\/\/---+->| -     \  |
                   R2      |    Out >-+----
       VSense ---\/\/---+->| +     /
                          |   +-------/
                          |
                          /
                          \ R3
                          /
                          \
                          |
                         Gnd

(sorry for the lousy ascii schematic, this is from "Design of Op-Amp 
Circuits" by Howard Berlin, the "difference amplifier")

The output is defined by:

   Vout = - (Rf/R1)Power + (1+(Rf/R1))(R3/(R2+R3))Sense

Or to simplify, pick your gain and set Rf and R3 to be G*R1, and make R1 
and R2 equal.

So for the example you're looking at may 150mV to be full scale and your 
A/D can read up to 3V so you pick R1, R2 to be 10K and then Rf and R3 to be 
200K (20 * R1). For an input of 50mV you get an output of 1V and with an 
input of 150mV an output of 3V.

> > Another point, there was a guy (NetMedia?) selling a
> > servo controller that
> > sensed the current to the servos locally so with that
> > hack you need only
> > the position data to be completely wired in.
>
>I've heard of this. Is Net Media's whole thing just reading
>supply current? Or do you know if he has a more elaborate scheme
>than that?

That was the whole deal, sense resistors on the servo controller in series 
with the power line. I've got one of them somewhere in my parts bin.

>We could set up a rig where it pushes buttons at opposite ends
>of its range of motion, then set it going, and record when the
>buttons stop getting pushed. Jim, you want to run one of these
>to failure to find out? What do you think?

That would definitely be an interesting test. But I'd go a bit further, put 
four push buttons in different points of the work envelope and have it push 
them in series. Then you can determine if its ability to trace a path 
failed before its ability to move to either extreme failed.

--Chuck


More information about the DPRG mailing list