Indoor Positioning system using Arduino

For purposes of inside a room, I'd say to engineer it so that light is considered infinite. 300 m/usec is close enough.

But older technology contains the means to judge close measures. A blip on a scope trace gives you time by how far the edges are apart. If I have the right circuit with 2 inputs, I could know which arrived first and how much sooner through analog or other means.
Check out how PIR works. They don't bother with calibration they can't keep.

Check out how PIR works

do you mean Passive Infra Red ?

rogerClark:

Check out how PIR works

do you mean Passive Infra Red ?

The twin sensor PIR motion detectors.
They return the difference between their light levels and trigger alarm if it changes more than some amount.
Sunlight tracking through does not trigger alarm, a person does.

I would use them in conjunction with capacitance and/or ultrasonic sensor.
2 PIR's aimed with crossed zones a;arm at the same time might mean 1 person is in the crossing.
What is meter or more cap sensing really picking up?
IR-interrupt: What do you infer about a broken light beam?

Quote from: steinie44 on July 07, 2014, 11:53:52 am
You can triangulate using 3 angles and directional antennas.

Can you? I'd imagine it would be difficult to get any sort of consistent direction indication given the way radio waves bounce around.

How is using angles any different then using distance? Radio waves are the same either way. How can the radio waves bounce around one way but not the other way?
To measure the angle, you don't need speed. The signal can be anything, from sound to a laser beam. You just look for a reflection with a directional antenna.

steinie44:
How is using angles any different then using distance? Radio waves are the same either way. How can the radio waves bounce around one way but not the other way?
To measure the angle, you don't need speed. The signal can be anything, from sound to a laser beam. You just look for a reflection with a directional antenna.

You're in an enclosed space with radio waves bouncing around in all directions. Your directional antenna picks up a signal. What does this tell you about the position of the transmitter?

You're in an enclosed space with radio waves bouncing around in all directions. Your directional antenna picks up a signal. What does this tell you about the position of the transmitter?

By the angle that the directional antennas are pointing when the signal is received.
Radio waves that bounce are a very small amount. Most travel in a straight line into space.
How do you think a GPS works?

steinie44:

You're in an enclosed space with radio waves bouncing around in all directions. Your directional antenna picks up a signal. What does this tell you about the position of the transmitter?

By the angle that the directional antennas are pointing when the signal is received.
Radio waves that bounce are a very small amount. Most travel in a straight line into space.
How do you think a GPS works?

I think GPS doesn't work by figuring out the direction of the satellites from antenna direction data.
What point are you trying to make?

The point is how can you measure a small distance with radio waves when Like all other electromagnetic waves, they travel at the speed of light?
However you can measure the directionality with your system by using a parabolic dish as an antenna.
As with a Dish TV receiver.

steinie44:
By the angle that the directional antennas are pointing when the signal is received.
Radio waves that bounce are a very small amount. Most travel in a straight line into space.
How do you think a GPS works?

Well, for a start it usually doesn't work inside a building, because the radio waves are blocked, scattered or reflected by the structure of the building. This is why WiFi signals are partially blocked by walls, and why the strongest signal is not necessary directly from the transmitter. As your directional antenna scans round in all directions it is likely to peak up numerous reflections and there is no way for a dumb Arduino to know which of these are reflections and which is the original transmission.

Well, for a start it usually doesn't work inside a building, because the radio waves are blocked, scattered or reflected by the structure of the building. This is why WiFi signals are partially blocked by walls, and why the strongest signal is not necessary directly from the transmitter. As your directional antenna scans round in all directions it is likely to peak up numerous reflections and there is no way for a dumb Arduino to know which of these are reflections and which is the original transmission.

OK, then tell me why all this won't happen by measuring the distance as opposed to angle.

steinie44:
OK, then tell me why all this won't happen by measuring the distance as opposed to angle.

