What type of sensor for three dimensional position tracking?
December 14, 2011 1:05 PM Subscribe
What type of electronic position sensor (aka tracker) should I use to track the position of an object in three dimensions? I want to watch the position through software; I don't care about velocity, relative movement, or orientation. Also, I'm on a low budget for this. Either wired or wireless sensors would be fine.
I want to attach sensors to a body part (or an object being moved by a person), and write software to track the sensors' position in 3D space. I know this has been done before and is not new technology, but I want to do this on my own, cheaply, without sacrificing the accuracy of the result. I only need to know the sensors' position in 3D, nothing more. I looked at the list of position sensors here and did some online research, but I'm not well versed enough in electronics to know which type would be most practical, inexpensive and accurate.
Once I know the best type(s) of sensor to use, I can move on to building the electronics for a main unit, which will receive information from the sensor and translate it into data which can be picked up by software. I can work on this step separately on my own, get some help and learn what I need to figure it out. Right now I just want to know which sort of sensors will work well for this.
Note: For my purposes, the computer and main sensor receiving unit (if any) can be located fairly close to the actual sensors; I don't need a long-distance wireless sensing approach. The movements I will be tracking are be fairly small and cover maybe 2 feet or less, hence the need for greater accuracy.
Any help from the electronics gurus here would be appreciated!
I want to attach sensors to a body part (or an object being moved by a person), and write software to track the sensors' position in 3D space. I know this has been done before and is not new technology, but I want to do this on my own, cheaply, without sacrificing the accuracy of the result. I only need to know the sensors' position in 3D, nothing more. I looked at the list of position sensors here and did some online research, but I'm not well versed enough in electronics to know which type would be most practical, inexpensive and accurate.
Once I know the best type(s) of sensor to use, I can move on to building the electronics for a main unit, which will receive information from the sensor and translate it into data which can be picked up by software. I can work on this step separately on my own, get some help and learn what I need to figure it out. Right now I just want to know which sort of sensors will work well for this.
Note: For my purposes, the computer and main sensor receiving unit (if any) can be located fairly close to the actual sensors; I don't need a long-distance wireless sensing approach. The movements I will be tracking are be fairly small and cover maybe 2 feet or less, hence the need for greater accuracy.
Any help from the electronics gurus here would be appreciated!
I don't think any of the sensors listed in the Wikipedia article will do what you're thinking of. It sounds like you're looking for something like a GPS, but on a much smaller more precise scale. From what I understand, you're much better off with cameras, as in motion capture technology. The hard part is using multiple cameras and developing software to interpolate two or more 2-D images into a 3-D position.
You need three or more non-colinear sensors capable of displaying a distance to a given object. That's no small feat when something isn't just moving along one line.
What kind of resolution are you looking for? Millimeters? Centimeters? Meters? Can you talk a little more about the application?
Oh! How about a Kinect (or two)? There are tons of Kinect-hackers around. Or a Wiimote-- both essentially track objects in space; the Wiimote uses infrared beams and gyroscopes, and the Kinect just uses IR.
posted by supercres at 1:33 PM on December 14, 2011
You need three or more non-colinear sensors capable of displaying a distance to a given object. That's no small feat when something isn't just moving along one line.
What kind of resolution are you looking for? Millimeters? Centimeters? Meters? Can you talk a little more about the application?
Oh! How about a Kinect (or two)? There are tons of Kinect-hackers around. Or a Wiimote-- both essentially track objects in space; the Wiimote uses infrared beams and gyroscopes, and the Kinect just uses IR.
posted by supercres at 1:33 PM on December 14, 2011
Two options occur (neither of which I consider ideal)
1. Point three video cameras (along x/y/z axes) at the object to be tracked. Mark the object in some way to help 'find it' in the image. Analyze the images to determine its position in 3D space. Probably is not very accurate and three cameras make it expensive
2. Use one or more acclerometers on the thing to be tracked (not sure if this is OK for your app) and integrate the output (see FAQ #1 here). Problem is error grows over time - might be OK if object returned to known position at regular intervals
(Would be easier if you could provide more exact details. For instance "I am trying to determine where a pen point is on a sheet of paper")
(Having just previewed - some of what supercres said).
posted by southof40 at 1:39 PM on December 14, 2011
1. Point three video cameras (along x/y/z axes) at the object to be tracked. Mark the object in some way to help 'find it' in the image. Analyze the images to determine its position in 3D space. Probably is not very accurate and three cameras make it expensive
2. Use one or more acclerometers on the thing to be tracked (not sure if this is OK for your app) and integrate the output (see FAQ #1 here). Problem is error grows over time - might be OK if object returned to known position at regular intervals
(Would be easier if you could provide more exact details. For instance "I am trying to determine where a pen point is on a sheet of paper")
(Having just previewed - some of what supercres said).
posted by southof40 at 1:39 PM on December 14, 2011
Following on from something supercres said take a look at http://www.kinecthacks.com/top-10-best-kinect-hacks/ - in particular "1. Kinect Head Tracking" (at the bottom of the page)
posted by southof40 at 1:47 PM on December 14, 2011
posted by southof40 at 1:47 PM on December 14, 2011
Response by poster: Thanks for the responses so far. More specifically, I want to track the position and movement of body parts during sleep. So the camera or infrared approach probably wouldn't be helpful, because the person might turn away from the cameras, the pillow and covers get in the way, etc. Supercres is right in saying I want something like a GPS but on a smaller scale. Maybe we aren't far enough along with technological advances yet, for this to be as simple as buying a component and attaching it to something. Any further thoughts are welcome.
posted by TreeHugger at 2:18 PM on December 14, 2011
posted by TreeHugger at 2:18 PM on December 14, 2011
How fine of resolution do you need for this? Most digital cameras are especially sensitive to IR. You and your bed sheets are surprisingly IR transparent. In a sufficiently dark room, a few IR LEDs might still track through sheets (and maybe through your subject). Also, since each camera collects 2 dimensions worth of data, you only need one and a half cameras to capture full 3D (but it's easier just to use two).
Depending on what you're trying to accomplish, you might be able to do this with just image analysis and no LEDs via something like Image J / Fiji. It's a free download, and can do some pretty amazing things in terms of tracking but you're going to have to teach it to ID the things you want it to track.
posted by Kid Charlemagne at 3:04 PM on December 14, 2011
Depending on what you're trying to accomplish, you might be able to do this with just image analysis and no LEDs via something like Image J / Fiji. It's a free download, and can do some pretty amazing things in terms of tracking but you're going to have to teach it to ID the things you want it to track.
posted by Kid Charlemagne at 3:04 PM on December 14, 2011
Oh, it's certainly possible. Simple, even. Really, all you would need is some sort of radio emitter as a bracelet/anklet/whatever. In each corner of the room, you would have a highly directional radio receiver-- at least three of them, not collinear. The receivers would then just have to triangulate the position of the receiver.
So yeah. Simple, but not cheap. Slightly simpler would be an infrared LED and infrared cameras, but like you said, you might have a problem with them being obscured.
I bet a Kinect could get you really close, though.
posted by supercres at 4:03 PM on December 14, 2011
So yeah. Simple, but not cheap. Slightly simpler would be an infrared LED and infrared cameras, but like you said, you might have a problem with them being obscured.
I bet a Kinect could get you really close, though.
posted by supercres at 4:03 PM on December 14, 2011
Ascension Technologies does exactly this kind of thing - small wired radio transmitters, and a receiver that can tell where all the transmitters are, quite precisely. They're also very expensive. Their technology was popular in university labs during the 90's virtual reality craze; you may be able to find a used setup from that era.
posted by moonmilk at 4:11 PM on December 14, 2011
posted by moonmilk at 4:11 PM on December 14, 2011
You might think about whether you can make an easier measurement that might serve as a proxy for what you really want - sometimes these problems are solved with an accelerometer or inertial measurement unit (or both). With enough data per second you can (eg) integrate acceleration twice to get relative position.
The kind of direct position measurement you're looking for is not going to be cheap or easy, unless you can hack a wii bar or kinect to serve your purposes. Those things probably are the functional lower bound and sell for much less than you could buy the discrete components. The wii nunchuk, at about $25, for example contains a 3-axis accelerometer that sells for $30 at single-unit quantities,and contains interface hardware you'd want to have anyway.
posted by range at 4:31 PM on December 14, 2011
The kind of direct position measurement you're looking for is not going to be cheap or easy, unless you can hack a wii bar or kinect to serve your purposes. Those things probably are the functional lower bound and sell for much less than you could buy the discrete components. The wii nunchuk, at about $25, for example contains a 3-axis accelerometer that sells for $30 at single-unit quantities,and contains interface hardware you'd want to have anyway.
posted by range at 4:31 PM on December 14, 2011
If you can't get the 3D position using vision techniques, you might look into an IMU, or inertial measurement unit. They measure acceleration and rotational velocity, from which you can calculate position. Some of the nicer ones will spit out position in a serial data stream.
Unfortunately these nicer ones aren't cheap. If you're good with electronics you could roll your own for under $100, but the industrial ready-to-use ones are more expensive than that.
http://www.sparkfun.com/search/results?term=IMU&what=products
http://en.wikipedia.org/wiki/Inertial_measurement_unit
posted by lalas at 7:15 PM on December 14, 2011
Unfortunately these nicer ones aren't cheap. If you're good with electronics you could roll your own for under $100, but the industrial ready-to-use ones are more expensive than that.
http://www.sparkfun.com/search/results?term=IMU&what=products
http://en.wikipedia.org/wiki/Inertial_measurement_unit
posted by lalas at 7:15 PM on December 14, 2011
I agree with what range & others said--use some sort of wireless MEMS accelerometer on each body part, which you can mathematically integrate to get relative position.
If you want to derive absolute position you can reference the calculated relative position to an initial position acquired from a camera/kinect setup.
As to buying such a system commercially, there are companies (google: "wireless MEMS acclerometer") that sell pre-built systems for movement disorders/sleep disorders research. If you're handy with microcontroller programming & electronics, you could probably build your own system with an Atmel ATmega128RFA1 microcontroller and some MEMS acclerometers (see: http://www.analog.com/en/mems-sensors/products/index.html).
posted by scalespace at 7:57 PM on December 14, 2011
If you want to derive absolute position you can reference the calculated relative position to an initial position acquired from a camera/kinect setup.
As to buying such a system commercially, there are companies (google: "wireless MEMS acclerometer") that sell pre-built systems for movement disorders/sleep disorders research. If you're handy with microcontroller programming & electronics, you could probably build your own system with an Atmel ATmega128RFA1 microcontroller and some MEMS acclerometers (see: http://www.analog.com/en/mems-sensors/products/index.html).
posted by scalespace at 7:57 PM on December 14, 2011
In addition to video and to MEMS IMUs (I think it would be really difficult to get good position information from an inertial sensor over the course of a night: too much drift), you could consider using sonar time-of-flight (perhaps with RF for synchronization). You might need to use a lower frequency than usual to get through blankets. This is more of a research project than an off-the-shelf solution, but it seems to me it needn't be very expensive: a speaker on each trackable point emitting a pulse (or PRN sequence) regularly, and a set of microphones feeding into a computer doing signal processing.
AIUI the off-the-shelf solution is the technology moonmilk linked to, descended from the magnetic head trackers of yore (Polhemus, etc). Ascension's stuff is expensive, but the technology has been around for a while; maybe you can find a cheaper implementation?
Depending on how much precision you need, another approach would be to put an array of sensors in the mattress— maybe RFID readers that can measure RSSI, if you can find one? If you don't need to distinguish one body part from another, you could potentially build a giant capacitive sensor matrix out of flexible conductors, like an enormous smartphone screen.
However, if you can manage it, I'd think that video tracking is most likely to work.
posted by hattifattener at 11:37 PM on December 14, 2011
AIUI the off-the-shelf solution is the technology moonmilk linked to, descended from the magnetic head trackers of yore (Polhemus, etc). Ascension's stuff is expensive, but the technology has been around for a while; maybe you can find a cheaper implementation?
Depending on how much precision you need, another approach would be to put an array of sensors in the mattress— maybe RFID readers that can measure RSSI, if you can find one? If you don't need to distinguish one body part from another, you could potentially build a giant capacitive sensor matrix out of flexible conductors, like an enormous smartphone screen.
However, if you can manage it, I'd think that video tracking is most likely to work.
posted by hattifattener at 11:37 PM on December 14, 2011
This thread is closed to new comments.
It's VERY VERY VERY easy and cheap to figure out the ORIENTATION of an object. MEMS-based (MicroElectroMechanical systems) accelerometers can tell, by looking at where gravity is facing, what the 3-axis orientation is.
That's how your cell phone knows how it is being held so that it can switch into landscape, for instance.
It's also how the Wii knows which direction you are pointing the Wii remote. (I've heard that the new Roku remote works in a similar fashion).
Things get tricker when you are trying to figure out WHERE in 3D-space something is.
The Wii does this with the location bar thing. Sensor Bar.
The Playstation 3 does this with Playstation Move, where it has cameras pointed the person, looking at the size and position of colored balls.
The XBox 360 has Kinect, which is worth a look. It has a variety of technologies that are all designed to tell where a body is and what gestures a body is making. It is also, as far as I know, capable of being hooked up to a Windows computer and controlling software that you write.
As far as I know, there's no simple, tiny, cheap sensor that can track 3D location the same way that an accelerometer tracks orientation. If there were, one of the video game makers would have used it.
(I'm not even remotely an expert in these matters, so maybe I'm completely wrong!)
Good luck! If I were you, I would be looking into Kinect.
posted by gregvr at 1:30 PM on December 14, 2011