SparkFun Forums 

Where electronics enthusiasts find answers.

All things pertaining to wireless and RF links
By stevech
#115977
There are a couple of companies making tags that one wears or are on equipment, that sense the magnetic flux lines produced by several fixed known-location flux sending units. They do the math to calculate position in x, y and z. Amazingly accurate. Costly.
Used in law enforcement/military training situations to record movements of trainees and even their weapons' pointing.
By jana
#115979
I'm currently working on this idea. I have combined Ultra Sonic + magnetic field + RF.

I have some ideas, but I'm still in idea stage, and testing my ideas in simple applications.
By Nora
#116209
I have a similar project, also looking for direction (no pun intended).
I need to calculate position from one rollingbot (transmits position) to another rollingbot (receives position and reacts).
What kind of sensor is available to get accurate positioning?
What kind of wireless signal should I use?
How un-accurate is using signal strength?
Thanks!
N_N
By stevech
#116229
Nora wrote:I have a similar project, also looking for direction (no pun intended).
I need to calculate position from one rollingbot (transmits position) to another rollingbot (receives position and reacts).
What kind of sensor is available to get accurate positioning?
What kind of wireless signal should I use?

What kind of sensor is available to get accurate positioning?
I don't know of anything simple/practical for indoors where GPS may not work. If you build both rollingbots, perhaps your best chance is an ultrasonic ranger if the other 'bot has surfaces that will reflect well no matter the orientation - unlikely. An ultrasonic beacon sent every x amount of time by each bot and received by others, if synch'd to better than a millisecond - can work. That gives you range but not bearing. So it's a tough problem.
Nora wrote: How un-accurate is using signal strength?
Very unpredictable due to non-line-of-sight and multi-path. And the inverse square law in RF transmission (google that).
Nora wrote: Thanks!
N_N
Concept: not for the novice...
Ultrasonic pinger on each 'bot.
All 'bots are initialized via wired or wireless means to get a common time sync, accurate to a few tens of microseconds, and won't drift apart much in synch for x amount of time, where x is an exhibition time plus setup/prep.

Each 'bot pings in an assigned time slot.

There are 3+ ultrasonic receivers symmetrically located on the perimeter of the operations area. All feed ping-detection signals to a central microprocessor. This micro is told where the receivers are in 3 dimensions, as some x,y,z numbering system, say, relative to the center of the exhibit area, or relative to one of the receivers. The micro is also given the assigned time slots of the 'bots. The micro can now do the math to locate each pinger. The math is trig and corrections/calibration tables. Each 'bot must ping in the assigned time slot within a few microseconds and not drift over the operational duration.

The receivers' range might be limited to about 10m or so. The accuracy might be a foot or so, due to the ultrasonics.

This has been done - for tracking people indoors who wear such emitters.

Another scheme is for the emitters to be IR diodes, in time-synch, and the receivers are TV cameras where the video is digitized into 2D rasters. Photogrammetry can calculate location given x and y in the raster and the focal length of the optics of the camera, plus the camera locations and pointing angles. I'll guess that the accuracy will be limited by the calibration and constants, not the sensors, but should get a few inches at say 20m range.

Doing this trilateration via RF is impractical for low cost reasons - beginning with the fact that RF propagates at about 1 nanosecond per ft, and measuring time differences at that precision is $$$$$$$.

Signal strength is very inaccurate due to noise, multipath, and the inverse square law.
By Valen
#116255
[EDIT] Sorry, I didn't read the last part of Stevetech's message in time.

I really think using a (web)camera looking at the robot arena from above is the cheapest and most reliable in terms of positioning errors. The other obstacles in the arena will be just as visible as the robots. No obstructions of line of sight. The images of the camera would need to be analysed and converted to X,Y coordinates for the robots on a pc or something. This is probably the hardest part to program, dealing with perspective. If the resolution of the camera is not too low you could also get robot orientation if you put a recognisable patern of LEDs on top of the robots and (movable) objects. An L-shaped triangle of same colored LEDS, or just 2 different colored LEDs some space apart, would suffice. To enhance resolution you could use sub-pixel coordinates of a LED-spot (by calculating the center-of-intensity, like center-of-gravity) as opposed to just searching for maximum pixel intensity.

Communicating the coordinates could easily be done with Bluetooth or Xbee. The PC could have a unit connected to it's USB or RS232 port. The robots on their U(S)ART. Iirc, both types of modules have the ability to adress receiving robots indiviually with some sort of destination- or MAC-adress. How much current the tranceivers require, or their operating voltages, would decide which are best for your particular robots.
By stevech
#116467
I don't know if it's viable to estimate range and bearing angle (location) with one camera and object size/position analysis of the video. The object ('bot) would have to be very contrasty or have 3+ IR LEDs, etc. to show up reliably in a digitized video raster. Then you do edge detection in the video, try to find the object in the raster (lots of hairy math), then try to calculate location based on some calibration on the object.

The TV based alternative is also too complex, but is using 2-3 cameras sensing one IR diode on the tracked object. Photogrammetry math, well known, calculates location given constants as to the camera focal length and pointing angle.

But this isn't practical for a hobby endeavor.
By XorLor
#116484
If you only need two devices communicating with each other, then the bluetooth (with serial port profile) modules are the easiest to use in opinion. You can set them up as a wireless UART connection.

If you need three or more transceivers (in each corner of the table for example), then I would suggest using the NRF24L01+ in shockburst mode because you can have several nodes communicating at the same time, without worrying about pairing as you do with bluetooth. The code will be more complex of course.
By stevech
#116486
XorLor wrote:If you only need two devices communicating with each other, then the bluetooth (with serial port profile) modules are the easiest to use in opinion. You can set them up as a wireless UART connection.

If you need three or more transceivers (in each corner of the table for example), then I would suggest using the NRF24L01+ in shockburst mode because you can have several nodes communicating at the same time, without worrying about pairing as you do with bluetooth. The code will be more complex of course.
Maybe less no now, but for years, bluetooth modules capable of the serial profile were far more expensive than 802.15.4 modules.
By Nora
#117298
The ultrasonic suggestion is a good one and I like the time slot idea as well. However, the range in ultrasonic pingers isn't long enough.
My installation area, at smallest, is 50' x 50'.

There is one (moving) Master that needs to transmit its position to 10 slaves so they can follow the Master.

I was thinking to have some number of unique RF signals transmitted (via some cheap RF transmitter chip) , and in this way, create an X,Y grid for the Master. The Master would be able to "know" it is at (freq #1, freq #2) and then transmit it to the slaves.
The slaves could look at their own positions (freq #3, freq#4) and calculate where to go.
I think this has a lot of inaccuracy because the signals will overlap, but I don't need it to be that accurate.

Thoughts?
By stevech
#117388
Nora wrote:The ultrasonic suggestion is a good one and I like the time slot idea as well. However, the range in ultrasonic pingers isn't long enough.
My installation area, at smallest, is 50' x 50'.

There is one (moving) Master that needs to transmit its position to 10 slaves so they can follow the Master.

I was thinking to have some number of unique RF signals transmitted (via some cheap RF transmitter chip) , and in this way, create an X,Y grid for the Master. The Master would be able to "know" it is at (freq #1, freq #2) and then transmit it to the slaves.
The slaves could look at their own positions (freq #3, freq#4) and calculate where to go.
I think this has a lot of inaccuracy because the signals will overlap, but I don't need it to be that accurate.

Thoughts?
Please re-read this thread, looking again at the laws-of-physics issues when using RF for position/location.