Skip to main content
. 2010 Nov 3;10(11):9891–9918. doi: 10.3390/s101109891

Algorithm:

SimpleCorrection( )

Input: P˜(i)i=1n, the serial measured positions;
lmax the radium of the largest moving area in a sampling period;
lrx the width of main position area;
Output: P^(i)i=1n the serial estimate positions
1. work out i* = argi min{||(i) − P(i)||, i = 1, ⋯, n}
2. for each i ∈ (1,2, ċ, i* − 1)
3. θ = ∠((i*i), (i*i+1))
4. l = ||((i*i) − (i*i+1))||
5. if lmax<=lrx/2 // there is no intersection point
  6.   {if l<=lmax
  7.     Δx=lcos(θ); Δy=lsin(θ)
  8.   else if l>lmax
  9.     Δx=lmaxcos(θ); Δy=lmaxsin(θ)
  10.   end if
  11.     (i*i) = (i*i+1) + [Δx, Δy]T
  12.   }
13. if lmax>lrx/2 // there is an intersection point
  14.   {if (P˜(i*i),P^(i*i+1)) and the auxiliary positioning area intersect at P0(i*i+1)
  15.     l = ||((i*i) − P0(i*i+1))||
  16.     goto (line7.)
  17.   else
  18.     goto (line7.)
  19.   }
20. for each i ∈ (i* + 1, i* + 2, ċ, n)
21. θ = ∠((i), (i − 1))
22. l = ||((i) − (i − 1))||
23. goto (line5.)