Tunable Rx/Tx RF and Ultrasound

Would anyone know of tunable RF or ultrasonic modules compatible with the Arduino?

The goal is to design a 3D positioning system with several nodes where each one broadcasts an RF and ultrasonic tone to the others to determine positioning.

Both must be tunable to distinguish between transmissions from different nodes.

I know that the AD8307 is well loved here, would that be helpful?

Thanks,
-Steve

Are you expecting to use some type of directional antenna or receivers with the beacons? An IR beacon setup would probably be much more accurate and easier to set up.

Thanks for the recommendation, zoomkat, but my goal is to have something as omni-directional as possible which is why I've gone RF and US rather than IF, which is quite directional from what I know.

Well, the radio in your car is omnidirectional, and can pick up radio stations in several different citys. So how will that tell you where you currently are?

I'm using 4+ nodes.

Node 1 sends both an electromagnetic (EM) and ultrasonic (US) pulse simultaneously, other nodes know their distance from node 1 since they know the time it took the US pulse to reach them.

From there, using multilateration, we can estimate the nodes' relative positions.

The system has to be omnidirectional so that it works no matter the orientation of the nodes.

PS: Although I could use the XBee shield, it is pricey considering I don't need communication between nodes, only emitting and receiving a limited set of frequencies.

Here's a patent for a similar concept, you might be able to extract some how/do from it = )

With the speed of sound at ~1,148 ft/s, you will have some pretty tight timing requirements. Ultrasonic sound might also have a some what limited range.

You don't need to send both ultrasound and an EM pulse - you are aware of the 3D magnetic tracking products from the companies Polhemus and Ascension, right?

These guys have been doing this for decades now. One uses DC pulses, the other AC (they each had patents and were the only game in town for a long time - they had the market for 3D EM field tracking locked up). How the tech works, on the surface, is fairly simple - the real tricky part is extracting the signal from the noise at the receiver, and then (if you are planning on getting yaw/pitch/roll orientation measurement - which I know you're not), perform the complex math fast enough to extract that information at a useful rate.

Since you aren't pulling such information, you can do things simpler. Decide on whether you want to use an AC signal or a DC pulse (AC has issues with ferromagnetic interferance, DC has its own problems too, but I can't remember off-hand what they are). You won't be able to detect time-of-flight with the Arduino with an EM pulse, but you can (maybe?) measure the signal strength of each transmitter; translate the strength to a "sphere" measurement, then calculate the intersection of the spheres to get the position in 3-space. The more spheres (aka, transmitters) the more accurate you will be.

Polhemus and Ascension both use a single transmitter "coil" (I own an Ascension Flock-of-Birds I got off Ebay very cheaply; the transmitter coil is a cubical shaped device about 4 inches on a side; it weighs a ton - I suspect it is an iron-core transformer of some special design, likely consisting of three or more coils wrapped in an orthogonal fashion); I suspect they can calculate 3D positioning information from not only distance but phase relations in coils non-orthogonal to the transmitting coil, but I don't really know for sure.

I can tell you this: You are going to face a tough challenge. I would invest in some good diagnostic tools, particularly a good oscilloscope. While what you describe sounds easy, it is anything but...

Good luck!

:slight_smile:

Wow cr0sh, those are some TRULY impressive technologies. I didn't know about either company.

I'd like to point out that this is an academic project with very limited budget. Priorities are small size and light weight more than latency and precision. Which is why I'm going the EM/US route rather than building precise, heavy and complex phase/azimuth/rssi measuring devices.

I'm considering a few configurations, feedback is appreciated:

Setup 1
Microcontroller and RF unit: http://news.jeelabs.org/docs/jn4.html
US transducers: http://www.mouser.com/catalog/specsheets/KT-400482.pdf

Setup 2
Arduino
RF link: http://www.design.ucla.edu/senselab/node/389
US transducers: http://www.mouser.com/catalog/specsheets/KT-400482.pdf

Both must be tunable to distinguish between transmissions from different nodes.

You could void this requirement if you exploit the time domain. That is the position sensing node could send out a request for US with an RF broadcast. The request will be received by all stationary nodes, but only the addressed node should respond. If you do so in a round-robin fashion - all nodes can share a single RF and a single US frequency.

With a scheme like this you could also get away with a more directional US receiver as the position sensing node could reorient (e.g. using a mall servo) its US receiver once you know your position and heading relative to the stationary nodes.

Thanks to everyone, I'm likely going with Setup 1, you're right BenF, I don't have to change frequencies with this setup since I can send information. I also don't have to tune the US.

Essentially, what I'll be doing is node A broadcasts its physical address by RF and a US pulse simultaneously, everyone listens and registers their distance with A. I get a distance matrix from which I can use multidimensional scaling to find everyone's relative positions.

Thanks to everyone again, I will post my progress and undoubtedly ask for help during development.

Hey steveo, I'm wondering how your project ended. Was it a success? Were you able to get it working and usable 3D position? If so, how precise was that with aforementioned HW?

I need similar setup and would like to push it even further, get 3D position of object with particular material and acoustic properties. Say, some precious metal, and do spectral analysis on the waveform to get distance of this particular object. Resulting in a system that can deal with noise in the sensing area, other kinds of objects that the user is not interested in.

I'm not sure whether above mentioned HW is the right tool for this job. What do you think?