Let's Make Robots!

Labyrinth Line Follower Advice Please

I wish to build an autonomous robot capable of navigating a human sized labyrinth at our local senior center.  I need to make it mostly from VEX parts programmed in RobotC.

 The labyrinth is outdoors and constructed of light gray and sand colored pavers which have somewhat uneven shapes, surfaces, and edges.  The path of the labyrinth is made of the sand colored pavers and the borders are the gray ones.  Unfortunately, all the pavers are separated from each other by strips of dirt with tufts of grass.  These strips are approximately 3/4s of an inch wide and are generally darker than the gray pavers.   The path is six pavers wide, and the borders are four pavers wide.

So the problems are:

     1.  Uneven, rough surfaces to move on.

     2.  Four colors to differentiate - sand, light gray, dirt brown, and grass green.  No simple black and white line following.  The two critical colors are sand and light gray, but they are separated and interrupted internally by darker strips of dirt and grass.

     3.  VEX does not offer a color sensor.

My thoughts are:  Please answer any parts you wish.

     1.  I think skid steering wheels will work better than tank treads on the surface described, so I plan to use either the VEX 5" diameter wheels or the VEX 4" diameter Large Omni Directional wheels to deal with the uneven surface.  Please advise which you think is better for the surface described.

     2.  I would like to use the Lego NXT color sensors to solve the color problems.  Can the NXT sensor be programmed for in the VEX version of Robot C and read by the VEX controller?

      3.  If the NXT sensor won't work, perhaps I can increase contrast between the sand and the gray by using photography filters or stage lighting gels with the VEX line sensors.  Anyone know if this will work?  Especially since it will have to work outdoors in sunlight?

     4.  The dirt/grass strips should cause line crossing "false positives" within sections of the path or within sections of the border.  I am thinking of using two sets of line sensors in an AA-BB-AA pattern.  They would be programmed additively so that both left A-s or both right A-s would have to be showing gray (or dark) before the robot would start a correcting move.  Both B-s would have to show sand (or light) before deciding that it is back in the path.  Any thoughts on this plan, or ideas on how to program it?

Please make any other suggestions or comments you may have.  And thank you.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Filter! Your human eye is somewhat limited in seperating colours. Or different materials through their colour. When we think of colours we are really discussing "optical spectrography". The difference is in the different (mixes of) wavelengths of the reflected light.

The difference between the sand colour and the grey may become very pronunciated when filtered. A filter that would only let brown light pass would produce a bright light from the sand colours, but not from the grey. (Yeah right: "brown light"!)

Another option is to search for that one wavelength (light frequency) that makes the two paves look very different. Perhaps an Infra Red frequency would work. The only way to find out is some descent fundamental scientific research.

Or a camera and some differently coloured gels.