Skip to content

Algorithm developed to calibrate anchors in a UWB indoor location system.

License

Notifications You must be signed in to change notification settings

smartlord7/CALNNLS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CALNNLS

Algorithm developed to calibrate anchors in a UWB indoor location system.

How-to Guide for UWB Anchor Calibration using CALNN

A piece of advice: store all the data involved. This way, in the end of this process, we reduce drastically the possibility of having something amiss :-).

Step 1: Review Documentation

Carefully read the documentation of the calibrate() function located in the src/ directory to understand its purpose, parameters, and expected outputs. Test the code on generated use cases, such as the one presented in the documentation.

Step 2: Retrieve True Anchor Positions

Obtain the true positions of the anchors (ground-truth) with high precision for comparison against both our approach and the manufacturer's approach (e.g., using laser-based measurements or possibly using ArUco markers). Repeat this process multiple times to minimize the impact of random errors.

Step 3: Compute Inter-Anchor Distances

Measure and store inter-anchor distances in advance using ArUco markers and/or recurring to communication between anchors. Repeat this process several times to reduce noise effects and use the mean value for better accuracy.

Step 4: Retrieve Manufacturer's Anchor Estimates

Obtain the anchor position estimates generated by the manufacturer’s algorithm. Repeat this process several times to reduce noise effects and use the mean value for better accuracy.

Step 5: Define a Calibration Trajectory

Design a trajectory for calibration with multiple known points. For example, if using a rectangular trajectory, the known points could be its corners. A higher number of points improves calibration accuracy. It is recommended to use at least eight points, with the ideal trajectory being an infinity (∞) symbol.

Step 6: Execute the Calibration Trajectory

Begin moving the tag along the defined trajectory, ensuring it starts at a known point.

Step 7: Run the Calibration Function

Execute the calibrate() function at each known point along the trajectory, using:

  • The previously estimated anchor positions
  • The tag's previous positions (known a priori, since it is a point of the predefined trajectory)
  • The tag's current position (known a priori, since it is a point of the predefined trajectory)
  • The measured tag-to-anchor distances
  • The inter-anchor distances (known a priori, since step 3)

Store the intermediate anchor position estimates for further analysis and evaluation.

Step 8: Repeat for Statistical Relevance

Repeat steps 6–7 multiple times to ensure statistical reliability. Store all collected data properly for later analysis.

Step 9: Compare Calibration Results

Compare the mean anchor positions estimated by the CALNN method against those from the baseline UWB anchor calibration algorithm.

Step 10: Evaluate Tag Positioning Accuracy

Define a separate trajectory with known intermediate points to assess how both the baseline and proposed estimators influence the accuracy of the tag’s location. To do this:

  • Compute the mean positions of both sets of estimated anchors.
  • Perform trilateration twice: once using the manufacturer's estimated anchor positions mean and once using the means of the positions estimated by the proposed algorithm.
  • Repeat multiple times for statistical significance and store all results, including the estimated tag positions from both trilateration executions.

By following these steps, you ensure a robust evaluation of anchor calibration and its impact on positioning accuracy.

Check UWB_Calibration_Process.png

About

Algorithm developed to calibrate anchors in a UWB indoor location system.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages