Author Topic: 3d Tracking  (Read 15879 times)

0 Members and 2 Guests are viewing this topic.

Offline Hdx

  • The Hdx!
  • Full Member
  • ***
  • Posts: 311
  • <3 Java/Cpp/VB/QB
    • View Profile
3d Tracking
« on: October 22, 2008, 01:14:54 pm »
I am trying to figure out a way to track an object in a room.
This is a real life object in a real life room.
I have a few ideas I jsut thought of, and need input on.
1) IR Radar
Have 4~ IR Radar devices attached to the object {alright, person}. Have them constantly snagging data about the objects it's close to, preferably the walls. Few downfalls, battery usage will be ungodly immense. Object distortion. If a object gets in the way it could throw everything to fuck. Would require a detailed layout of the room. Wha5t happens if the IR beam hits the wall/object at an angle?

2) Stationary base receivers.
This is pretty much the same thing as the above, but instead of having the receiver on the object it will be in stationary receivers located around the room, using the same principals of GPS systems, except in reverse. Still a lot of battery usage as it is still broadcasting the signal, and there is an issue of things getting in the way again.

3) Stationary base receivers utilizing WiFi
The rig will already be WiFi enabled, it's a requirement for a different part of the system. Is there any way we can use the WiFi signal like the IR from above. Having stationary, know, receivers use the wifi signal for there timings? This has the benefit of saving battery {as its using a system that is already being used} and the ability to go through objects/walls.

I am mainly looking for intelligent ideas. Constructive criticism, etc.. Basically i'm trying to get a (X, Y, Z) point for an object, and if at all possible a heading. But i'm pretty sure that'll be simple using a different device.
http://img140.exs.cx/img140/6720/hdxnew6lb.gif
09/08/05 - Clan SBs @ USEast
 [19:59:04.000] <DeadHelp> We don't like customers.
 [19:59:05.922] <DeadHelp> They're assholes
 [19:59:08.094] <DeadHelp> And they're never right.

Offline iago

  • Leader
  • Administrator
  • Hero Member
  • *****
  • Posts: 17914
  • Fnord.
    • View Profile
    • SkullSecurity
Re: 3d Tracking
« Reply #1 on: October 22, 2008, 03:06:55 pm »
Well, two ways that come to mind immediately (keeping mind that I didn't really read your ideas, so this will probably overlap)
1) Echolocation, or something similar -- the object/person is equipped with a directional beacon. But that won't get you a x, y, z very easily, especially if they turn, it's more useful for unknown navigation (that is, not running into a wall)
2) Triangulation -- have three separate units that can tell the distance to the object/person (either by radio, sound, throwing ping pong balls, or whatever). The farther apart the better. Based on the ping time from each base to the object, you can get the distance. Conceptually draw three spheres, and where all three come closest to meeting is where the object is. You'll need to know the x/y/z of each of the sensors, but not of the object itself. You also don't have to know what the shape of the room is, although this will break if the person goes behind a wall, or if the sensors bounce off walls

Have you considered GPS? It'll give you the x/y of an object within a meter (through triangulation, as it turns out), but you won't get a great z I don't think.

Offline Hdx

  • The Hdx!
  • Full Member
  • ***
  • Posts: 311
  • <3 Java/Cpp/VB/QB
    • View Profile
Re: 3d Tracking
« Reply #2 on: October 22, 2008, 04:41:40 pm »
Well, two ways that come to mind immediately (keeping mind that I didn't really read your ideas, so this will probably overlap)
1) Echolocation, or something similar -- the object/person is equipped with a directional beacon. But that won't get you a x, y, z very easily, especially if they turn, it's more useful for unknown navigation (that is, not running into a wall)
2) Triangulation -- have three separate units that can tell the distance to the object/person (either by radio, sound, throwing ping pong balls, or whatever). The farther apart the better. Based on the ping time from each base to the object, you can get the distance. Conceptually draw three spheres, and where all three come closest to meeting is where the object is. You'll need to know the x/y/z of each of the sensors, but not of the object itself. You also don't have to know what the shape of the room is, although this will break if the person goes behind a wall, or if the sensors bounce off walls

