DPRG
DPRG List  



[DPRG] Absolute reference for angular position

Subject: [DPRG] Absolute reference for angular position
From: dpa dpa at io.isem.smu.edu
Date: Wed May 28 14:29:08 CDT 2008

Howdy

Jeff wrote:
> I was following what dpa (if I may use dpa instead of Doctor David
> Anderson) was saying about odometry and calibration. I thought that I
> have a perfectly good robot sitting here collecting dust and I could
> run these calibrations. But when I got to the statement that "now you
> drive in a square" I got totally lost. I thought that turning precisely
> 90 degrees is a whole 'nother problem. Afer I thought about it for
> awhile I realized it meant to turn 90 degrees based on the resultant
> odometry.

Sorry if that wasn't explained very clearly, but basically yes.

The UMBMark (which we have excerpted as the "Borenstein squares")
is a method for identifying errors in the calculation of the
robot's heading, or theta, and for isolating the software
errors (tweaking of WHEEL_BASE) from the hardware errors (tweaking
of WHEEL_SIZE and errors to do with mechanical and physical
alignment).

So drive the robot around a large square and stop when the robot's
calculation of its own position is back at the origin.  The method
used to drive it is not important.  So, for example, Dale Wheat has
Daphne setup to allow driving by R/C control.  He can drive the
pattern while Daphne calculates it's location and prints on an
LCD.  jBot was set up the same way.  If your platform is low enough
friction, you can just push it around the course with your hand.
We are calibrating the sensor here, not the behavior that 
depends on the sensor.  That's a separate problem.

Likewise, the particular path doesn't really matter.  So you could
drive a square, or an octagan, or a large loopy thing with lots of
overshoot and correction.  As long is it is generally clockwise,
and you stop when the robot thinks it is back at the origin, then
if the WHEEL_BASE parameter is too small it will arrive short of
the origin, and if the WHEEL_BASE is too large it will overshoot
the origin.

The square is just the simplest path that still tests all of the
robot's angle calculations, as the "Where Am I" paper details.
Two points (out and back) are not enough, and three points
are not sufficient to separate the wheel base and size errors.

To say that another way, if the WHEEL_BASE is too large, then
every angle calculated along the way will be too large, and
irrespective of the particular path chosen, as long as it is
generally clockwise (or counter-clockwise) the final position
will overshoot the origin.  Or undershoot if WHEEL_BASE is
too small.

As I mentioned before, it's sort of hard to explain, but will
sometimes make more sense once you've run the thing yourself.

> My biggest concern about using odemetry for rotation is backlash in my
> gear train. I still have to address that issue.

Jeff, I've not really found that to be a problem for odometry.
It must be that it averages out.  The two-wheel balancing robot
nBot had to have a back-lash correction, but that's because the
motors go back and forth through zero when trying to balance
and the backlash was interpreted by the balance algorithm as
a jerk of the robot.  I haven't found the need to do that
correction for odometry.

best regards,
dpa


More information about the DPRG mailing list

Copyright © 1984 - 2006 Dallas Personal Robotics Group. All rights reserved.
Website Design by NCC

For the latest robot news visit robots.net