Shop OBEX P1 Docs P2 Docs Learn Events
360 degree position detection — Parallax Forums

360 degree position detection

Steve2381Steve2381 Posts: 94
edited 2010-03-19 19:24 in Accessories
Hi all.

Ok. I have a project that requires me to detect the position of a person, at a range of 1m - 5m, but the detection zone needs to be a full 360 degrees.
It also needs to detect them pretty quick and then track their position (not too hard eh!)

Here is my thinking.....

Passive Infra-red. Too sensitive, not very accurate and won't like being moved.
Radar. Too complex?
Ping module/s. Possible. Will they like being moved around? I suppose if you made sure the sweep was slow enough or even possibly stepped, then you could get a return signal reading.
Sonar. This is the idea I like the best, but I have not used the sonar modules available before. Again, I think the sweep needs to be pretty slow.

My questions...

a/ What do you reckon would be the fastest 'sweep' you could operate using the sonar or ping modules, and still have enough time to receive the return signal.

b/ Which one would perform better? I have seen some software for the sonar modules showing a small 'sweep' system.

To obtain the 360 degree sweep, I think the way forward would probably be at least 4 sensor arrays set at 90 degrees that sweep just their own 90 degrees (all 4 sensor arrays on the same disc that sweeps 90 degrees).
The sensor disc would be position encoded so that I could work out its relative position. 4 arrays would cut the detection time down by 4 as well.

If 90 degrees is too much of a sweep, then I could go to 8 sensors, but that is a lot of information to process and expensive.

I was thinking of using a Propeller chip for this project. I have not used them before however but I believe they would work ok.
I in theory could have 1 cog for each sensor? Therefore all processing at the same time.

OR.... Any other suggestions... pre-build modules or design ideas


Many thanks
Steve

Comments

  • kwinnkwinn Posts: 8,697
    edited 2010-03-17 18:41
    In dry air at 20 °C (68 °F), the speed of sound is 343 meters per second (1,125 ft/s). To detect an echo from a person 5meters away would require 10/343 or approximately 0.03 seconds using ping or sonar (both sound). How quickly you could scan 360 degrees would depend on how wide the pulse disperses. If it was a very narrow beam (say 6 degrees) you would need at least 360/6 x 0.03 = 1.8 seconds.
  • Steve2381Steve2381 Posts: 94
    edited 2010-03-17 19:51
    Well the narrowest beam I can find in the world of sonars so far is 15 degrees. The info sheet shows a beam long and a consistant width over its detection length. Not super accurate but what I expected.
    It would just mean the module would not be very accurate at close range. Perhaps a narrower beamed ping module would provide a better close range accuracy.

    http://www.active-robots.com/products/sensors/sensors-maxsonar.shtml

    This sonar module reckons on a 35ft range with the ability to detect object 3" apart. Think that is rather hoping.

    http://www.active-robots.com/products/sensors/sensors-senscomp.shtml

    So based on the calculations above, we could actually achieve a full 360 degree spin in less than a second if the accuracy is roughly 15 degrees

    However, that might lead to missed zones.

    My other concern is each sonar module interfering with the one next to it.

    I think the best option would be to have a pair of sonar/ping modules back to back, that scan in increments of 6 degrees (even though the beam might be <> 15 degrees wide). Each one covering its own 180 degree sweep.
    That would return a fairly accurate position of a target.

    I only need to know the centre of the target anyway, so for instance, if I received say 4 'hits' with a sonar ping, my software could just take the centre of these hits as the centre of the target.

    Mmm... hours of playing ahead I fear
  • Steve2381Steve2381 Posts: 94
    edited 2010-03-18 17:02
    Been playing and I have a question. My 360 degree position sensing....
    I have not used a digital compass module before, so how quick with their position data and accurate are they?
    I originally planned to obtain the position by optical encoding, but thinking about it, a compass module may be far easier.

    Thanks guys
  • John CoutureJohn Couture Posts: 370
    edited 2010-03-18 19:02
    Steve,

    Is the sensor platform moving? turning? Or is it stationary?

    If it is stationary, all you would need to do would be to have a know azimuth for the platform and your "turret" could be an offset from there. In other words, use the compass module to determine the platform azimuth and a series of proximity switches to determine left or right from there (i.e. see how the AAG 1 wire weather station determines direction).

    If the platform is moving, can you encode the wheel turns. Again use the compass module to determine the azimuth when resting and everything else from there is determined from the wheel position (the same way your car GPS determines speed/direction in a tunnel).

    As for detecting a moving body (or target) ... again is the target moving or stationary. If it is moving, you might be able to compare the last "pass" the the current pass and go after anything that moves.

    Anyway, just a couple of random thoughts.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    John J. Couture

    San Diego Miramar College
  • Steve2381Steve2381 Posts: 94
    edited 2010-03-18 20:57
    The sensor platform does move around, but will be stationary when it starts looking for targets (which might be stationary or moving targets).

    Therefore, my thinking was to get the compass position of the base platform when it stops moving, but before the sensor array starts rotating. That compass reading becomes my point of reference.

    Then the rotating sensor platform with a second compass module onboard starts spinning and when the detector 'hits' a target, it can take the compass direction at that instant and deduce the direction of that target hit.
    I could then store and process the reading from the compass module each time I encountered a target on each 360 degree sweep. In theory, I could monitor many targets around the base platform. Both moving and stationary.

    If my sensor platform only rotates one direction, then I will not need to know whether it is left or right. It will simply deduce where that target is using the original base platform compass reading and the rotating sensor arrays 'hit' compass reading.

    If the sensor platform moved during scanning, then the 'point of reference' compass reading would change with it. The system in theory would still work fine.

    What is the accuracy of a compass module? Are they accurate to a single degree? I imagine they are.

    Mmm.. sounds complicated written out like that!

    Thanks

    Post Edited (Steve2381) : 3/18/2010 9:10:42 PM GMT
  • kwinnkwinn Posts: 8,697
    edited 2010-03-18 22:09
    @Steve2381

    Re: 4 sensor arrays set at 90 degrees - My other concern is each sonar module interfering with the one next to it.

    I don't think that is very likely with the sensors at 90 degrees. I doubt they are sensitive on the side of the housing. Wouldn't hurt to set up a test using 2 sensors though.

    Re: my thinking was to get the compass position of the base platform when it stops moving, but before the sensor array starts rotating. That compass reading becomes my point of reference.

    Since a reading takes only 0.03 seconds I doubt moving affects accuracy much unless the robot moves/turns at fairly high speed. Perhaps you could do moving readings until an object is detected and then stop for a reading.
  • Steve2381Steve2381 Posts: 94
    edited 2010-03-19 19:24
    I agree. I don't think sonar sensors (which are looking like the best option) will have any or much side interference.
    I think I have decided to go with a pair of sensors, set at 180 degrees anyway. I can mount them in a back to back style and that total kills any chance of cross signal interferance.

    As for the base 'point of reference'... It won't really actually matter whether the sensor array is rotating or not before the first array reading. The compass reading from the base is purely to determine the direction the base is pointing.
    Then, my sensor array compass readings can determine a target direction from that reference.

    My sensor array doesn't need to spin wildly anyway. If I can obtain a sweep per second, that would be fine.
Sign In or Register to comment.