You may have seen my query a few days ago about learning the math
involved in determining position from landmarks. [Calculating position
from observation of landmarks or beacons] The articles by Jim
Ubersetzig describe a fairly simple home-made scanner by spinning a
laser pointer beam, and then a phototransiter which detects light
bouncing back from a retroreflector.
I like this method becuase it seems like it would be more accurate
than a camera based method. A camera is limited in its resolution, but
a single point light sensor has essentially unlimited angle resolution
(limited only by the processor speed). Though I imagine the camera
based system has an advantage in that it always takes an instantaious
image of the markers, and therefore can take good readings while it is
The system in the articles, is however, demands that all markers stay
within view. As soon as a marker is blocked, the robot must resort to
blind navigation techniques.
The problem is the technique he uses identifies the markers. By
knowing that the first two of the markers are closer together than the
3rd, he can identify the first two. I am trying to think of a way to
identify markers without resorting to a camera.
Actually, I can think of one way to handle the problem without
needing to change the sensor system. If the robot doesn't count the
correct number of markers, it can assume that one (or more) is blocked.
Then, it can calculate its position by trying every possible
combination of markers, eliminating any combination which results in a
postion too far from its last confident position.
But obviously, the ability to identify individual markers results in
a more robust system. Color is obviously one way. But, I think I
would need a single sensor capable of detecting multiple colors. I
could use different color retroreflectors, and have different color
light sources emitting from the sensor assembly. Then what ever color
was on at the time, it would reflect only sensors with its color.
Another idea is like bar-codes. Each marker would be followed
closely by a series of spaces or markers to form the code. They could
be distinguished from the other marker positions by their poximitiy.
But, the weakness is that a marker could be partially blocked.
Any other ideas?