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?

Reply to
Loading thread data ...

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.

Reply to
BenJamin Prater

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.

formatting link

Reply to
Leif Holmgren

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

Reply to

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.