i have a part in my graduation project where i need to direct some robot towards another point using local positioning system

now i dont know much about it but here is what i figured out so far its basically dependent on the fact that you have an RSSI which is the signal strength and u calculate the distance from your current point to a fixed point , using 3 "fixed points" ( called beacons in bluetooth ) you can get the x,y,z co-ordinates(3 equations 3 unknowns, the 3 plans should intersect in a single point) of the robot at the moment

i also got to know that you can use 2 types of things for this job :- a wifi module and a bluetooth module as you can get an RSSI from both modules

i should also use a BLE bluetooth module which is better however this is not really a possibility since these modules aren't sold in my country and i would have to pay a fortune for them when converted to my currency since cost is part of my project

i dont know if there are more types of modules that can be used for this but if there is please enlighten me

but my question is this : can i use any kind of bluetooth module ? HC-05 for example is the one i am working with at the moment , however do i have to use a special something for this application ?

and also which is more accurate the wifi or bluetooth and how accurate are they ?

how can i increase the accuracy of the measurements ?

thanks in advance

  • \$\begingroup\$ Do you need to use RSSI? For both Wifi and Bluetooth (which operate in the very crowded 2.5GHz band) they will be highly susceptible to noise. Also, you would need a rather sensitive RSSI. Most are just 8 bits as far as I've seen. It might also be difficult to convert the RSSI value into some meaningful distance so you can move your robot. Perhaps a combination of RSSI and dead reckoning on your robot? Or some serious filtering on your RSSI data to reduce noise (I recommend a Kalman filter as a start)? \$\endgroup\$ – Los Frijoles Apr 6 '17 at 4:40
  • \$\begingroup\$ @Los Frijoles no i am not bound to using the RSSI thats why i asked if there are other things i can use , i dont have much knowledge in that field im sorry , but what else can i use other than RSSI ? \$\endgroup\$ – Essam Eid Apr 6 '17 at 4:42
  • \$\begingroup\$ NE604 produces a linear RSSI \$\endgroup\$ – analogsystemsrf Apr 6 '17 at 4:44
  • \$\begingroup\$ Does Your keyboard not have a shift and dot buttons? Edit Your question - it's horrible to read that twitter-like stream of words. \$\endgroup\$ – Jakub Rakus Apr 6 '17 at 5:37

How flexible are you with your hardware options? As others have pointed out RSSI is terrible for positioning, you'll be lucky to get better than 5-10 m accuracy on an RSSI only system.

As pjc50 indicated there are a number of optical systems. If you want to stick with radio then there are some other options that I've seen used:

  1. Time of flight, the same principal as GPS uses. Bluetooth and wifi are a bit useless for this but other radios like the DWM1000 module from decawave combined with a little bit of software can do it fairly accurately. That should get you down under the 1 m error assuming you have line of sight to the beacons. If you are carefully with the system design and do some averaging those parts can get you closer to 30 cm accuracy.

  2. Map the room. RSSI has issues with other noise sources and internal reflections within the building. You cant do much about other noise since it changes all the time but reflections are fairly constant. If you can map out the signal strengths at every point in the test area then you can compare what you see to the map, a couple of small movements will often then allow you to get a fairly high likelihood of knowing your location. Still not hugely accurate but better than RSSI alone. Until someone moves any large metal objects at which point you're screwed.

  3. Go low tech. Sound moves painfully slowly. Make each beacon a radio and ultrasound transmitter. Each beacon sends out simultaneous radio and ultrasound pulses, you measure the time difference between seeing the two and you have a very good idea of your range. It's short range and has a slow update rate due to the time it takes sound to get anywhere but allows you do use a time of flight system without having to try to make time measurements accurate to fractions of a nanosecond. Windspeed and temperature changes will impact the accuracy but indoors those are normally less of an issue.

  4. 900 MHz RFID. Those tags cost pennies and have a range of up to 20 m. If you put a unique ID into each tag and then place them in a grid on the ceiling then walking around with an RFID reader you can calculate your location be which tags you can see and their signal strengths. It is an RSSI based system so the accuracy isn't great but you normally have a direct path, the signals are too weak to bounce around much and it's in a quieter RF band so it's not terrible. You can get this sort of system down to about 1-2 m accuracy. But RFID tags are a lot cheaper than wi-fi base stations and don't require power.

After that you get into multi-sensor systems, often something similar to one of the above or an optical system combined with an IMU. The IMU gives good high resolution short term movement measurements but will drift over time, the radio or visual systems give lower accuracy but don't drift. If you combine the two you can in theory get very good results. However the implementation of that sort of system can get very complex.

  • \$\begingroup\$ hello @Andrew, thank you very much for your detailed answer i really do appreciate that i have a question regarding the DWM1000 , it has to have vision of the Robot am i correct ? also using any RF Transceiver will have the same output am i correct but going into the lower frequencies will have issues due to interference from the surroundings am i correct in this ? (since i can't find it in my country i will have to wait a hell alot of time for it to get here due to shipment issues here it is hard to get anything from outside) \$\endgroup\$ – Essam Eid Apr 6 '17 at 12:32
  • \$\begingroup\$ With the DWM1000 you put one on the robot and 3 or 4 in the room. Ideally all within direct sight. The robot sends a message to beacon1, beacon1 waits a fixed time and sends a reply back. The robot takes the time between the message and the reply, subtracts the fixed time and so knows how far it is from beacon1. Repeat for the remaining beacons and you know your location. The decawave web site has examples of how to improve on this basic idea. You can use other radios but you need very good (<1 ns) measurement of message times which generally means higher frequencies and not many radios offer. \$\endgroup\$ – Andrew Apr 6 '17 at 13:17

This is very unlikely to work well.

The RSSI measured by a Bluetooth receiver will be affected by distance, but it will also be affected significantly by other factors, such as:

  • Random noise and atmospheric conditions.
  • Interference from 2.4 GHz devices in the vicinity.
  • Non-uniform antenna radiation patterns.
  • Physical objects between the transmitting and receiving antennas.

Even if these factors are (somehow!) mitigated, the precision of RSSI readings will not be very high -- the RSSI reading is mainly intended as an indicator of signal quality for users, after all. Even BLE devices can only make a very rough estimate of distance; the Bluetooth proximity profile is only intended to detect whether a device is nearby or not.

  • \$\begingroup\$ thank you for your help , but other than RSSI devices what else can i use ? any ideas ? also if mounting the sensors to the ceiling inside a house with a big room because this is my current requirement for the working condition , would it still be not applicable ? and by how much will i have error in my measurements ? \$\endgroup\$ – Essam Eid Apr 6 '17 at 5:30
  • 1
    \$\begingroup\$ Advice: use a completely different localization method. Consider using sound instead, for instance. \$\endgroup\$ – duskwuff Apr 6 '17 at 6:32

Indoor positioning is a bit of a nightmare. Most recently the VR companies have been looking at it. There are basically three approaches that are popular, all of which are optical:

1) SLAM. Ordinary camera, ordinary lighting, lots of computation. If you can see the target, you can work towards it, and maybe avoid furniture too.

2) Optical tracking against a set of beacons. This is the approach used by Wiimotes - the sensor bar is two IR beacons and the wiimote is a simple IR camera.

3) Lighthouse. Very clever, patented up to its eyeballs.

RSSI is far too variable to give high-resolution tracking. This company claims an accuracy of 5-15m; basically enough to say which room a user is in but not where they are.


Your Answer

