[comp.robotics] ideas for inclination sensors

fredm@media-lab.MEDIA.MIT.EDU (Fred Martin) (10/16/90)

robots must do is climb an inclinated plane.  Thus, I'm soliciting
all of you robot hackers for ideas on inclination sensors.

One obvious such thing is a mercury switch.  In fact, I plan on giving
these to all of my student robot-builders.  But, mercury switches tend
to give you only one bit of data, so either you need a lot of them
poised at strange angles, or you only get crude inclination data.

Another idea is to have a pendulum-like rod mounted on a freely
rotating shaft.  At all times, the pendulum would swing to point down,
and one could use an optical shaft encoder to measure the rotation of
the shaft.

That's about as far as we got before the ideas got pretty random.  Any
suggestions?  I'd be particularly interested in a low-cost,
commercially-available device (wouldn't we all?), although anything
reasonably easy to construct would be wonderful.


Thanks.

	- Fred Martin
	  MIT Media Lab

cphoenix@csli.Stanford.EDU (Chris Phoenix) (10/16/90)

In article <3717@media-lab.MEDIA.MIT.EDU> fredm@media-lab.MEDIA.MIT.EDU (Fred Martin) writes:
>robots must do is climb an inclinated plane.  Thus, I'm soliciting
>all of you robot hackers for ideas on inclination sensors.

Use a free-swinging pendulum with a white bob, and beam infra-red rangefinders
at it.  I don't know how precise you want to get, but if you just want to
know level/not level and which way to turn to point up a hill, this should 
work with as few as 3 IR transmitter/receiver pairs.  You might want to 
feed the receiver outputs pairwise into comparators (op amps?) and then send 
those outputs into thresholders (D-A converters?)  (So I'm not an EE.) 
You might also try mounting one transmitter on the pendulum, and receivers 
around it.

This will give you some data.  I have no idea if it will be enough.  My 
experience with IR is that it has lousy range, about 12-16" with our set-up
(not a problem here) and was rather non-linear over most of its range (I
don't know if it's a problem).  Our set-up used the output to drive a 
voltage-controlled oscillator, then counted the time it took to get N 
ticks off the oscillator.  Good luck...

-- 
War is a little naked kid running along a road and screaming because the 
napalm hurts so bad. War is young men in body bags -- theirs and ours. And 
the dying doesn't necessarily have anything to do with baseball, apple pie 
and the Grand Old Flag.  -- Mike Royko

llw@corwin.eng.yale.edu (Louis L. Whitcomb) (10/16/90)

Greetings:

  So I suppose ring gyro lasers are out. Sigh.

  The pendulum works well when the vehicle's max acceleration
is low enough not to disturb the reading.

  You can get low cost (~$5) 2 axis potentiometer joystick innards
from some junk electronics houses (Edmund Scientific used to sell just
the thing) and mount it upside down with a lever arm and bob attached
for a 2-axis inclinometer.  Cheap a/d and you are done.

  -Louis.

--
............................................................................
Louis L. Whitcomb	       llw@corwin.eng.yale.edu    ph: (203) 432-4311  
Yale Robotics Laboratory	                          fx: (203) 432-7481 
Department of Electrical Engineering, 1968 Yale Station, New Haven, CT 06520

martins@hplhasm.hpl.hp.com (Henrique Martins) (10/17/90)

  There is a company selling a "digital carpenter's level".  Look for it in
your local hardware store. It replaces the bubble with a LCD readout that
gives you the angle of the level.  I may be able to dig out some
information on it.

  Henrique


==============================================================================
 Henrique A. S. Martins
 Hewlett-Packard Laboratories
 3500 Deer Creek Road                Phone:    (415)-857-2763
 Palo Alto, CA 94304, USA            Internet: martins@hplabs.hpl.hp.com
==============================================================================

barts@cyber.Eng.Sun.COM (Bart Smaalders) (10/17/90)

In article <3717@media-lab.MEDIA.MIT.EDU> fredm@media-lab.MEDIA.MIT.EDU (Fred Martin) writes:

   robots must do is climb an inclinated plane.  Thus, I'm soliciting
   all of you robot hackers for ideas on inclination sensors.
   
Use a radio shack cheapo joystick.  Hang it upside down w/ a few ounces of
weight epoxyed on the handle.  

- Bart (barts@Eng.Sun.Com)

--

                & @ @  @  @    @   @ @
                                      _@__
                                      |  |

jjensen@convex.UUCP (James Jensen) (10/17/90)

In article <3717@media-lab.MEDIA.MIT.EDU> fredm@media-lab.MEDIA.MIT.EDU (Fred Martin) writes:
>robots must do is climb an inclinated plane.  Thus, I'm soliciting
>all of you robot hackers for ideas on inclination sensors.
>
>	- Fred Martin
>	  MIT Media Lab

How about some strain gauges with weights on them?

Jim Jensen   aka   jjensen@convex.com

hbg6@citek.mcdphx.mot.com (10/17/90)

>In article <3717@media-lab.MEDIA.MIT.EDU> fredm@media-lab.MEDIA.MIT.EDU (Fred Martin) writes:
>>robots must do is climb an inclinated plane.  Thus, I'm soliciting
>>all of you robot hackers for ideas on inclination sensors.
>
Set up an array of IR LED and detector pairs so that the pendulum only
breaks one of the beams. Run the signals from each detector into a
decimal to BCD converter and read this value directly into the computer.

Personaly, I like the joystick idea best since it would provide both
pitch and roll measurement but the IR LED approach gets rid of the
A/D converter.

HOWEVER: if you used an A/D converter with an 8 to 1 input mux you
could measure pitch, roll, battery voltage, radio link signal strength,
drive motor temperature, and three other analog parameters with the
one chip.

John

.....................................................................
reply to 'from' address; hbg6@citek.mcdphx.mot.com
NOT the 'sender' line address!
Someday my sysadm will decide this is a 'real' problem. :-)
.....................................................................
All opinions expressed are mine and not Motorolas, their loss.
.....................................................................

hollombe@ttidca.TTI.COM (The Polymath) (10/18/90)

In article <3717@media-lab.MEDIA.MIT.EDU> fredm@media-lab.MEDIA.MIT.EDU (Fred Martin) writes:
}... I'm soliciting
}all of you robot hackers for ideas on inclination sensors.

}Another idea is to have a pendulum-like rod mounted on a freely
}rotating shaft.  At all times, the pendulum would swing to point down,
}and one could use an optical shaft encoder to measure the rotation of
}the shaft.

