Complete Guide on AoA Locator Implemention in Indoor Positioning System in 2024

Table of Contents

BLE positioning based on AoA technology has the advantages of sub-meter high-precision positioning, as well as flexibility, high concurrency, low cost, low power consumption, high compatibility and other benefits. AoA locator is an important hardware used in such indoor positioning system to perform tasks of assent tracking, personnel positioning, etc.  This article gives a complete guide on how to implement Bluetooth AoA locator installaion in indoor positioning system, including required devices, deployment strategies, installation guide, and primary configuration.

Devices Need for Indoor Positioning System

AoA Locator Deployment Strategies

The AoA locator supports single and multiple deployment modes.

When Deploy A Single Locator

When a single locator is deployed, it can only output the I/Q data that including orientation angle and pitch angle of the corresponding tag. This data is the cardinal output data of each Bluetooth positioning locator. This data is sent directly to the cloud platform of positioning engine.

According to the determined tag height, a single locator can calculate and obtain a unique spatial absolute coordinate.

Bluetooth AoA Positioning

Coverage depends on your installation height, Angle α maximum value: Height =h , α= 60℃ ,Coverage r= h*tagα ≈2h

When Deploy Multiple Locators

The strap-down combination of multiple Bluetooth indoor locators will  obtains a larger positioning coverage space, and multiple anchor course angel calculations improve the global spatial accuracy level.

You can achieve your positioning needs through 2 solutions. One is the positioning algorithm in the cloud platform, the other is the positioning algorithm in the Bluetooth gateway with edge computing capability.

If you are a company with your own positioning algorithm or run the positioning algorithm on your platform, you can select that the locator sent the I/Q data to your platform directly.

2 1

If you only need to simply integrate into your map application, you can use the edge computing gateway solution to output x, y, z coordinates to your application platform. You can configure the locator as an edge Gateway on locator’s configuration page. As a local server, the edge gateway accepts I/Q data from other locators and calculates the coordinates of X, Y, and Z. One Edge Gayeway can support 5 AoA locators.

Multiple Backhaul Connectivities 1

How to Install AoA Locators

Firstly, Check Mechanical Design of AoA Locators

3 1

Install AoA locators on the Roof

Step1: Installing positioning stickers

Select a suitable spot on the ceiling, and make sure the installing positions of network cable and power supply port, and then stick positioning stickers.

Reminder: operators must pay attention to personal safety.

4 1

Step 2: drill a hole on the ceiling

Drill holes on the position of previous positioning stickers.

Reminder: use suitable electric drill bit according to the size of the plastic expansion tube.

5 1

Step 3: install plastic expansion tube

Insert the plastic expansion tube into the hole (in step 2)

Attention! The expansion tube and wall must be flat.

6 1

Step 4: install ceiling bracket

Fix the top bracket of AoA locator completely on the wall by aligning the fixing hole on the top holder with the expanded plastic tube, and fixing  it successively with  expansion screws.

Attention! Network cable, power supply cable could go through the wire hole on the bracket first, then fixed the bracket, so these can be collected in the bracket. If not needed, directly fix the ceiling bracket.

7 1

Step5: install interfaces of ontology

Successively insert related component according to AoA locator’s interface statement document.

WechatIMG545

Step 6: preparation before the ontology installation

The ceiling bracket of AoA locator has odd position post. You need to lift the ontology horizontally, then vertically close to the suction top bracket, to make position post insert to corresponding slot.

9 1

Step 7: install the ontology

After finishing step 6, slightly adjust the ontology, make sure three hooks on the bracket can be inserted into the corresponding position of the ontology. The effect shall be shown as below:

Ontology and bracket completely flush. Rotate in the direction of the shear head of ontology, the installation is complete when hear a sound.

10 1

Step 8:check the installment status

After finishing installation, you need to carefully check whether the locator is properly installed. Check if there is  obvious shaking of ontololy. And then clear the cable and power cable and make them invisible as possible as you can. 

Reminder: cables can not be naked at will.

11 1

Install AoA locators on the Wall

Step 1: Installing positioning stickers

Choose the right position on the wall, make sure the network cable, power supply port spot.

Stick positioning stickers. Operators must pay attention to personal safety

12 1

Step 2: Wall hole

According to the size of the plastic expansion tube, use suitable elect drill bit. Drilling holes based on the position on the positioning sticker