Have you considered GPS? It'll give you the x/y of an object within a meter (through triangulation, as it turns out), but you won't get a great z I don't think.

Your #1 was pretty much my #1
And your #2 was my 2 & 3. I have looked into GPS, but that doesn't work indoors.
I think my best bet would be Triangulation, using 4 nodes, so I can get a Z axis. But, I would need to solve the Walls/object interference.
http://img140.exs.cx/img140/6720/hdxnew6lb.gif
09/08/05 - Clan SBs @ USEast
 [19:59:04.000] <DeadHelp> We don't like customers.
 [19:59:05.922] <DeadHelp> They're assholes
 [19:59:08.094] <DeadHelp> And they're never right.

Offline iago

  • Leader
  • Administrator
  • Hero Member
  • *****
  • Posts: 17914
  • Fnord.
    • View Profile
    • SkullSecurity
Re: 3d Tracking
« Reply #3 on: October 22, 2008, 06:10:42 pm »
If you give more information as to the nature of the problem, we might be able to help more.

Offline Hdx

  • The Hdx!
  • Full Member
  • ***
  • Posts: 311
  • <3 Java/Cpp/VB/QB
    • View Profile
Re: 3d Tracking
« Reply #4 on: October 22, 2008, 06:17:45 pm »
Eah theirs not really much to say that I haven't said. I need a way of getting a persons X, Y, and Z in a structure where standard GPSs won't work. AE: Anywhere the sky is not visible. If I could find a light, or radio wave, that goes through walls without loosing momentum, [or loosing so little that it has a vary minor effect on the accuracy] I could simply setup the 4 receivers.
http://img140.exs.cx/img140/6720/hdxnew6lb.gif
09/08/05 - Clan SBs @ USEast
 [19:59:04.000] <DeadHelp> We don't like customers.
 [19:59:05.922] <DeadHelp> They're assholes
 [19:59:08.094] <DeadHelp> And they're never right.

Offline iago

  • Leader
  • Administrator
  • Hero Member
  • *****
  • Posts: 17914
  • Fnord.
    • View Profile
    • SkullSecurity
Re: 3d Tracking
« Reply #5 on: October 22, 2008, 08:43:45 pm »
Well, higher wavelength/lower frequency waves can get through walls fairly unimpeded, but then you run into the legal question -- you can only use certain EM wavelengths. Although owning a frequency sounds kind of insane, it happens.

The solution is probably to use something with a high enough wavelength that it doesn't go through walls (I suggest the 380 - 750nm range), then put sensors in every room. I think that's the most common way of doing it, and the way that probably won't cause cancer (I'm not going anywhere near your house if I find out you have x-rays in every room :P).

Offline Hdx

  • The Hdx!
  • Full Member
  • ***
  • Posts: 311
  • <3 Java/Cpp/VB/QB
    • View Profile
Re: 3d Tracking
« Reply #6 on: October 22, 2008, 09:15:21 pm »
Humm, damn people owning frequencies -.-
What i'll probably end up doing is writing the initial implementation using IR because my room is perfectly square save for the slight abnormalities of the door/closet door. Once I get that working, it should be no problem to modify it to work with some other form of wave.
I am at work and dont feel like doing math. Knowing the X, Y, Z of 4 points is enough to determine the X,Y,Z of a unknown based on time between echos right?
AE: If I were to be int he EXACT middle of the room, and the receivers were to be in the corners, and the room is perfectly cubed. All delays are == right?
Humm, how would the initial receiver, the first one to get the signal, know how much of a delay it has?
Ugh im thinking about this wrong. I think it should be obvious.. but I am missing it.
http://img140.exs.cx/img140/6720/hdxnew6lb.gif
09/08/05 - Clan SBs @ USEast
 [19:59:04.000] <DeadHelp> We don't like customers.
 [19:59:05.922] <DeadHelp> They're assholes
 [19:59:08.094] <DeadHelp> And they're never right.

Offline iago

  • Leader
  • Administrator
  • Hero Member
  • *****
  • Posts: 17914
  • Fnord.
    • View Profile
    • SkullSecurity
