Newsgroups: comp.robotics
Path: brunix!news.Brown.EDU!noc.near.net!howland.reston.ans.net!europa.eng.gtefsd.com!uunet!caen!uvaarpa!cv3.cv.nrao.edu!cv3.cv.nrao.edu!browen
From: browen@lyapunov.aoc.nrao.edu (Bruce Rowen)
Subject: Re: Arm Position
In-Reply-To: jonas@world.std.com's message of Fri, 20 Aug 1993 04: 38:33 GMT
Message-ID: <BROWEN.93Aug20094812@lyapunov.aoc.nrao.edu>
Sender: news@nrao.edu
Organization: National Radio Astronomy Observatory, Socorro NM
References: <1993Aug18.165654.153@merlin.dev.cdx.mot.com>
	<1993Aug20.041720.26802@cs.cornell.edu> <CC1JK9.256@world.std.com>
Date: Fri, 20 Aug 1993 15:48:12 GMT
Lines: 56


   >>Here's my problem. Now do I tell the starting position of
   >>the arm? Even if I use servos which have a zero position I
   >>won't know where the various joints are.
   >>
   >


A lot depends upon how accurate you need to determine the "calibrate"
position of the arm. If the joints hav room to mount and optical
interrupter, you could drive all joints to some "positive" point past
the interrupter. Then back off each joint until a transistion occurs
at the interrupter. You would have to store angular offsets from the
interrupter transistions to your true clabrate position which would
then be used to determine each joints location.

If you have some form of position feedback on the motor itsself, you
could take a similar approach and use the index output of the encoder,
but this time you would have to have the joints startup position
within one motor revolution of it's calibrate position.

I've seen this approach used on many industrial robots with gear
ratios up to 48:1 without much trouble. Given that your 'bot is tendon
driven, slop in the driveline may cause inaccuracies when using the
second approach.

A third approach is to use a fixed "calibration glove" that is used to
constrain the arm into a known position. This works in theory, however
your arm must be stiff, with no slop at the joints to achieve good
accuracy. Most all researchers invloved with robot control know that
it generally is of little use to know the geometry of a robot arm with
great accuracy and base a kinematic model on this information alone.
There are several good ways to have the robot "self-calibrate" itsself
by having the end effector touch several "markers" of known position
and then back out the geometry of the arm from this information. I
have used this technique to calibrate a redundant arm to a high degree
of accuracy. 

Other approaches are to get a rough calibration and use common
adaptive control schemes to correct for unknown geometry and drive
train nonlinearities.

The list is endless. This has been a hot topic in robotic research for
quite some time now. I am a big fan of the adaptive approach since you
dont have to know your arms geometry and general joint slop and wear
are compensated for in a way that maintains high accuracy and stable
control.


--
-------------------------------------------------------------------------------
Bruce Rowen 				National Radio Astronomy Observatory
Scientific Programmer				Array Operations Center
browen@aoc.nrao.edu			  P.O. Box O  Socorro, NM   87801
(505)385-7329					     (505)385-7000
-------------------------------------------------------------------------------