5 1

Step 3: Install plastic expansion tube

Insert the plastic expansion tube into the hole(in step 2) Attention! The expansion tube and wall must be flat

13 1

Step 4: Install ceiling bracket

Align the fixing hole on the top holder with the expanded plastic tube, fix it successfully with expansion screws, Fix the bracket completely on the wall

Attention! Network cable, power supply cable could go through the wire hole on the bracket first, then fixed the bracket, so these can be collected in the bracket. If no need, directly fix the ceiling bracket.

14 1

Step 5: Install the product ontology interface

Refer to install the product ontology interface statement, successfully insert related component.

15 1

Step 6: Preparation before product ontology installment

Product installation positioning guide as below: bracket has odd position port.

Grooves corresponding to the ontology, then place the product close to the top bracket so that the positioning column is inserted into the corresponding slot.

16

Step 7: Install product ontology

After finish step 6, slightly adjust the ontology, make sure three hooks on the bracket can be inserted into the corresponding position of the ontology.

As below: now, ontology and bracket completely flush rotate in the direction of the shear head of ontology, the installation is complete when hear a sound.

17

Step 8: Check the installment status

Finished step 7, need to carefully check whether the product is properly installed, all smooth, obvious shaking problem, clear the cable and power cable, need to hide as far as possible, cannot be naked at will.

18

How to Configure AoA Locator and Get AoA Data?

Firstly Log in Gateway Configuration Page using PC Browser

1) Log in the smart gateway and input the real IP address of the gateway from the router.

19

Enter the username and Password

Username: root

Password: root

Then we got the overall status of the DSGW-200 AOA Indoor positioning gateway.

20

For Single Locator Positioning

1)Switch to IOT Services ->Locator

Default MQTT server for uploading data is the gateway itself, and the server address& port credentials are configurable.

21

2)Sample configuration of the Locator is shown below

For more detailed information about each parameter, please refer to Appendix one

22

Sample locators configuration parameter,

				
					{
"version":1, "aoxMode":"SL_RTL_AOX_MODE_REAL_TIME_BASIC",
"antennaMode":"SL_RTL_AOX_ARRAY_TYPE_4x4_URA", "antennaArray":[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
],
"angleFiltering":true, "angleFilteringWeight":0.6, "angleCorrectionTimeout":5, "angleCorrectionDelay":3, "cteMode":"CONNLESS",
"cteSamplingInterval":3, "cteLength":20, "slotDuration":1, "reportMode":"ANGLE", "elevationMask":[
{
"min":0.0,
"max":10.0
}
]
}
				
			

3)Download and install the MQTT Explorer (or other MQTT client): http://mqtt-explorer.com/

4)Open the MQTT Explorer and fill in the IP address& port of gateway, for example 192.168.1.114 and port 1883

23

5)Click “CONNECT”,  and  active  the  AOA tag  to  put  them  nearby  the  locator,  you  should  then  see  th e following locationinformation

24

For Multiple Locators Positioning

1)Switch to section positioning in Luci page

You can configure the destination of the MQTT broker that AOA data is required to send to. For the sample connection, I send it to my local MQTT broker in my PC.

25

Note: this configuration should be carried out only in the gateway you used to calculate the real time location

2)Sample configuration of the multi locator, here we used three locators to form the positioning system, the minimum requirement is two. 

