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 15:26:00 CST 2002

Hey Randy,

First, excellent work. Profiling a complex system such as the Lynx 5 is 
challenging and your success is a wonderful accomplishment.

To answer this question:

At 01:50 PM 12/8/2002 -0600, Randy M. Dumse wrote:
>...is something everybody else has already done, or
>not. Is it old hat? or relatively new (as in generally
>unpublished and unknown to treat RC Servos this way)?

All robotic manipulators need to have velocity profiling in order to be 
able to do end effector path planning. Specifically if you want to move 
>from point A to point B at the highest rate of speed *on a particular 
trajectory* then you have to have this data so that you can model the arm. 
As you can imagine, this is what separates the "good" roboticists from the 
"not so good" roboticists who are programming automated manufacturing. Two 
people, one can assemble a widget in the work cell every 8 minutes and one 
can only assemble it in 10 minutes. That is 180 widgets per day vs 144 
widgets per day, and if power to run the plan it constant at $1000 per day, 
guess who gets the Christmas bonus? :-)

The next step in creating the profile is to profile it under all weight 
loads. So that no matter what the gripper is carrying, you can insure it 
makes it to the destination without hitting anything on the way.

Once an arm is completely profiled, the data is installed in a kinematics 
model of the manipulator and you use inverse kinematics to accomplish 
specific work cell goals. Given the model and your confidence in it you can 
do that work at the highest possible speed (which in the manufacturing 
example above relates directly to the cost to produce something)

The challenge with the Lynx 5 arm is that its lack of feedback to the 
*controller* means that you have to rely on the servos doing their job. 
Because if they don't or you get one that isn't in "spec" for some reason 
suddenly your model of what the arm should do, isn't what the arm is doing 
and that is a Bad Thing.

Fortunately, the servos are *NOT* open loop, in fact everything you need is 
right there but you have to go and get it.

If you are used to modifying servos, then there are two very easy hacks 
that I've used to get access to the "loop inputs" of the servo, first you 
drill a small hole in the side of the servo (like #55, really small but 
just big enough for four wire wrap wires to pass through) and you take one 
piece of wire wrap wire and solder it to the middle pin of the 
potentiometer and bring it out through the hole. Next you clip the positive 
power lead (or desolder it from the small circuit board, and install a 1/8 
watt (1/4 watt if you are paranoid) .1 ohm precision resistor in series 
with it and take two wires (one from either side) and bring those out 
through the hole. Finally you bring a wire out from the ground side of the 
servo to your collection. You've now got four small wires sticking out the 
servo that are:

         ----> Power
         ----> Current sense
         ----> Position sense
         ----> Ground

At this point my controller was close enough to the servos that I just 
wired them to an opamp and a couple of A/Ds to provide load and position 
data but given the distributed nature of the Lynx 5 arm I'm guessing it 
would make more sense to process them locally (ie at the servo) and then 
drop the data on to some sort of local bus. It would actually be an 
excellent use of one of those Motorola Nitron processors. 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 :-)

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.

Of course at this point (fully instrumented servos, profile model, inverse 
kinematics and path planning in the controller) you no longer have a "toy" 
manipulator, it becomes something someone can depend on. At that point Jim 
and you would have to figure out if you ran this thing 24x7 how long before 
the gears in the servos turn to dust :-) I'm guessing you probably wouldn't 
get more than a month or two out of it but would be love to be proven wrong.


More information about the DPRG mailing list