Re: 3d Tracking
« Reply #7 on: October 22, 2008, 09:18:09 pm »
Humm, damn people owning frequencies -.-
What i'll probably end up doing is writing the initial implementation using IR because my room is perfectly square save for the slight abnormalities of the door/closet door. Once I get that working, it should be no problem to modify it to work with some other form of wave.
I am at work and dont feel like doing math. Knowing the X, Y, Z of 4 points is enough to determine the X,Y,Z of a unknown based on time between echos right?
Three should be enough, 4 should be a bonus.

AE: If I were to be int he EXACT middle of the room, and the receivers were to be in the corners, and the room is perfectly cubed. All delays are == right?
Keeping in mind that you aren't perfectly spherical, it won't be perfect, but it should be close.

Humm, how would the initial receiver, the first one to get the signal, know how much of a delay it has?
Ugh im thinking about this wrong. I think it should be obvious.. but I am missing it.
It's basically a ping, the amount of time from when it sends its signal to when it receives its signal. Remember that it has to recognize its own, so the others don't interfere.

Keep in mind that we're talking about a ridiculously small timeframe here -- if your room is 10 meters, then:
(10 meters) / the speed of light = 33.3564095 nanoseconds

So you need an extremely sensitive timer.

Sound waves (ultrasonic, for preference) might work better:

(10 meters) / speed of sound at sea level = 29.3866996 milliseconds
« Last Edit: October 22, 2008, 09:19:51 pm by iago »

Offline Hdx

  • The Hdx!
  • Full Member
  • ***
  • Posts: 311
  • <3 Java/Cpp/VB/QB
    • View Profile
Re: 3d Tracking
« Reply #8 on: October 22, 2008, 09:22:53 pm »
Assume i'm sphyrical.
Well, what i'm figuring is having the emitter on the person, and the receiver simply listening for the broadcast. I *could* transmit the timestamps in the IR light, but, there is no guarantee that both, let alone all 5, things have the exact same time. If there was only a way to get around that it would be simple. Well, I can guarantee that the receivers have the same time, as they could easily be 1 unit. And don't you need a 4th to figure Z?
Oh, ya you're right, Light is ridiculously fast, to fast for any accurate timer at this low of a distance. God damnit, now I have to find a place that will allow me to play with sound emitters/receivers. AND figure out a way to send data over sound.
« Last Edit: October 22, 2008, 09:25:48 pm by HdxBmx27 »
http://img140.exs.cx/img140/6720/hdxnew6lb.gif
09/08/05 - Clan SBs @ USEast
 [19:59:04.000] <DeadHelp> We don't like customers.
 [19:59:05.922] <DeadHelp> They're assholes
 [19:59:08.094] <DeadHelp> And they're never right.

Offline iago

  • Leader
  • Administrator
  • Hero Member
  • *****
  • Posts: 17914
  • Fnord.
    • View Profile
    • SkullSecurity
Re: 3d Tracking
« Reply #9 on: October 22, 2008, 09:28:46 pm »
Well, ultrasound is inaudible, so you might be ok playing with that if you can get the technology.

I'm pretty sure you only need 3, even in 3 dimensions, but i'm bad at visualizing 3d so you might be right.

The easiest way is probably echolocation. Although in retrospect, you're going to end up with a lot of noise reflecting. Perhaps you can detect body heat? Or wear a sensor that'll reflect the signal properly? I don't know. :/


Offline Sidoh

  • x86
  • Hero Member
  • *****
  • Posts: 17634
  • MHNATY ~~~~~
    • View Profile
    • sidoh
Re: 3d Tracking
« Reply #10 on: October 22, 2008, 09:30:22 pm »
Assume i'm sphyrical.
Well, what i'm figuring is having the emitter on the person, and the receiver simply listening for the broadcast. I *could* transmit the timestamps in the IR light, but, there is no guarantee that both, let alone all 5, things have the exact same time. If there was only a way to get around that it would be simple. Well, I can guarantee that the receivers have the same time, as they could easily be 1 unit. And don't you need a 4th to figure Z?

If you're dealing with electromagnetic radiation (e.g., IR), you need to use the same watch for everything.  As iago pointed out, you're dealing with something that's measured in nanoseconds.  You'll definitely want to have some pretty specific equipment in order to pull this off.