You'll need something to damp the pendulum.  Otherwise, acceleration will
set it swinging and cause erratic readings.  I suggest a very simple
pneumatic piston-and-cylinder damper.  You could probably build one from
scrap.

I don't know what cheap optical encoders cost these days (the ones we use
cost about $800), but linear pots are cheap and ADCs are off-the-shelf
chips.

-- 
The Polymath (aka: Jerry Hollombe, M.A., CDP, aka: hollombe@ttidca.tti.com)
Head Robot Wrangler at Citicorp(+)TTI             Illegitimis non
3100 Ocean Park Blvd.   (213) 450-9111, x2483       Carborundum
Santa Monica, CA  90405 {csun | philabs | psivax}!ttidca!hollombe

mgobbi@cs.ubc.ca (Mike Gobbi) (10/18/90)

A couple ideas for detecting inclination immediately pop to mind.  The first
(and easiest) method would be similar to your "optical shaft encoder" idea.
Take a variable resistor (the rotating kind) attached to the pendulum.  A 
voltage is applied through the resistor and then fed into an Analog to
Digital Converter.

For instance, using a 100K resistor (set so that with the pendulum vertically
downward resistance = 50K increasing counterclockwise) and an opposing
resister (at 50K, increasing clockwise), connect the leads from the
voltage source to one resister.  From the other end of the resister connect
both to the second resistor and the ADC.  Finally, connect the free end of
the second resistor to ground.

