Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (2024)

Artur Wolek  James McMahonDepartment of Mechanical Engineering and Engineering Science, University of North Carolina at Charlotte, Charlotte, NC, 28223 USA (e-mail: awolek@charlotte.edu).Physical Acoustics Branch, Code 7135, Naval Research Laboratory, Washington, DC, 20375 USA (e-mail: james.w.mcmahon8.civ@us.navy.mil)

Abstract

This paper presents three batch estimation methods that use noisy ground velocity and heading measurements from a vehicle executing a circular orbit (or similar large heading change maneuver) to estimate the speed and direction of a steady, uniform, flow-field. The methods are based on a simple kinematic model of the vehicle’s motion and use curve-fitting or nonlinear least-square optimization. A Monte Carlo simulation with randomized flow conditions is used to evaluate the batch estimation methods while varying the measurement noise of the data and the interval of unique heading traversed during the maneuver. The methods are also compared using experimental data obtained with a Bluefin-21 unmanned underwater vehicle performing a series of circular orbit maneuvers over a five hour period in a tide-driven flow.

keywords:

marine vehicle, velocity triangle, current estimation, least-square regression

© 2024 Artur Wolek and James McMahon. This work has been accepted to IFAC for publication under a Creative Commons Licence CC-BY-NC-ND

thanks: This work was supported in part by NSF Grant No. 2301475.

1 Introduction

Autonomy and control algorithms can leverage estimates of the flow-field to improve the operation of marine vehicles, for example, in path planning to achieve greater efficiency and robustness. This paper is motivated by the authors’ prior work (Wolek etal., 2021) that investigated time-optimal path planning for an underwater vehicle to re-inspect points of interest along circular orbits with a sonar sensor. In such applications, the presence of a flow-field impacts the vehicle motion and the pointing angle of a directional sonar sensor (due to sideslip). The methods presented here can be used to estimate flow direction and magnitude on-the-fly (e.g., after executing each circular inspection orbit) to support path re-planning.

For a vehicle operating in a steady, uniform, flow-field the flow-relative velocity 𝒗relsubscript𝒗rel{\bm{v}}_{\rm rel}bold_italic_v start_POSTSUBSCRIPT roman_rel end_POSTSUBSCRIPT, the flow velocity 𝒘𝒘{\bm{w}}bold_italic_w, and the inertial (ground) velocity 𝒗gsubscript𝒗g{\bm{v}}_{\rm g}bold_italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT are related by the equation 𝒗g=𝒗rel+𝒘subscript𝒗gsubscript𝒗rel𝒘{\bm{v}}_{\rm g}={\bm{v}}_{\rm rel}+{\bm{w}}bold_italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT = bold_italic_v start_POSTSUBSCRIPT roman_rel end_POSTSUBSCRIPT + bold_italic_w, as illustrated in Fig.1. When two of the three quantities are known, the remaining one can be determined by direct computation. For marine vehicles, ground velocity, 𝒗gsubscript𝒗g{\bm{v}}_{\rm g}bold_italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT, is provided by the navigation system by processing GPS position measurements, acoustic ranging measurements and/or a Doppler velocity log (DVL) sensor operating in bottom-lock mode. The vehicle flow-relative velocity 𝒗relsubscript𝒗rel{\bm{v}}_{\rm rel}bold_italic_v start_POSTSUBSCRIPT roman_rel end_POSTSUBSCRIPT can also be measured with appropriate instrumentation (e.g., pitot tubes or a DVL operating in water current profiling mode).The flow velocity 𝒘𝒘{\bm{w}}bold_italic_w may be inferred using various filtering techniques based on the vehicle’s kinematics (Rhudy etal., 2015) or a dynamic model (Hegrenaes and Hallingstad, 2011). Non-uniform flow-fields can be estimated, for example, using motion tomography (Chang etal., 2017).

Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (1)

The contributions of this paper are three batch estimation techniques to estimate water current direction and magnitude for a marine craft using noisy measurements of kinematic variables and a basic model of the vehicle’s motion. The methods do not require knowledge of the vehicle’s flow-relative speed (since it is estimated as part of the procedure) and they are relatively simple to implement with minimal tuning required. The first method is based on quadratic curve fitting to speed-over-ground magnitude and heading angle data when the vehicle executes a 360 degree heading change maneuver (e.g., a circular orbit). The second method relies on a constrained nonlinear least-square optimization to match speed-over-ground velocity components and heading data. The third method is similar to the second but uses speed-over-ground magnitude, rather than velocity components, for optimization. The approaches are compared to each other, as well as to another existing method in the literature based on circular curve fitting, using both simulated and experimental data.

The remainder of the paper is organized as follows. Section2 describes two curve-fitting based methods. Section3 describes two optimization-based methods. Sections4 and 5 provide a comparison with simulated and experimental data, respectively. Section6 concludes the paper.

2 Curve-Fitting-Based Methods

Consider the following kinematic equations describing the motion of a marine craft in the horizontal plane:

x˙(t)˙𝑥𝑡\displaystyle\dot{x}(t)over˙ start_ARG italic_x end_ARG ( italic_t )=fx(ψ;v,w,θ)=vcosψ(t)+wcosθabsentsubscript𝑓𝑥𝜓𝑣𝑤𝜃𝑣𝜓𝑡𝑤𝜃\displaystyle=f_{x}(\psi;v,w,\theta)=v\cos\psi(t)+w\cos\theta= italic_f start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_ψ ; italic_v , italic_w , italic_θ ) = italic_v roman_cos italic_ψ ( italic_t ) + italic_w roman_cos italic_θ(1)
y˙(t)˙𝑦𝑡\displaystyle\dot{y}(t)over˙ start_ARG italic_y end_ARG ( italic_t )=fy(ψ;v,w,θ)=vsinψ(t)+wsinθ,absentsubscript𝑓𝑦𝜓𝑣𝑤𝜃𝑣𝜓𝑡𝑤𝜃\displaystyle=f_{y}(\psi;v,w,\theta)=v\sin\psi(t)+w\sin\theta\;,= italic_f start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( italic_ψ ; italic_v , italic_w , italic_θ ) = italic_v roman_sin italic_ψ ( italic_t ) + italic_w roman_sin italic_θ ,(2)

where (x,y)𝑥𝑦(x,y)( italic_x , italic_y ) is the planar position, v=𝒗rel𝑣normsubscript𝒗relv=||{\bm{v}}_{\rm rel}||italic_v = | | bold_italic_v start_POSTSUBSCRIPT roman_rel end_POSTSUBSCRIPT | | is the flow-relative speed, w=𝒘𝑤norm𝒘w=||{\bm{w}}||italic_w = | | bold_italic_w | | is the magnitude of the current, and θ𝜃\thetaitalic_θ is the current direction. The speed v𝑣vitalic_v is assumed constant (e.g., corresponding to a fixed propeller speed). The current magnitude and direction, (w,θ)𝑤𝜃(w,\theta)( italic_w , italic_θ ), is assumed to be steady and uniform over the space in which a heading change maneuver is performed.This section describes two methods for estimating (v,w,θ)𝑣𝑤𝜃(v,w,\theta)( italic_v , italic_w , italic_θ ) in (1)–(2) based on curve fitting to noisy data of either ground velocity components or ground velocity magnitude as a function of heading.

2.1 Circular Curve Fit with (x˙,y˙)˙𝑥˙𝑦(\dot{x},\dot{y})( over˙ start_ARG italic_x end_ARG , over˙ start_ARG italic_y end_ARG ) Data

In (McLaren, 2008) it was shown that given a minimum of three unique ground velocity component measurements, 𝒗=[x˙,y˙]T𝒗superscript˙𝑥˙𝑦T{\bm{v}}=[\dot{x},\dot{y}]^{\rm T}bold_italic_v = [ over˙ start_ARG italic_x end_ARG , over˙ start_ARG italic_y end_ARG ] start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT from (1)–(2), the parameters (v,w,θ)𝑣𝑤𝜃(v,w,\theta)( italic_v , italic_w , italic_θ ) can be estimated. Here, we summarize this approach and use it for comparisons later on in Secs.4 and 5.

