Advertisement

Positioning System

Started by July 20, 2004 01:36 AM
6 comments, last by cbenoi1 20 years, 6 months ago
I've tucked this into the network forum because I think it may be the most appropriate. We are looking at doing something that would involve tracking someones movement in an area. For example, say you had a small playing field (an area of grass) that had clear boundries. Now there is a person running around inside that area with some device (lets say a PDA) and outside the space there was a PC set up with maybe a wireless access point. The idea is that the PDA and PC send info back and forth so that the PC can work out where in the playing field the person physically is and mark it on teh PDA, the person migh be watching a target also moving around on their PDA that the PC is generating and they have to run around an catch it. If the person walks into the same space the PC is generating the target then the game is over. I know that in itself doesn't sound much like a good game, but you can see the idea and the potential. Now Im stuck thinking of ways to do it. I though maybe I could use pings or something but that may only be able to calculate how far the person is from the PC, not in which direction or anything. Anyone done anything like this before or have any ideas how it would be done? Just as a though, if I had a PC on a horizontal side and took test pings on the player standing the furthest away possible and one closest possible, then did the same for the verticle side. I would have a reference to positions, then during the game constantly have each machine ping the player and use that info against the reference to work out where they were. Is a ping that reliable that you would get the same constant result from one distance or would I get a varying result even if the player stood still? Would there be enough of a difference in the ping from that rage to even work that out? [Edited by - Blue Storm on July 20, 2004 1:58:22 AM]
blueStorm.owns(you);
Don't rely on ping. It can be really small in LAN (<1ms) but can greatly vary on internet (from 20ms to 1500ms) from time to time...


Just look at games on the net. You can have a ping of 20ms and just half a second later a ping of 500ms and fall back to 30ms the next half second.


If you want to know the position of "something" on the hearth just use GPS. You can get its position. Just have a look at Microsoft's product : http://www.microsoft.com/uk/homepc/autoroute/default.mspx.
- Iliak -
[ ArcEngine: An open source .Net gaming framework ]
[ Dungeon Eye: An open source remake of Eye of the Beholder II ]
Advertisement
Regular network ping is too jittery, because it's subject to OS interrupt load, and radio signals are way too fast to measure using that kind of mechanism with enough precision to do triangulation.
(Yeah, you need triangulation -- at least two separate measuring stations)

A better approach would probably be to stick a GPS in each of the PDAs, and broadcast this information every so often. GPS isn't ultra-fast (the update rate isn't that great) but it can probably be made to suffice. Other mechanisms include inertial trackers (bulky) or using an overhead camera with image processing (like they use to place the electronic line markers on football games on TV).


enum Bool { True, False, FileNotFound };
I'm not all that savvy with GPS, is it possible to access this service for the purpose of screwing around and making a virtual 'tag' type game? Is there some sort of public access satalittes?

And is it that accurate that you could do such a thing where the playing field might be only 20 by 20 meters?
blueStorm.owns(you);
GPS is a publically available service. I don't know what the precision is currently. You can buy GPS add-on cards for certain laptops and PDAs, and you can buy hand-held GPS units, that sometimes come with USB cables and software for interfacing to a computer.

If you want a 20x20 meter field, I think custom-built triangulation equipment would be the safest bet, though. Something like what they use for motion capture rigs, perhaps?
enum Bool { True, False, FileNotFound };
GPS is VERY inaccurate, unless you can afford the 10.000$ equipments which are used by civiliand ships and those type of things.

I think you would want to choose another equipment for measuring such small distances. But it would have to require radio in some form, probably expencive equipment, and 2 - 3 nodes to measure between to find position (GPS uses from 4 - 24 satelites to find position).

This project of yours could be better suited as a college project since a college usually have the funds to invest in such position equipments. Look for colleges that has studies in Map making, and "measuring land distances" sort of... don't have the right word. They have that kind of equipments...
Advertisement
I was toying around with an idea similar to this at one time also. The only solution that was in the least bit logical was a "cage" with multiple sensors(3-4 seemed safest). To get the accuracy you want and the speed you (seem) to require, I'm not sure what kind of sensors you'd need. What I AM sure of, is that typical network pings will not work. They are wildly erratic in timing, even when controlled very strictly. Maybe something sound based, a la bats or SONAR?
You can query your 802.11 card for signal strength programatically. Assuming your PDA can track multiple access points simultaneously (my Toshiba e805 can), you could transmit the dB levels for each access point being roamed and 'estimate' the position by cross-triangulation on the server side. That would take more than 3 access points for redundency.

-cb

This topic is closed to new replies.

Advertisement