When localizing our robots they have to be mapped to the behavior processes that control the individual robots. Our first approach was to use identical robot markers and to maintain the mapping by initializing it manually and tracking the robots all the time. This works fine, as long as tracking looses less than one robot at a time. However, when robots are occluded or leave the field, the danger of exchanging two of them is high.
Such permutations cannot be corrected by the vision system described so far. Both robots get then the wrong visual feedback, which does not lead to useful behavior. To deal with this problem, we developed an automatic identification module.
Since the number of different colors is limited, we decided to use additional black and white markers, arranged in a binary pattern. Three markers are placed next to the three colored dots, as can be seen in Figure 6. To avoid uniform markers, we use only the six code words that contain at least one black and at least one white marker. The resulting code is similar to the one described in [4].
Identification is done only after successful localization. We compute the positions of the markers from the positions of the colored dots and estimate their intensity using a Gaussian filter that has approximately the size of the markers.
Then, we order the three filter answers. Since both black and white markers are present, the brightest response must be white and the darkest one must be black. We only have to decide if the remaining marker is black or white. This can be done by comparing it to the average of the extreme responses.
Due to interlace problems, we do identification only if robots don't move too fast. We also check the investigated regions for homogeneity, to make sure that we are looking at the inside of a marker. Identification works reliably even when lighting changes. It significantly reduces the time needed for manual initialization of the system.