How does positioning via radio work?
There are three main principles used to figuring out positions using radio:
- Received Signal Strength Indication (RSSI)
- Time of Flight (ToF) and
- Angle of Arrival (AoA)
RSSI is simple, but suffers severe problems as soon as the signal path is blocked and attenuated. Bluetooth low energy (BLE) beacons use this technique, making them ideal for cheap proximity sensors. They are able to distinguish between near and far, but that is not good enough for navigation.
ToF measures the time it takes for a radio wave to travel a distance at the speed of light. This requires complex hardware, but is a lot more reliable than RSSI. By using extremely short transmissions/pulses, reflections in nearby objects will not overlap with the direct wave at the receiver. This is equivalent to using a very wide bandwidth, hence the name Ultra WideBand radio (UWB).
AoA requires more than one antenna to figure out the direction of the incoming wave. Contrary to RSSI and ToF, it reports an angle, not a distance. This method has been extensively used for naval navigation, where a ship takes bearings to known radio beacons. A nice feature of Decawave’s technology is that AoA and ToF can be combined to give both direction and distance!
No matter the method used, a position in space can be calculated using a geometrical process called trilateration. Filters can be used to further improve the result. All this is integrated into a location engine.
Our LPS family of boards measure ToF using UWB. ToF can be put to work using three main principles:
- Two Way Ranging (TWR)
- Time Difference of Arrival (TDoA) or
- Reverse TDoA (RTDoA)
TWR is a simple method performed point to point between a moving tag and one or several anchors acting as reference points with known positions. TWR works well when tracking a limited number of objects, but the update rate decreases the more tags asking around for distances. This was our initial approach and is used with our robot beds: http://www.loligo.se/roaming_beds/.
TDoA has tags that only transmit and anchors that only listens. Anchors collect and sends time stamped UWB packages to a central server, where a location engine compares the different arrival times and calculates tag positions. With many active tags, collisions will occur, putting an upper limit to the throughput and number of active tags in a TDoA system. Some kind of synchronization also among tags can thus be useful to achieve highest possible update rate and number of active tags. The problem is that reception costs more power than transmission, so enabling the receiver once in a while to get synchronization packages has a negative impact on tag battery life. TDoA is well suited for tracking people in offices: Lowest possible power consumption combined with large number of tags.
In RTDoA, things are turned on its head. Synchronized anchors transmit packages one after another and tags listen. The location engine is run locally in each tag. Such a set-up has no upper tag limit and has the lowest possible latency for the tag to know its own location, to the cost of using the power hungry receiver instead of the transmitter. A way to limit the problem is yet again some kind of time synchronization between anhors and tags, so that tags can sleep most of the time and only listen when needed. RTDoA is very well suited for flying drones or similar applications, where high update rates and low latency are the main concerns.
Our upcoming boards can in addition to ToF also measure the phase difference between two antennas (Phase Difference of Arrival – PDoA). It requires two DW1000, a common clock and synchronised receivers. Two or more LPS2 nano can be put on a carrier board to perform this task. The upcoming LPS2 AoA can do this directly, but is limited to a fixed distance between the antennas.
What method to use depends on required update rate, number of tags to track, latency, required battery life, infrastructure and if the tag shall know its own position or not. Please contact us and discuss your application requirements before placing any orders! firstname.lastname@example.org
Wired or wireless clock and sync for TDoA?
The technical complication with wireless clock distribution is tracking individual anchor’s drifting clock crystals. There are ways to handle it, but it adds one extra uncertainty to the distance measurement. 20 cm uncertainty instead of 10 cm is ok for most applications, but to get highest possible performance wired clock distribution is needed. Synchronisation is less of a problem. Even if different anchors are synced a few clock cycles apart, that is no big issue and can be handled in software. We have implemented wireless clock and sync distribution, but it is not included in the source code package that comes with LPS2. It is sold separately, either as a closed module or as a source code license.
In many office buildings there are already ethernet cables (CAT 5 or 6) in place. For 10/100 Mbps signalling only pair 1 and 2 are used, leaving pair 3 and 4 free. Clock and sync can be distributed using just one twisted pair with sync coded as a lost clock cycle, but it adds to the receiver complexity. LPS2 HUB thus injects PoE, clock and sync to pair 3 and 4, while using pair 1 and 2 for ethernet. Up to eight LPS2 PCS can be connected to one LPS2 HUB via up to 100m (possibly more) CAT5/CAT6 and provides LPS2 with power, ethernet, clock and sync. Installation is thus made easy wherever the ethernet infrastructure is already in place.
Working LPS2 PCS prototypes exist in the lab. LPS2 HUB so far only exist in CAD.
- LPS: Full size Arduino Nano compatible board with DWM1000.
- LPS Mini: Scaled down LPS with addition of accelerometer, gyro, compass and altimeter.
- LPS RPi: DWM1000 and altimeter add-on for Raspberry Pi.
- LPS2 Mini: First member of a new family of boards with ARM Cortex M4, USB, BLE, accelerometer, gyro, compass and altimeter.
- LPS2: Second member of our new generation LPS boards. Based on DW1000. Features WiFi and is primarily intended as a TDoA anchor.
In the making:
- LPS2 PCS: Add-on for LPS2 providing PoE, ethernet and wired clock and sync.
- LPS2 HUB: Injects PoE, clock and sync to up to eight LPS2 PCS.
- LPS2 Nano.
- LPS2 AoA.
- Blueberry: Accelerometer, gyro, compass, altimeter, RH-meter, thermometer, visible light and UV. Communicates via BLE.
In the making:
- Cranberry: Identical to Blueberry, except its larger size and ability to handle strain gauges.
- Lingonberry: Stripped down version of Blueberry. Only accelerometer, magnetic switch and possible some extra sensor.
- Cloudberry: Connects both Berries and LPS2 to internet via WiFi or LoRa.
- Crashberry: Measures up to +/- 200g.
- Kånkelberry: Measures level in septic tanks.
We have under ideal conditions reached a maximum range of 328m. One LPS / LPS Mini board was located at 59°19’11.27”N, 18° 3’42.14”E (just outside our lab in Stockholm) and the other one at 59°19’9.00”N, 18° 3’21.91”E. Both using the standard chip antenna that comes with DWM1000. It is possible we could have reached further, but a big house blocked our way at the second location.
For normal use 100m outdoors is a more reasonable range to be expected. For indoor use with walls and furniture in mind 50m is a reasonable number. It all depends on if the RF line of sight (RF LOS) is obstructed or not. RF LOS is not the same thing as we see with our eyes. Read about the Freznel zone here: https://en.m.wikipedia.org/wiki/Fresnel_zone. For our favourite channel 5 you need an antenna height (in both ends over a flat surface) of at least the following to avoid the Freznel Zone scratching ground (distance [m]: antenna height [m]):
- 10m: 0.28m
- 50m: 0.81m
- 100m: 0.88m
- 150m: 1.07m
- 200m: 1.24m
- 250m: 1.39m
- 300m: 1.52m
At long distances the signal path is extra sensitive to obstacles due to attenuation in free space. Add to that a bush or human body, who are good attenuators for the frequency bands in use. It is thus not surprising if you will never reach >300m.