Newsgroups: comp.robotics
Path: brunix!news.Brown.EDU!noc.near.net!howland.reston.ans.net!vixen.cso.uiuc.edu!uwm.edu!caen!batcomputer!cornell!rbrown
From: rbrown@cs.cornell.edu (Russell Brown)
Subject: Re: Arm Position
Message-ID: <1993Aug20.041720.26802@cs.cornell.edu>
Organization: Cornell Univ. CS Dept, Ithaca NY 14853
References: <1993Aug18.165654.153@merlin.dev.cdx.mot.com>
Date: Fri, 20 Aug 1993 04:17:20 GMT
Lines: 45

In article <1993Aug18.165654.153@merlin.dev.cdx.mot.com> johnb@sgi.dev.cdx.mot.com (John Bottoms) writes:
>I am interested in building an arm. It looks like this:
>
>                 o
>                 |\
>                 | \
>                 |  \
>                 |   o---o
>                 |        \
>                 |  _
>            /    | |\
>            |        |
>            \-------/
>
>Pretty good, huh?
>
>So it's got 4 degrees of freedom and is a small arm used 
>to do pick and place.  It is driven by something using 
>tendons running up the arm to each joint. Since it's 
>small I can't put limit switches on it like you might 
>with a big arm. Some of the motors may need to turn more 
>than 360deg to get the required forced to move the arm. 
>
>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.
>

	Well, given the more than 360 degree stipulation, there's not going to be any way
to determine the robot's initial position completely from scratch.  I would suggest, however,
a solution similar to the one used by Zebra Robotics / Integrated Motions Incorporated in
their Zebra Zero systems:  The robot has a "nest" in its workspace that is used as a
resting place for the robot when it is not being used and also as a device for "homing"
the arm.  What they do is to sort've wobble the wrist back and forth while pulling back
against the nest, so that they get a good solid reference position versus the workspace
and repeatable initial joint angles.  Without force control, you won't want to do quite
this, but if there is a position in your arm's workspace that can only be reached by one
set of joint angles, where you can put some sort of homing nest, you can home the robot
by putting its wrist/end-effector in the nest and reading initial encoder values.  This
will particularly work well if you have absolute encoders, but will also work well with
the (more typical) incremental encoders (just with a bit more software work).

					just a thought.
					Russell G. Brown

