Shop OBEX P1 Docs P2 Docs Learn Events
Robot Navigation - road sensing - need advice — Parallax Forums

Robot Navigation - road sensing - need advice

ALIBEALIBE Posts: 299
edited 2006-09-26 13:09 in Propeller 1
Hello all,
As some of you might know, the project I'm working on is converting my electric Traxxas truck to a slow moving land autonomous robot. The project is for sure going to keep me busy during my winter weekend hiberations.

One of the functions of the robot is of course to move about along the roadside from point A-B using GPS (which is a different topic altogether). As it is thus moving about, I was hoping that it will keep itself toward the edge of the road (let's suppose right side) except when it needs to make turns.

I have seen many postings/articles/documentation elsewhere on edge detection. But, not so much around edge detection on landscape. I have seen people referring to using camera and vision sensing to determine edges. But, 1) they all seem beyond my understanding 2) error prone, 3) not sure what else??

Can folks here recommend if and what options I should be looking into? I am wondering if there's a soln w/o having to use a camera.

thanks in advance for your feedback and help

Nagi

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
ALIBE - Artificial LIfe BEing. In search of building autonoumous land robot

http://fstop.crosscity.com/
http://icar.crosscity.com/
·

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2006-09-23 14:33
    The issue really is "how do you tell the difference between road and non-road". There might be some difference in IR reflectivity or ultrasound reflectivity, but you'd have to experiment to find out. I think the reason why successful autonomous vehicle experimenters use cameras is that most roads have a visual edge, either a curb or an edge of concrete or asphalt that can be recognized at a distance.
  • CJCJ Posts: 470
    edited 2006-09-23 15:41
    or the bright yellow and white lines

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Who says you have to have knowledge to use it?

    I've killed a fly with my bare mind.
  • ALIBEALIBE Posts: 299
    edited 2006-09-23 18:09
    if you have any handy - can you provide any urls that talk to camera vision details that solve road edge detection please.

    thanks

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ALIBE - Artificial LIfe BEing. In search of building autonoumous land robot

    http://fstop.crosscity.com/
    http://icar.crosscity.com/
    ·
  • PLJackPLJack Posts: 398
    edited 2006-09-24 17:55
    If you are not going to use a camera and want to keep it simple the only reliable method I can think of is to test for a hard surface.
    The first thing to pop into my mind is a wheel with one or more contact pins build into it. In other words if the wheel is on a hard surface the pin will be flush with the wheel and make contact. If the wheel moves on to sand the pin will push into the sand and no contact will be recorded. If your read no contact in a few revolutions of the wheel, then you are probably not on the road.

    Not a great explanation, but you get the idea.
    Create a device that can detect hard surfaces.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - - - PLJack - - -



    Perfection in design is not achieved when there is nothing left to add.
    It is achieved when there is nothing left to take away.
  • potatoheadpotatohead Posts: 10,260
    edited 2006-09-24 18:28
    Wouldn't one be able to use sound for this too?

    Seems to me, the road, lines and non-road terrain would all have different sonic signatures when reflecting back sounds.

    Use two mics on either side of the vehicle, both emitting sounds that are not harmonics of each other, or not at the same time. Have a third mic, in the middle analyzing the reflected sounds, or pulse the two and listen to the results.

    Maybe the differences are general case enough to serve for guidence purposes.


    Edit: Didn't see the post above, referencing ultrasound...
  • ALIBEALIBE Posts: 299
    edited 2006-09-24 19:12
    thans all above for the comments and advice.

    Does "Ping" help in applications such as these? Referring to Potatohead's "sound signatures"

    thanks

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ALIBE - Artificial LIfe BEing. In search of building autonoumous land robot

    http://fstop.crosscity.com/
    http://icar.crosscity.com/
    ·
  • potatoheadpotatohead Posts: 10,260
    edited 2006-09-24 20:46
    I don't know what "ping" is yet. Will soon as I get my own prop to toy with.

    The first thing I would do is figure out if the sound must be pulsed or not. Get a coupla mics, have one emit and the other receive. For the emitter, I would use a conical baffle to keep feedback within sane limits and direct the sound to the roadway as much as is possible. The closer the better, as you want the second mic to capture reflected sounds more than emitted sounds.

    If it were me, I would go to the road with a basic setup running, emitter in one hand, receiver in the other and listen to the results. Use higher audible frequencies (>6Khz <14Khz) and listen while moving the mics around. An alternative would be to use much higher frequencies, then downsample the receiving mic into your hearing range. You should be able to fairly quickly determine if the means is viable, optimal distances between mics and road and each other, etc...

    IMHO, it would be sweet to be able to use combinations of pure tones for both sides because a constant loop system would then be possible. However, that might not properly differentiate between the road, lines and off-road elements. Noise is probably a more viable approach, but that would need to be pulsed. --And it's harder to sample and differentiate with your own ears.

    After thinking about it a bit, the higher supersonic frequencies are probably your best bet as surface texture differences would be closer to those wavelengths, where the line and the road are concerned. The differences between road and non-road are much greater. If you need the line, it's gonna be tough. If you only need the road to be detected, then it's gonna be a lot easier.

    Maybe do some math to calculate the average wavelength of the features to be differentiated. The road will have the usual small pits and a lot of flat area. A road with the lines will have the same, but with the addition of the little reflective glass balls added. Those are really small, but there are a lot of them. Might be possible to differentiate with the right frequencies. The ground that lies outside the road should be fairly easy. The feature differences are often larger (gravel) and the reflectivity is going to be less (dirt, grass, etc...)

    If you make noise with strong harmonics in line with the overall topology, the reflected sound should reinforce those and diminish others, thus allowing detection using spectrum profiles.
  • acantostegaacantostega Posts: 105
    edited 2006-09-26 00:39
    Well, road detection in general isn't an easy problem. After all a big part of the DARPA Grand Challenge was about road detection -- and those robots used tons of sensors, including cameras, lasser range sensors and whatnot. Of course, it all depends on what environment you plan to use your robot. The more "constrained" and predictable the environment (in terms of what your robot can sense), the better.
    One very simple approach, using vision, is the color histogram. I have seen this work outdoors. For the patch of terrain just in front of the robot, "road" terrain was usually brown-ish, whereas "non-road", ie bush, stone, etc. was a different color, usually green-ish. So a color histogram was generated from the frame data of the camera and according to a statistical rule patches of the road ahead were classified as traversable or non-traversable.
    By the way, the CMUcam2 can generate color histograms for you and can also give you edge data. It has a simple serial interface.
  • IAI-CaptainIAI-Captain Posts: 33
    edited 2006-09-26 04:18
    Alibe
    Yes Ping can detect the hard surface of the road, But you are going to have a tough time of getting the system to know the dif btw the road and, lets say the grass, because:
    1. The ping ultrasonic module is only capable of short range sensing.
    2. Ping is by design, Not·going to give you any other information other than the distance to an object in it's field of view. (I.E. It wont be able to tell you if @ a distance 3" it is receiving a bounce back echo from a bush on the side of the road or a rock or if it is the road.)
    3. Also for any great distances in out door use, Sound waves become less reliable due to temp variations in the air, and the effect that it can have on the density of the air and therefore the speed that the sound waves travel @ is going to be faster in colder air and slower in warmer air. Sound travels faster though objects of higher density at a fester rate than they do objects of lower density. (I.E. water, wood, Solid earth, ect..)
    If I were you I would use a LASER/ laser pointer: (Here is a Basic Over View)
    1. I would modulate the Laser output to a set known FREQ, (Say 50Khz).·············(············ ··· ^ Reff Beam······················· )
    2. ···········································································································(················· |··············································· )
    3. Split the LASER Beam in two with a beam splitter. (A microscope slide will due). (e.g.
      >/
      > Active Sense Beam·· )
    4. Place RED filter over a Photo detector / Photo Resistor.·································(·· · LASER BEAM Splitter·).
    5. Run the output of the detector into an 60hz notch filter, (to block man made light sources).
    6. the output goes into an OpAmp set to a gain of about x10
    7. the output then goes into another OpAmp set up as an Inverted Comparator. (+side goes to another Optical sensor matching the first but it is only going to be used as a reference (It will be looking @ the LASER LIGHT before it Bounces back. the Modulated signal and the -side to the output from step 4).
    8. So long as the Sensor Sees Reflected Modulated LASER light it will output a +voltage = VDD (3.3volts), /But if no reflection takes place then the output will be =VSS (0.00Volts).
    9. this is done as a comparison·of the Reference Beam Verses the Echoed Beam. (Not affected by the Ambient AIR temp as much).
    10. Plus Longer distances.
    11. If you make the sensor scan Bck&Frth and give·some extra ext Mem to your Prop, you can make it store all the values of all the locations it has scanned. In affect it can build a crude picture out·of what the reflected brightness levels are in the seen as Stored in ext·Mem.
    12. Then all you have to do is: write some IAI code so the Prop can learn what the Difference is between the road and every thing else.
      1. Note: with regards to the OpAmps, I’m sure that you can find single Ics that are able to handle the job of notch filter as well as the other OpAmp functions.
      2. If you use IR, (Infrared Laser light or very bright Collimated IR LED Light), then you could problem use the Irbudy from PARALLAX, (you should get a pair soon. For they are on the soon to be discontinued list). (Look under sensors).
    Research Reading: all books by Forest Mims 3rd: @ RadioShack and other sources.
    ·
    Hope this Helps you,
    IAI-Captain

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    IAI (Indigenous Alien Intelligence),
    The New View on Machine Intelligence.
    Because There is nothing Artificial about it!
  • ALIBEALIBE Posts: 299
    edited 2006-09-26 13:09
    acantostega, IAI-Captain;
    Thanks for the notes and providing alternatives. It is evident that I will save time and probably gain knowledge by going w/ a cam frames and histgram data.

    Are there any existing projects people have done using the CMUcam2 ? I will search the "completed projects" in the meantime

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ALIBE - Artificial LIfe BEing. In search of building autonoumous land robot

    http://fstop.crosscity.com/
    http://icar.crosscity.com/
    ·
Sign In or Register to comment.