One difficulty of programming autonomous robots is to determine the state
of the world reliable. When playing robot soccer, the position and velocity
of the ball is a crucial information from the state of the world. Generally
we call such fractions of the state space features. In or context,
the reliable extraction of those features suffers under changing conditions
of illumination and setting of the camera (its position on the robot ...).
Therfore, the thresholding technique (a method to distinguish pixels
belonging a object of interest from others) is not generally sufficient.
In this assignment a reliable technique for detecting those features has
to be developed. Packages for picture segmentation and camera calibration
are provided.
Tasks
1. Object positions
Develop two new vision features, that estimate reliably the real-world
position of the ball and of the players respectively. The features, particular
the ball feature, should also be able to merger two estimates, e.g. given
by two cameras or given from two parts of the omni-directional mirror.
Instructions:
Usually it happens that one object, for example the ball, produces
more than one blob. To solve this problem, have a look to the "density merge
algorithm" and decide whether it suffices or an own implementation, specialised
for the task, has to be found.
Besides the object of interest, other objects with the same color might
be found in the field of view. Think about an algorithm that provides for
each hypotheses a probability for its correctness. In this context, think
about what you expect and what you see!
Use the upper results to return the true picture position of the objects.
Mark your algorithm's decision in the vision window with the corresponding
color.
Given: A vision package for thresholding
Deliverables: Reliable positions
2. Occupancy grid
Develop a new vision feature that computes an occupancy grid with a adjustable
radius of the robot's vicinity. The grid has to be a one dimensional array
where each entry represents the probability of occupancy by another robot
or anything else that is not a fieldline and not the green ground. The grid
resolution should be 10mm. Think about an appropriate heuristics that calculates
probabilities for each cell. You might also use the "maps" for each color
or the raw image data, given by the vision package, instead of the blobs.
Instructions:
Given: A vision package for thresholding
Deliverables: Reliable probabilities
3. Object velocities
Instructions:
Given: The odometry information about movements of the robot, a
vision package for thresholding