# This is an online copy of the file mavis.ini, which is in the bin
# directory of the download package.

# Lines starting with "#" are treated as comments.

# Section names are enclosed in square brackets: [sectionName].
# Parameter name/value pairs follow each section. White space before
# or after the "=" is ignored.



[log]
# logDir: specifies the path for Mavis log files.
#    Don't put quotes around the path string!
logDir = ./log

# nRunsToKeep: limits the size of the log file. Each time Mavis starts it
#    begins a new log record. If Mavis exits normally, it ends the record
#    with a distinctive string. When the number of end-record strings exceeds
#    nRunsToKeep, excess older records are deleted. If nRunsToKeep < 1,
#    Mavis defaults this parameter.
nRunsToKeep = 10


[camera]
# Camera-placement parameters:
# height: distance from the floor to the camera's optical center, in mm.
# fwdPosition: how far forward the camera's optical center is from the
#     robot's center, in mm.
# For the camera's optical center, try using the location of the shutter
#    apperture, located behind the back of the lens.
height = 1150
fwdPosition = 70.00

# Calibration parameters:
# tiltAngle: camera's elevation angle, in degrees.
#    Mavis reads this value at startup. For a camera that's tilted down,
#    tiltAngle should be negative.
# f: camera's focal length, in pixels.
# calibrated: 1 if true, 0 if false. It's used to decide whether known object
#    sizes can be safely estimated. Mavis maintains this parameter. It should
#    only need to be reset if the camera itself is changed.
tiltAngle =-30.60
f =417.78
calibrated = 0


[homebase]
# whiteDiam: diameter of the white, inner portion of the homebase
#    object, in mm.
whiteDiam = 254.00


[motionDetector]
# pctIllumChange: the percent change in illumination that counts
#    as a changed pixel.
pctIllumChange = 10.0

# nPixelsChanged: the number of pixels that must change before motion
#    is declared.
nPixelsChanged = 100

# nSkippedFrames: the number of frames to skip before grabbing the second
#    frame. Motion is detected by subtracting one frame from the other. This
#    parameter controls the speed range of motion that will be detected.
#    Skipping a small number of frames will detect faster motions; skipping
#    more frames will detect slower motions.
nSkippedFrames = 3


[robot]
# width: robot's left-to-right width, in mm.
width = 500


[HLines]
# Line-segment-extraction criteria:
# gyThreshold: pixels with vertical gradient less than this are
#    considered non-edge pixels.
# minLineLen: line segments shorter than this are ignored (measured in pixels).
# maxLeastSquaresErr: if the least-squares line fit has a standard
#    error of estimate greater than this, that line segment is ignored.
gyThreshold = 22
minLineLen = 60
maxLeastSquaresErr = 2.25

# Line-matching criteria:
# maxEndPtShift: image lines with a total lateral end-point shift
#    greater than this will not be paired during line matching. The
#    total shift is computed as abs(x1Lo-x2Lo) + abs(x1Hi-x2Hi).
# maxSlopeChange: image lines with a slope discrepancy greater than
#    this are will not be paired during line matching.
# maxPctError: if the 3D interpretation of a matched pair has more
#    error than this, it's discarded.
maxEndPtShift = 60
maxSlopeChange = 0.25
maxPctError = 10.0

# gausHalfWidth: the kernel size for adding gaussian blur will be
#    1+2*gausHalfWidth. Adding a small amount of blur helps reduce
#    noise effects in edge detection.
gausHalfWidth = 2