Shop OBEX P1 Docs P2 Docs Learn Events
Robotic Human follower using IR, GPS or imaging — Parallax Forums

Robotic Human follower using IR, GPS or imaging

RustySivaRustySiva Posts: 16
edited 2011-04-11 06:29 in General Discussion
Hi Guys,
This is not a problem but more of an Information and advice request.
Im planing on creating a human following robot that would follow a
person with an RF signal or some sort. What methodology and technology
would you advice me to take?
I was thinking of using two GPS units one for the Robot and one for the lead
beacon. Is there anything else more cost effective and less cumbersome
you can advice on, as the lead GPS unit will be too heavy since it will
be including a RF transmitter and GPS receiver too.

If time permits or one of you guys have attempted/achieved this, I would appreciate the knowledge.

Have a good day

Russell smurf.gif

Comments

  • LeonLeon Posts: 7,620
    edited 2010-07-16 14:48
    How accurate does it need to be? GPS might not be good enough in some situations where the positional data have large errors.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Leon Heller
    Amateur radio callsign: G1HSM
  • RustySivaRustySiva Posts: 16
    edited 2010-07-16 14:51
    If it can follow at a predefined distance of 5 feet. Ideally that would be good. I sure will be using Sonar to keep a safe distance rather than the robot running into your ankle.
    Leon: Thank you for your reply.
  • LeonLeon Posts: 7,620
    edited 2010-07-16 15:10
    I don't think that 5' is feasible with GPS, consistently. You could use it for coarse positioning and use some other technology with it for short-range accuracy.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Leon Heller
    Amateur radio callsign: G1HSM
  • ercoerco Posts: 20,261
    edited 2010-07-16 15:21
    Indoors, IR.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ·"If you build it, they will come."
  • RustySivaRustySiva Posts: 16
    edited 2010-07-16 15:22
    The first hurdle is, how can i make the bot locate the source of the RF beacon(lead Rf transmitter - moving)?
  • RustySivaRustySiva Posts: 16
    edited 2010-07-16 15:26
    Erco, im designing this to work outdoors. External IR might interfere with the bots tracking system. I agree with you Leon that GPS might not give an "+/- 5 Feet" location. If I can make the Bot recognize the direction in which the RF signal is coming from, then I could initially make it travel towards the signal and either according to the intensity or sonar range it could maintain a distance of "5 feet". But the problem is, I dont know how to go about designing the circuit or even the algorithm to do the tracking. Any Advice guys?
  • Mike GreenMike Green Posts: 23,101
    edited 2010-07-16 15:30
    Use a directional antenna and scan for peak signal. Alternatively, you could have multiple antennas and switch among them looking for a peak signal. You'll need to do multiple scans and use averaging or some similar processing since there are all sorts of interfering influences, but that'll get you in the right general direction. Using light is also an option as erco mentioned. It can work at night and often during the day.
  • ercoerco Posts: 20,261
    edited 2010-07-16 15:42
    http://www.gogogolfcaddy.com/

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ·"If you build it, they will come."
  • RustySivaRustySiva Posts: 16
    edited 2010-07-16 15:47
    Erco,
    Yes, Thats pretty much what I need my bot to do as well. Here is another link I saw http://www.shadowcaddy.com/index-UK.php
    How does the buggy know where the signal is coming from? How can I implement it? Will Parallax products be able to handle such processing?
    Regards
    Russell
  • ercoerco Posts: 20,261
    edited 2010-07-16 18:09
    It's definitely a sensor/antenna issue moreso than a processor issue. A BS-1 could drive the platform if the sensors tell it exactly where to go. Sounds like you're in the RF camp, so you'll need to dig deeper than Parallax sensors. You'll need to detect direction and proximity to your target transmitter located on the person. Per Mike, some multi antenna array with differential signal strength can be used to detect direction. And when the average signal strength falls between 2 limits, the drive motors act accordingly. Below a certain strength means the person has moved away, and it's time to follow. Above a certain signal strength, stop following, you're close enough.

    Just for fun, include an optional third threshold for REALLY close proximity, so when the human walks up to the robot, the robot backs up avoiding the person and runs away!

    You'll need to find some expertise in RF, which freqs to use for good directional info, what type of antennas (size & performance), and also what freqs won't microwave your kidneys when this always-on transmitter is strapped to your belt. ARRL has lots of useful info for the ham frequencies. You could also look into those child alarms that beep if your child (or his transmitter) go out of range.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ·"If you build it, they will come."
  • RustySivaRustySiva Posts: 16
    edited 2010-07-28 10:11
    Hi Guys,

    A quick update. I have decided to IR for direction sensing and following. idea.gif However though, I need to ask for some guidance and knowledge from you guys.

    I have decided to have 8 PNA4602M IR detectors arranged in a circular pattern facing outward to sense the direction of the IR source. Because of my lack of knowledge, I have come across two hurdles cry.gif

    1. How can I measure the intensity of the the IR source to detect the distance approximately, by calculating the mean difference I could get a near accurate direction

    2. How can I create an IR source that transmits a particular code and how do i make my Bot only respond to that RI signal with the specific code?

    I will be using Sonar to keep a safe distance while ramping up/down speed in proportion to the distance from the source.

    Any advice please

    Thanks guys

    Russell
  • Spiral_72Spiral_72 Posts: 791
    edited 2010-07-28 14:44

    Wow, that's great!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "puff"...... Smile, there went another one.
  • Mike GreenMike Green Posts: 23,101
    edited 2010-07-28 15:04
    Download and read the "IR Remote for the BoeBot Robot" tutorial available from the Parallax Downloads page under Educational Tutorials & Translations. It discusses transmitting data via IR and it discusses using the response curve of the IR detectors (to modulation frequency) to get rough ranging information using IR.
  • RustySivaRustySiva Posts: 16
    edited 2010-07-28 15:06
    Thanks Mike, will do so now and keep you guys posted of my progress
  • ercoerco Posts: 20,261
    edited 2010-07-28 16:23
    IR outdoors??

    No worky in sunlight. Heap big problem.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ·"If you build it, they will come."
  • W9GFOW9GFO Posts: 4,010
    edited 2010-07-29 04:25
    erco said...
    No worky in sunlight. Heap big problem.

    Might that be just a wee bit of an exaggeration? I have used IR remotes on sunny days outdoors to control cameras.

    Rich H

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    The Simple Servo Tester, a kit from Gadget Gangster.
  • RustySivaRustySiva Posts: 16
    edited 2010-07-29 14:16
    Erco: Thanks for the advice, I will figure out a way to send a stream of digits and configure the robot to only follow a certain tag, If I have got my theory right, this should eradicate any other rouge IR signals effecting the robot.

    Is there any other IR receiver I could use for this purpose other than PNA4602M? As this item is hard to find here in the UK and shipping it here form USA is expensive. Any Advice?
  • ercoerco Posts: 20,261
    edited 2010-07-29 14:35
    Any IR sensor is easily saturated outdoors in direct sunlight. Perhaps in a stationary app, under ideal conditions & backgrounds, it may function (hit or miss, not reliably, at a reduced range, as a tiny IR LED's output can't compete with the sun) but in a mobile app like this I'm pretty comfy saying "highly unlikely".

    That said, if you're like me, you love a good challenge and may pursue the problem. If I'm wrong, please come back and set me straight, I've been humbled before by people smarter than me on this Forum !!!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ·"If you build it, they will come."
  • RustySivaRustySiva Posts: 16
    edited 2011-04-11 05:02
    HI Guys,
    An update into my adventures with IR. I have made a makeshift (something from Jurassic park) IR receiver . Pictures attached.

    I have written a small program to detect as to which direction the IR signal from a Sony TV remote control is coming from. My limited programing knowledge is now catching up with me and I'm getting random values ie: receivers that are not in view is picking up the signal.

    Either my shielding is not working or my programing is Smile. Can one of you guys please advice me how to get this sorted. Any help is much appreciated.

    Code:
    ' {$STAMP BS2}
    ' {$PBASIC 2.5}

    DEBUG "Locating IR", CR

    irD1 VAR Bit
    irD2 VAR Bit
    irD3 VAR Bit
    irD4 VAR Bit
    irD5 VAR Bit
    irD6 VAR Bit
    irD7 VAR Bit

    pulseCount VAR Byte
    pulseLeft VAR Word
    pulseRight VAR Word
    counter VAR Word

    main:
    DO
    irD1 = IN6
    irD2 = IN7
    irD3 = IN8
    irD4 = IN9
    irD5 = IN10
    irD6 = IN11
    irD7 = IN12


    IF (irD1 = 0) THEN
    DEBUG "1", CR
    ELSEIF (irD2 = 0) THEN
    DEBUG "2", CR
    ELSEIF (irD3 = 0) THEN
    DEBUG "3", CR
    ELSEIF (irD4 = 0) THEN
    DEBUG "4", CR
    ELSEIF (irD5 = 0) THEN
    DEBUG "5", CR
    ELSEIF (irD6 = 0) THEN
    DEBUG "6", CR
    ENDIF

    LOOP


    Thanks guys

    Russell
    1024 x 765 - 70K
    1024 x 765 - 98K
    1024 x 765 - 89K
  • ElectricAyeElectricAye Posts: 4,561
    edited 2011-04-11 06:00
    RustySiva wrote: »
    ...

    Either my shielding is not working or my programing is Smile. Can one of you guys please advice me how to get this sorted. ...

    Keep in mind that TV controllers often emit IR that is fairly intense (though you can't see it), so your TV will pick up the signal even if the line of sight between your controller and TV is somewhat blocked. In other words, these kinds of controllers like to take advantage of spurious reflections, bouncing IR signals off the walls, the floors, your dog, or whatever else they can - anything so long as the signal makes it to the TV. So your directional funneling device might be picking up a lot of these IR signals bouncing around the room. You might need to make your collection "funnels" deeper, more like long tubes, and you might need to use a dark velvety material or at least a matte black paint to line those tubes, otherwise the walls of the funnels will collect light from all sorts of unintended directions. Just because your funnel material is colored black means very little when the light comes in at a low angle of incidence. Look at your own photographs of it and notice the shiny parts, how reflective the material actually is.

    As for posting code, take a look at this:



    attachment.php?attachmentid=78421&d=1297987572
  • RustySivaRustySiva Posts: 16
    edited 2011-04-11 06:29
    Keep in mind that TV controllers often emit IR that is fairly intense (though you can't see it), so your TV will pick up the signal even if the line of sight between your controller and TV is somewhat blocked. In other words, these kinds of controllers like to take advantage of spurious reflections, bouncing IR signals off the walls, the floors, your dog, or whatever else they can - anything so long as the signal makes it to the TV. So your directional funneling device might be picking up a lot of these IR signals bouncing around the room. You might need to make your collection "funnels" deeper, more like long tubes, and you might need to use a dark velvety material or at least a matte black paint to line those tubes, otherwise the walls of the funnels will collect light from all sorts of unintended directions. Just because your funnel material is colored black means very little when the light comes in at a low angle of incidence. Look at your own photographs of it and notice the shiny parts, how reflective the material actually is.

    As for posting code, take a look at this:



    attachment.php?attachmentid=78421&d=1297987572


    @ElectricAye: Thanks for tips, I will try an coat the inside of the shileds with a mat paint or some sort.

    Taking your advice, im reposting the code. Hope it works well.

    Once again thank you
    ' {$STAMP BS2}
    ' {$PBASIC 2.5}
    
    DEBUG "Locating IR", CR
    
    irD1 VAR Bit
    irD2 VAR Bit
    irD3 VAR Bit
    irD4 VAR Bit
    irD5 VAR Bit
    irD6 VAR Bit
    irD7 VAR Bit
    
    pulseCount     VAR Byte
    pulseLeft      VAR Word
    pulseRight     VAR Word
    counter        VAR Word
    
    main:
    DO
      irD1 = IN6
      irD2 = IN7
      irD3 = IN8
      irD4 = IN9
      irD5 = IN10
      irD6 = IN11
      irD7 = IN12
    
    
      IF (irD1 = 0)  THEN
        DEBUG "1", CR
      ELSEIF (irD2 = 0) THEN
        DEBUG "2", CR
      ELSEIF (irD3 = 0) THEN
        DEBUG "3", CR
      ELSEIF (irD4 = 0) THEN
        DEBUG "4", CR
      ELSEIF (irD5 = 0) THEN
        DEBUG "5", CR
      ELSEIF (irD6 = 0) THEN
        DEBUG "6", CR
      ENDIF
    
    
    LOOP
    
    
Sign In or Register to comment.