For detailed information about each parameters, please refer to Appendix 2

				
					{
"version":1, "id":"multilocator-test_room",
"estimationModeLocation":"SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_HIGH_ACCURACY", "validationModeLocation":"SL_RTL_LOC_MEASUREMENT_VALIDATION_MEDIUM", "estimationIntervalSec":0.02,
"locationFiltering":true, "locationFilteringWeight":0.1, "numberOfSequenceIds":6, "maximumSequenceIdDiffs":20, "locators":[
{
"id":"ble-pd-040D8453CB0B",
"config":{
"aoxMode":"SL_RTL_AOX_MODE_REAL_TIME_BASIC",
"antennaMode":"SL_RTL_AOX_ARRAY_TYPE_4x4_URA", "antennaArray":[
0,
1,2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
],
"angleFiltering":true, "angleFilteringWeight":0.6, "angleCorrectionTimeout":5, "angleCorrectionDelay":3, "cteMode":"SILABS", "cteSamplingInterval":3, "cteLength":20, "slotDuration":1, "reportMode":"ANGLE",
"allowList":[
"ble-pd-588E814405DC"
],
"azimuthMask":[
{
"min":-135,
"max":0
}
],
"elevationMask":[
{
"min":0.0,
"max":10.0
}
]
},
"coordinate":{ "x":0.9,
"y":12,

"z":2.5
},
"orientation":{ "x":180.0,
"y":0.0,
"z":0.0
}
},
{
"id":"ble-pd-040D8453CAEB",
"config":{
"aoxMode":"SL_RTL_AOX_MODE_REAL_TIME_BASIC",
"antennaMode":"SL_RTL_AOX_ARRAY_TYPE_4x4_URA", "antennaArray":[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
],
"angleFiltering":true, "angleFilteringWeight":0.6, "angleCorrectionTimeout":5, "angleCorrectionDelay":3, "cteMode":"SILABS", "cteSamplingInterval":3, "cteLength":20, "slotDuration":1, "reportMode":"ANGLE",
"allowList":[
"ble-pd-588E814405DC"
],

"elevationMask":[
{
"min":0.0,
"max":10.0
}
]
},
"coordinate":{ "x":4.1,
"y":4.4,
"z":2.5
},
"orientation":{ "x":180.0,
"y":0.0,
"z":180.0
}
},
{
"id":"ble-pd-040D8453CB01",
"config":{
"aoxMode":"SL_RTL_AOX_MODE_REAL_TIME_BASIC",
"antennaMode":"SL_RTL_AOX_ARRAY_TYPE_4x4_URA", "antennaArray":[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
],
"angleFiltering":true, "angleFilteringWeight":0.6,
"angleCorrectionTimeout":5, "angleCorrectionDelay":3, "cteMode":"SILABS", "cteSamplingInterval":3, "cteLength":20, "slotDuration":1, "reportMode":"ANGLE",
"allowList":[
"ble-pd-588E814405DC"
],
"azimuthMask":[
{
"min":0.0,
"max":-90.0
}
],
"elevationMask":[
{
"min":0.0,
"max":10.0
}
]
},
"coordinate":{ "x":1.2,
"y":5.0,
"z":2.5
},
"orientation":{ "x":180.0,
"y":0.0, "z":85
}
}
]
}
				
			

3)Connect the fx to your local broker to acquire the data

Here as I used the local PC as MQTT broker, just use the localhost& 1883 to connect broker

26

4)Click Connect and finally power on the label, you can see the effect as follows:

The values of x, y and z in the figure are the coordinate values of labels relative to the origin of spatial coordinates, in meters.

27

Porting positioning Engine

Silicon Labs provides a Real Time Locating library(RTL lib), which process the IQ samples received from the Bluetooth stack, implements multipath detection and azimuth and elevation calculation, and exposes the data to the application via an open API.

28

Furthermore, the library is also able to estimate the location of a tracked asset in a multi-locator scenario using triangulation, where multiple locators receive CTEs from the same asset tag, provided that the library knows the position of each locator. In this case the positions of the locators and the estimated angles (AoA) serve as the input, and the estimated location is the output

29

Once the positions are estimated it is up to the user’s application how to process the data. The general

architecture of an RTLS using Silicon Labs RTL library looks like this

30

WiFi, Ethernet, Cellular, Which One is Good for Data Transmission?

Some users may consider using cellular for data transmission, here we run a simple test about the data consumption for cellular connection.

The testing data is based on 25 packages per second per locator, 1 and 6 AOA tags active at one time.

AOA Tag Data (KB/s) Data per 24 hours
1 2 400MB
6 6 1200MB

The data consumption for 6 tags active in one single area is about 1.2GB. What may be more important is once the gateway located in a place with data lagging for more than 200ms, the accuracy is influenced seriously, xyz data for real location can not be calculated in time.

Thus for normal usage scenario it is recommended to implement Wi-Fi or Ethernet connection for minimizing the cost.

Related Documentation:

AN1296: Application Development with Silicon Labs’ RTL Library.pdf

qsg175-direction-finding-solution-quick-start-guide.pdf

Appendix

Single locators configuration parameters

				
					"version":	1,