Another one that requires a lot more on the software side, but also necessitates less equipment: do object recognition with multiple cameras and do the same triangulation thing through perceived size.

I'm unsure if there's freely available software that does this, but it might be a fun project.  There's a group here that deals with biomimetic vision (programs that "see" by mimicking the mechanisms by which humans see).  Their system does autonomous machine learning, which is pretty neat.  I haven't worked on it in a few years, but I'm fairly confident it would be able to do at least a portion of this with a reasonable success rate.

Well, ultrasound is inaudible, so you might be ok playing with that if you can get the technology.

I'm pretty sure you only need 3, even in 3 dimensions, but i'm bad at visualizing 3d so you might be right.

The easiest way is probably echolocation. Although in retrospect, you're going to end up with a lot of noise reflecting. Perhaps you can detect body heat? Or wear a sensor that'll reflect the signal properly? I don't know. :/

It's definitely possible with 3, but I'm not sure about that in general.  There's the obvious case where each sensor reads one coordinate.

Offline Hdx

  • The Hdx!
  • Full Member
  • ***
  • Posts: 311
  • <3 Java/Cpp/VB/QB
    • View Profile
Re: 3d Tracking
« Reply #11 on: October 22, 2008, 10:25:59 pm »
I was thinking about that. I will be writing a 2d point tracking system for another part of this project, I was thinking I could incorporate that into the 3d one as well. To make things easier, I'm sure there are cameras out there that will only pickup certain types of light. I'll have to look into it more when i get home.
http://img140.exs.cx/img140/6720/hdxnew6lb.gif
09/08/05 - Clan SBs @ USEast
 [19:59:04.000] <DeadHelp> We don't like customers.
 [19:59:05.922] <DeadHelp> They're assholes
 [19:59:08.094] <DeadHelp> And they're never right.

Offline Chavo

  • x86
  • Hero Member
  • *****
  • Posts: 2219
  • no u
    • View Profile
    • Chavoland
Re: 3d Tracking
« Reply #12 on: October 23, 2008, 01:10:59 am »
Disclaimer: I apologize for not having read this entire thread before posting.

Is there a particular reason you are trying to use IR or WiFi?  RF would be the preferred technology for this application (low power, easy to implement, transmitters/receivers are cheap, low interference issues).

Offline Hdx

  • The Hdx!
  • Full Member
  • ***
  • Posts: 311
  • <3 Java/Cpp/VB/QB
    • View Profile
Re: 3d Tracking
« Reply #13 on: October 23, 2008, 11:42:35 am »
Well the reason I was going with IR is simply because I am also working with IR in another project. So I have a shitload of transmitters/receivers, But RF you say.  Hows RF work? Can you give me some links. Does it pass through objects/walls. If so how much degradation does it receive? I ment to do more research last night, but I passed out after about 15 mins of playing Guild wars :X
http://img140.exs.cx/img140/6720/hdxnew6lb.gif
09/08/05 - Clan SBs @ USEast
 [19:59:04.000] <DeadHelp> We don't like customers.
 [19:59:05.922] <DeadHelp> They're assholes
 [19:59:08.094] <DeadHelp> And they're never right.

Offline Chavo

  • x86
  • Hero Member
  • *****
  • Posts: 2219
  • no u
    • View Profile
    • Chavoland
Re: 3d Tracking
« Reply #14 on: October 23, 2008, 12:39:00 pm »
RF stands for Radio Frequency, so yes it passes through walls :)

I don't have any degradation numbers offhand, but they should be easy to find.  I'm sure it depends on the frequency and may or may not be linearly related to the transmit power.  If your application is primarily triangulation, you will probably want to use a higher frequency that will degrade faster in order to be able to measure degradation as a value for distance.  Alternatively, you could use an analog signal and an A/D converter (found on most common microcontrollers) to pass some interpretable values (maybe a timestamp? that may have issues with refracted signals though).

I'm at work and don't have time to hunt down any links, but if you need help finding RF projects (there are tooooons), I can help you find some good examples.  Hack-a-day will definitely have some interesting examples if you search their site for RF.