It will. If your signal carries a discrete event (e.g. it consists of a pulse, or carries a data stream that can be recognised) then you could take advantage of the fact that the shortest path is a straight line and hope that whatever signal you receive first is the original one. Otherwise you just have to deal with the fact that you will get reflections as well as the original signal. I'm sure that if you did enough research it would be possible to find a frequency range that wasn't absorbed by the building, people in it etc but I don't think it's safe to pick whatever frequency you find convenient and assume that reflections and distortions will be negligible, because I don't think they will be.

OK, then tell me why all this won't happen by measuring the distance as opposed to angle.

It will. If your signal carries a discrete event (e.g. it consists of a pulse, or carries a data stream that can be recognised) then you could take advantage of the fact that the shortest path is a straight line and hope that whatever signal you receive first is the original one. Otherwise you just have to deal with the fact that you will get reflections as well as the original signal. I'm sure that if you did enough research it would be possible to find a frequency range that wasn't absorbed by the building, people in it etc but I don't think it's safe to pick whatever frequency you find convenient and assume that reflections and distortions will be negligible, because I don't think they will be.

So what you're saying; The answer to this whole thread is: It can't be done.

So what you're saying; The answer to this whole thread is: It can't be done.

I think that's what the market is saying too - There aren't a whole lot of solutions to this problem out there.

steinie44:
So what you're saying; The answer to this whole thread is: It can't be done.

What I'm saying is that the problem is inherently hard to solve and likely to need something smarter than an Arduino with a dumb wireless transceiver.

It's hard to resolve given the restrictions placed on it.

I think you could do it in a similar way that the old LORAN C navigation worked. Only instead of an RF-only solution, you could use ultrasonic-only, or combination RF/ultrasonic methods.

Basically, you have one "master" station, and two "slave" stations. I would probably choose the RF/ultrasonic method, simply because of the speed of sound vs. the speed of light (and RF, of course). Here's how..

The master transmits an RF pulse.

The two slaves and the mobile receiver see the pulse virtually simultaneously, or close enough to not be a factor. There might well be RF reflections, but we don't care, because the pulse following the direct path arrives first at every receiver.

At the same time as the RF pulse (or a very short time later), the master sends out an ultrasonc pulse.

Measuring the time between the RF and the ultrasonc pulses gives the mobile receiver 1 piece of information; its distance from the master, which will be a point somewhere on a circle.

The two slaves see the RF pulse. The first slave delays a fixed amount after the RF arrives, then sends an ultrasonic pulse.

The mobile receiver know how long the fixed delay is, and it can calculate the distance from the first slave by calculating the time from the fixed delay to receprion of the sound. The mobile unit now has two pieces of information; it is situated at a point located at one of the two points where the circles intersect.

The second slave also delays a fixed amount of time after the RF reception, that is longer than the delay of the first slave.

The mobile unit calculates its distance from the second slave in the same way as it did from the first slave, and the intersections of the three circles will form a small triangle with curved sides, giving all the the informationneeded to determine its location.

It would also be wise to make the two ultrasonic delays different. For example, master to slave 1 might be 10 ms, and master to slave 2 might be 15 ms, and the delay to the next master might be 25 ms, so that the mobile receiver can definitively identify the beginning of the sequence.

Some fiddling with the pulse lengths of the RF and sounds, the time between the pulse events, and the idle time between ranging sequences will show you what sort of values will work for any given coverage area. You will have to take reflections of the sounds into account, of course, and that may be problematic if the system is to be used in different sized areas.

The neatest thing about this is that the technology for LORAN was developed during WWII.

I wouldn't bother reading the whole thread at this stage either.

Drill holes in the floor on a 10 cm grid and bury an rfid chip in each one. Your robot wanders around an detects the rfid chips at the usual proximity - a few cm. Your robot has a table of the locations of all of the unique rfid chip ID's. Or consults such a table on a PC server using bluetooth or nrf2401D or whatever. Location known.

Same way a robot vacuum cleaner finds it's charging station.

Hi,

maybe you don't have to create your own positioning system. There is one running on kickstarter right now!

I am one of the creators of the positioning system called Pozyx. It uses ultra-wideband technology to make very accurate ranging measurements with the anchors (=beacons). With this, and together with IMU data, the position is estimated very accurately.

Maybe the solution for your problem?