To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 20653
20652  |  20654
Subject: 
Path following robot, sign recognition.
Newsgroups: 
lugnet.robotics
Date: 
Thu, 1 May 2003 02:21:32 GMT
Viewed: 
677 times
  
Hi, I am building a Lego path following robot,



the robot will follow a white road on a dark (navy blue) surface. It will
encounter traffic signs that i will interpret, and according to those
traffic signs it will turn left or right at the juction or it will wait or
stop.



I created the signs to be easily recognisable.

All the signs black shapes in a red circle (red cardboard, black pen)



The signs all have a smaller black circle in them (for use in the
orientation) and a nother shape to determine the meaning of the sign



x for stop, square for wait, triangle pointing left to go left and triangle
pointing right to go right.



My robot at the moment can do the following:

Detect the positions of many roads,

The position of the sign.

Isolate the sign,

Do edge detection on the sign,

And separate the sub shapes of the sign

It can eliminate most non signs by telling if the number of sub images is
not equal to 3!



How can i distinguish between the signs?





Here is an example (this sign is actually upside down) the smaller circle is
always on top. and according to that the triangle points left or right.



0000000000000000000000111111110000000000000000000

0000000000000000000010111111111100000000000000000

0000000000000011111111110000000111100000000000000

0000000000000011111110000000000011111000000000000

0000000000111111000000000000000000001100000000000

0000000000111110000000000000000000000111000000000

0000000011110000000000000000000000000011100000000

0000000011100000000000000000000000000001111000000

0000001111000000000000000000000000000000001100000

0000001110000000000000000000000000000000000111000

0000111100000000000000000000000000000000000011000

0000111000000000000000000000000000000000000001110

0000110000000000000000000000000000000000000000110

0000110000000000000000000000000000000000000000110

0011110000000000000000000000222222220000000000011

0011100000000000000000002222222222222200000000011

0011000000000022222222222222200000002200000000011

0011000000000022222222222000000000000220000000011

1111000000000022220000000000000000000220000000011

1110000000000002222200000000000000000220000000011

1100000000000000002222222000000000000220000000011

1100000000000000000222222220000000000220000000011

1100000000000000000000000022222000000220000000011

1100000000000000000000000002222220000220000000011

1100000000000000000000000000000022222220000000011

1100000000000000000000000000000002222200000000011

1100000000000000000000000000000000000000000000011

0111000000000000000000000000000000000000000000011

0011000000000000000000000000000000000000000000011

0011000000000000000000000000000000000000000000111

0011000000000000000000333330000000000000000000110

0001100000000000000000333333300000000000000000110

0001100000000000000000330000330000000000000011110

0000110000000000000000330000330000000000000011100

0000110000000000000000333333330000000000001111000

0000011100000000000000033333300000000000001110000

0000000111000000000000000000000000000000111100000

0000000011000000000000000000000000000001111000000

0000000001110000000000000000000000001111100000000

0000000000111100000000000000000000011111000000000

0000000000000111111101000000001111111000000000000

0000000000000001111111111111111111110000000000000

0000000000000000000000011111111000000000000000000



1 shape 284 pixels

2 shape 111 pixels

3 shape 34 pixels

the number of sub shapes found is:3




Well for starters the first sub_shape to be detected is (should be) a large
circle. So after verifying that it can be eliminated. Then there should be 2
sub shapes left. The smaller one should be a circle. So we have that ruled
out.



So basically the problem is how to distinguish between an X a square and 2
triangles pointing in different directions compared to a point of reference
(smaller circle)



The X should be easy enough to detect since it doesnt have a hole.





0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000

0000000000000000000000000000000001111000000000

0000000000000000000000000000000111111110000000

0000000000000000000000000001111111000110000000

0000000000000000000000000001111100000110000000

0000000000000000000001111111100000111110000000

0000000000000000000111111111000001111100000000

0000000000000111111111000000000111100000000000

0000000000000111111100000000000111000000000000

0000000001111110000000000000011110000000000000

0000000001111100000000000000011100000000000000

0000000001100000000000000000111000000000000000

0000000000111000000000000000110000000000000000

0000000000011000000000000111110000000000000000

0000000000001110000000000111100000000000000000

0000000000000011000000011110000000000000000000

0000000000000001100000011100000000000000000000

0000000000000001100001111000000000000000000000

0000000000000000111011110000000000000000000000

0000000000000000001111000000000000000000000000

0000000000000000000110000000000000000000000000

0000000000000000000000000000000000000000000000




But for the others i dont know exactly what to do. I have tried doing a
hough transform but that dit quite give anything that i could work on. (or i
couldnt see the result immediately)

Does somebody know of any algorithms or methods for interpreting the hough
transform results? I did try taking the maximums but the shorter side doesnt
come out too well. Would detecting the single largest side at a time and
eliminating it work??





So does anyone have any good ideas or any advice?



What other methods could i use? Since the shape doesnt exactly look like a
triangle what techique could i use? It is still not too late to change the
traffic signs for something that will certainly work.





Thank you in advance for your precious time and effort.



Teoman Naskali



Message has 1 Reply:
  Re: Path following robot, sign recognition.
 
(...) Sounds like you can detect regions just fine. Why not make the signs dots? Then you could just count the distinct regions to know which command it was. You could make it easier for humans to understand by choosing to arrange the dots in a way (...) (21 years ago, 2-May-03, to lugnet.robotics)

2 Messages in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR