Skip to main content
. 2020 Jul 20;20(14):4028. doi: 10.3390/s20144028
Algorithm 2 Elevation angle MLE.
Input: Trained surface GP f, a horizontal sonar measure (ψkh,ρkh), robot trajectory H and the corresponding curvilinear abscissa s, Rotation axis of vertical scan expressed in the vertical sonar frame n|{SV}v, Number of θ samples nq
Output: Estimated local maximum elevation angles Θ^
1: Θ^, Δθθmaxθminnq
2: for q do
3:     θqθq1+Δθ
4:     xghρkhθqψkh,k ▹ Equation (20)
5:     I
6:     for i[1,nr1] do
7:         n|{0},iv,n|{0},i+1vRqiRqVn|{SV}v,Rqi+1RqVn|{SV}v ▹ Equation (21)
8:         if n|{0},iv,xτin|{0},i+1v,xτi+1<0then ▹ Equation (22)
9:            Ii
10:         end if
11:     end for
12:     θ^q0
13:     lqmax0 ▹ Maximum likelihood value
14:     for iI do
15:         n|{0},[i,i+1]v(t)linearInterpn|{0},iv,n|{0},i+1v
16:         τ[i,i+1](t)linearInterpτi,τi+1
17:         η[i,i+1](t)linearInterpηi,ηi+1
18:         t^rootn|{0},[i,i+1]v,xτ[i,i+1](t) ▹ Equations (28) and (30)
19:         η^qη[i,i+1]t^
20:         x^|{SV}=x^ivy^iv0Txη^qpV ▹ Equation (32)
21:         s^qsi+Lηiη^q ▹ Equation (31)
22:         ψ^qvatan2(y^v,x^v) ▹ Equation (33)
23:         ρ^qv||x^|{SV}||2 ▹ Equation (34)
24:         lqln(p(ρ^iv|f,s^i,ψ^i,θq)) ▹ Equation (36)
25:         if lq>lqmax then
26:            lqmaxlq
27:            θ^qθq
28:         end if
29:     end for
30:     if (lqmax<lq1max)(lq1max>lq2max) then 2Jθ2<0, Equation (19)
31:         Θ^θ^q
32:     end if
33: end for