Newsgroups: comp.robotics
Path: brunix!uunet!mcsun!Germany.EU.net!news.netmbx.de!mailgzrz.TU-Berlin.DE!math.fu-berlin.de!ira.uka.de!sol.ctr.columbia.edu!usc!elroy.jpl.nasa.gov!news.claremont.edu!jarthur.claremont.edu!bgribble
From: bgribble@jarthur.claremont.edu (Bill Gribble)
Subject: Re: A sense of balance
Message-ID: <1993Feb1.025125.26895@muddcs.claremont.edu>
Sender: news@muddcs.claremont.edu (The News System)
Organization: Harvey Mudd College, Claremont, CA 91711
References: <1993Jan31.072524.14704@adobe.com>
Date: Mon, 1 Feb 1993 02:51:25 GMT
Lines: 59

In article <1993Jan31.072524.14704@adobe.com> epperson@adobe.com (Mark Epperson) writes:
>I have been thinking of a sensor for center-or-gravity (balance).  The general
>idea is some form of rolling ball inside of a sphere or parabaloid.
>What do you think?  How would you solve the problem(s)?

I'm just finishing up a project which solves a similar problem.  Our robot
consists of a 18'' long, 8'' diam, 3/16'' thick aluminum tube, on which the
control system balances.  It's basically a mechanical log rider or unicycle
rider.  Something like this:

                         ________
                         |      |  <-- 68hc11+batts+motor+gyro
                       -----O------
                         X------X   
                        / o    o \
                       |          |
                        \        /
                         --    --   <--- tube
                           ---- 
I suck at ASCII art.  The little 'o' inside the tube are stabilizing rollers
that keep the box on top from wobbling (but not from falling down the face
of the tube.  The '----O---' is the base plate of the body with the drive
wheel (an aluminum wheel with a rubber RC racing slick tire) sticking
through.  

Anyway, the whole problem is one of balance, so maybe our solution will be
useful.  I just turned a 3'' diam x 3/8'' thick aluminum disk for a gyro
(being quite careful to make sure it was very true) and attached it to a
low-torque DC motor, then put the whole thing on a frame with bearings.  We
only need to balance in 1 dimension, and a single optical encoder which we
borrowed from the department stockroom gives about 1-degree precision.  It
looks something like this (sorry again for the sucky art) (top view)

               +-------------+------------+
               |         +---+---+        |
          +--+ |      __/|       |\__     |
 Encoder->|  | |    _/   | _____ |   \_   |
 (fixed   |  | |   /     |/     \| D   \  |
     to   | -+-+  |      || Mot || i    | +-- <-- bearing               
  robot   |  | |   \_    |\_____/| s  _/  |       
  frame)  |  | |     \__ |       | c_/    |
          +--+ |        \|       |/       |
               |         +---+---+        |
               +-------------+------------+                 
                             A___bearing
                                  
So the gyro stays level (it being a gyro, and having as little torsional
loading as possible) and the robot, if it tilts, rotates ``around'' the
fixed gyro.   

The big problem with swinging LEDs and things is damping them. What happens 
if  you shake the thing, or (much more important in a robot) you accelerate
the thing linearly and then stop it?  does the angle still read properly? 
The gyro solution is cheap and practical and required a few hours of lathe
and mill work to make.  

>-Mark Epperson


