## no-std distance_difference_triangulation

Position triangulation from differences of distances

### 3 releases

 0.3.2 Apr 8, 2024 Apr 6, 2024 Apr 6, 2024

#1014 in Algorithms

36KB
630 lines

# Distance Difference Triangulation

This crate consists of exactly one function: `distance_difference_triangulation`.

The premise is as follows: You are at some unknown position in 2D space. There are three beacons. You do not know the distances to these three beacons, otherwise you could just do normal triangulation and be done with it. But you do know the differences between the distances to these beacons. You also know the distances between the beacons themselves. From this information, the function this crate provides computes your position, relative to the coordinate system defined by the beacons.

In mathematical terms:

Your unknown position is `(x,y)`.

The unknown distances to the three beacons are `d0`, `d1` and `d2`.

You do know `dd01 = d0 - d1` and `dd02 = d0 - d2` (and also `dd12 = d1 - d2`, but that's redundant).

You also know the distances between the beacons `d01`, `d02` and `d12`.

The function of this crate computes for you your position in the coordinate system where beacon 0 is at `(0,0)` and beacon 1 is on the x axis.