What we have is a voltage divider, which passes (given a 12-volt supply)
12 volts when the device is rotated 180 degrees forward and 0 volts when
rotated 180 degrees backward.  Once fed through (say) an 8-bit ADC you get
out values from 0 to 255, with 128 being horizontal.

ADC * 360 / 256 - 180 = angle robot is inclined FORWARD.

<<I'm not an electronics person, so I realize that this explanation is
rather greek.  Forgive me.>>
--
     __
    /..\      In quest of knowledge....
 --mm--mm--         Mike Gobbi

wiml@milton.u.washington.edu (William Lewis) (10/18/90)

In article <3717@media-lab.MEDIA.MIT.EDU> fredm@media-lab.MEDIA.MIT.EDU (Fred Martin) writes:
>robots must do is climb an inclinated plane.  Thus, I'm soliciting
>all of you robot hackers for ideas on inclination sensors.

  Disclaimer: I've never built one of the following, so it may or may
not be feasible. But it's got to be easier than attaching IR rangefinders
to a pendulum bob =8)


  I have, several places, seen designs inclinometers (is that a word?) that 
work by having two C-shaped parallel plates in a thin container, partially
full with liquid. As the angle of the container changes, and therefore
the angle of the liquid's surface with the plates, the electrical
characteristics will change, depending on the liquid you use. You could use
a conductor and measure resistance, or a dielectric and measure capacitance
(say, an oscillator controlled by the cpacitance on the plates could
run a counter, which is cleared and read at timed intervals to make a
sort of frequency counter). The only problem I can think of offhand
is sloshing, but you'd get swinging effects in a pendulum, too. Choosing
the right liquid (whatever it may be) should reduce that.

   A diagram:

            _
           | |
           | |   <-- plates
          /  /
  . . .  /  / . .  <--liquid level
  _____/  / 
 |______/


>One obvious such thing is a mercury switch.  In fact, I plan on giving
>these to all of my student robot-builders.  But, mercury switches tend
>to give you only one bit of data, so either you need a lot of them
>poised at strange angles, or you only get crude inclination data.

  Or, one contact could be resistive (carbon rods?) and the mercury could
cover the contact to different heights depending on the angle, making
a measurable changing resistance. Same idea as above, except the contact
is being resistive instead of the liquid...

-- 
 wiml@milton.acs.washington.edu       Seattle, Washington   
     (William Lewis)   |  47 41' 15" N   122 42' 58" W  
"These 2 cents will cost the net thousands upon thousands of 
dollars to send everywhere. Are you sure you want to do this?"

smithc@motcid.UUCP (Chris Smith) (10/18/90)

Tried to e-mail...oh well.