Consider the sketch in Fig.1 (right panel) showing the velocity triangle and a triplet of velocity triangles for three different flow-relative velocities. A circle that passes through the three ground velocity vectors can be inscribed and its center corresponds to the current velocity 𝒘=[wx,wy]T=[wcosθ,wsinθ]T𝒘superscriptsubscript𝑤𝑥subscript𝑤𝑦Tsuperscript𝑤𝜃𝑤𝜃T{\bm{w}}=[w_{x},w_{y}]^{\rm T}=[w\cos\theta,w\sin\theta]^{\rm T}bold_italic_w = [ italic_w start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_w start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT = [ italic_w roman_cos italic_θ , italic_w roman_sin italic_θ ] start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT. The radius of the circle is the vehicle’s flow-relative speed v𝑣vitalic_v.One can confirm, by substituting (1)–(2), that all points on the circle satisfy

(x˙wx)2+(y˙wy)2superscript˙𝑥subscript𝑤𝑥2superscript˙𝑦subscript𝑤𝑦2\displaystyle(\dot{x}-w_{x})^{2}+(\dot{y}-w_{y})^{2}( over˙ start_ARG italic_x end_ARG - italic_w start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + ( over˙ start_ARG italic_y end_ARG - italic_w start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT=v2,absentsuperscript𝑣2\displaystyle=v^{2}\;,= italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ,(3)

which can re-arranged as

2wxx˙2wyy˙+(v2+wx2+wy2)2subscript𝑤𝑥˙𝑥2subscript𝑤𝑦˙𝑦superscript𝑣2superscriptsubscript𝑤𝑥2superscriptsubscript𝑤𝑦2\displaystyle-2w_{x}\dot{x}-2w_{y}\dot{y}+(-v^{2}+w_{x}^{2}+w_{y}^{2})- 2 italic_w start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT over˙ start_ARG italic_x end_ARG - 2 italic_w start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT over˙ start_ARG italic_y end_ARG + ( - italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_w start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_w start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT )=x˙2y˙2.absentsuperscript˙𝑥2superscript˙𝑦2\displaystyle=-\dot{x}^{2}-\dot{y}^{2}\;.= - over˙ start_ARG italic_x end_ARG start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - over˙ start_ARG italic_y end_ARG start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT .(4)

Suppose that N𝑁Nitalic_N measurements {x˙i,y˙i}i=1Nsuperscriptsubscriptsubscript˙𝑥𝑖subscript˙𝑦𝑖𝑖1𝑁\{\dot{x}_{i},\dot{y}_{i}\}_{i=1}^{N}{ over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT are recorded while the vehicle performs a maneuver.In the absence of noise, the data satisfies 𝑨𝒄=𝒃𝑨𝒄𝒃{\bm{A}}{\bm{c}}={\bm{b}}bold_italic_A bold_italic_c = bold_italic_b, where

𝑨=[x˙iy˙i1x˙Ny˙N1],𝒃=[x˙i2y˙i2x˙N2y˙N2],formulae-sequence𝑨delimited-[]subscript˙𝑥𝑖subscript˙𝑦𝑖1subscript˙𝑥𝑁subscript˙𝑦𝑁1𝒃delimited-[]superscriptsubscript˙𝑥𝑖2superscriptsubscript˙𝑦𝑖2superscriptsubscript˙𝑥𝑁2superscriptsubscript˙𝑦𝑁2\displaystyle{\bm{A}}=\left[\begin{array}[]{ccc}\dot{x}_{i}&\dot{y}_{i}&1\\\vdots&\vdots&\vdots\\\dot{x}_{N}&\dot{y}_{N}&1\\\end{array}\right]\;,\qquad{\bm{b}}=\left[\begin{array}[]{c}-\dot{x}_{i}^{2}-%\dot{y}_{i}^{2}\\\vdots\\-\dot{x}_{N}^{2}-\dot{y}_{N}^{2}\\\end{array}\right]\;,bold_italic_A = [ start_ARRAY start_ROW start_CELL over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL start_CELL over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_CELL start_CELL over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_CELL start_CELL 1 end_CELL end_ROW end_ARRAY ] , bold_italic_b = [ start_ARRAY start_ROW start_CELL - over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL - over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_CELL end_ROW end_ARRAY ] ,(11)

and 𝒄=[2wx,2wy,v2+wx2+wy2]T=[c1,c2,c3]T𝒄superscript2subscript𝑤𝑥2subscript𝑤𝑦superscript𝑣2superscriptsubscript𝑤𝑥2superscriptsubscript𝑤𝑦2Tsuperscriptsubscript𝑐1subscript𝑐2subscript𝑐3T{\bm{c}}=[-2w_{x},-2w_{y},-v^{2}+w_{x}^{2}+w_{y}^{2}]^{\rm T}=[c_{1},c_{2},c_{%3}]^{\rm T}bold_italic_c = [ - 2 italic_w start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , - 2 italic_w start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , - italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_w start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_w start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT = [ italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT. If, instead, the data {x˙i,y˙i}i=1Nsuperscriptsubscriptsubscript˙𝑥𝑖subscript˙𝑦𝑖𝑖1𝑁\{\dot{x}_{i},\dot{y}_{i}\}_{i=1}^{N}{ over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT is corrupted by zero-mean additive Gaussian random variables with variance σ2superscript𝜎2\sigma^{2}italic_σ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT, then the system of equations can only be satisfied in a least-square sense (i.e., minimizing J=𝑨𝒄𝒃2𝐽superscriptnorm𝑨𝒄𝒃2J=||{\bm{A}}{\bm{c}}-{\bm{b}}||^{2}italic_J = | | bold_italic_A bold_italic_c - bold_italic_b | | start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT) where 𝒄𝒄{\bm{c}}bold_italic_c is estimated as 𝒄=𝑨𝒃𝒄superscript𝑨𝒃{\bm{c}}={\bm{A}}^{\rm\dagger}{\bm{b}}bold_italic_c = bold_italic_A start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT bold_italic_b and 𝑨=(𝑨T𝑨)1superscript𝑨superscriptsuperscript𝑨T𝑨1{\bm{A}}^{\dagger}=({\bm{A}}^{\rm T}{\bm{A}})^{-1}bold_italic_A start_POSTSUPERSCRIPT † end_POSTSUPERSCRIPT = ( bold_italic_A start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT bold_italic_A ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT is the matrix pseudo-inverse. The flow-field parameters are then:

w^^𝑤\displaystyle\hat{w}over^ start_ARG italic_w end_ARG=12c12+c22absent12superscriptsubscript𝑐12superscriptsubscript𝑐22\displaystyle=\frac{1}{2}\sqrt{c_{1}^{2}+c_{2}^{2}}= divide start_ARG 1 end_ARG start_ARG 2 end_ARG square-root start_ARG italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG(12)
θ^^𝜃\displaystyle\hat{\theta}over^ start_ARG italic_θ end_ARG=atan2(c2,c1)absentatan2subscript𝑐2subscript𝑐1\displaystyle={\rm atan2}(c_{2},c_{1})= atan2 ( italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT )(13)
v^^𝑣\displaystyle\hat{v}over^ start_ARG italic_v end_ARG=(1/4)(c12+c22)c3.absent14superscriptsubscript𝑐12superscriptsubscript𝑐22subscript𝑐3\displaystyle=\sqrt{(1/4)(c_{1}^{2}+c_{2}^{2})-c_{3}}\;.= square-root start_ARG ( 1 / 4 ) ( italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) - italic_c start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_ARG .(14)

An illustrative example of fitting a circular curve to (x˙,y˙)˙𝑥˙𝑦(\dot{x},\dot{y})( over˙ start_ARG italic_x end_ARG , over˙ start_ARG italic_y end_ARG ) data using this method is shown in Fig.2 for a maneuver where the heading completes one full revolution (i.e., Δψ=2πΔ𝜓2𝜋\Delta\psi=2\piroman_Δ italic_ψ = 2 italic_π). The approach can also be applied for maneuvers with Δψ<2πΔ𝜓2𝜋\Delta\psi<2\piroman_Δ italic_ψ < 2 italic_π.

Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (2)

2.2 Quadratic Curve Fit with (vg,ψ)subscript𝑣g𝜓(v_{\rm g},\psi)( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT , italic_ψ ) Data

Now, suppose that the vehicle has access to the ground speed magnitude vg:=𝒗gassignsubscript𝑣gnormsubscript𝒗gv_{\rm g}:=||{\bm{v}}_{\rm g}||italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT := | | bold_italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT | | (rather than the velocity components) along with heading angle information. That is, the data is {vg,i,ψi}i=1Nsuperscriptsubscriptsubscript𝑣g𝑖subscript𝜓𝑖𝑖1𝑁\{v_{{\rm g},i},\psi_{i}\}_{i=1}^{N}{ italic_v start_POSTSUBSCRIPT roman_g , italic_i end_POSTSUBSCRIPT , italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT where

vg=fvg(ψ;v,w,θ)subscript𝑣gsubscript𝑓subscript𝑣g𝜓𝑣𝑤𝜃\displaystyle v_{\rm g}=f_{v_{\rm g}}(\psi;v,w,\theta)italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT = italic_f start_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_ψ ; italic_v , italic_w , italic_θ )=x˙(t)2+y˙(t)2absent˙𝑥superscript𝑡2˙𝑦superscript𝑡2\displaystyle=\sqrt{\dot{x}(t)^{2}+\dot{y}(t)^{2}}= square-root start_ARG over˙ start_ARG italic_x end_ARG ( italic_t ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + over˙ start_ARG italic_y end_ARG ( italic_t ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG(15)
=v2+w2+2vwcos(θψ).absentsuperscript𝑣2superscript𝑤22𝑣𝑤𝜃𝜓\displaystyle=\sqrt{v^{2}+w^{2}+2vw\cos(\theta-\psi)}\;.= square-root start_ARG italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 2 italic_v italic_w roman_cos ( italic_θ - italic_ψ ) end_ARG .(16)

Again, the data is assumed to be corrupted by additive zero-mean Gaussian noise. In general this assumption is made throughout this work, however, it is worth mentioning that for a vessel continuously rotating in one direction that is not aft-fore symmetric there may be a bias present based on the direction of rotation. To mitigate this bias, the dataset could include maneuvers performed in both clockwise and counter-clockwise orientations.If the heading undergoes a full revolution, then the curve vg(ψ)subscript𝑣g𝜓v_{\rm g}(\psi)italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ( italic_ψ ) contains a maximum and a minimum (see Fig.3). These minima and maxima can be approximated with a quadratic curve fit to estimate (w^,v^,θ^)^𝑤^𝑣^𝜃(\hat{w},\hat{v},\hat{\theta})( over^ start_ARG italic_w end_ARG , over^ start_ARG italic_v end_ARG , over^ start_ARG italic_θ end_ARG ) as described next.

Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (3)

Differentiating (16) with respect to ψ𝜓\psiitalic_ψ gives the condition for a critical point:

ddψvgdd𝜓subscript𝑣g\displaystyle\frac{{\rm d}}{{\rm d}\psi}v_{\rm g}divide start_ARG roman_d end_ARG start_ARG roman_d italic_ψ end_ARG italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT=vwsin(θψ)v2+w2+2vwcos(θψ)=0,absent𝑣𝑤𝜃𝜓superscript𝑣2superscript𝑤22𝑣𝑤𝜃𝜓0\displaystyle=\frac{vw\sin(\theta-\psi)}{\sqrt{v^{2}+w^{2}+2vw\cos(\theta-\psi%)}}=0\;,= divide start_ARG italic_v italic_w roman_sin ( italic_θ - italic_ψ ) end_ARG start_ARG square-root start_ARG italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 2 italic_v italic_w roman_cos ( italic_θ - italic_ψ ) end_ARG end_ARG = 0 ,(17)

which is satisfied at ψ=θ𝜓𝜃\psi=\thetaitalic_ψ = italic_θ and ψ=θ+π𝜓𝜃𝜋\psi=\theta+\piitalic_ψ = italic_θ + italic_π. The speed over ground is a maximum when the vehicle heading is aligned with the current, vg(ψ=θ)=v+wsubscript𝑣g𝜓𝜃𝑣𝑤v_{\rm g}(\psi=\theta)=v+witalic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ( italic_ψ = italic_θ ) = italic_v + italic_w, and a minimum when they are opposed, vg(ψ=θ+π)=vwsubscript𝑣g𝜓𝜃𝜋𝑣𝑤v_{\rm g}(\psi=\theta+\pi)=v-witalic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ( italic_ψ = italic_θ + italic_π ) = italic_v - italic_w.Now consider a Taylor series approximation at these two points. At the maximum:

vgsubscript𝑣g\displaystyle v_{\rm g}italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT(v+w)vwv2+2vw+w2(ψθ)2absent𝑣𝑤𝑣𝑤superscript𝑣22𝑣𝑤superscript𝑤2superscript𝜓𝜃2\displaystyle\approx(v+w)-\frac{vw}{\sqrt{v^{2}+2vw+w^{2}}}(\psi-\theta)^{2}≈ ( italic_v + italic_w ) - divide start_ARG italic_v italic_w end_ARG start_ARG square-root start_ARG italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 2 italic_v italic_w + italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_ARG ( italic_ψ - italic_θ ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT(18)
=(vwδ+)a+ψ2+(2θvwδ+)b+ψ+(v+wvwδ+θ2)c+,absentsubscript𝑣𝑤superscript𝛿superscript𝑎superscript𝜓2subscript2𝜃𝑣𝑤superscript𝛿superscript𝑏𝜓subscript𝑣𝑤𝑣𝑤superscript𝛿superscript𝜃2superscript𝑐\displaystyle=\underbrace{(-vw\delta^{+})}_{a^{+}}\psi^{2}+\underbrace{(2%\theta vw\delta^{+})}_{b^{+}}\psi+\underbrace{(v+w-vw\delta^{+}\theta^{2})}_{c%^{+}}\;,= under⏟ start_ARG ( - italic_v italic_w italic_δ start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) end_ARG start_POSTSUBSCRIPT italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_ψ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + under⏟ start_ARG ( 2 italic_θ italic_v italic_w italic_δ start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) end_ARG start_POSTSUBSCRIPT italic_b start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_ψ + under⏟ start_ARG ( italic_v + italic_w - italic_v italic_w italic_δ start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT italic_θ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) end_ARG start_POSTSUBSCRIPT italic_c start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ,(19)

where δ+=1/v2+2vw+w2superscript𝛿1superscript𝑣22𝑣𝑤superscript𝑤2\delta^{+}=1/\sqrt{v^{2}+2vw+w^{2}}italic_δ start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT = 1 / square-root start_ARG italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 2 italic_v italic_w + italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG. Similarly, at the minimum

vgsubscript𝑣g\displaystyle v_{\rm g}italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT(vw)+vwv22vw+w2(ψ(θ+π))2absent𝑣𝑤𝑣𝑤superscript𝑣22𝑣𝑤superscript𝑤2superscript𝜓𝜃𝜋2\displaystyle\approx(v-w)+\frac{vw}{\sqrt{v^{2}-2vw+w^{2}}}(\psi-(\theta+\pi))%^{2}≈ ( italic_v - italic_w ) + divide start_ARG italic_v italic_w end_ARG start_ARG square-root start_ARG italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - 2 italic_v italic_w + italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG end_ARG ( italic_ψ - ( italic_θ + italic_π ) ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT(20)
=(vwδ)aψ2(2vwδ(θ+π))bψabsentsubscript𝑣𝑤superscript𝛿superscript𝑎superscript𝜓2subscript2𝑣𝑤superscript𝛿𝜃𝜋superscript𝑏𝜓\displaystyle=\underbrace{(vw\delta^{-})}_{a^{-}}\psi^{2}\underbrace{-(2vw%\delta^{-}(\theta+\pi))}_{b^{-}}\psi= under⏟ start_ARG ( italic_v italic_w italic_δ start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) end_ARG start_POSTSUBSCRIPT italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_ψ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT under⏟ start_ARG - ( 2 italic_v italic_w italic_δ start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( italic_θ + italic_π ) ) end_ARG start_POSTSUBSCRIPT italic_b start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_ψ(21)
+(vw+vwδ(θ+π)2)c,subscript𝑣𝑤𝑣𝑤superscript𝛿superscript𝜃𝜋2superscript𝑐\displaystyle\qquad\qquad+\underbrace{(v-w+vw\delta^{-}(\theta+\pi)^{2})}_{c^{%-}}\;,+ under⏟ start_ARG ( italic_v - italic_w + italic_v italic_w italic_δ start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( italic_θ + italic_π ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) end_ARG start_POSTSUBSCRIPT italic_c start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ,(22)

where δ=1/v22vw+w2superscript𝛿1superscript𝑣22𝑣𝑤superscript𝑤2\delta^{-}=1/\sqrt{v^{2}-2vw+w^{2}}italic_δ start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT = 1 / square-root start_ARG italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - 2 italic_v italic_w + italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG. Since δ+<δsuperscript𝛿superscript𝛿\delta^{+}<\delta^{-}italic_δ start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT < italic_δ start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT the curvature at the minimum is greater. Let ψ0+superscriptsubscript𝜓0\psi_{0}^{+}italic_ψ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT denote a guess for the heading angle of the maximum. Applying a second-order polynomial least-square fit to the the data on the interval [ψ0+λ,ψ0++λ]superscriptsubscript𝜓0𝜆superscriptsubscript𝜓0𝜆[\psi_{0}^{+}-\lambda,\psi_{0}^{+}+\lambda][ italic_ψ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT - italic_λ , italic_ψ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT + italic_λ ] to give the coefficients (a+,b+,c+)superscript𝑎superscript𝑏superscript𝑐(a^{+},b^{+},c^{+})( italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT , italic_b start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT , italic_c start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ). Equating these coefficients to the Taylor series approximation one can solve for an estimate (v^,w^,θ^)^𝑣^𝑤^𝜃(\hat{v},\hat{w},\hat{\theta})( over^ start_ARG italic_v end_ARG , over^ start_ARG italic_w end_ARG , over^ start_ARG italic_θ end_ARG ). A similar approach at the minimum gives the coefficients (a,b,c)superscript𝑎superscript𝑏superscript𝑐(a^{-},b^{-},c^{-})( italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT , italic_b start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT , italic_c start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) and another estimate. To utilize more of the available data, both sets of parameters can be used. Let the coordinate of the maximum and minimum be

(ψmax,vmax)=(b+/(2a+),c+(b+)2/(4a+))subscript𝜓maxsubscript𝑣maxsuperscript𝑏2superscript𝑎superscript𝑐superscriptsuperscript𝑏24superscript𝑎\displaystyle(\psi_{\rm max},v_{\rm max})=(-b^{+}/(2a^{+}),~{}c^{+}-(b^{+})^{2%}/(4a^{+}))( italic_ψ start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT ) = ( - italic_b start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT / ( 2 italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) , italic_c start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT - ( italic_b start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT / ( 4 italic_a start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) )(23)
(ψmin,vmin)=(b/(2a),c(b)2/(4a)),subscript𝜓minsubscript𝑣minsuperscript𝑏2superscript𝑎superscript𝑐superscriptsuperscript𝑏24superscript𝑎\displaystyle(\psi_{\rm min},v_{\rm min})=(-b^{-}/(2a^{-}),~{}c^{-}-(b^{-})^{2%}/(4a^{-}))\;,( italic_ψ start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT ) = ( - italic_b start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT / ( 2 italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) , italic_c start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT - ( italic_b start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT / ( 4 italic_a start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) ) ,(24)

respectively.Then, the estimates are:

v^^𝑣\displaystyle\hat{v}over^ start_ARG italic_v end_ARG=(vmax+vmin)/2absentsubscript𝑣maxsubscript𝑣min2\displaystyle=(v_{\rm max}+v_{\rm min})/2= ( italic_v start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT + italic_v start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT ) / 2(25)
w^^𝑤\displaystyle\hat{w}over^ start_ARG italic_w end_ARG=(vmaxvmin)/2absentsubscript𝑣maxsubscript𝑣min2\displaystyle=(v_{\rm max}-v_{\rm min})/2= ( italic_v start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT - italic_v start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT ) / 2(26)
θ^^𝜃\displaystyle\hat{\theta}over^ start_ARG italic_θ end_ARG=atan2(sinψmaxsinψmin,cosψmaxcosψmin)absentatan2subscript𝜓maxsubscript𝜓minsubscript𝜓maxsubscript𝜓min\displaystyle={\rm atan2}(\sin\psi_{\rm max}-\sin\psi_{\rm min},\cos\psi_{\rmmax%}-\cos\psi_{\rm min})= atan2 ( roman_sin italic_ψ start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT - roman_sin italic_ψ start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT , roman_cos italic_ψ start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT - roman_cos italic_ψ start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT )(27)

The estimate θ^^𝜃\hat{\theta}over^ start_ARG italic_θ end_ARG in (27) averages ψminπsubscript𝜓min𝜋\psi_{\rm min}-\piitalic_ψ start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT - italic_π and ψmaxsubscript𝜓max\psi_{\rm max}italic_ψ start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT while considering angle wrap-around. The approach applied to example data is shown in Fig.3.

3 Optimization-Based Methods

This section proposes two optimization-based approaches to estimate the vehicle speed and current magnitude and direction. The first method applies to (x˙,y˙,ψ)˙𝑥˙𝑦𝜓(\dot{x},\dot{y},\psi)( over˙ start_ARG italic_x end_ARG , over˙ start_ARG italic_y end_ARG , italic_ψ ) data and the second method applies to (vg,ψ)subscript𝑣g𝜓(v_{\rm g},\psi)( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT , italic_ψ ) data.

3.1 Least-square Optimization with (x˙,y˙,ψ)˙𝑥˙𝑦𝜓(\dot{x},\dot{y},\psi)( over˙ start_ARG italic_x end_ARG , over˙ start_ARG italic_y end_ARG , italic_ψ ) Data

Suppose that the vehicle obtains noise corrupted data of the form {x˙i,y˙i,ψi}i=1Nsuperscriptsubscriptsubscript˙𝑥𝑖subscript˙𝑦𝑖subscript𝜓𝑖𝑖1𝑁\{\dot{x}_{i},\dot{y}_{i},\psi_{i}\}_{i=1}^{N}{ over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT and consider the cost function:

J𝐽\displaystyle Jitalic_J=12i=1N{[x˙ifx(ψi;v,w,θ)]2+[y˙ify(ψi;v,w,θ)]2}absent12superscriptsubscript𝑖1𝑁superscriptdelimited-[]subscript˙𝑥𝑖subscript𝑓𝑥subscript𝜓𝑖𝑣𝑤𝜃2superscriptdelimited-[]subscript˙𝑦𝑖subscript𝑓𝑦subscript𝜓𝑖𝑣𝑤𝜃2\displaystyle=\frac{1}{2}\sum_{i=1}^{N}\{[\dot{x}_{i}-f_{x}(\psi_{i};v,w,%\theta)]^{2}+[\dot{y}_{i}-f_{y}(\psi_{i};v,w,\theta)]^{2}\}= divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT { [ over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_f start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ; italic_v , italic_w , italic_θ ) ] start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + [ over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_f start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ; italic_v , italic_w , italic_θ ) ] start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT }
=12i=1N{v2+w2+x˙i2+y˙i22x˙icosθ2wy˙isinθ\displaystyle=\frac{1}{2}\sum_{i=1}^{N}\left\{v^{2}+w^{2}+\dot{x}_{i}^{2}+\dot%{y}_{i}^{2}-2\dot{x}_{i}\cos\theta-2w\dot{y}_{i}\sin\theta\right.= divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT { italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - 2 over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_cos italic_θ - 2 italic_w over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_sin italic_θ
2vx˙icosψi2vy˙isinψi+2vwcosθcosψi2𝑣subscript˙𝑥𝑖subscript𝜓𝑖2𝑣subscript˙𝑦𝑖subscript𝜓𝑖2𝑣𝑤𝜃subscript𝜓𝑖\displaystyle\qquad-2v\dot{x}_{i}\cos\psi_{i}-2v\dot{y}_{i}\sin\psi_{i}+2vw%\cos\theta\cos\psi_{i}- 2 italic_v over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_cos italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - 2 italic_v over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_sin italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT + 2 italic_v italic_w roman_cos italic_θ roman_cos italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT
+2vwsinθsinψi}.\displaystyle\qquad\left.+2vw\sin\theta\sin\psi_{i}\right\}\;.+ 2 italic_v italic_w roman_sin italic_θ roman_sin italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } .(28)

Now define the following constants that depend on the data collected:

k1:=i=1Nx˙i,k2:=i=1Ny˙i,k3:=i=1Nx˙i2formulae-sequenceassignsubscript𝑘1superscriptsubscript𝑖1𝑁subscript˙𝑥𝑖formulae-sequenceassignsubscript𝑘2superscriptsubscript𝑖1𝑁subscript˙𝑦𝑖assignsubscript𝑘3superscriptsubscript𝑖1𝑁superscriptsubscript˙𝑥𝑖2\displaystyle k_{1}:=\sum_{i=1}^{N}\dot{x}_{i}\;,\quad k_{2}:=\sum_{i=1}^{N}%\dot{y}_{i}\;,\quad k_{3}:=\sum_{i=1}^{N}\dot{x}_{i}^{2}italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT := ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_k start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT := ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_k start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT := ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT
k4:=i=1Ny˙i2,k5:=i=1Ncosψi,k6:=i=1Nsinψiformulae-sequenceassignsubscript𝑘4superscriptsubscript𝑖1𝑁superscriptsubscript˙𝑦𝑖2formulae-sequenceassignsubscript𝑘5superscriptsubscript𝑖1𝑁subscript𝜓𝑖assignsubscript𝑘6superscriptsubscript𝑖1𝑁subscript𝜓𝑖\displaystyle k_{4}:=\sum_{i=1}^{N}\dot{y}_{i}^{2}\;,\quad k_{5}:=\sum_{i=1}^{%N}\cos\psi_{i}\;,\quad k_{6}:=\sum_{i=1}^{N}\sin\psi_{i}italic_k start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT := ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_k start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT := ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT roman_cos italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_k start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT := ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT roman_sin italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT
k7:=i=1Nx˙icosψi,k8:=i=1Ny˙isinψi.formulae-sequenceassignsubscript𝑘7superscriptsubscript𝑖1𝑁subscript˙𝑥𝑖subscript𝜓𝑖assignsubscript𝑘8superscriptsubscript𝑖1𝑁subscript˙𝑦𝑖subscript𝜓𝑖\displaystyle k_{7}:=\sum_{i=1}^{N}\dot{x}_{i}\cos\psi_{i}\;,\quad k_{8}:=\sum%_{i=1}^{N}\dot{y}_{i}\sin\psi_{i}\;.italic_k start_POSTSUBSCRIPT 7 end_POSTSUBSCRIPT := ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_cos italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_k start_POSTSUBSCRIPT 8 end_POSTSUBSCRIPT := ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_sin italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT .

The cost function is then rewritten as

J𝐽\displaystyle Jitalic_J=N22v2+N2w2+12k3+12k4k1wcosθabsentsuperscript𝑁22superscript𝑣2𝑁2superscript𝑤212subscript𝑘312subscript𝑘4subscript𝑘1𝑤𝜃\displaystyle=\frac{N}{2}^{2}v^{2}+\frac{N}{2}w^{2}+\frac{1}{2}k_{3}+\frac{1}{%2}k_{4}-k_{1}w\cos\theta= divide start_ARG italic_N end_ARG start_ARG 2 end_ARG start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + divide start_ARG italic_N end_ARG start_ARG 2 end_ARG italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_k start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT + divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_k start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT - italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_w roman_cos italic_θ
k2wsinθk7vk8v+k5vwcosθ+k6vwsinθ,subscript𝑘2𝑤𝜃subscript𝑘7𝑣subscript𝑘8𝑣subscript𝑘5𝑣𝑤𝜃subscript𝑘6𝑣𝑤𝜃\displaystyle-k_{2}w\sin\theta-k_{7}v-k_{8}v+k_{5}vw\cos\theta+k_{6}vw\sin%\theta\;,- italic_k start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_w roman_sin italic_θ - italic_k start_POSTSUBSCRIPT 7 end_POSTSUBSCRIPT italic_v - italic_k start_POSTSUBSCRIPT 8 end_POSTSUBSCRIPT italic_v + italic_k start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT italic_v italic_w roman_cos italic_θ + italic_k start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT italic_v italic_w roman_sin italic_θ ,(29)

and notice that (29) is linear in the data-dependent variables k1,,k8subscript𝑘1subscript𝑘8k_{1},\ldots,k_{8}italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_k start_POSTSUBSCRIPT 8 end_POSTSUBSCRIPT. These terms only need to be computed once before the optimization proceeds.The gradient with respect to the parameters is:

J=[J/v,J/w,J/θ]T,𝐽superscriptdelimited-[]𝐽𝑣𝐽𝑤𝐽𝜃T\displaystyle\nabla J=\left[\begin{array}[]{ccc}{\partial J}/{\partial v},&{%\partial J}/{\partial w},&{\partial J}/{\partial\theta}\end{array}\right]^{\rmT%}\;,∇ italic_J = [ start_ARRAY start_ROW start_CELL ∂ italic_J / ∂ italic_v , end_CELL start_CELL ∂ italic_J / ∂ italic_w , end_CELL start_CELL ∂ italic_J / ∂ italic_θ end_CELL end_ROW end_ARRAY ] start_POSTSUPERSCRIPT roman_T end_POSTSUPERSCRIPT ,(31)

where

J/v𝐽𝑣\displaystyle{\partial J}/{\partial v}∂ italic_J / ∂ italic_v=Nvk7k8+k5wcosθ+k6wsinθabsent𝑁𝑣subscript𝑘7subscript𝑘8subscript𝑘5𝑤𝜃subscript𝑘6𝑤𝜃\displaystyle=Nv-k_{7}-k_{8}+k_{5}w\cos\theta+k_{6}w\sin\theta= italic_N italic_v - italic_k start_POSTSUBSCRIPT 7 end_POSTSUBSCRIPT - italic_k start_POSTSUBSCRIPT 8 end_POSTSUBSCRIPT + italic_k start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT italic_w roman_cos italic_θ + italic_k start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT italic_w roman_sin italic_θ(32)
J/w𝐽𝑤\displaystyle{\partial J}/{\partial w}∂ italic_J / ∂ italic_w=Nw+(k5vk1)cosθ+(k6vk2)sinθabsent𝑁𝑤subscript𝑘5𝑣subscript𝑘1𝜃subscript𝑘6𝑣subscript𝑘2𝜃\displaystyle=Nw+(k_{5}v-k_{1})\cos\theta+(k_{6}v-k_{2})\sin\theta= italic_N italic_w + ( italic_k start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT italic_v - italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) roman_cos italic_θ + ( italic_k start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT italic_v - italic_k start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) roman_sin italic_θ(33)
J/θ𝐽𝜃\displaystyle{\partial J}/{\partial\theta}∂ italic_J / ∂ italic_θ=(k1k5v)wsinθ+(k6vk2)wcosθ.absentsubscript𝑘1subscript𝑘5𝑣𝑤𝜃subscript𝑘6𝑣subscript𝑘2𝑤𝜃\displaystyle=(k_{1}-k_{5}v)w\sin\theta+(k_{6}v-k_{2})w\cos\theta\;.= ( italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_k start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT italic_v ) italic_w roman_sin italic_θ + ( italic_k start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT italic_v - italic_k start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) italic_w roman_cos italic_θ .(34)

The symmetric Hessian matrix is:

𝑯=[HvvHvwHvθHwvHwwHwθHθvHθwHθθ]𝑯delimited-[]subscript𝐻𝑣𝑣subscript𝐻𝑣𝑤subscript𝐻𝑣𝜃subscript𝐻𝑤𝑣subscript𝐻𝑤𝑤subscript𝐻𝑤𝜃subscript𝐻𝜃𝑣subscript𝐻𝜃𝑤subscript𝐻𝜃𝜃{\bm{H}}=\left[\begin{array}[]{ccc}H_{vv}&H_{vw}&H_{v\theta}\\H_{wv}&H_{ww}&H_{w\theta}\\H_{\theta v}&H_{\theta w}&H_{\theta\theta}\end{array}\right]bold_italic_H = [ start_ARRAY start_ROW start_CELL italic_H start_POSTSUBSCRIPT italic_v italic_v end_POSTSUBSCRIPT end_CELL start_CELL italic_H start_POSTSUBSCRIPT italic_v italic_w end_POSTSUBSCRIPT end_CELL start_CELL italic_H start_POSTSUBSCRIPT italic_v italic_θ end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_H start_POSTSUBSCRIPT italic_w italic_v end_POSTSUBSCRIPT end_CELL start_CELL italic_H start_POSTSUBSCRIPT italic_w italic_w end_POSTSUBSCRIPT end_CELL start_CELL italic_H start_POSTSUBSCRIPT italic_w italic_θ end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_H start_POSTSUBSCRIPT italic_θ italic_v end_POSTSUBSCRIPT end_CELL start_CELL italic_H start_POSTSUBSCRIPT italic_θ italic_w end_POSTSUBSCRIPT end_CELL start_CELL italic_H start_POSTSUBSCRIPT italic_θ italic_θ end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY ](35)

with entries

Hvvsubscript𝐻𝑣𝑣\displaystyle H_{vv}italic_H start_POSTSUBSCRIPT italic_v italic_v end_POSTSUBSCRIPT=Nabsent𝑁\displaystyle=N= italic_N
Hvwsubscript𝐻𝑣𝑤\displaystyle H_{vw}italic_H start_POSTSUBSCRIPT italic_v italic_w end_POSTSUBSCRIPT=k5cosθ+k6sinθabsentsubscript𝑘5𝜃subscript𝑘6𝜃\displaystyle=k_{5}\cos\theta+k_{6}\sin\theta= italic_k start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT roman_cos italic_θ + italic_k start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT roman_sin italic_θ
Hvθsubscript𝐻𝑣𝜃\displaystyle H_{v\theta}italic_H start_POSTSUBSCRIPT italic_v italic_θ end_POSTSUBSCRIPT=k6wcosθk5wsinθabsentsubscript𝑘6𝑤𝜃subscript𝑘5𝑤𝜃\displaystyle=k_{6}w\cos\theta-k_{5}w\sin\theta= italic_k start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT italic_w roman_cos italic_θ - italic_k start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT italic_w roman_sin italic_θ
Hwwsubscript𝐻𝑤𝑤\displaystyle H_{ww}italic_H start_POSTSUBSCRIPT italic_w italic_w end_POSTSUBSCRIPT=Nabsent𝑁\displaystyle=N= italic_N
Hwθsubscript𝐻𝑤𝜃\displaystyle H_{w\theta}italic_H start_POSTSUBSCRIPT italic_w italic_θ end_POSTSUBSCRIPT=(k1k5v)sinθ+(k6vk2)cosθabsentsubscript𝑘1subscript𝑘5𝑣𝜃subscript𝑘6𝑣subscript𝑘2𝜃\displaystyle=(k_{1}-k_{5}v)\sin\theta+(k_{6}v-k_{2})\cos\theta= ( italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_k start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT italic_v ) roman_sin italic_θ + ( italic_k start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT italic_v - italic_k start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) roman_cos italic_θ
Hθθsubscript𝐻𝜃𝜃\displaystyle H_{\theta\theta}italic_H start_POSTSUBSCRIPT italic_θ italic_θ end_POSTSUBSCRIPT=(k1k5v)wcosθ+(k2k6v)wsinθabsentsubscript𝑘1subscript𝑘5𝑣𝑤𝜃subscript𝑘2subscript𝑘6𝑣𝑤𝜃\displaystyle=(k_{1}-k_{5}v)w\cos\theta+(k_{2}-k_{6}v)w\sin\theta= ( italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_k start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT italic_v ) italic_w roman_cos italic_θ + ( italic_k start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_k start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT italic_v ) italic_w roman_sin italic_θ

where Hwv=Hvwsubscript𝐻𝑤𝑣subscript𝐻𝑣𝑤H_{wv}=H_{vw}italic_H start_POSTSUBSCRIPT italic_w italic_v end_POSTSUBSCRIPT = italic_H start_POSTSUBSCRIPT italic_v italic_w end_POSTSUBSCRIPT, Hθv=Hvθsubscript𝐻𝜃𝑣subscript𝐻𝑣𝜃H_{\theta v}=H_{v\theta}italic_H start_POSTSUBSCRIPT italic_θ italic_v end_POSTSUBSCRIPT = italic_H start_POSTSUBSCRIPT italic_v italic_θ end_POSTSUBSCRIPT, and Hθw=Hwθsubscript𝐻𝜃𝑤subscript𝐻𝑤𝜃H_{\theta w}=H_{w\theta}italic_H start_POSTSUBSCRIPT italic_θ italic_w end_POSTSUBSCRIPT = italic_H start_POSTSUBSCRIPT italic_w italic_θ end_POSTSUBSCRIPT.

The cost, gradient, and Hessian are essential for optimization (e.g., via Newton-Rhapson’s method). By deriving the analytical forms of the gradient and Hessian the use of finite difference techniques can be avoided to improve optimization efficiency and robustness. In this work, we supply J𝐽\nabla J∇ italic_J and H𝐻Hitalic_H to an interior-point optimizer implemented by the fmincon function in MATLAB. A constrained optimization problem is formulated subject to the linear inequality constraints

[100100010110001001][vwθ][vminvmax0002π],delimited-[]100100010110001001delimited-[]𝑣𝑤𝜃delimited-[]subscript𝑣minsubscript𝑣max0002𝜋\left[\begin{array}[]{ccc}-1&0&0\\1&0&0\\0&1&0\\-1&1&0\\0&0&1\\0&0&-1\\\end{array}\right]\left[\begin{array}[]{c}v\\w\\\theta\end{array}\right]\leq\left[\begin{array}[]{c}v_{\rm min}\\v_{\rm max}\\0\\0\\0\\2\pi\\\end{array}\right]\;,[ start_ARRAY start_ROW start_CELL - 1 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 1 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL - 1 end_CELL start_CELL 1 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 1 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 1 end_CELL end_ROW end_ARRAY ] [ start_ARRAY start_ROW start_CELL italic_v end_CELL end_ROW start_ROW start_CELL italic_w end_CELL end_ROW start_ROW start_CELL italic_θ end_CELL end_ROW end_ARRAY ] ≤ [ start_ARRAY start_ROW start_CELL italic_v start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_v start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW start_ROW start_CELL 2 italic_π end_CELL end_ROW end_ARRAY ] ,(36)

where vminsubscript𝑣minv_{\rm min}italic_v start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT and vmaxsubscript𝑣maxv_{\rm max}italic_v start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT are user-supplied lower and upper bounds on the vehicle’s flow-relative speed. The constraints (36) also encode for the assumption wv𝑤𝑣w\leq vitalic_w ≤ italic_v that is required for the problem to be well posed. Local minima can occur along the boundaries of the constraint set since the topology of θ𝜃\thetaitalic_θ is not considered in (36). Additionally, local minima may occur with noisier datasets or when the maneuver contains a smaller range of heading angles. To improve robustness the optimization is run from multiple start points and the lowest cost solution is selected. The initial starting points are selected as the corners of the polytope represented by the constraints and as the centroid of the polytope. An example of the cost function and optimization scheme is shown in Fig.4. The level sets of the cost function are indicative of the uncertainty in the parameter space around the estimated point.

Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (4)

Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (5)

3.2 Least-square Optimization with (vg,ψ)subscript𝑣g𝜓(v_{\rm g},\psi)( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT , italic_ψ ) Data

Lastly, we consider an optimization-based estimation algorithm that assumes speed-over-ground measurements and heading data are available. Consider the cost function

J𝐽\displaystyle Jitalic_J=12i=1N[(vg)ifvg(ψ;v,w,θ)]2.absent12superscriptsubscript𝑖1𝑁superscriptdelimited-[]subscriptsubscript𝑣g𝑖subscript𝑓subscript𝑣g𝜓𝑣𝑤𝜃2\displaystyle=\frac{1}{2}\sum_{i=1}^{N}[(v_{\rm g})_{i}-f_{v_{\rm g}}(\psi;v,w%,\theta)]^{2}\;.= divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT [ ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_f start_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_ψ ; italic_v , italic_w , italic_θ ) ] start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT .(37)

The gradient with respect to the parameters has the same form as (31) with entries

Jv𝐽𝑣\displaystyle\frac{\partial J}{\partial v}divide start_ARG ∂ italic_J end_ARG start_ARG ∂ italic_v end_ARG=i=1N(2v+2w(cψθ)i)((vg)iαi)αiabsentsuperscriptsubscript𝑖1𝑁2𝑣2𝑤subscriptsubscript𝑐𝜓𝜃𝑖subscriptsubscript𝑣g𝑖subscript𝛼𝑖subscript𝛼𝑖\displaystyle=-\sum_{i=1}^{N}\frac{\left(2v+2w(c_{\psi\theta})_{i}\right)\left%((v_{\rm g})_{i}-\sqrt{\alpha_{i}}\right)}{\sqrt{\alpha_{i}}}= - ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT divide start_ARG ( 2 italic_v + 2 italic_w ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ( ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - square-root start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG ) end_ARG start_ARG square-root start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG end_ARG(38)
Jw𝐽𝑤\displaystyle\frac{\partial J}{\partial w}divide start_ARG ∂ italic_J end_ARG start_ARG ∂ italic_w end_ARG=i=1N(2w+2v(cψθ)i)((vg)iαi)αiabsentsuperscriptsubscript𝑖1𝑁2𝑤2𝑣subscriptsubscript𝑐𝜓𝜃𝑖subscriptsubscript𝑣g𝑖subscript𝛼𝑖subscript𝛼𝑖\displaystyle=-\sum_{i=1}^{N}\frac{\left(2w+2v(c_{\psi\theta})_{i}\right)\left%((v_{\rm g})_{i}-\sqrt{\alpha_{i}}\right)}{\sqrt{\alpha_{i}}}= - ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT divide start_ARG ( 2 italic_w + 2 italic_v ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ( ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - square-root start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG ) end_ARG start_ARG square-root start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG end_ARG(39)
Jθ𝐽𝜃\displaystyle\frac{\partial J}{\partial\theta}divide start_ARG ∂ italic_J end_ARG start_ARG ∂ italic_θ end_ARG=i=1N2vw(sψθ)i((vg)iαi)αi,absentsuperscriptsubscript𝑖1𝑁2𝑣𝑤subscriptsubscript𝑠𝜓𝜃𝑖subscriptsubscript𝑣g𝑖subscript𝛼𝑖subscript𝛼𝑖\displaystyle=-\sum_{i=1}^{N}\frac{2vw(s_{\psi\theta})_{i}\left((v_{\rm g})_{i%}-\sqrt{\alpha_{i}}\right)}{\sqrt{\alpha_{i}}}\;,= - ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT divide start_ARG 2 italic_v italic_w ( italic_s start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - square-root start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG ) end_ARG start_ARG square-root start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG end_ARG ,(40)

where αi=(v2+2cos(ψiθ)vw+w2)subscript𝛼𝑖superscript𝑣22subscript𝜓𝑖𝜃𝑣𝑤superscript𝑤2\alpha_{i}=\left(v^{2}+2\cos\left(\psi_{i}-\theta\right)vw+w^{2}\right)italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 2 roman_cos ( italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_θ ) italic_v italic_w + italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ).The symmetric Hessian matrix is the same as in (35)with entries

Hvvsubscript𝐻𝑣𝑣\displaystyle H_{vv}italic_H start_POSTSUBSCRIPT italic_v italic_v end_POSTSUBSCRIPT=i=1N2(αi3/2(vg)iw2+(vg)iw2(cψθ)i2)αi3/2absentsuperscriptsubscript𝑖1𝑁2superscriptsubscript𝛼𝑖32subscriptsubscript𝑣g𝑖superscript𝑤2subscriptsubscript𝑣g𝑖superscript𝑤2superscriptsubscriptsubscript𝑐𝜓𝜃𝑖2superscriptsubscript𝛼𝑖32\displaystyle=\sum_{i=1}^{N}\frac{2\left({\alpha_{i}}^{3/2}-(v_{\rm g})_{i}w^{%2}+(v_{\rm g})_{i}w^{2}{(c_{\psi\theta})_{i}}^{2}\right)}{{\alpha_{i}}^{3/2}}= ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT divide start_ARG 2 ( italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT - ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) end_ARG start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT end_ARG
Hvwsubscript𝐻𝑣𝑤\displaystyle H_{vw}italic_H start_POSTSUBSCRIPT italic_v italic_w end_POSTSUBSCRIPT=i=1N(2v+2w(cψθ)i)(2w+2v(cψθ)i)2αiabsentsuperscriptsubscript𝑖1𝑁2𝑣2𝑤subscriptsubscript𝑐𝜓𝜃𝑖2𝑤2𝑣subscriptsubscript𝑐𝜓𝜃𝑖2subscript𝛼𝑖\displaystyle=\sum_{i=1}^{N}\frac{\left(2v+2w(c_{\psi\theta})_{i}\right)\left(%2w+2v(c_{\psi\theta})_{i}\right)}{2\alpha_{i}}= ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT divide start_ARG ( 2 italic_v + 2 italic_w ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ( 2 italic_w + 2 italic_v ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_ARG start_ARG 2 italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG
2(cψθ)i((vg)iαi)αi2subscriptsubscript𝑐𝜓𝜃𝑖subscriptsubscript𝑣g𝑖subscript𝛼𝑖subscript𝛼𝑖\displaystyle\quad-\frac{2(c_{\psi\theta})_{i}\left((v_{\rm g})_{i}-\sqrt{%\alpha_{i}}\right)}{\sqrt{\alpha_{i}}}- divide start_ARG 2 ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - square-root start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG ) end_ARG start_ARG square-root start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG end_ARG
+(2v+2w(cψθ)i)(2w+2v(cψθ)i)((vg)iαi)2αi3/22𝑣2𝑤subscriptsubscript𝑐𝜓𝜃𝑖2𝑤2𝑣subscriptsubscript𝑐𝜓𝜃𝑖subscriptsubscript𝑣g𝑖subscript𝛼𝑖2superscriptsubscript𝛼𝑖32\displaystyle\quad+\frac{\left(2v+2w(c_{\psi\theta})_{i}\right)\left(2w+2v(c_{%\psi\theta})_{i}\right)\left((v_{\rm g})_{i}-\sqrt{\alpha_{i}}\right)}{2{%\alpha_{i}}^{3/2}}+ divide start_ARG ( 2 italic_v + 2 italic_w ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ( 2 italic_w + 2 italic_v ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ( ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - square-root start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG ) end_ARG start_ARG 2 italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT end_ARG
Hvθsubscript𝐻𝑣𝜃\displaystyle H_{v\theta}italic_H start_POSTSUBSCRIPT italic_v italic_θ end_POSTSUBSCRIPT=i=1N2w(sψθ)i((vg)iw2αi3/2+v(vg)iw(cψθ)i)αi3/2absentsuperscriptsubscript𝑖1𝑁2𝑤subscriptsubscript𝑠𝜓𝜃𝑖subscriptsubscript𝑣g𝑖superscript𝑤2superscriptsubscript𝛼𝑖32𝑣subscriptsubscript𝑣g𝑖𝑤subscriptsubscript𝑐𝜓𝜃𝑖superscriptsubscript𝛼𝑖32\displaystyle=\sum_{i=1}^{N}-\frac{2w(s_{\psi\theta})_{i}\left((v_{\rm g})_{i}%w^{2}-{\alpha_{i}}^{3/2}+v(v_{\rm g})_{i}w(c_{\psi\theta})_{i}\right)}{{\alpha%_{i}}^{3/2}}= ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT - divide start_ARG 2 italic_w ( italic_s start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT + italic_v ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_w ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_ARG start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT end_ARG
Hwwsubscript𝐻𝑤𝑤\displaystyle H_{ww}italic_H start_POSTSUBSCRIPT italic_w italic_w end_POSTSUBSCRIPT=i=1N2v(sψθ)i(v2(vg)iαi3/2+v(vg)iw(cψθ)i)αi3/2absentsuperscriptsubscript𝑖1𝑁2𝑣subscriptsubscript𝑠𝜓𝜃𝑖superscript𝑣2subscriptsubscript𝑣g𝑖superscriptsubscript𝛼𝑖32𝑣subscriptsubscript𝑣g𝑖𝑤subscriptsubscript𝑐𝜓𝜃𝑖superscriptsubscript𝛼𝑖32\displaystyle=\sum_{i=1}^{N}-\frac{2v(s_{\psi\theta})_{i}\left(v^{2}(v_{\rm g}%)_{i}-{\alpha_{i}}^{3/2}+v(v_{\rm g})_{i}w(c_{\psi\theta})_{i}\right)}{{\alpha%_{i}}^{3/2}}= ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT - divide start_ARG 2 italic_v ( italic_s start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT + italic_v ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_w ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_ARG start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT end_ARG
Hwθsubscript𝐻𝑤𝜃\displaystyle H_{w\theta}italic_H start_POSTSUBSCRIPT italic_w italic_θ end_POSTSUBSCRIPT=i=1N2v(sψθ)i(v2(vg)iαi3/2+v(vg)iw(cψθ)i)αi3/2absentsuperscriptsubscript𝑖1𝑁2𝑣subscriptsubscript𝑠𝜓𝜃𝑖superscript𝑣2subscriptsubscript𝑣g𝑖superscriptsubscript𝛼𝑖32𝑣subscriptsubscript𝑣g𝑖𝑤subscriptsubscript𝑐𝜓𝜃𝑖superscriptsubscript𝛼𝑖32\displaystyle=\sum_{i=1}^{N}-\frac{2v(s_{\psi\theta})_{i}\left(v^{2}(v_{\rm g}%)_{i}-{\alpha_{i}}^{3/2}+v(v_{\rm g})_{i}w(c_{\psi\theta})_{i}\right)}{{\alpha%_{i}}^{3/2}}= ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT - divide start_ARG 2 italic_v ( italic_s start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_v start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT + italic_v ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_w ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_ARG start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT end_ARG
Hθθsubscript𝐻𝜃𝜃\displaystyle H_{\theta\theta}italic_H start_POSTSUBSCRIPT italic_θ italic_θ end_POSTSUBSCRIPT=i=1N2w(sψθ)i((vg)iw2αi3/2+v(vg)iw(cψθ)i)αi3/2absentsuperscriptsubscript𝑖1𝑁2𝑤subscriptsubscript𝑠𝜓𝜃𝑖subscriptsubscript𝑣g𝑖superscript𝑤2superscriptsubscript𝛼𝑖32𝑣subscriptsubscript𝑣g𝑖𝑤subscriptsubscript𝑐𝜓𝜃𝑖superscriptsubscript𝛼𝑖32\displaystyle=\sum_{i=1}^{N}-\frac{2w(s_{\psi\theta})_{i}\left((v_{\rm g})_{i}%w^{2}-{\alpha_{i}}^{3/2}+v(v_{\rm g})_{i}w(c_{\psi\theta})_{i}\right)}{{\alpha%_{i}}^{3/2}}= ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT - divide start_ARG 2 italic_w ( italic_s start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_w start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT + italic_v ( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_w ( italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_ARG start_ARG italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT end_ARG

where cψθ=cos(ψiθ)subscript𝑐𝜓𝜃subscript𝜓𝑖𝜃c_{\psi\theta}=\cos\left(\psi_{i}-\theta\right)italic_c start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT = roman_cos ( italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_θ ) and sψθ=sin(ψiθ)subscript𝑠𝜓𝜃subscript𝜓𝑖𝜃s_{\psi\theta}=\sin\left(\psi_{i}-\theta\right)italic_s start_POSTSUBSCRIPT italic_ψ italic_θ end_POSTSUBSCRIPT = roman_sin ( italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_θ ) and with Hwv=Hvwsubscript𝐻𝑤𝑣subscript𝐻𝑣𝑤H_{wv}=H_{vw}italic_H start_POSTSUBSCRIPT italic_w italic_v end_POSTSUBSCRIPT = italic_H start_POSTSUBSCRIPT italic_v italic_w end_POSTSUBSCRIPT, Hθv=Hvθsubscript𝐻𝜃𝑣subscript𝐻𝑣𝜃H_{\theta v}=H_{v\theta}italic_H start_POSTSUBSCRIPT italic_θ italic_v end_POSTSUBSCRIPT = italic_H start_POSTSUBSCRIPT italic_v italic_θ end_POSTSUBSCRIPT, and Hθw=Hwθsubscript𝐻𝜃𝑤subscript𝐻𝑤𝜃H_{\theta w}=H_{w\theta}italic_H start_POSTSUBSCRIPT italic_θ italic_w end_POSTSUBSCRIPT = italic_H start_POSTSUBSCRIPT italic_w italic_θ end_POSTSUBSCRIPT. Both the gradient and the Hessian are well-defined only if αi0subscript𝛼𝑖0\alpha_{i}\neq 0italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ≠ 0. In practice, the case αi=0subscript𝛼𝑖0\alpha_{i}=0italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = 0 occurs rarely and during implementation we check for and remove any such instances from the dataset.

Unlike the previous optimization case, the cost function, gradient, and Hessian depend non-linearly on the data. The summations involving {x˙i,y˙i,ψi}i=1Nsuperscriptsubscriptsubscript˙𝑥𝑖subscript˙𝑦𝑖subscript𝜓𝑖𝑖1𝑁\{\dot{x}_{i},\dot{y}_{i},\psi_{i}\}_{i=1}^{N}{ over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , over˙ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_ψ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT must be recomputed at each iteration. As described earlier, the analytical forms of ΔJΔ𝐽\Delta Jroman_Δ italic_J and H𝐻Hitalic_H are provided to fmincon along with constraints (36). An example of the cost function and optimization sequence is shown in Fig.5.

Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (6)

Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (7)

4 Comparison using Simulated Data

To compare the performance of the four methods described in Secs. 2 and 3, a Monte Carlo experiment was conducted using simulated data. The data was simulated for three different noise settings, σ={0.01,0.05,0.10}𝜎0.010.050.10\sigma=\{0.01,0.05,0.10\}italic_σ = { 0.01 , 0.05 , 0.10 } m/s, and three different heading angle changes, Δψ={2π,3π/2,π}Δ𝜓2𝜋3𝜋2𝜋\Delta\psi=\{2\pi,3\pi/2,\pi\}roman_Δ italic_ψ = { 2 italic_π , 3 italic_π / 2 , italic_π }. For each combination of σ𝜎\sigmaitalic_σ and ΔψΔ𝜓\Delta\psiroman_Δ italic_ψ a total of 250 unique datasets of N=100𝑁100N=100italic_N = 100 noisy samples were generated and transformed to the appropriate form for each algorithm. Each dataset was generated by randomizing the true parameters (v,w,θ)𝑣𝑤𝜃(v,w,\theta)( italic_v , italic_w , italic_θ ) and drawing them uniformly at random from the interior of the polytope represented by the constraints with vmin=0.5subscript𝑣min0.5v_{\rm min}=0.5italic_v start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT = 0.5 and vmax=5subscript𝑣max5v_{\rm max}=5italic_v start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT = 5 m/s. For each dataset the circular fit algorithm, optimization with (x˙,y˙)˙𝑥˙𝑦(\dot{x},\dot{y})( over˙ start_ARG italic_x end_ARG , over˙ start_ARG italic_y end_ARG ) data, and optimization with (v˙g,ψ)subscript˙𝑣𝑔𝜓(\dot{v}_{g},\psi)( over˙ start_ARG italic_v end_ARG start_POSTSUBSCRIPT italic_g end_POSTSUBSCRIPT , italic_ψ ) data were tested. The quadratic fit approach was evaluated only for the Δψ=2πΔ𝜓2𝜋\Delta\psi=2\piroman_Δ italic_ψ = 2 italic_π case. The estimate each algorithm produced was compared to the actual value and the absolute error was recorded. The mean of the absolute error, average over 250 trials, is shown in Fig.6.

As expected, the error for each algorithm increased as the measurement noise is increased and as the range of data is reduced. The quadratic fit method produced the largest errors (e.g., almost 18 deg in mean current direction error for the highest noise setting). The optimization with the (vg,ψ)subscript𝑣g𝜓(v_{\rm g},\psi)( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT , italic_ψ ) data was not as accurate as the optimization with (x˙,y˙,ψ)˙𝑥˙𝑦𝜓(\dot{x},\dot{y},\psi)( over˙ start_ARG italic_x end_ARG , over˙ start_ARG italic_y end_ARG , italic_ψ ) data. This is not surprising since more information is available when the components of the ground velocity are known, rather than the magnitude. The circle fit, which uses (x˙,y˙)˙𝑥˙𝑦(\dot{x},\dot{y})( over˙ start_ARG italic_x end_ARG , over˙ start_ARG italic_y end_ARG ) data, in most cases had an intermediate error in comparison to the the two optimization-based methods. The optimization method using (x˙,y˙,ψ)˙𝑥˙𝑦𝜓(\dot{x},\dot{y},\psi)( over˙ start_ARG italic_x end_ARG , over˙ start_ARG italic_y end_ARG , italic_ψ ) data produced the most accurate results — for example, in the case of data collected for Δψ=2πΔ𝜓2𝜋\Delta\psi=2\piroman_Δ italic_ψ = 2 italic_π maneuvers the vehicle and current speed errors were <<< 0.01 m/s and the current direction error was <<< 5 degrees.

Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (8)

5 Comparison using Experimental Data

The four methods described in Secs.2 and 3 were also evaluated using experimental data obtained by a Bluefin-21 unmanned underwater vehicle operated by the U.S. Naval Research Laboratory. The Bluefin-21 is a 20 ft length, 21 inch diameter vehicle developed by Bluefin Robotics that features a fiber-optic gyroscope inertial navigation system and Doppler velocity log (DVL) navigation suite. The vehicle was deployed on June 22, 2016 near Boston Harbor southeast of Nahant Bay. The vehicle was programmed to execute a series of circular orbits around points of interest to test an onboard sonar system. The ground track of the vehicle is shown in Fig.7 along with the flow direction estimated by the optimization method with (x˙,y˙,ψ)˙𝑥˙𝑦𝜓(\dot{x},\dot{y},\psi)( over˙ start_ARG italic_x end_ARG , over˙ start_ARG italic_y end_ARG , italic_ψ ) data.

Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (9)

The radii of the smaller and larger orbits were 70 and 120 meters, respectively. The data under analysis was truncated to be within 10 meters of these orbits and input into all four estimation algorithms. An example of the dataset along one such orbit is shown in Fig.8. The parameters estimated by each algorithm were used to superimpose a vg(ψ)subscript𝑣g𝜓v_{\rm g}(\psi)italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT ( italic_ψ ) curve over the data points. The dataset exhibits outliers that do not conform to the model (e.g., due to transient motions as the vehicle enters and exits each orbit). To address this issue the optimization algorithms are wrapped in a random sample consensus (RANSAC) algorithm outer loop.

The estimated current direction and magnitude was also compared to historical data from an instrumented buoy (identifier: BOS1132) deployed by the National Oceanic and Atmospheric Administration (NOAA) located in Stellwagen Bank about 51 km away directly east from the testing area (15nm NNE of Race Point at a depth of 27ft). The results show good agreement with the ebb and flow tidal directions reported by the buoy. The current magnitude matches the general trend and variations may be due to the spatial separation of the buoy and vehicle leading to different tidal flows closer to shore.

Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (10)
Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (11)

6 Conclusion

Three batch estimation methods were presented that determine the direction and magnitude of a steady, uniform, flow-field, and the vehicle’s speed, using noisy kinematic measurements during heading change maneuvers, such as circular orbits or 180 degree turns. The three methods proposed included a quadratic curve fitting approach with (vg,ψ)subscript𝑣g𝜓(v_{\rm g},\psi)( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT , italic_ψ ) data and least-square optimization methods with either (x˙,y˙,ψ)subscript˙𝑥,˙𝑦𝜓(\dot{x}_{,}\dot{y},\psi)( over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT , end_POSTSUBSCRIPT over˙ start_ARG italic_y end_ARG , italic_ψ ) or (vg,ψ)subscript𝑣g𝜓(v_{\rm g},\psi)( italic_v start_POSTSUBSCRIPT roman_g end_POSTSUBSCRIPT , italic_ψ ) data. The methods were compared through a Monte Carlo experiment with simulated data to illustrate the impact of measurement noise and heading angle change during the maneuver. The comparison included an existing circular curve fitting method from the literature that uses (x˙,y˙)˙𝑥˙𝑦(\dot{x},\dot{y})( over˙ start_ARG italic_x end_ARG , over˙ start_ARG italic_y end_ARG ) data. The results indicated that the optimization with (x˙,y˙,ψ)subscript˙𝑥,˙𝑦𝜓(\dot{x}_{,}\dot{y},\psi)( over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT , end_POSTSUBSCRIPT over˙ start_ARG italic_y end_ARG , italic_ψ ) led to the lowest mean errors. The methods were also evaluated using a experimental data obtained by an underwater vehicle performing a series of circular orbits during a tidal change. The estimated values had modest agreement with data recorded by a nearby buoy.

The advantages of the proposed methods are that they are relatively simple to implement, depend on only a small number of parameters, and do not require a vehicle model or assumption of vehicle flow-relative speed. The optimization methods also allow visualizing the uncertainty in the parameter space as level sets of a corresponding cost function. Future work may consider running the estimators onboard a vehicle, comparing to dynamic state estimators (e.g., Kalman filters that estimate flow-field conditions), and using flow-field estimates to optimize mission plans.

References

  • Chang etal. [2017]Chang, D., Wu, W., Edwards, C.R., and Zhang, F. (2017).Motion tomography: Mapping flow fields using autonomous underwatervehicles.The International Journal of Robotics Research, 36(3),320–336.
  • Hegrenaes and Hallingstad [2011]Hegrenaes, Ø. and Hallingstad, O. (2011).Model-aided INS with sea current estimation for robust underwaternavigation.IEEE Journal of Oceanic Engineering, 36(2), 316–337.
  • McLaren [2008]McLaren, S.A. (2008).Velocity estimate following air data system failure.Master’s thesis, Air Force Institute of Technology.
  • Rhudy etal. [2015]Rhudy, M.B., Fravolini, M.L., Gu, Y., Napolitano, M.R., Gururajan, S., andChao, H. (2015).Aircraft model-independent airspeed estimation without pitot tubemeasurements.IEEE Transactions on Aerospace and Electronic Systems, 51(3),1980–1995.
  • Wolek etal. [2021]Wolek, A., McMahon, J., Dzikowicz, B.R., and Houston, B.H. (2021).The orbiting Dubins traveling salesman problem: planning inspectiontours for a minehunting AUV.Autonomous Robots, 45(1), 31–49.
Batch Estimation of a Steady, Uniform, Flow-Field from Ground Velocity and Heading Measurements (2024)
Top Articles
Latest Posts
Article information

Author: Mrs. Angelic Larkin

Last Updated:

Views: 6370

Rating: 4.7 / 5 (67 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Mrs. Angelic Larkin

Birthday: 1992-06-28

Address: Apt. 413 8275 Mueller Overpass, South Magnolia, IA 99527-6023

Phone: +6824704719725

Job: District Real-Estate Facilitator

Hobby: Letterboxing, Vacation, Poi, Homebrewing, Mountain biking, Slacklining, Cabaret

Introduction: My name is Mrs. Angelic Larkin, I am a cute, charming, funny, determined, inexpensive, joyous, cheerful person who loves writing and wants to share my knowledge and understanding with you.