Let's Make Robots!

What sensor for detecting (and locating) people?

One thing I often want to do in a robot is have it be able to find (and maybe follow around) people. But I haven't been able to track down what type of sensor would be good for that. I've seen PIR sensors which detect motion, but they seem to be more for things like alarm systems, where they tell you that "something" is moving in their field of view, but you can't really use them to actually find which direction the motion is coming from. It seems like humans are a lot warmer than most of the rest of the stuff in a room, so it shouldn't be that hard for some sort of temperature sensor to go high when a servo points it at a person (or an animal, OK). But I haven't yet found a sensor that worked like that. Does anyone have any ideas how I can accomplish that basic task, of being able to determine the direction to a person?

Dan

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Sonar sounds compicated. It sounds like you might need to have a combination of sensors or maby even a camera. Another idea would be to put a infred sender on the pirson you want to track and recevers on the robot.

You can use a standard sonar or IR sensor to detect motion by integrating multiple scans into one. With one scan you get the location of an object. With two scans you get the velocity relative to the robot. It's just a little math. Take the distance between two objects that two consecutive scans detected. Then divide by the time that passed between the two scans and you have an estimation of the directional velocity in meters per seconds. Three scans yield an estimation of the acceleration in a similar way. Comined with the heat sensor you might actually get something reliable. The heat sensor gives you only a direction, but not a distance.

PIR stands for Peripheral Infra Red, and it uses a parabolic mirrior to reflect the IR all around the room, and when it senses a disturbance it just turns on a pin. They are easily hackable and Parallax sells them for 10$ so even parallax knows they are cheap :p

I found and ordered a sensor that might be a good option, or it might not. It's the D203S, second down on this page. It's only about $2, and it apparently has a narrower field of view so it might be useable on a sweeping sensor (or with several of them spaced around the robot) to detect what direction the person is at. Looking at the 'typical application' schematic on the datasheet (and seeing online discussions such as this one), it sounds like it might actually require a lot of support circuitry to do anything with the signal. But on the other hand, some of the other schematics in the datasheet show it connected with nothing more than a resistor and an amplifier, so maybe it won't be so bad. I suspect (or maybe I'm just hoping) that all that extra circuitry in the Typical Application is only needed if you want to convert the output into a simple 'low/high' to drive a relay like they do. Since I'll be reading it with an analog input on a microcontroller, maybe just amplifying the signal alone will be enough. I guess I'll just have to play with it and see. For $2, it's definitely worth a try. Here's hoping.

Dan

This cusin

/ Fritsl

Yes, extremely pricey - which is why I have found some cheap PIR's - sometimes "hobby-stores" sell them extremely expensive, but they can be bought for a buck.

I never finished the study, though, so get in that jungle, boy, and come out and tell us what is inside of it!

/ Fritsl

Ahh, good to know that it exists, at least. But yeah, ouch, that's a lot for a sensor. But the fact that there's nothing cheaper makes me think that there probably isn't a cheap way to do the same thing. Still, I'll have to search and experiment. Maybe a standard cheap PIR would be enough for what I want to do. I'll have to experiment, I guess.

Dan

Try to look for a cheap burgular alarm or something, and buy one. You can probably get them for around $10. Open it up and find the output (aka to alarm/LED), then all you have to do then is to run that into your application.