In article <3717@media-lab.MEDIA.MIT.EDU> you write:
>robots must do is climb an inclinated plane.  Thus, I'm soliciting
>all of you robot hackers for ideas on inclination sensors.
>
>That's about as far as we got before the ideas got pretty random.  Any
>suggestions?  I'd be particularly interested in a low-cost,
>commercially-available device (wouldn't we all?), although anything
>reasonably easy to construct would be wonderful.

Disclaimer: I'm a software engineer.

With that out of the way, here's my suggestion:
Could you use an artificial horizon from an airplane.  It seems to me
that some units would provide encoded readings for auto-pilots, the
parts should be available "off the shelf", and they should also provide
inclination in two dimensions, giving you the ability to determine the
overall attitude of the platform rather than just front/back inclination.
I have no idea what the cost of such a unit is, but it could save you
development time.
Just an idea.
-- 
o-------------------------------------------------------------------------o
o Chris Smith @ Motorola Inc. uunet!motcid!smithc                         o
o "Our great computers fill these hallowed halls..." - N. Peart           o
o---------------------My thoughts, not my employer's----------------------o
-- 
o-------------------------------------------------------------------------o
o Chris Smith @ Motorola Inc. uunet!motcid!smithc                         o
o "Our great computers fill these hallowed halls..."                      o
o---------------------My thoughts, not my employer's----------------------o

gerry@frc2.frc.ri.cmu.edu (Gerry Roston) (10/18/90)

The answer to the orignal query depends on the following:
whether or or not there is a deadline to meet and whether
or not there is some level of robustness/accuracy required.

If the answer to both questions is no, then the idead previously
suggested will be fine, and you may learn something from your
failures.

However, if this is a "real" robot, you can not afford the 
engineering time required to set up such a device.  Furthermore,
the acuracy and usability will be questionable.  If your need
for angle sensing is low bandwidth, say < 1 Hz, a standard 
clinometer from Sperry or Schavitz is probably the answer.  If
you need high precision/high bandwidth, the answer would be a
IRS (Inertial Reference System).  Several companies produce
these, but they are outrageously expensive.

Gerry (the person who is developing the dead-reckoning for
       the CMU Ambler)
--
gerry roston, field robotics center
robotics institute, carnegie mellon university
pittsburgh, pennsylvania, 15213  (412) 268-6557
gerry@cs.cmu.edu

hbg6@citek.mcdphx.mot.com (10/19/90)

In article <107247@convex.convex.com> jjensen@convex.UUCP (James Jensen) writes:
>In article <3717@media-lab.MEDIA.MIT.EDU> fredm@media-lab.MEDIA.MIT.EDU (Fred Martin) writes:
>>robots must do is climb an inclinated plane.  Thus, I'm soliciting
>>all of you robot hackers for ideas on inclination sensors.
>
>How about some strain gauges with weights on them?
>
I guess that if you had a weight, hanging from two strain gauges, on two
links running at 45 degrees from the weight to the gauges it would work.
The ratio of the two gauge readings would indicate inclination. I think
you could even resolve 360 degrees using rigid links.

       =======           ======= gauges
       []     \         /     []
               \       /
                \links/
                 \   /
                +-----+
                |     | weight
                |     |
                +-----+

Can you get strain guages sensitive enough that you could use a very
light weight? I would think that acceleration with a relatively heavy
weight could destroy the strain guage. (I guess I'l have to get out the
Omega strain guage book :-) )

John

.....................................................................
reply to 'from' address; hbg6@citek.mcdphx.mot.com
NOT the 'sender' line address!
Someday my sysadm will decide this is a 'real' problem. :-)
.....................................................................
All opinions expressed are mine and not Motorolas, their loss.
.....................................................................

nagle@well.sf.ca.us (John Nagle) (10/19/90)

     An excellent 2D inclination sensor is manufactured by Etak, Inc, in
Menlo Park, California, but it is not generally available for retail
sale.  They will sometimes sell them to researchers, along with a 2-axis 
rate gyro and appropriate electronics, for about $200 each.  The device
is normally used as part of the Etak vehicle navigation system.

     The inclinometer is a small cylinder of liquid, about 15mm across,
equipped with four capacitance level sensing plates.  The liquid has been 
carefully chosen to have the right poise to make the device relatively
insensitive to vibration.  Etak has the electronics which causes the
output to be provided as a variable audio frequency, for convenience in
digital handling.

     I have one of these, and this is definitely the way to go.  The
whole unit runs on 5VDC.

					John Nagle

rogers@ux.acs.umn.edu (Brynn Rogers) (10/28/90)

Why aren't there any used/surplus gryos available from airplanes
that would be cheap enough for robots, but maybe not accurate enough
for planes anymore?
 
A friend of mine had a Gryo for his RC Helecopter, it was less than $100
or so, but it was used only for the tail rotor (it was mechanically linked
to it).

Are there any even moderatly inexpensive gyros?

[ Honeywell had some Ring Laser Gyros that were small enough for
air to air missles, and big ones that give inertal positioning to
trident subs, but the pricing would be far out of reach for anyone
but the military.  Though Boeing 757 and 767 jets use commercial ones]
[[ I used to work at Honeywell S&RC ]]

Brynn

rogers@ux.acs.umn.edu