Indoor localization by using R,G,B,Y corner markers

I want to ask robotics gurus' advice on an indoor robot localization problem.
Assume that 1) We have a robot with two differentially controllable driving wheels
an a caster wheel and encoders on the driving wheels 2) We have a large hall with unobstructed floor, something like an indoor basketball field. 3) We put Red, Green, Blue and Yellow corner markers indicating uniquelly the corner locations 4) We have some kind of vision system on top of our robot with a parabolic mirror which can output the relative angles of the R,G,B,Y marker positions with respect to a coordinate system fixed to the robots body
Questions Given the above listed set of data i) How can we can localize our robot in a coordinate system fixed to the hall (say world coordinate)? ii) How can we find our heading angle in the world coordinate?
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Assume the RG ball are at the top of the field and BY balls at the bottom. If bot were near RG, RG would appear closer together in video and BY would appear further apart.
How do you figure orientation? Spin the camera (or in software) until you see RG split perfectly even. (They might be close or far apart.) Then you can use the angle you had to advance the camera to figure out your orientation.
Ball size (relative to distance), amount of camera spin and ball distance seems to be the three variables you're dealing with. Interesting problem. I dig. Might have to try this one out.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Nico wrote:

You would need to know the distance between the different color spots also. They you can use the law of cosines c=a^2+b^2-2xy*cos(alpha) to determine your position. You would also need to solve some simple equations.
From your problem description it seems you have some education so doing the math should not be a problem. If you need even more guidance, have a look at the following paper which deals with exactly this problem.
http://www.cs.bu.edu/fac/betke/papers/Betke-Gurvits-IEEETransRobotAutom97.pdf
/Leif
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
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 moving.
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?
Joe Dunfee
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.