Indoor GPS-like tracking - how could it be done?

Indoor GPS-like tracking - how could it be done?

I would like to build an indoor tracking system that is something like GPS , but far more accurate then traditional GPS (say +/- 1 inch), and that could track multiple objects in a room.

This would be used for a VR type application. Lets say you put 12 people in a room the size of a basketball court, and you would need to track their XYZ position. I would like to stay away from camera based tracking because their will be objects in to room that will block line of sight.

I could see two ways of approaching this: 1) have the device on the person that tracks their own location and relays that back to the system, or 2) put a beacon on the person that the system articulates their position.

I would appreciate any ideas, I am not looking for one answer, buy many approaches.

Oh - and on somewhat of a shoe string budget - I can't develop mini satellites to put into orbit.

Thanks,
Ken

I was also thinking a an application for new building construction - were I could place these devices in building, and track my xyz position anywhere in the structure - then translate that to say a PDF or drawing viewer that would pan/rotate when I walk through the building. I work for a large office furniture manufacture - we grow cubical farms for you imprisonment.

Lets say you put 12 people in a room the size of a basketball court, and you would need to track their XYZ position

but far more accurate then traditional GPS (say +/- 1 inch

and on somewhat of a shoe string budget

I'd say all these statements are mutually exclusive.

The size of the court rules out ultrasound or optical methods, pretty much.
Measuring radio to an accuracy of 100picoseconds doesn't come cheap.

Is your shoestring a domestic shoestring, or a defence shoestring?

Just talking fundamentals, not implementation, position is usually obtained by time-of-arrival of a signal.

Consider a system with a number of "reference" stations at fixed and well known locations, plus one or more "rovers" which we wish to track.

First scenario: Have the rover emit a radio signal, and the references measure the times they receive it. By subtracting the times-of-arrival at a pair of references one obtains a delta range which locates the rover somewhere along a hyperbolic line of position on a flat plane, or hyperbolic surface in xyz. Subtracting time-of-arrival for a different pair of reference stations gives a different hyperbola or surface. All possible combinations give solutions that intersect at a point. There is your rover. This is the basis of cell phone tracking and aircraft location by transponder multilateration.

Second scenario: Have the reference stations each emit a unique radio signal and the rover does the math. This is the basis of GPS and its international cousins, as well as LORAN and OMEGA.

In the first scanario the reference stations have clocks with atomic accuracy. In the second scenario with GPS the rover must know time with atomic accuracy to account for the moving satellites. Since 3 signals are needed to solve for xyz, adding time to solve for xyzt is possible by adding a 4th reference. If your reference positions are known a priori by the rover, and the references are synchronized to atomic precision, then rover dont need to solve for time.

OK thats the theory. In practice radio signals propagate at speed of light, so to get +-1 inch requires about 0.000001 microsecond accuracy. Ordinary GPS is not that accurate, and it could be challenging and expensive to develop your own. Suggest sonar as an easier signal. Speed of sound is about 29 microseconds per cm so your required accuracy is 50 to 100 microseconds. Much more practical for an Arduino.

Either of the basic scenarios works with sonar, and there are several ways to handle clock synchronization. The reference stations can be controlled by one Arduino or each one have an independent brain, sharing a clock synchronization source. If there are many rovers and their cost is to be minimized, have them be the transmitters with a simple timer. Other practical issues include multi-path reflections and variation of speed of sound with temperature.

Polaroid seems to have discontinued that wonderful development kit for their sonar transducers, but many folks make similar stuff for ping-and-listen sonar distance finders. I've bought cheeeep ones in hardware stores. For this you want each one to be either a rover or a reference, so it will ping or listen, not both. Somewhat simplifies the sonar hardware but it will be customized.

So there you have several possible system architectures based on time-of-arrival sonar. To carry out any one of these requires some skill with electronics as well as writing good code.

Good luck with your project.

AWOL, good point about limited range of ultrasound.

In the architectures I outlined each station is a dedicated transmitter or a receiver, not both. So we can optimize transmitters for power and receivers for sensitivity, which improves the range.

The rover must always be within range of at least 3 reference stations, so larger coverage volumes require more reference stations.

so larger coverage volumes require more reference stations

That's probably why systems like this aren't more widespread.
Or widespread at all.
Costs mount rapidly as you have to add more and more stations.

Speed of sound is good reference, ultrasound probably has it pros and cons, but...

If people dont' care annoying sharp sounds, put 10 speakers around to room, and send a tone from each of them, one by one, and make the moving object to calculate the distance of the source. Fast pulse from every speaker, and short break. Radio od wifi link to send calculated position. Or then, everyone send a pulse and mics all over the room, sequenced, synchronized, annoying sound!!!!
:grin: :smiley: :grin: :smiley:

And hope that there's no psycotic or epileptic persons working.

Cheers,
Kari

I wonder if you could use 3 axis gyros and accelerometers to dead recon the position? You would have to have a known start point where you attach and zero the transmitter, and some way to occasionally reset the position to help offset dead reckoning's tendency to drift from cumulative error.

SkyHook can do indoor positioning quite accurately (and the accuracy increases with more WiFi base stations you have in the area).