A robot's ability to recognize objects around itself is critical for dealing with a changing environment. The visual medium is an effective one for this task; in this paper, we present a system for the SmURV robot platform which is capable of distinguishing between four different objects found on the Roomba lab soccer field and navigating between them.
The object-seeking task is that of navigating to an object. This is a precursor to playing soccer: in order to locate a ball and shoot it into a goal, a robot must be able to discern the locations of both the ball and the goal. It must also be able to navigate towards both of these without difficulty.
To test the approach that we have developed, we present performance on simple versions of the object-seeking task, object recognition and object following, as well as on the object-seeking task itself.
We have developed a control system based around a simple finite state automaton which captures the loop of the object-seeking task. It was developed out of several subsystems, all of which are specialized for the Roomba lab soccer field.
The playing field used to assess system performance is the Roomba lab soccer field. This is an indoor room lighted entirely by overhead fluorescent lights. While relatively uniform, the lighting varies with location. During evaluation, visual noise was kept at a minimum by moving obstacles so that the white walls of the room were the background for most of the robot's visual scans.
The field itself is free of obstacles except for those placed in it to test the effectiveness of our object-seeking implementation. These are static objects selected for characteristics to make it easy to pick them out of a visual signal on the basis of color.
By breaking down the desired behaviors into simple actions, a flexible framework for object seeking may be devised. Before an object may be sought, it must be picked out of the visual stream. Once identified, it may be followed until the robot is some given distance from it, after which the robot is considered to have found the object.
The playing field objects are each colored to make discrimination on the basis of color easy. The ball and fiducials are the only substantially sized objects of their respective colors. Once the camera on the SmURV is calibrated to the colors of the playfield objects, the CMVision library is used to assemble a set of rectangular blobs of each of the colors of the playfield objects. The unique colors of the objects make them easy to identify on the basis of the blobs they present.
Our system identifies the yellow ball and pink fiducial by seeking yellow or pink blobs of a certain minimum size. The green and orange fiducials are distinguished by picking out green and orange blobs that are close to adjacent and ordered correctly vertically. To distinguish between more than just blob color, we developed the concept of a target, which may be composed of one or two blobs of a minimum size and given vertical orientation. Each of the playfield objects is described by a target.
Because our system does not do any localization, all blobs meeting the basic criteria of size and relative orientation are treated as representations of one object or another. Because of this, it does not make sense to ask the system to navigate between multiple objects of the same type, as it has no way of distinguishing them. In our object identification and object-seeking tasks, we did not use more than one of each object.
We have developed a proportional-derivative control system for the robot's drive system which, when presented with an error signal (which measures how far from the center of the robot's field of vision a target is), drives the robot towards it. When coupled with the components for the object identification sub-task, this control system drives the robot towards any of the objects which it is capable of recognizing and will follow one if it is moved about the field.
For the overall object-seeking task, we have implemented a finite state automaton which switches between behaviors on the basis of an internal timer and the robot's sensors. Each of the behaviors is characterized by an action (which the behavior performs), pre-conditions (which must be met before the behavior is begun) and post-conditions (which must be met before the behavior will be changed).
![]() |
| The behaviors and the transitions between them. |
We evaluated our system by testing its performance on the object identification and object following sub-tasks. We also examined its performance in navigating between each of the four objects.
Our system will successfully identify each of the four objects when lighting is favorable. The soccer ball and presents some problems, as it has a relatively specular surface and may appear white to the robot's camera. Additionally, if the fiducials are placed directly under the overhead lights, their colors may wash out and appear white. Finally, the SmURV cameras perform auto-white balancing, and the blobfinder loses its calibration if too much of the visual field is occupied by one color.
This makes identification a spotty task at times. Nonetheless, our system is capable of identifying an object from across the Roomba lab. A video of our system identifying and moving towards the soccer ball may be seen here.
The above video also demonstrates the object-following behavior.
The finite state automaton behavioral control described above performs the object-seeking task well. At present, we are driving the robot at slow speeds in order to minimize error in the blobfinder as a result of the visual stream changing too quickly. A video of our system navigating successfully between each of the four objects may be seen here.
The difficulties encountered in object identification pose some difficulties in this task, but the wandering behavior compensates for the limitations of the cameras to a fair extent. If the SmURV moves too close to a target to realize that it has found it, it will wander away and then reacquire it. Additionally, if the SmURV does not initially have an advantageous viewing angle on an object, it may acquire one by wandering about the field.
Several of the shortcomings of simple blobfinding for visual recognition are readily apparent in this sytem: color calibration is a nontrivial task, and failure at it renders any control system based on it useless. Basic blobfinding without any localization is incapable of distinguishing between objects which present the same profile to the blobfinder.
Nonetheless, our system is robust enough to overcome some of these limitations and compensate for them. A more rigorous wandering routine (such as an actual random walk about the field) would raise the chance of finding objects which are placed in disadvantageous lighting.
More robust visual recognition systems and localization and path-planning could be buit into the finite state automaton used to control robot behavior. The control system described here can also be used as the basis for behavior-based control.