SL_RTL_AOX_MODE_ONE_SHOT_BASIC = 3, ///< Medium filtering, medium response. Returns 2D angle, requires 10 rounds. Most suitable for single shot measurement.
SL_RTL_AOX_MODE_ONE_SHOT_BASIC_LIGHTWEIGHT, ///< Medium filtering, medium response, low CPU cost & low elevation resolution. 2D angle, req. 10 rounds. Most suitable for single shot measurement.
SL_RTL_AOX_MODE_ONE_SHOT_FAST_RESPONSE, ///< Low filtering, fast response, low CPU cost & low elevation resolution. 2D angle, requires 2 rounds. Most suitable for single shot measurement.
SL_RTL_AOX_MODE_ONE_SHOT_HIGH_ACCURACY, ///< High filtering, slow response. 2D angle, requires 20 rounds. Most suitable for single shot measurement.
SL_RTL_AOX_MODE_ONE_SHOT_BASIC_AZIMUTH_ONLY, ///< Equivalent to ONE_SHOT_BASIC with low CPU cost and returns 1D angle. Most suitable for single shot measurement.
SL_RTL_AOX_MODE_ONE_SHOT_FAST_RESPONSE_AZIMUTH_ONLY, ///< Equivalent to ONE_SHOT_FAST_RESPONSE with low CPU cost, 1D angle. Most suitable for single shot measurement.
SL_RTL_AOX_MODE_ONE_SHOT_HIGH_ACCURACY_AZIMUTH_ONLY, ///< Equivalent to ONE_SHOT_HIGH_ACCURACY with low CPU cost, 1D angle. Most suitable for single shot measurement.
SL_RTL_AOX_MODE_REAL_TIME_FAST_RESPONSE, ///< Low filtering, fast response, lowest CPU cost, 2D angle, Most suitable for real-time tracking.
SL_RTL_AOX_MODE_REAL_TIME_BASIC, ///< Medium filtering, medium response, medium CPU cost, 2D angle, Most suitable for real-time tracking.
SL_RTL_AOX_MODE_REAL_TIME_HIGH_ACCURACY, ///< High filtering, slow response, highest CPU cost, 2D angle, Most suitable for real-time tracking.
SL_RTL_AOX_MODE_LAST ///< Placeholder
"aoxMode":	"SL_RTL_AOX_MODE_REAL_TIME_BASIC",



Array Array Array

SL_RTL_AOX_ARRAY_TYPE_4x4_URA = 0, ///< Silicon Labs Ref. 4x4 Uniform Rectangular SL_RTL_AOX_ARRAY_TYPE_3x3_URA, ///< Silicon Labs Ref. 3x3 Uniform Rectangular SL_RTL_AOX_ARRAY_TYPE_1x4_ULA,     ///< Silicon Labs Ref. 1x4 Uniform  Linear
SL_RTL_AOX_ARRAY_TYPE_4x4_DP_URA,   ///<  Silicon Labs Ref. 4x4 Uniform Dual

Polarized Rectangular Array
SL_RTL_AOX_ARRAY_TYPE_COREHW_15x15_DP,	///< CoreHw Ref. 150 mm x 150 mm, 8 Element Dual Polarized Array
SL_RTL_AOX_ARRAY_TYPE_COREHW_12x12_DP,	///< CoreHw Ref. 120 mm x 120 mm, 8


Element Dual Polarized Array
"antennaMode":	"SL_RTL_AOX_ARRAY_TYPE_4x4_URA",

//antennaMode corresponding to array antenna arrangement
"antennaArray":	Array[16],

// Angle filtering enable value
"angleFiltering":	true,

Filter weight applied on the estimated distance. Ranges from 0 to 1.
"angleFilteringWeight":	0.6,

Direction correction will be cleared if this amount of IQ reports are received without receiving a correction message.
"angleCorrectionTimeout": 5,

// Correction values with a sequence number more than MAX_CORRECTION_DELAY apart from the last IQ report are considered outdated and will be ignored.
"angleCorrectionDelay":	3,

//Cte mode: “CONN” mode、 “CONNLESS” wireless connection mode、“SILABS”mode
"cteMode":	"SILABS", "cteSamplingInterval":	3,
Minimum CTE length requested in 8 us units. Ranges from 16 to 160 us.
"cteLength":	20,

