Locating Homebase

Purpose: enables the robot to visually locate its homebase.

For an autonomous robot, it's nice to have some sort of homebase marker that the robot can easily find and recognize. When recongition is vision-based, a flat, circular object with good contrast works especially well as a homebase marker.

 

Making Homebase

 

API

Call lookOnce() using HOMEBASE_OBJ_ID as the object's ID. The result is returned in the ObjLoc_t struct passed to this function.

The camera should be tilted down about 30 degrees when using H-Lines, but it should not otherwise be twisted. The tilt angle must be specified with good precision for the computed distances to be correct.

 

Code Example

 

Executing Through MavisCtl

 

Ini-File Parameters

homebase#whiteDiam

The camera-placement and calibration parameters must also be set:
camera#height
camera#fwdPosition
camera#f
camera#tiltAngle

See Configuring Mavis and Camera Calibration for more on these parameters.

 

How It Works

Mavis uses a hard-coded detection strategy to locate homebase. The homebase circle appears as an ellipse in the image. Mavis searches for edge regions that match either the top or bottom of this ellipse. Matching is based on gradient direction, shape, size, and smoothness.

If both top and bottom of the ellipse are located, the likelihood of the match is set to 100. If only one side is located, the likelihood is set to 50.

 

Source Code

  • mavis/objRec/NavCircle.h
  • mavis/objRec/NavCircle.cpp

 

Home | Mavis | Mavis Capabilities