DPRG
DPRG List  



DPRG: Different terrains for navigation

Subject: DPRG: Different terrains for navigation
From: Robert Posey robert.posey at worldnet.att.net
Date: Thu Aug 26 12:15:40 CDT 1999

- -----Original Message-----
>From: owner-dprglist at dprg.org [mailto:owner-dprglist at dprg.org]On Behalf
Of Matt Minnis
Sent: Wednesday, August 25, 1999 3:24 PM
To: dprglist at dprg.org
Subject: RE: DPRG: Diffrent terrains for navigation


The type is Case #1

 > 1. Robot has no prior knowledge of the the enviroment.
 >If the robot doesn't have a world model it is a whole new ball game with
 >different problems.

This is what I am working with trying to figure out.

I want to build a map as I go, since it will be (eventually) taken to
contests, so it will have no good way to have an accurate map ahead of time.

By Muddy **********************

If you know in advance the layout of the course in any detail you can build
a 'world' model of the course.  For example, the T-shaped course could
provide
several potential reference points.  Either side of the leg or arm, the
intersection, and each end of the T are three possibilities.  If those
points
are completely unmarked, and there are no other possible points of reference
then you are stuck with pure dead reckoning.

END Muddy **********************

How can the diffrences between the compass and the encoders be
reconciled?  If I am right next to the filecabinet, or iron wood burning
stove, the compass will be off.  How do I know the compass is out of whack
and not to trust it?  How do I know that the encoders are correct since we
are on a ideal floor?

How do you determine when a sensor is correct and when it is just wrong?


By Muddy **********************

The one key point to remember is the nature of each sensor's errors.  The
wheel encoders will have a hopefully small, but additive error.  This means
as your robot moves around and esp. turns the error in heading and position
will increase if uncorrected.

The error from the compass is non-additive.  Other than their fixed
accuracy,
compasses are effected by magnetic fields, leveling errors, and motions
errors.
The environmental magnetic fields(external to the robot) can be mapped or
filtered
out as described below.  The effects of the robots own magnetic fields
should be
measured and either eliminated by moving the compass or corrected for in
Software.
Most compasses used in mobile robots have some method of leveling themselves
to
get an accurate reading, but the robot may still have to stop for time X to
get
a good reading.  If you eliminate all the errors except the ones caused by
external magnetic fields, you now have a sensor with no additive errors, but
possibly
severe short term errors.

Now if I can assume that on one is going to place different electro-magnetic
around
the course the compass should work most of the time.  This will allow you to
use
encoder based running heading to filter the compass reading.

The routine should work something like this.

cur_calculated heading_encoder = EH(n)  keep a record of the last 2 or so
calculations
cur_heading_mag by a new read= MH(n) keep a record of the last 2 or so
calculations

Combined_head  = CH(n) the best guess heading of the robot based on all
sensors and
world model information.

I did this pied code quickly so give me a break on the likely errors,
hopefully it
shows the basic idea.

Execute Turn
MH = (new compass read)

  if (MH are ~ CH)

  	EH = EH + delta(encoder)


      Is difference between Delta(EH) and Delta(MH)greater than possible
encoder error
        No
          CH = MH // you might use some form of averaging. by not doing this
all the time
	    EH = MH
        Yes
          CH = EH,


  Not
     Is MH(n-1)-MH(n) ~= EH(n-1) - EH(n)
	Yes then you could use Delta(MH) to adjust Delta EH, but you may have
problem
      at the boundary of magnetic fields.
End

You could keep longer records and use it to detect when you entered a new
magnetic field,
but no matter what you have to have fairly accurate encoders to keep your
position.  At
best the compass will only give you heading.  When you are in a magnetic
field you robot's
calculated X and Y position error will grow while you heading error is
distorted.  When you
leave the field, you can fix the heading, but the X and Y error will remain.
Your encoding
method has to be good enough to travel several feet and make couple of turns
without
accumulating so much error that you get lost.  This will allow you to travel
through
magnetic fields without too much increase in positional error.

End Muddy **********************
I suppose this would make a good book in itself...

Thanks,

Matt Minnis


=========================================================
Preferred Resources          (314) 567-7600 phone
701 Emerson rd.              (314) 993-6699 fax
Suite 475
St. Louis, MO
63141
=========================================================

------------------------------

More information about the DPRG mailing list