For a robot that is about a meter high and needs to navigate through a crowd of people (art opening - this is an art roject :-), I need to sense the proximity of people in the way.
I need to do that only in the direction I am driving in, but it needs to react quickly and give me some kind of rough distance information, so I can steer around people.
There are entire university programs on experimenting with "people detectors" for robotics -- even teleoperated robotics -- and so far no one has it 100% right. In addition to people there's also walls, trash cans, and other things. People don't move in a consistent manner so there's always the element of surprise. And people sue.
So, the first rule of thumb is that the robot must be small enough that it won't cause damage to people or objects if it hits them -- because it will. (Or they'll run into the robot, hurt themselves, and blame the robot.) A three foot robot sounds too big and too heavy to be safely used around people if "it" will "react quickly" to them. Sounds like a lawsuit waiting to happen. It needs physical bump sensors in addition to anything else so that it will stop immediately if it hits something.
Beyond that, most folks use a combination of things like infrared proximity detectors (like the ones from Sharp), and ultrasonic. But I'll say that it's all in the programming.
If you will be operating the robot, maybe there's another approach. Don't have "it" do anything. You do all the driving. And rather than having it move around people, have people move around it. Put a big flasher on the top so everyone sees it, and put cushioning all around it. Add a ring bumper on it and have it say, "Oh excuse me" (or whatever) when someone bumps into it. Your lawyer will thank you for it!
It seems to me an awkward size, just tall enough to trip someone but not tall enough to be within the normal field of vision of adults. Might be a good idea to put an eye-level extension of some kind on it (and not something pointy--the top should _not_ be able to fit into someone's eye-socket)--even a cluster of helium balloons would be enough for people to notice the presence of an obstacle.
Also have it move slowly enough that people can avoid it easily and make sure it has as little real motive power as possible for the application--if it bumps into someone and they don't move and it fails to shut down it should stall rather than pushing them aside.
Alternatively, put a Big Effing Gun (Non-Functional) on it and have it shout "Annihilate-Annihilate" while waving the BEG(NF) about.
It needs to avoid any obstacle, but if I could distinguish I would have additional ways of making the bot more communicative. It would probably be funny though if it apologized to a wall for running into it... . ;-)
I love the anihilate part :-). Maybe I give it a Vogon voice saying "Resistance is futile"... .
Thanks for the sensor suggestions. I just ordered a bunch of them to see how it will work in real life.
I am very open to additional ideas. This is a little project, a nice diversion from my daily robotics. The robot will participate at an art opening with invited guests. It's job is to hold my stuff while I present my work. The show is in Europe, so the lawsuit is rather unlikely :-)
The shape of the robot is somewhat like this on wheels:
formatting link
It'll be actively balanced, and I'll make it a little higher so it is better visible. Thanks for the suggestion.
Also, it is supposed to stay close to me, preferably without interaction on my part (*), so it will be supervised in a way. It will not run into walls as long as I don't, but it should have a sense of things (or people) and avoid them.
Thanks for the help,
Matthias
*: probably following an orange ball attached to my clothes...
Ahhh, the BFG threory. I have always said that every robot needs a laser. And I've always wondered about putting a harmless gun on a robot and use it to threaten strangers when in anti-burgler mode: "Ask yourself, do I feel lucky?"
Along those lines my first thought is a combination of Sharp IR sensors or Devantech Ultrasonic sensors for range finding coupled with some sort of heat-detecting sensors. This would allow you to avoid obstacles in general (range sensors) and actually distinguish between objects and people (heat sensors). I've wanted to mock up a heat-tracking turret for my bots for some time, using a couple servos and 4 to 6 heat sensors with a simple difference comparison algortihm to center on the heat source, i.e. left/right and up/down sensor pairs. The algorithm could be identical to a simple Braitenberg light-seeking bot.
The trick of course is finding heat sensors that sense in the right temp range and are cheap. I've thought about using a thermistor mounted inside a flashlight parabolic reflector as a poor-man's medium range heat detector but finding a thermistor in the right range that doesn't require direct contact to measure temp has been difficult. Has anyone had any experience with such a setup or know of thermistors (or other sub-$10) components that could be used as such?
I've looked at firefighting robot competition pages to see how they do it but most of them detect the candle flame using the IR component of the candle light, some using short-range temp sensing to do fine targeting.
I feel like a medium-range heat sensor shouldn't be that hard to build, thoughts? Perhaps I should start a new thread for this idea....
Infrared thermocouples allow for fairly accurate temperature non-contact temperature readings even at 10-20 feet, but as a "people" sensor they leave something to be desired. They'd work if everyone were naked. Which, is usually not the case. (Might work at a beach, but then, there's the warm sand, the sun...)
What happens is that the temperate differences are so great that it's not always possible to determine what is a person, and what is a person wearing clothes that are fairly good insulators. I've tried this out with a hand-held non-contact thermometer, and found that aimed at someone's skin, temperature readings are usually pretty consistent. But aimed at different parts of a clothed body, and it's sometimes difficult to tell that someone is there, versus say a window radiating heat from the outside.
If you could scan the sensor you could make a little map and determine if the approximate shape is that of an upright human. A couple of servos or steppers might do the trick, but the scanning would have to be fast for a room full of people walking about. The scan might not complete by the time the person walks off. Forget a matrix type thermocouple array. These are thousands of dollars.
I have not found infrared thermocouples for under $10. I think that's a bit off given the current technology, but you can sometimes find the thermocouples in imported temperature handheld temp sensors. I've been seeing them at the computer swap meets, for about $50-60. Retail they're $100+. You can gut the thing and get the sensor out of it. Otherwise the sensors themselves are around $100 -- like this one:
I just found these on the Matsushita (Panasonic) web site (NaPiOn Passive Infrared Motion Sensor). Seems to be a new product, specifically for sensing the change in temperature when a person steps up to a vending machine.
formatting link
What do you think about those? I have no idea on pricing yet.
There are ordinary passive infarared (PIR) sensors, as used on burglar alarm motion detectors and security lights, and on a moving robot are not too useful. They detect the *change* in a moving object, so if the sensor or robot moves (within a certain speed range), it's always sensing something. They can be used if the robot stops completely. The sensor can also be turned 90 degrees to be less sensitive to lateral motion. However, if the person and robot are motionless, the sensor will not detect anything.
Infrared thermocouples are a different technology as they measure actual radiant temperature within a known spot range.
It might be very out-dated idea but I remember many (20?) years ago when electronic was my hobby as a teenager I made a circuit with 741 chip. It had a small antenna and sensitivity was so hi that it was making noise if someone was getting close to it.
Sounds like an ersatz Theremin circuit, though it may not have worked like a classic Theremin.
The principle behind a Thermin is a good project for a robotics sensor. The idea is to have two LC oscillators operating at least 10-20 times that of the extent of human hearing, both tuned to the same center frequency. On one of the oscillators you use a metal antenna to change the value of the C portion of the oscillator. When the two oscillators are mixed together, the frequencies "beat" together, producing sum and difference signals. The difference signals we can hear.
Such circuits, when properly designed, are *very* sensitive, and can be used to detect people and other objects from within a foot or two away. However, they need constant retuning in a changing environment, and they can't really detect the difference between a person and a refrigerator.
PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.