Switching and sampling slots in us (1 or 2).
"slotDuration":	1,

//single locator data out put: ANGLE mode, output angle,	IQREPORT mode: output IQdata
"reportMode":	"ANGLE",

//Tags’ white list
"allowList":	Array[2]
				
			

* Add constraints for the estimator.item Pointer to the initialized and configured AoX libitem;
*For example, constraint for SL_RTL_AOX_CONSTRAINT_TYPE_AZIMUTH with min_value =
0 and max_value = 90 means that the angular range 0 to 90 degrees is excluded 。 from the estimators internal processing range and angle estimated between that range


are not considered as valid results. Setting constraints will help ruling out false multipath-detections when the locator is installed nearby a wall or a RF-reflective surface.

				
					"azimuthMask": Array[3], "elevationMask": Array[3]
				
			

Multi locators Positioning parameters

				
					"version":	1,
//locator ID would synchronize to the MQTT broker
"id":	"positioning-test_room",

SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_FAST_RESPONSE
< Three-dimensional mode - Covers X, Y and Z planes, less filtered mode for fast moving assests>
SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_HIGH_ACCURACY
< Three-dimensional mode - Covers X, Y and Z planes, more filtered mode for relatively static assets
"estimationModeLocation": "SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_HIGH_ACCURACY",

SL_RTL_LOC_MEASUREMENT_VALIDATION_MINIMUM
/< Only the basic validation integrated in the locationing algorithm (default) SL_RTL_LOC_MEASUREMENT_VALIDATION_MEDIUM
< May discard the most inaccurate measurements with an additional calculation round SL_RTL_LOC_MEASUREMENT_VALIDATION_FULL
< May discard the most inaccurate measurements with several calculation rounds
"validationModeLocation":	"SL_RTL_LOC_MEASUREMENT_VALIDATION_MEDIUM",

Process new measurements, time step given in seconds
"estimationIntervalSec":	0.02,

Filter enable ,Filter a value using the moving average
"locationFiltering":	true,

< Amount of filtering in range [0.0f, 1.0f]
"locationFilteringWeight":	0.1,

Angle queue id ?
"numberOfSequenceIds":	6,

"maximumSequenceIdDiffs": 20,
"locators":[


{
"id":	"ble-pd-111111111111",
"config":{
"aoxMode":	"SL_RTL_AOX_MODE_REAL_TIME_BASIC",
"antennaMode": "SL_RTL_AOX_ARRAY_TYPE_4x4_URA", "antennaArray":	Array[16],
"angleFiltering": true, "angleFilteringWeight":0.6, "angleCorrectionTimeout":5, "angleCorrectionDelay":3, "cteMode":"SILABS", "cteSamplingInterval":3, "cteLength":20, "slotDuration":1, "reportMode":"IQ", "allowList":Array[2], "azimuthMask":Array[3], "elevationMask":Array[3]
},
				
			

Locator Horizontal coordinate position of the locator boards
The only constraint is that it must be right-handed Cartesian (so that if x is pointing right, y is pointing up), and the unit of distance must be meter. The position of each locator board must be understood as the position of the center of the antenna array relative to the origin.

				
					"coordinate":{
"x":0,
"y":0,
"z":0
},
				
			

The orientation of the board is defined by three values: x, y,and z. Here x means that the board is rotated around the X axis by x degrees.Similarly, y and z mean that the board is rotated around the Y / Z axis by y / z degrees. Positive values mean that the board is rotated to the positive direction, that is counterclockwise, when the given axis is pointing towards you. The center of the antenna array board should stay at the same point while rotating.

				
					"orientation":{
"x":0,
"y":0,
"z":0
}
},
]
				
			
Related IoT Product Specifications

DSGW-014 LoRaWAN Gateway Outdoor

The DSGW-014 LoRaWAN Outdoor Gateway has robust enclosure and is able to have TTN, Chirpstack, Helium, AWS IoT Core, LORIOT, ThingStack integration built-in already. Read

Looking For An IoT Device Supplier For Your Projects?

CONTACT US

    This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

    IoT Gateways for Recommendation

    CONTACT US

      This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

      Welcome to DusunIoT

      Hi there 👋 Is there anything we can help you with today? Please fill in the form below for the team to follow up if you become disconnected.

        DusunIoT Distributor Program

          This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

            This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.