[Dprglist] odometery test movie

David Anderson davida at smu.edu
Tue Jul 14 00:28:46 PDT 2020

Hi Markus,

Cool.  I think the FIRST (BEST?) teams do something similar with the tape
marks on the floor of their course.

My initial observation was that most buildings and indoor spaces are
orthogonal boxes, or combinations of boxes, and have handy available corners.
So one or more corners, surveyed by the robot, could serve as landmarks to
correct the drift in odometery position and orientation.

So the robot has a list of landmark locations and whether the wall is
in the +-X or +-Y direction, or both, and how far the wall is from the
location.   In the test video the robot only had one such landmark, at the
origin (0,0) where it was initially reset, and two walls, one in the +Y
direction and one in the +X direction.

When the robot is initialized it looks for the wall (or walls) at it's
location, squares up, resets theta normal to the wall, and measures and
saves the distance.  Since there were two walls at the origin in this test,
it resets the theta angle and saves the X and Y distances, and associates
all that with the current odometery location, in this case 0,0.

So the next time it navigates to that point, or rather what it thinks is
that point, it can make the same measurements and compare to the saved ones,
and so it can correct both the theta angle and the X/Y location.

That is, when it returns to the corner and thinks, in this case, that it's
at location 0,0 but is actually at -6,-6, the theta angle will be corrected
normal to the wall(s) and the location will be reset to -6,-6, the robot's
actual location.

There is also some code to re-calibrate the rate gyro if the error between
the saved and measured is too large. That's currently set at 15 inches.

If the errors of X and Y are less than 6 inches, it means the waypoint is
underneath the chassis of the robot (success!) and it makes its happy sound.

In RCAT's "bum shaking dance" the robot is doing three things.  Having found
two sonar left/right points of the same distance, it scans left and right
about 5 degrees with the sonar, testing that the surface is actually flat and
that the robot is really normal to it.

That will reject various local minima that the robot might get trapped in,
corners, trim on the wall, etc. If so, the robot has an algorithm that scans
the search space in various ways looking for other likely candidates for the
minima.   It will also just give up after a while and go with the location
that it has.  Maybe get it next time, especially if it gets or got the other
wall successfully.

So, basically the longer the robot runs the larger the drift in odometery.
The main drift is not in distance traveled but rather in heading, which of
course affects location.

Rcat uses a Z axis rate gyro fused with the wheel odometry to try to at
least ameliorate that to some extent.  The longest the robot has been able
to run so far between landmarks is on the order of 15 minutes, before the
error becomes so large that the robot can't really find the corners anymore.

Any plans to dust Freddiie off and breath life thereto?


> Hello David,
> this is interesting. I did something similar on a smaller scale for
> Freddiie which I brought to a Roborama a few years ago. It has a timer
> and periodically squares itself up against the closest "edge".
> For the Table Top 2 that was the edge of the table and for Can-Can
> soccer it was a wall (although Freddiie did really poorly there).
> It does a similar "bum shaking dance" as rcat does, but Freddiie isn't
> as subtle about it. Due to the known location of the reference edge it
> can re-calibrate its entire pose, not just the alignment. In order to
> save time (it was a competition/race after all), it alternates the
> axis. First it chooses an edge along the X axis, the next time the Y
> axis ... that way it didn't have to spend the time driving into a
> corner.
> I did the UMBmark calibration as per your instructions. But before the
> competition I was taking the robot apart so many times that I couldn't
> spend the time running through that process each time. Using periodic
> pose adjustments made odometry much more resilient to errors in
> alignment and uneven ground (Freddiie is fairly small and light, way
> too easy to get distracted by debris on its path).
> If memory serves right the competition was filmed, although I don't
> think I ever found it on the dprg website.
> Thanks for reminding me, Good times!
> Markus
> On Sun, 12 Jul 2020 23:57:20 -0500
> David Anderson via DPRGlist <dprglist at lists.dprg.org  <http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org>> wrote:
>>/Hello DPRG, />>//>>/Here's the video I mentioned in the meeting Saturday but forgot to />>/post the link: />/> />/> http://www.geology.smu.edu/dpa-www/robo/mpeg/rcat-202005-9-2.mpg />/> />/> Still haven't figured out how to show video in google meetup. Lou />/> mentioned that also.  Maybe it's not possible.  It did seem to work />/> at last months meeting when I just pointed the laptop camera at the />/> desktop screen, and played the video on the desktop.  But the />/> "presenter" function doesn't seem to be able to keep up. />/> />/> Likely I just don't know what I'm doing. />/> />/> onward into the fog, />/> />/> David />/> /

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.dprg.org/pipermail/dprglist-dprg.org/attachments/20200714/2d71c34f/attachment.html>

More information about the DPRGlist mailing list