Locating People in 360

Hi Everyone,

I was trying to detect motion but also locate it's direction around 360. So for example, know if there is movement at 260 degrees or 100 degrees, however, it does not have to be super accurate.

My initial attempts were to use an ultrasonic ranger that turns on a servo, with an initialisation stage that works out values for the distance of objects in the room.

This never worked so well and so I'm thinking about a series of fixed PIR sensors that have a narrow range.

Firstly I wondered wither there is a sensor off the shelf that serves this purpose? And secondly, has anyone attempted to do anything similar.

Thanks and I do hope this makes sense.

What you want is a single "pinger," and three separate "receivers," so you can triangulate where each echo comes from. You only want to pay attention to the first (nearest) echo, as walls will start confusing you shortly thereafter. Also, when the device is close to a wall, you're pretty much screwed unless you build very much smarts into it...

You could probably build this with an ultrasonic oscillator gated through an output, and three ultrasonic detectors with a notch filter to filter out non-echoes, gated through a separate output (so you don't get the wave as it travels across from the pinger) and then tie those notch filters through to three analog inputs.

Once you have the two closest detectors, compare the timing of arrival between each. You can use trigonometry (arccos? something like that) or just linearly interpolate over the 120 degree sweep for each to get a rough direction.

I imagine you can also hook three or four distance sensors up in a triangle (overlapping), make sure they're a foot from each other, and use triangulation that way. With $20 "cheapo" distance sensors, that may actually be the best, assuming you can get them to not crosstalk.

I don't know of any place you can buy one of these.

OK, "Locate Motion". So, it does not have to be a warm mammal etc, that shows up with an IR type motion detector.

It could be ultrasonic, with multiple receivers at least, as mentioned.

The Bank Vault solution is fisheye video, looking for scene changes and locating them. You might be able to use a linear photocell scanner such as used in handheld scanners, and a curved mirror. Initialize a view, look for changes and in what angle. Mostly looking around in a circle at "eye" level.

Look for "Linear Photodiode Array"..

...Maybe

Will it be light or dark? I have a solution that works with IR to detect moving edges. Another that requires a PC when it is light.

Thanks for the suggestions - I love this forum!

It doesn't have to be people or mammal's only, anything that moves in the vicinity of a particular direction. I'll look into the linear photo diode array.

It's a little lazy but I'm willing to compromise on accuracy for a quick and relatively easy solution - it's for a quick camera prototype to go in a public space - I want to create the effect of a camera looking at people - so precision is not so necessary.

I'd be keen to know how you detect moving edges with the IR - if your willing to share? I'd rather not have a PC but again, I'm willing to compromise.

:)

Auto-targeting a camera is largely a solved problem. There are systems you can buy that can do this, and also various open source software. I have a friend at work who took an open source facial recognition program, ran it on a $200 netbook, and hooked it into a tripod-mounted nerf gun with a cheap webcam and two stepper motors on it. It would acquire people as targets, and fire when it thought they were close enough :-)

It is pretty simple. I’m using a 2W IR laser in the dark with a serial JPG camera. The still image looks like a webcam so it’s sensitive to IR. Both are mounted directly on a stepper shaft. Rotate x degrees. Look at SIZE of jpg in dark. Repeat. When the laser hits something close the size changes because the dot is visible and sharp. When it is 100m away not so much, depending if it is black or white. You choose the threshold experimentally. There is no need to analyze the image. It is fast because little data is transferred from the camera to Uno. You can change the step size depending on if you want accuracy or speed. You can even change it as it is spinning to skip areas with nothing close and focus on any movement of a nearby object. This only works in the dark. When the position of the edges change there is movement.

When it’s light you can detect movement within about 30 degrees by using that step interval and looking at JPG size the same way, without the laser. To get more accuracy you need to analyze the image itself using a PC with XBee to send it.

jwatte: Auto-targeting a camera is largely a solved problem. There are systems you can buy that can do this, and also various open source software. I have a friend at work who took an open source facial recognition program, ran it on a $200 netbook, and hooked it into a tripod-mounted nerf gun with a cheap webcam and two stepper motors on it. It would acquire people as targets, and fire when it thought they were close enough :-)

I want one. How long until some Chinese E-bay seller has one avalible for $50 assembled? ;)

retrolefty: I want one. How long until some Chinese E-bay seller has one avalible for $50 assembled? ;)

The Neato XV-11 2D LIDAR sensor is just begging to be replicated by the Chinese; supposedly it was to be sold to hobbyists (for around $30.00), after they teased us for a very long time. It is basically a triangulation-type LIDAR sensor spun by a small motor; using a small laser and a linear array sensor (similar to the Sharp IR):

http://robotbox.net/blog/gallamine/open-lidar-project-hack-neato-xv-11-lidar-200-bounty (bounty has already been claimed)

Instead, they haven't released it to the public; still, that hasn't stopped people from buying and using it - they just buy the entire robot and tear it out; its still a much cheaper solution than "pro" 2D LIDAR scanners...

One could probably build something similar (with a lower resolution) using a Sharp IR sensor and some kind of slip-ring coupling (homebrewed using a stereo 3-conductor headphone jack/plug arrangement - though cleanup of signal due to contact noise might be a pain). It's too bad that Sharp no longer sells the long-range IR sensor they used to have, but even one of their "lesser" sensors could work well.

If you wanted to stick with ultrasonic sensors, a ring of 16, with each sensor mounted vertically, could be pinged one after the other (only initiating the next ping after the last is read - to avoid cross-talk); that wouldn't get you great resolution, nor would it be fast, but it would probably be faster than using a servo (hmm - a thought just struck me: could the speed be increased if you pinged two of the sensors at a time, with each sensor opposite each other - or 4 at a time, 90 degrees apart?).

If the ultrasound sensors were perfectly directional, you could ping 4 at a time. However, I believe there is significant backscatter and back-sensitivity, so pinging even two at a time wouldn't work well, because the "ping" from A would still reach the sensor from B.

jwatte: If the ultrasound sensors were perfectly directional, you could ping 4 at a time. However, I believe there is significant backscatter and back-sensitivity, so pinging even two at a time wouldn't work well, because the "ping" from A would still reach the sensor from B.

What if you had some kind of "surface" to absorb the sound behind the sensors (maybe mount them around a block of foam rubber or something)? Backscatter could still be possible, but maybe if you ignored anything after a certain time period, or some other solution - it might work...? Ah, who knows...maybe someone can experiment with it.

:D