Loading ...
Sorry, an error occurred while loading the content.
 

Re: How does one get CMUcam into Line Mode?`

Expand Messages
  • peter_chatterton2001
    Hi Paul, I really appreciate your comments; if I don t give up because of them, they will be basis of my ongoing work! One thing I might not have explained
    Message 1 of 17 , Oct 4 3:31 PM
      Hi Paul,

      I really appreciate your comments; if I don't give up because of them,
      they will be basis of my ongoing work!

      One thing I might not have explained properly is that I want to use
      Line Mode in conjuction with TC or TW. My understanding was that if I
      only had one horizontal line then the output of the TC would be the
      data for that line. I didn't want to get into image analysis.

      Thanks,
      Peter
    • Paul King
      Hi Peter, I see. I m not sure what you mean by if I only had one horizontal line then the output of the TC would be the data for that line The lines that
      Message 2 of 17 , Oct 4 7:45 PM
        Hi Peter,
         
        I see.
         
        I'm not sure what you mean by "if I only had one horizontal line then the output of the TC would be the data for that line"
         
        The "lines" that are returned in "line mode" on the CMU cam are scan lines of the captured image frame, and not visual lines, edges, or object contours present in the visual scene.
         
        So when you say "only one horizontal line" I'm not sure what this is referring to.  A long straight object in the visual scene, such as the door marker you refer to, when viewed in 3D perspective, projected onto the camera's CCD, and captured as a frame of image data, will most likely look like a slightly diagonal noisy thin rectangular region that spans many scan lines and many pixel columns.  If you tell the CMUCam to track all "white pixels" (to get your door tape line and the wall), both the tape region and the wall will be selected, plus any other white pixels caused by white lighting, other objects, or reflections.  Furthermore, all those white pixels in aggregate might span 100 camera scan lines, all of which would be returned by line mode.  How to figure out which 200 of the 3000 white pixels you get back are coming from the white tape line at the door is not an easy image analysis problem to solve.  It's especially hard if the tape line is not perfectly horizontal, which would only happen if the camera is facing it exactly straight on.  In a situation in which the room is being explored, you would rarely encounter this situation.
         
        There is an algorithm for finding straight lines from scanned image data called the Hough Transform.  However this algorithm is mathematically complex, involving matrix math and linear algebra, and is beyond the floating point capacity of the IntelliBrain.
         
        The only possibility I can see is that if you could come up with a trick for finding the door tape line with the CMUCam's built-in capabilities, you could use that.  For example, if the tape line is flourescent yellow whereas the wall is white, then you could select flourescent yellow pixels with the CMU cam, and use the location of the resulting pixel region as a navigation target without ever determining its shape (e.g. that it was a contiguous linear region).
         
        Which line mode were you specifically considering (there are two that affect TC and TC)?
         
        btw, my previous email had a math error.  The IntelliBrain is 4 million times slower at floating point than a Core2 Duo PC, not 40,000 times slower.  It's a useful perspective for what a microcontroller is really capable of and suitable for.  At the other end of the spectrum, a 3D graphics card is up to 60x faster yet again than a PC at floating point math.
            IntelliBrain = 5,000 flops
            Cray Y-MP in 1988 = 1 gigaflop
            Intel Core2 CPU = 10 gigaflops per core
            NVIDIA 9800 GTX 3D graphics card = 600 gigaflops (for $230!)
         
        Paul
         
         
        ----- Original Message -----
        Sent: Saturday, October 04, 2008 3:31 PM
        Subject: [intellibrain] Re: How does one get CMUcam into Line Mode?`

        Hi Paul,

        I really appreciate your comments; if I don't give up because of them,
        they will be basis of my ongoing work!

        One thing I might not have explained properly is that I want to use
        Line Mode in conjuction with TC or TW. My understanding was that if I
        only had one horizontal line then the output of the TC would be the
        data for that line. I didn't want to get into image analysis.

        Thanks,
        Peter

      • peter_chatterton2001
        Hi Paul, You guessed right, I was completely misled by the docs that couldn t be bothered to specify that they were talking about scan lines; see page 40, GM
        Message 3 of 17 , Oct 7 5:10 PM
          Hi Paul,

          You guessed right, I was completely misled by the docs that
          couldn't be bothered to specify that they were talking about scan
          lines; see page 40, GM 1,2 of the CMUcam2 User Guide: "Sends the
          [data] for every line being tracked in the image." How can you track
          a scan line?

          I'm going to dump the camera for this project but use it for a
          mini-Magellan contest where I'll be looking for traffic cones
          outdoors.

          As a diagnostic tool I might try and write a program that would
          pass back the cam's current image. This would be indep of the CMUcam
          classes and only run when the RoboJDE camera stuff is not running. I
          would probably hook up the USB to serial cable for it. Do you see
          any obvious problems with this? It seems to me it would be a useful
          tool.

          Thanks,
          Peter
        • peter_chatterton2001
          Hi Paul, You guessed right, I was completely misled by the docs that couldn t be bothered to specify that they were talking about scan lines; see page 40, GM
          Message 4 of 17 , Oct 7 5:21 PM
            Hi Paul,

            You guessed right, I was completely misled by the docs that
            couldn't be bothered to specify that they were talking about scan
            lines; see page 40, GM 1,2 of the CMUcam2 User Guide: "Sends the
            [data] for every line being tracked in the image." How can you track
            a scan line?

            I'm going to dump the camera for this project but use it for a
            mini-Magellan contest where I'll be looking for traffic cones
            outdoors.

            As a diagnostic tool I might try and write a program that would
            pass back the cam's current image. This would be indep of the CMUcam
            classes and only run when the RoboJDE camera stuff is not running. I
            would probably hook up the USB to serial cable for it. Do you see
            any obvious problems with this? It seems to me it would be a useful
            tool.

            Thanks,
            Peter
          Your message has been successfully submitted and would be delivered to recipients shortly.