June 28, 2026
In aided inertial navigation, measurements from different sensors are often subject to unknown relative time delays. Consider a single aiding sensor whose measurements have an unknown but constant delay relative to the inertial-measurement data stream. We study the identifiability of the delay and the initial navigation state that parameterizes the trajectory. Identifiability depends on both the temporal structure of the aiding measurements and the form of the trajectory itself. Our geometric analysis shows that, for a larger class of uninformative (i.e., degenerate) trajectories than has previously been reported, the delayed measurement model admits a continuous symmetry that prevents unique delay-and-state recovery.
An aided inertial navigation system (INS) fuses inertial measurements with data from additional sensors to estimate the state of a moving platform, typically including its position, orientation, and velocity. The inertial measurement unit (IMU) provides high-rate signals that drive the process model, while lower-rate aiding sensors, such as GNSS receivers, supply observations that correct drift to maintain bounded estimation error over longer time horizons.
In practice, measurements from different sensors are often subject to relative delays. These delays arise from sensing, processing, and communication latencies, and are commonly modelled as constant but unknown 2014_Kelly_Determining?, 2014_Li_Online?. If not accounted for in the estimator, they can degrade accuracy and, in adverse cases, lead to divergence of the navigation solution. For a single aiding sensor, the estimation problem therefore involves recovering both the unknown delay and the navigation state from delayed measurements.
Some existing approaches estimate the measurement delay by adding it to the estimator state vector and applying a standard filtering algorithm, such as the extended Kalman filter (EKF). However, these formulations are often adopted without first establishing whether the augmented system is identifiable (or observable)—there is an implicit assumption that isolated delayed measurements provide enough information to recover the unknowns. Our prior work 2021_Kelly_Question? showed that such augmented-state sequential filters have fundamental structural issues that lead to inconsistent estimates and poorer performance.
In this report, we study the identifiability of aided inertial navigation under measurement time delays. While related to existing work 2019_Yang_Degenerate?, 2023_Yang_Online?, our focus here is different: we seek to determine the minimal sets of measurements required for identifiability and to characterize the classes of motion for which the delay and initial navigation state can, or cannot, be uniquely recovered. We show that delayed aided navigation is identifiable only when the available measurements over time are sufficiently informative to constrain both the delay and the state. Our analysis is formulated on the special Galilean group, which provides an appropriate state-space structure. We first analyze the one-dimensional case, where the geometry of the problem is easiest to see, and then extend the analysis to the three-dimensional setting.
A central contribution of this report is to show that the delayed measurement model admits a continuous symmetry, in which changes to the delay can be compensated by changes to the initial navigation state without altering the measurement history. This symmetry defines a class of uninformative trajectories for which the delay and initial state cannot be uniquely recovered. Our characterization includes a larger class of uninformative trajectories than has previously appeared in the literature. We also connect the exact nonlinear results to the familiar Jacobian-based local tests. Related ideas appear in the symmetry-based observability analysis developed by Martinelli for non-delayed systems 2011_Martinelli_State?, but our approach is built around delayed measurement histories.
The remainder of the report is organized as follows. We begin with some preliminaries in 2. In 3, we introduce the one-dimensional special Galilean group \(\LieGroupSGal{1}\); identifiability on \(\LieGroupSGal{1}\) is analyzed in 4. We then consider the three-dimensional special Galilean group \(\LieGroupSGal{3}\) in 5 and extend our analysis to the full delayed aided-navigation problem in 6. We conclude in 7 with a summary of our results.
To begin, we establish a small amount of notation and the main concepts used throughout the report. Lowercase Latin and Greek letters (e.g., \(a\) and \(\alpha\)) denote scalars, while boldface lower- and uppercase Latin letters (e.g., \(\Vector{x}\) and \(\Matrix{X}\)) denote vectors and matrices, respectively. We write the \(n \times n\) identity matrix as \(\Identity_n\) and the \(m \times n\) matrix of zeros as \(\Zero_{m \times n}\); when the dimensions are clear from context, we often omit the subscripts. Additional notation is introduced as needed.
The main question in this report is whether an unknown delay and other relevant unknown parameters can be uniquely determined, or identified, from discrete output measurements over a finite interval. The parameters typically include the initial navigation state (position, velocity, and orientation) and in some cases bias terms.
The topic of identifiability is closely related to observability. Roughly speaking, observability concerns recovery of a time-varying state from measured outputs, whereas identifiability concerns recovery of unknown but fixed parameters. In our setting, the two viewpoints are closely connected: we assume the input history is known, so the delay and initial navigation state can be treated together as parameters to be inferred from measurements. For this reason, we primarily use the language of identifiability; see, for example, 2015_Chatzis_Observability? for more details. We refer to the initial navigation state as the initial condition in the sequel.
Several practical points are worth stating at the outset. First, we study the noise-free problem, as is typical in the identifiability literature. Second, although the delay may take any real value, in practice we are interested in causal delays. Third, the input and state history must be retained long enough for the delayed outputs to depend on a portion of the stored history. This basic overlap requirement, and its role in making the estimation problem well posed, was made explicit in our prior work 2021_Kelly_Question?.
We now formalize the notion of local identifiability used throughout the report. Consider a nonlinear control system of the form \[\label{eqn:general95delayed95system} \begin{gather} \dot{\Matrix{X}}(t) = f\bigl( \Matrix{X}(t), \Vector{u}(t), \Vector{\theta} \bigr), \quad \Matrix{X}(0) = \Matrix{X}_0 \in \mathcal{M}, \\[1mm] \Matrix{Y}(t) = h\bigl(\Matrix{X}(t - \tau),\,\tau\bigr), \quad t \ge \tau, \end{gather}\tag{1}\] where \(\mathcal{M}\) is an \(m\)-dimensional smooth manifold, \(\Matrix{X}(t) \in \mathcal{M}\) is the state, \(\Vector{u}(t) \in \mathcal{U} \subseteq \Real^p\) is a known control input, and \(\Vector{\theta} \in \Theta \subseteq \Real^q\) is a vector of additional unknown parameters. The map \(f : \mathcal{M} \times \mathcal{U}\times\Theta \to T\mathcal{M}\) is a smooth vector field, with \(f(\Matrix{X},\Vector{u},\Vector{\theta}) \in T_{\Matrix{X}}\mathcal{M}\). The output \(\Matrix{Y}(t) \in \mathcal{N}\) lies on an \(\ell\)-dimensional smooth manifold \(\mathcal{N}\), the map \(h:\mathcal{M} \times \Real_{\geq 0} \to \mathcal{N}\) is smooth, and \(\tau \geq 0\) is an unknown constant delay.
We collect all the unknowns into a tuple, \[\StateVector \Defined \mathopen{}\mathclose{\left(\Matrix{X}_0,\,\tau,\,\Vector{\theta}}\right) \in \mathcal{P},\] where \(\Matrix{X}_0 = \Matrix{X}(0)\) is the initial condition and \(\mathcal{P}\) is the admissible parameter space. We use \(\SmallStateVector \in \Real^d\) for a local-coordinate vector corresponding to \(\StateVector\), with \(d = m + 1 + q\).
We assume the system trajectory is defined for all \(t \geq 0\), while measurements are collected over a finite observation window. For identifiability, output histories should be compared on an interval that is valid for every admissible delay. Let \(\tau_u\) be an upper bound on the admissible delays. We restrict attention to observation intervals beginning no earlier than \(\tau_u\), so that the delayed state is well defined for every such delay. Local identifiability is then determined by whether distinct parameter values can produce the same output history (i.e., measurements) over that interval.
Let \([t_s,\,t_s + T]\) be such an observation interval, with \(t_s \geq \tau_u\). For a fixed known input history sufficient to propagate the state from the initial time to \(t_s + T\), each parameter tuple \(\StateVector \in \mathcal{P}\) determines an output history over \([t_s,\, t_s + T]\). Changing \(\tau\) shifts where along the trajectory the state is evaluated, making delay identifiability trajectory-dependent.
Definition 1 (Indistinguishability). Let \(\mathcal{T} \subseteq [t_s,\, t_s + T]\) be a set of observation times. The parameter tuples \(\StateVector^\circ, \StateVector^\star \in \mathcal{P}\) are said to be indistinguishable on \(\mathcal{T}\) if, for the same known input history, they produce identical outputs at every time in \(\mathcal{T}\). The corresponding delayed states may occur at different times along the trajectory, since the delays in \(\StateVector^\circ\) and \(\StateVector^\star\) need not be equal. Otherwise, the parameter tuples are said to be distinguishable on \(\mathcal{T}\).
Definition 2 (Local identifiability). A parameter tuple \(\StateVector^\star \in \mathcal{P}\) is locally identifiable on a set of observation times \(\mathcal{T} \subseteq [t_s,\, t_s + T]\) if there exists a neighbourhood \(\mathcal{V}\) of \(\StateVector^\star\) such that \(\StateVector^\star\) is distinguishable on \(\mathcal{T}\) from every \(\StateVector \in \mathcal{V}\) with \(\StateVector \neq \StateVector^\star\). Equivalently, any \(\StateVector \in \mathcal{V}\) that produces the same outputs as \(\StateVector^\star\) at every time in \(\mathcal{T}\) must satisfy \[\StateVector = \StateVector^\star.\]
This local concept is the one used throughout the report. It is weaker than global identifiability, which would require uniqueness over the entire parameter space, but it is the usual notion for local estimation and linearization-based analyses 1970_Bellman_Structural?, 1976_Grewal_Identifiability?.
A standard local test is obtained by linearizing the map from the unknown parameters to the outputs at a finite set of measurement times in \([t_s,\, t_s + T]\). If the corresponding Jacobian has full column rank at \(\StateVector^\star\), then the parameter-to-output map is locally injective, and local identifiability follows. Conversely, if the Jacobian is rank deficient, then there exist infinitesimal perturbation directions that leave the outputs unchanged to first order. This does not, by itself, prove full nonlinear unidentifiability, but it does indicate a loss of local information and motivates the nullspace analysis carried out later on.
A central idea in our analysis is that unidentifiability can arise from symmetry. Here, a symmetry is a transformation of the parameters that leaves the outputs unchanged. When such a transformation exists, distinct parameter values produce the same measurement(s), so the unknowns cannot be uniquely determined.
The most important case for our purposes is a continuous symmetry. This occurs when the delay and initial condition can be varied together without changing the outputs over the observation window. Geometrically, the true parameters are then not isolated in parameter space, but lie on a local family of indistinguishable solutions. Related ideas appear in nonlinear observability, including Martinelli’s treatment of continuous symmetries for non-delayed systems 2011_Martinelli_State?. The setting considered here is similar, but temporal: the relevant symmetries act on delayed measurement histories over an interval, rather than on measurements at a single instant. We first give a trajectory-level result, which will be useful later when the symmetry holds over the entire observation window.
Theorem 1 (Symmetry implies unidentifiability). Let \(\StateVector^\star \in \mathcal{P}\). Suppose there exists \(\epsilon > 0\) and a smooth one-parameter family of transformations \(\mathcal{S}_\alpha : \mathcal{P} \to \mathcal{P}\), \(\alpha \in (-\epsilon, \epsilon)\), such that \(\mathcal{S}_0(\StateVector)=\StateVector\) for all \(\StateVector\) in a neighbourhood of \(\StateVector^\star\). Suppose further that, for every \(\alpha \in (-\epsilon, \epsilon)\), the parameter tuples \(\StateVector^\star\) and \(\mathcal{S}_\alpha(\StateVector^\star)\) are indistinguishable on \([t_s,\, t_s + T]\). If \(\mathcal{S}_\alpha(\StateVector^\star) \neq \StateVector^\star\) for all \(\alpha \in (-\epsilon, \epsilon) \setminus \{0\}\), then \(\StateVector^\star\) is not locally identifiable on \([t_s,\, t_s + T]\).
Proof. For every \(\alpha \in (-\epsilon, \epsilon)\), the tuples \(\StateVector^\star\) and \(\mathcal{S}_\alpha(\StateVector^\star)\) are indistinguishable on \([t_s,\, t_s + T]\). By continuity, \(\mathcal{S}_\alpha(\StateVector^\star) \to \StateVector^\star\) as \(\alpha \to 0\), so every neighbourhood of \(\StateVector^\star\) contains some \(\mathcal{S}_\alpha(\StateVector^\star) \neq \StateVector^\star\) producing the same output history. Hence the parameter-to-output map is not locally injective at \(\StateVector^\star\), and \(\StateVector^\star\) is not locally identifiable. ◻
In typical aided navigation systems, measurements are available only at discrete times. The following corollary gives the corresponding result for a finite measurement set.
Corollary 1 (Discrete-measurement symmetry implies unidentifiability). Let \(\StateVector^\star \in \mathcal{P}\), and let \(t_1,\dots,t_n\) denote the measurement times. Suppose there exists \(\epsilon > 0\) and a smooth one-parameter family of transformations \(\mathcal{S}_\alpha : \mathcal{P} \to \mathcal{P}\), \(\alpha \in (-\epsilon, \epsilon)\), such that \(\mathcal{S}_0(\StateVector) = \StateVector\) for all \(\StateVector\) in a neighbourhood of \(\StateVector^\star\). Suppose further that, for every \(\alpha \in (-\epsilon, \epsilon)\), the parameter tuples \(\StateVector^\star\) and \(\mathcal{S}_\alpha(\StateVector^\star)\) are indistinguishable on \(\{t_1, \dots, t_n\}\). If \(\mathcal{S}_\alpha(\StateVector^\star) \neq \StateVector^\star\) for all \(\alpha \in (-\epsilon, \epsilon) \setminus \{0\}\), then \(\StateVector^\star\) is not locally identifiable from the discrete measurements.
Proof. The proof is identical to that of 1, with the output history replaced by the finite collection of outputs at \(\{t_1, \dots, t_n\}\). ◻
1 applies to equality of the full output history over an interval, whereas 1 is the sampled-measurement version. The relevant symmetry arises when a time shift along the trajectory can be absorbed into a corresponding change in the initial condition. Different delay–initial-condition pairs then produce the same measurement history, and the delay is not identifiable.
Below, we use two complementary tools:
exact nonlinear symmetries of the measurement map, which imply true unidentifiability; and
infinitesimal symmetry directions, obtained from the nullspace of the Jacobian, which characterize local loss of information.
The first gives a direct proof that certain trajectories or measurement configurations are uninformative, while the second provides a standard local test and reveals the corresponding rank deficiency in the linearized measurement model.
We begin with the simplest Galilean group structure, \(\LieGroupSGal{1}\), to make the symmetry argument easier to see. In one spatial dimension, the only proper rotation is the identity. Consequently, \(\LieGroupSGal{1}\) consists only of Galilean boosts, spatial translations, and time translations. Elements of the group can be written as \(3 \times 3\) matrices, \[\label{eqn:SGal195definition} \LieGroupSGal{1} \Defined \begin{Bmatrix} \Matrix{X} = \bbm 1 & v & r \\ 0 & 1 & \eta \\ 0 & 0 & 1 \ebm \in \Real^{3 \times 3} \;\bBigg@{3}\vert \; v,\, r,\, \eta \in \Real \end{Bmatrix},\tag{2}\] where \(v \in \Real\) is the velocity (boost), \(r \in \Real\) is the spatial translation, and \(\eta \in \Real\) is the time translation. The group operation is matrix multiplication. The inverse of \(\Matrix{X}\) is \[\Inv{\Matrix{X}} = \bbm 1 & -v & v\<\eta - r \\ 0 & 1 & -\eta \\ 0 & 0 & 1 \ebm,\] such that \(\Matrix{X}\Inv{\Matrix{X}} = \Identity_{3}\).
A group element may be interpreted as a transformation between inertial frames related by constant relative motion, and acts on spacetime coordinates \((x, t)\) according to \[(x, t) \mapsto (x + v\<t + r,\, t + \eta).\] Using homogeneous coordinates \(\bbm x\! & t\! & 1 \ebm^\T\), this action can be written as \[\bbm x \\ t \\ 1 \ebm \mapsto \Matrix{X} \bbm x \\ t \\ 1 \ebm = \bbm 1 & v & r \\ 0 & 1 & \eta \\ 0 & 0 & 1 \ebm \bbm x \\ t \\ 1 \ebm.\] For two group elements \[\Matrix{X}_1 = \bbm 1 & v_1 & r_1 \\ 0 & 1 & \eta_1 \\ 0 & 0 & 1 \ebm, \quad \Matrix{X}_2 = \bbm 1 & v_2 & r_2 \\ 0 & 1 & \eta_2 \\ 0 & 0 & 1 \ebm,\] their composition is \[\Matrix{X}_1\Matrix{X}_2 = \bbm 1 & v_1 + v_2 & r_1 + r_2 + v_1 \eta_2 \\ 0 & 1 & \eta_1 + \eta_2 \\ 0 & 0 & 1 \ebm.\] The term \(v_1 \eta_2\) reflects the coupling between boosts and time translations.
The Lie algebra \(\LieAlgebraSGal{1}\) consists of matrices of the form \[\label{eqn:sgal195algebra95definition} \LieAlgebraSGal{1} \Defined \begin{Bmatrix} \Matrix{\Xi} = \bbm 0 & \nu & \rho \\ 0 & 0 & \iota \\ 0 & 0 & 0 \ebm \in \Real^{3 \times 3} \;\bBigg@{3}\vert \; \nu,\, \rho,\, \iota \in \Real \end{Bmatrix}.\tag{3}\] The scalars \(\nu\), \(\rho\), and \(\iota\) are the boost, spatial-translation, and time-translation components of a tangent vector at the identity. A natural basis for \(\LieAlgebraSGal{1}\) is given by \[\label{eqn:sgal195basis} \Matrix{B} = \bbm 0 & 1 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \ebm, \quad \Matrix{P} = \bbm 0 & 0 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \ebm, \quad \Matrix{K} = \bbm 0 & 0 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \ebm.\tag{4}\] The Lie bracket is defined by the matrix commutator, and the only nontrivial relation is \[[\Matrix{B},\< \Matrix{K}] = \Matrix{P}, \quad [\Matrix{B},\< \Matrix{P}] = \Matrix{0}, \quad [\Matrix{K},\< \Matrix{P}] = \Matrix{0}.\] We introduce the wedge operator \(\Wedge{\cdot}\) as a mapping \(\Real^{3} \rightarrow \LieAlgebraSGal{1}\), \[\label{eqn:sgal195wedge} \Vector{\xi}^{\wedge} = \bbm \rho \\ \nu \\ \iota \ebm^{\wedge} \Defined \bbm 0 & \nu & \rho \\ 0 & 0 & \iota \\ 0 & 0 & 0 \ebm,\tag{5}\] where \(\Vector{\xi} = \bbm \rho &\! \nu &\! \iota \ebm^{\T} \in \Real^3\). The corresponding vee operator \(\Vee{\cdot}\) is defined by \[\Vector{\xi}^{\wedge} = \Matrix{\Xi} \quad \Longleftrightarrow \quad \Matrix{\Xi}^{\vee} = \Vector{\xi}.\]
Having defined the Lie algebra \(\LieAlgebraSGal{1}\), we now give the exponential map from \(\LieAlgebraSGal{1}\) to \(\LieGroupSGal{1}\). Let \(\Vector{\xi} =\smash{\bbm \rho &\! \nu &\! \iota \ebm^{\raisebox{-0.15ex}{\scriptstyle\T}}} \in \Real^3\). The exponential map is defined by the matrix exponential, \[\Matexp{\Vector{\xi}^{\wedge}} = \sum_{n=0}^{\infty} \frac{1}{n!} \mathopen{}\mathclose{\left(\Vector{\xi}^{\wedge}}\right)^n.\] Since \(\mathopen{}\mathclose{\left(\Vector{\xi}^{\wedge}}\right)^3 = \Matrix{0}\), the series truncates after the quadratic term, yielding \[\label{eqn:sgal195exp95closed} \Matexp{\Vector{\xi}^{\wedge}} = \bbm 1 & \nu & \rho + \displaystyle\frac{1}{2}\nu \iota \\ 0 & 1 & \iota \\ 0 & 0 & 1 \ebm.\tag{6}\] The term \(\frac{1}{2}\nu\iota\) arises from the noncommutativity of boosts and time translations, as reflected in the Lie bracket \([\Matrix{B},\< \Matrix{K}] = \Matrix{P}\).
We begin by examining a simplified one-dimensional model that captures the essential structure of the identifiability problem. Our aim is to establish a common approach for analyzing identifiability under different measurement sequences. We proceed in two stages. First, we study the constraints induced by different measurement combinations. The constraint-based analysis reveals the excitation conditions a trajectory must satisfy for the delay and initial condition to be identifiable, while also characterizing which changes in the delay and initial condition leave the measurement history unchanged. We then revisit the same cases using the standard Jacobian-based approach, determining local identifiability from the rank of the measurement Jacobian.
We write continuous-time quantities as functions of time, such as \(\Matrix{X}(t)\), \(r(t)\), and \(v(t)\). Subscripts denote evaluation at discrete time instants, so that \(\Matrix{X}_k \Defined \Matrix{X}(t_k)\), \(r_k \Defined r(t_k)\), and \(v_k \Defined v(t_k)\), where \(k\) is an index variable.
Consider a one-dimensional aided INS driven by the acceleration input \(a(t)\), with gravity neglected to keep the model as simple as possible. Without loss of generality, we take the initial time to be \(t = 0\), consistent with the general delayed system in 1 . We represent the navigation state on \(\LieGroupSGal{1}\) in matrix form as \[\label{eqn:SGal195state} \Matrix{X}(t) = \bbm 1 & v(t) & r(t) \\ 0 & 1 & t \\ 0 & 0 & 1 \ebm,\tag{7}\] where \(r(t) \in \Real\) is the position and \(v(t) \in \Real\) is the velocity of the vehicle (navigation) frame relative to a fixed inertial reference frame.1 Thus, \(\Matrix{X}(t)\) is a time-parameterized curve on \(\LieGroupSGal{1}\). The initial condition is \[\label{eqn:SGal195initial95state} \Matrix{X}_0 = \bbm 1 & v_0 & r_0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \ebm \in \LieGroupSGal{1},\tag{8}\] where \(r_0 = r(0)\) and \(v_0 = v(0)\) are unknown. Since the initial time is \(t = 0\), \(\Matrix{X}_0\) lies in the isochronous subgroup of \(\LieGroupSGal{1}\), whose elements have zero time component 2002_Bhand_Rigid?, 2023_Kelly_Galilean?. That is, the navigation-frame and inertial-frame clocks share a common origin.
The continuous-time kinematics are \[\label{eqn:1D95kinematics} \dot{v}(t) = a(t), \quad \dot{r}(t) = v(t),\tag{9}\] where the input \(a(t)\) is assumed known. Define the integrated input quantities2 \[\breve{v}(t) \Defined \int_{0}^{t} a(u)\,du, \quad \breve{r}(t) \Defined \int_{0}^{t} \breve{v}(u)\< du = \int_{0}^{t} (t - u)\< a(u)\< du.\] The solution of 9 is then \[v(t) = v_0 + \breve{v}(t), \quad r(t) = r_0 + v_0\<t + \breve{r}(t).\] Equivalently, the state trajectory may be written in group form as \[\Matrix{X}(t) = \Matrix{X}_0\<\Matrix{\Phi}(t),\] where the state-transition matrix \(\Matrix{\Phi}(t)\) is \[\label{eqn:SGal195phi95matrix} \Matrix{\Phi}(t) = \bbm 1 & \breve{v}(t) & \breve{r}(t) \\ 0 & 1 & t \\ 0 & 0 & 1 \ebm \in \LieGroupSGal{1}.\tag{10}\]
Aiding measurements arrive at discrete times \(t_k\), for \(k = 1, \dots, n\). A measurement received at time \(t_k\) is of the navigation state at the earlier time \(t_k - \tau\), where \(\tau\) is the unknown constant delay. Because time is a coordinate of the Galilean group element, time shifts can be represented through the pure time-translation direction \[\label{eqn:sgal195pure95time95generator} \Vector{\xi}_{d} \Defined \bbm \Zero_{1 \times 2} & 1 \ebm^\T \in \Real^{3}.\tag{11}\] With our ordering of the Lie algebra coordinates, \(\Vector{\xi}_{d}\) has only a time component. Let \[\label{eqn:SGal195pure95time95translation} \Matrix{T}(\beta) \Defined \Matexp{\beta\<\Vector{\xi}_{d}^{\wedge}}\tag{12}\] denote the corresponding time translation, where \(\Vector{\xi}_{d}^{\wedge} = \Matrix{K}\) from 4 . Under left multiplication, \(\Matrix{T}(\beta)\) shifts the group time coordinate by \(\beta\) while leaving the other components unchanged; this is the operation used below.
The most informative measurement is of the full delayed navigation state (i.e., position and velocity). The position and velocity are recorded at the delayed time \(t_k - \tau\), but the measurement does not arrive until time \(t_k\). A left time translation \(\Matrix{T}(\tau)\) advances the group time coordinate from \(t_k - \tau\) to \(t_k\); we therefore define \[\label{eqn:SGal195delayed95measurement} \Matrix{Y}_k \Defined \Matrix{T}(\tau)\<\Matrix{X}(t_k - \tau) = \Matrix{T}(\tau)\<\Matrix{X}_0\<\Matrix{\Phi}(t_k - \tau) = \bbm 1 & v(t_k - \tau) & r(t_k - \tau) \\ 0 & 1 & t_k \\ 0 & 0 & 1 \ebm, \quad k=1, \dots, n.\tag{13}\] Importantly, the left translation acts on the measurement time only, so the initial condition \(\Matrix{X}_0\) retains the zero time coordinate and remains in the isochronous subgroup.
For the linearized analysis later, we will need to differentiate only the position and velocity components of the measurement with respect to the unknowns. We therefore define \(\pi : \LieGroupSGal{1} \to \Real^2\) to extract the position and velocity entries of a group element, \[\label{eqn:SGal195measurement95extracted} \Vector{y}_k = \pi(\Matrix{Y}_k) \Defined \bbm r(t_k - \tau) \\ v(t_k - \tau) \ebm.\tag{14}\] The unknown parameters are the initial condition \((r_0, v_0)\) and the delay \(\tau\), while the functions \(\breve{v}(\cdot)\) and \(\breve{r}(\cdot)\) are fully determined by the known input history. The model 13 allows us to treat a range of measurement cases in a unified way. In the next section, we consider delayed observations consisting of the full state and of position only. The central question is always the same: given a finite number of measurements, can the unknown delay \(\tau\) and the unknown initial condition \((r_0, v_0)\) be uniquely determined?
Next, we explore how the choice and number of measurements affect the identifiability of the delay and the initial condition. We proceed incrementally, beginning with a single measurement and extending to multiple measurements over time. Throughout, we assume that each measurement time \(t_k\) is large enough, relative to the candidate delays under consideration, that the delayed evaluation time \(t_k - \tau\) lies within the available trajectory history.
With a single measurement of position and velocity (i.e., a ‘full-state’ measurement in the one-dimensional setting) at a time \(t_1\), \[\Matrix{Y}_1 = \Matrix{T}(\tau)\< \Matrix{X}_0\< \Matrix{\Phi}\mathopen{}\mathclose{\left(t_1 - \tau}\right),\] the unknown initial condition cannot be eliminated. In fact, for any admissible alternative delay \(\bar{\tau}\) define \[\bar{\Matrix{X}}_0 = \Matrix{T}(\tau - \bar{\tau})\< \Matrix{X}_0\< \Matrix{\Phi}\mathopen{}\mathclose{\left(t_1 - \tau}\right)\< \Matrix{\Phi}\mathopen{}\mathclose{\left(t_1 - \bar{\tau}}\right)^{-1}\] such that \[\Matrix{Y}_1 = \Matrix{T}(\bar{\tau})\< \bar{\Matrix{X}}_0\< \Matrix{\Phi}\mathopen{}\mathclose{\left(t_1 - \bar{\tau}}\right).\] That is, the same observation may be explained by different values of \(\tau\) together with corresponding changes in the initial condition. The delay and initial condition are therefore jointly unidentifiable from a single full-state measurement. In this case, the transformation of \((\Matrix{X}_0,\tau)\) above satisfies the conditions of 1 and defines a continuous symmetry of the measurement model: with \(\alpha = \bar{\tau}- \tau\), it is a smooth one-parameter family fixing the true parameters at \(\alpha = 0\).
Given two full-state measurements at times \(t_1\) and \(t_2\), \[\Matrix{Y}_1 = \Matrix{T}(\tau)\< \Matrix{X}_0\< \Matrix{\Phi}\mathopen{}\mathclose{\left(t_1 - \tau}\right), \quad \Matrix{Y}_2 = \Matrix{T}(\tau)\< \Matrix{X}_0\< \Matrix{\Phi}\mathopen{}\mathclose{\left(t_2 - \tau}\right),\] the unknown initial condition can be eliminated. In particular, \[\Matrix{Y}_1^{-1}\Matrix{Y}_2 = \Matrix{\Phi}\mathopen{}\mathclose{\left(t_1 - \tau}\right)^{-1} \Matrix{\Phi}\mathopen{}\mathclose{\left(t_2 - \tau}\right).\] That is, the measurements induce a constraint on the delay \(\tau\) that is independent of \(\Matrix{X}_0\). Accordingly, identifiability of the delay is governed by the injectivity of the map \[\tau \mapsto \Matrix{\Phi}\mathopen{}\mathclose{\left(t_1 - \tau}\right)^{-1} \Matrix{\Phi}\mathopen{}\mathclose{\left(t_2 - \tau}\right).\] If this map is locally injective in a neighbourhood of the true delay, then two delayed full-state measurements are sufficient to identify the delay, and hence the initial condition. Consequently, identifiability depends on the properties of the trajectory \(\Matrix{\Phi}(t)\).
For \(\LieGroupSGal{1}\), this condition can be expressed explicitly in terms of the kinematic variables. Two delayed velocity measurements satisfy \[v_1 = v_0 + \breve{v}\mathopen{}\mathclose{\left(t_1 - \tau}\right), \quad v_2 = v_0 + \breve{v}\mathopen{}\mathclose{\left(t_2 - \tau}\right).\] Subtracting eliminates \(v_0\) to yield \[v_2 - v_1 = \breve{v}\mathopen{}\mathclose{\left(t_2 - \tau}\right) - \breve{v}\mathopen{}\mathclose{\left(t_1 - \tau}\right).\] Hence, the delay is constrained by the integrated input \(\breve{v}(t)\). One sufficient condition for local identifiability is that the scalar map \[\tau \mapsto \breve{v}\mathopen{}\mathclose{\left(t_2 - \tau}\right)-\breve{v}\mathopen{}\mathclose{\left(t_1 - \tau}\right)\] is locally injective at the true delay. A convenient local test is obtained by differentiation: \[\frac{d}{d\tau} \big(\breve{v}\mathopen{}\mathclose{\left(t_2 - \tau}\right) - \breve{v}\mathopen{}\mathclose{\left(t_1 - \tau}\right)\big) = a\mathopen{}\mathclose{\left(t_1 - \tau}\right) - a\mathopen{}\mathclose{\left(t_2 - \tau}\right).\] A nonzero derivative is sufficient for local injectivity. Therefore, the delay is locally identifiable given two delayed measurements whenever \[\label{eqn:SGal195two95measurement95condition} a\mathopen{}\mathclose{\left(t_2 - \tau}\right)\neq a\mathopen{}\mathclose{\left(t_1 - \tau}\right).\tag{15}\] The delay and the initial velocity are determined from the velocity measurements alone. Once these are known, a single position measurement is sufficient to recover the initial position.
What if only position measurements are available, as is often the case in practice? If two position measurements are available, then \[r_k = r\mathopen{}\mathclose{\left(t_k - \tau}\right) = r_0 + \mathopen{}\mathclose{\left(t_k - \tau}\right)\<v_0 + \breve{r}\mathopen{}\mathclose{\left(t_k - \tau}\right), \quad k = 1, 2.\] Subtracting eliminates \(r_0\) but not \(v_0\), \[r_2 - r_1 = \mathopen{}\mathclose{\left(t_2 - t_1}\right)\<v_0 + \breve{r}\mathopen{}\mathclose{\left(t_2 - \tau}\right) - \breve{r}\mathopen{}\mathclose{\left(t_1 - \tau}\right).\] The result is a single scalar constraint in the two unknowns \(v_0\) and \(\tau\). Since the coefficient of \(v_0\) is \(t_2 - t_1 \neq 0\), the constraint determines \(v_0\) as a smooth function of \(\tau\). Two delayed position-only measurements are therefore insufficient to uniquely determine the delay and the initial condition.
Consider three position measurements taken at times \(t_1, t_2, t_3\), with \[r_k = r_0 + (t_k - \tau)\<v_0 + \breve{r}(t_k - \tau), \quad k = 1, 2, 3.\] Differencing eliminates \(r_0\), \[r_j - r_i = (t_j - t_i)\<v_0 + \breve{r}(t_j - \tau) - \breve{r}(t_i - \tau),\] and eliminating \(v_0\) between any two equations yields a scalar constraint on \(\tau\). Define \[\begin{align} \psi(\tau) \Defined &~ (t_3 - t_2)\bigl(r_2 - r_1 - \breve{r}(t_2 - \tau) + \breve{r}(t_1 - \tau)\bigr) \\ &~ - (t_2 - t_1)\bigl(r_3 - r_2 - \breve{r}(t_3 - \tau) + \breve{r}(t_2 - \tau)\bigr). \end{align}\] The delay \(\tau\) must satisfy \(\psi(\tau) = 0\), and identifiability reduces to whether this equation has a locally unique solution. A convenient local test is again obtained by differentiation. Using \(\dot{\breve{r}}(t)=\breve{v}(t)\), \[\label{eqn:SGal195psi95condition} \frac{d\<\psi\mathopen{}\mathclose{\left(\tau}\right)}{d\tau} = (t_3 - t_2)\bigl(\breve{v}(t_2 - \tau)-\breve{v}(t_1 - \tau)\bigr) - (t_2 - t_1)\bigl(\breve{v}(t_3 - \tau)-\breve{v}(t_2 - \tau)\bigr).\tag{16}\] Local identifiability holds whenever \(d\mspace{0.0mu}\psi/d\tau \neq 0\). Therefore, three position measurements generically suffice to determine the delay under sufficiently exciting input histories.
The condition 16 depends explicitly on the trajectory through the integrated input \(\breve{v}(\cdot)\). In particular, it requires that the increments of \(\breve{v}(\cdot)\) over successive intervals not be proportional to the corresponding time differences. Additional measurements provide independent constraints on \(\tau\). With more measurements, these constraints tend to enlarge the region over which identifiability holds. However, identifiability still depends on the trajectory, and no finite number of measurements guarantees identifiability for all possible motions.
We now revisit identifiability of the \(\LieGroupSGal{1}\) system from a complementary, linearization-based perspective, examining the Jacobian of the measurement function with respect to the unknown parameters. Local identifiability is characterized by its rank and nullspace. We follow the same sequence as in 4.2 (i.e., a single measurement, two measurements, etc.).
In this section, we use a parameter vector representation of the initial condition and delay (rather than the group-based representation). The parameter vector is \[\label{eqn:SGal195parameter95vector} \SmallStateVector \Defined \bbm r_0\! & v_0\! & \tau \ebm^{\T}.\tag{17}\] Recall that the delayed full-state measurement at time \(t_k\) in the vector form of 14 is \[\Vector{y}_k = \begin{bmatrix} r_0 + (t_k - \tau)\< v_0 + \breve{r}(t_k - \tau) \\[0.5mm] v_0 + \breve{v}(t_k - \tau) \end{bmatrix}.\]
Consider a single full-state measurement at time \(t_1\). The Jacobian of the measurement function with respect to \(\SmallStateVector\) is3 \[\Matrix{H}^{(rv)}_1 = \frac{\partial\<\Vector{y}_1}{\partial\SmallStateVector} = \bbm 1 & t_1 - \tau & -\bigl(v_0 + \breve{v}(t_1 - \tau)\bigr) \\ 0 & 1 & -a(t_1 - \tau) \ebm.\] Since \(\Matrix{H}^{(rv)}_1\!\! \in \Real^{2 \times 3}\), it cannot have full column rank, and the parameters are not jointly identifiable. To characterize the nullspace, consider a perturbation \(\delta\SmallStateVector \Defined \smash{\bbm \delta r_0\! & \delta v_0\! & \delta\tau \ebm^{\T}}\) satisfying \(\Matrix{H}^{(rv)}_1 \delta\SmallStateVector = \Vector{0}_{2 \times 1}\). Then \[\delta r_0 + (t_1 - \tau)\<\delta v_0 - \bigl(v_0 + \breve{v}(t_1 - \tau)\bigr)\<\delta\tau = 0, \quad \delta v_0 - a(t_1 - \tau)\<\delta\tau = 0.\] Hence, \[\delta v_0 = a(t_1 - \tau)\<\delta\tau, \quad \delta r_0 = \bigl(v_0 + \breve{v}(t_1 - \tau) - (t_1 - \tau)\,a(t_1 - \tau)\bigr)\<\delta\tau,\] so the nullspace is one-dimensional, \[\label{eqn:SGal195rv95nullspace} \Ker{\Matrix{H}^{(rv)}_1} = \Span{ \begin{bmatrix} v_0 + \breve{v}(t_1 - \tau) - (t_1 - \tau)\< a(t_1 - \tau) \\ a(t_1 - \tau) \\ 1 \end{bmatrix} }.\tag{18}\] This direction corresponds to the symmetry described in 4.2.1: a change in delay can be compensated by a corresponding change in the initial condition, leaving the measurement unchanged to first order.
For two full-state measurements at times \(t_1\) and \(t_2\), the stacked Jacobian is \[\Matrix{H}^{(rv)}_{1:2} = \begin{bmatrix} \Matrix{H}^{(rv)}_1 \\[0.5mm] \Matrix{H}^{(rv)}_2 \end{bmatrix},\] which has full column rank whenever \[a(t_2 - \tau)\neq a(t_1 - \tau).\] Therefore, two delayed full-state measurements are sufficient for local identifiability when the accelerations at the two delayed measurement times are unequal. This is the same conclusion reached in 15 .
If only two position measurements are available, the stacked Jacobian is \[\Matrix{H}^{(r)}_{1:2} = \bbm 1 & t_1 - \tau & -\bigl(v_0 + \breve{v}(t_1 - \tau)\bigr) \\[0.5mm] 1 & t_2 - \tau & -\bigl(v_0 + \breve{v}(t_2 - \tau)\bigr) \ebm.\] This matrix cannot have full column rank; two delayed position measurements are therefore insufficient for local identifiability. To characterize the nullspace, consider a perturbation \(\delta\SmallStateVector\) satisfying \(\Matrix{H}_{1:2}^{(r)}\,\delta\SmallStateVector = \Vector{0}_{2\times 1}\). Subtracting the two rows yields \[(t_2 - t_1)\,\delta v_0 - \bigl(\breve{v}(t_2 - \tau) - \breve{v}(t_1 - \tau)\bigr)\<\delta\tau = 0,\] and define \[\gamma \Defined \frac{\breve{v}(t_2 - \tau) - \breve{v}(t_1 - \tau)}{t_2 - t_1}.\] Then \[\delta v_0 = \gamma\,\delta\tau,\] and substitution into the first row gives \[\delta r_0 = \bigl(v_0 + \breve{v}(t_1 - \tau) - (t_1 - \tau)\<\gamma\bigr)\<\delta\tau.\] Hence, the nullspace is one-dimensional, \[\Ker{\Matrix{H}^{(r)}_{1:2}} = \Span{ \bbm v_0 + \breve{v}(t_1 - \tau) - (t_1 - \tau)\<\gamma \\ \gamma\\ 1 \ebm }.\] As in 18 , this null direction is again an instance of the symmetry from 4.2.2. Here, the required change in initial velocity is governed by the slope \(\gamma\) rather than by the instantaneous acceleration at a single time. With only position measurements, the data constrain the average acceleration over the measurement interval, but do not uniquely determine when along the trajectory the measurements were taken.
Consider three position measurements taken at times \(t_1\), \(t_2\), and \(t_3\). The stacked Jacobian is \[\Matrix{H}^{(r)}_{1:3} = \bbm 1 & t_1 - \tau & -\bigl(v_0 + \breve{v}(t_1 - \tau)\bigr) \\[0.5mm] 1 & t_2 - \tau & -\bigl(v_0 + \breve{v}(t_2 - \tau)\bigr) \\[0.5mm] 1 & t_3 - \tau & -\bigl(v_0 + \breve{v}(t_3 - \tau)\bigr) \ebm.\] A sufficient condition for local identifiability is that the Jacobian has full rank. Since \(\Matrix{H}^{(r)}_{1:3} \in \Real^{3 \times 3}\), the rank may be checked by evaluating its determinant. Subtracting the first row from the second and third rows gives \[\Determinant{\Matrix{H}^{(r)}_{1:3}} = \Determinant{ \bbm 1 & t_1 - \tau & -\bigl(v_0 + \breve{v}(t_1 - \tau)\bigr) \\[0.5mm] 0 & t_2 - t_1 & -\bigl(\breve{v}(t_2 - \tau) - \breve{v}(t_1 - \tau)\bigr) \\[0.5mm] 0 & t_3 - t_1 & -\bigl(\breve{v}(t_3 - \tau) - \breve{v}(t_1 - \tau)\bigr) \ebm}.\] Hence, \[\Determinant{\Matrix{H}_{1:3}^{(r)}} = (t_3 - t_1)\bigl(\breve{v}(t_2 - \tau)-\breve{v}(t_1 - \tau)\bigr) - (t_2 - t_1)\bigl(\breve{v}(t_3 - \tau)-\breve{v}(t_1 - \tau)\bigr).\] Therefore, three delayed position measurements are locally sufficient for identifiability whenever \[(t_3 - t_1)\bigl(\breve{v}(t_2 - \tau)-\breve{v}(t_1 - \tau)\bigr) \neq (t_2 - t_1)\bigl(\breve{v}(t_3 - \tau)-\breve{v}(t_1 - \tau)\bigr).\] Equivalently, local identifiability may fail when the average accelerations over the intervals \([t_1 - \tau,\, t_2 - \tau]\) and \([t_1 - \tau,\, t_3 - \tau]\) coincide. Additional position measurements may be incorporated by stacking more rows, but three measurements are the minimum required for the position-only Jacobian to be full rank.
What’s Wrong With Recursive Filtering?
To come full circle, we return to the question of what unidentifiability implies for estimation. A recursive estimator such as the EKF maintains uncertainty over the state and over any additional parameters, treating them as unknown. Each measurement update adds the term \(\Matrix{H}^\T\Matrix{R}^{-1}\Matrix{H}\) to the information matrix, which shrinks the filter covariance. The Jacobian \(\Matrix{H}\) must be evaluated somewhere, and the filter has no choice but to use the current estimate \(\hat{\SmallStateVector}\) in place of the (unavailable) true value \(\SmallStateVector^\star\). When the system is unidentifiable, this is problematic. For the \(\LieGroupSGal{1}\) example, the information gained along the unobservable direction \(\Vector{n}\), the nullspace vector of 18 , is the scalar \[\label{eqn:SGal195info95gain} \Vector{n}^\T \Matrix{H}^{(rv)\T}_1 \Matrix{R}^{-1} \Matrix{H}^{(rv)}_1 \Vector{n} = \bigl\lVert \Matrix{R}^{-1/2} \Matrix{H}^{(rv)}_1 \Vector{n}\bigr\rVert^2.\tag{19}\] At the true delay, \(\Matrix{H}^{(rv)}_1\Vector{n} = \Vector{0}\) by construction, so the update gains no information along \(\Vector{n}\). Suppose instead the filter carries a delay estimate \(\hat{\tau} \neq \tau\) while the kinematic estimates are exact. Forming the Jacobian at \(\hat{\tau}\) and cancelling the common terms gives \[\label{eqn:SGal195spurious95residual} \Matrix{H}^{(rv)}_1(\hat{\tau})\,\Vector{n} = \bbm \breve{v}(t_1-\tau) - \breve{v}(t_1-\hat{\tau}) + a(t_1-\tau)\,(\tau-\hat{\tau}) \\[2pt] a(t_1-\tau) - a(t_1-\hat{\tau}) \ebm,\tag{20}\] which is generically nonzero for a time-varying input. Taking \(\hat{\tau} = 0\), for example, the velocity entry becomes \(a(t_1 - \tau) - a(t_1)\). Since the residual in 20 is nonzero, the information gain 19 is strictly positive. The filter shrinks the covariance along \(\Vector{n}\), a direction the measurement carries no information about. Because the delay is constant (with no process noise added, typically), each update reduces the covariance along \(\Vector{n}\), with no mechanism to undo it, and the estimator becomes inconsistent. This issue and its consequences for estimator performance are discussed by Huang in 2017_Huang_Towards?, for example.
Identifiability of the delay (and the initial condition) depends not only on the number of measurements, but also on whether the input is sufficiently exciting. There exist trajectories for which the delay and initial condition cannot be uniquely determined, regardless of the number or type of measurements. We refer to these trajectories as uninformative.4
Constant-acceleration motion provides a standard example of an uninformative trajectory 2019_Yang_Degenerate?, and is in fact the only case for which loss of identifiability holds for all measurement times. Suppose \(a(t) = a_0\), so that \[\breve{v}(t) = a_0\<t, \quad \breve{r}(t) = \frac{1}{2}a_0\<t^2.\] In this case, the state-transition matrix \(\Matrix{\Phi}(t)\) is generated by the exponential map of a fixed Lie algebra element. Because \(\Matrix{\Phi}(0)=\Identity_{3}\) and \(\breve{v}(0)=\breve{r}(0)=0\), the generator is not arbitrary; it must match the zero initial conditions built into \(\Matrix{\Phi}(t)\). Specifically, \[\Matrix{\Phi}(t) = \Matexp{t\<\Vector{\xi}^{\wedge}}, \quad \Vector{\xi}^{\wedge} = \bbm 0 & a_0 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \ebm.\] More generally, replacing \(\Vector{\xi}^{\wedge}\) by a different constant Lie algebra element would only add a constant-velocity contribution that can be absorbed into the initial condition. The restriction comes only from the choice that \(\Matrix{\Phi}(0) = \Identity_3\) and does not affect the symmetry argument below. It follows that \[\Matrix{\Phi}(t_k - \tau)\< \Matrix{\Phi}(t_k - \bar{\tau})^{-1} = \Matexp{(\bar{\tau}- \tau)\< \Vector{\xi}^{\wedge}},\] which is independent of \(t_k\).
Returning to the measurement model, the same transformation used in the single-measurement analysis therefore applies simultaneously to all measurements. Define \[\bar{\Matrix{X}}_0 = \Matrix{T}(\tau - \bar{\tau})\< \Matrix{X}_0\< \Matrix{\Phi}(\bar{\tau}- \tau),\] so that, for all measurement times \(t_k\), \[\Matrix{Y}_k = \Matrix{T}(\tau)\< \Matrix{X}_0\< \Matrix{\Phi}(t_k - \tau) = \Matrix{T}(\bar{\tau})\< \bar{\Matrix{X}}_0\< \Matrix{\Phi}(t_k - \bar{\tau}).\] The entire measurement set can therefore be explained by a different value of \(\tau\) together with a corresponding change in the initial condition. To connect this with 2.2, recall that the unknown parameter vector is \[\SmallStateVector \Defined \bbm r_0\! & v_0\! & \tau \ebm^{\T}.\] For each \(\alpha \in (-\epsilon, \epsilon)\) with \(\epsilon > 0\) sufficiently small, define a transformation \(\mathcal{S}_\alpha\) on these parameters by5 \[\mathcal{S}_\alpha : (r_0, v_0, \tau) \mapsto \mathopen{}\mathclose{\left( r_0 + v_0\<\alpha + \frac{1}{2}a_0\<\alpha^2, v_0 + a_0\<\alpha, \tau + \alpha }\right).\] Under constant-acceleration motion, the parameter tuples \(\SmallStateVector\) and \(\mathcal{S}_\alpha(\SmallStateVector)\) generate the same measurement history. This family therefore satisfies the conditions of 1 (and also 1), so the parameters are not locally identifiable.
The symmetry is also reflected in the Jacobian-based analysis as a loss of rank. The rank conditions for both full-state and position-only measurements fail under constant acceleration, since \(a(t)\) is identical at all delayed measurement times and \(\breve{v}(t)\) is affine. More generally, identifiability fails whenever the trajectory is locally indistinguishable from constant-acceleration motion at the delayed measurement times.
We revisit this example in 6.4 when we extend the analysis of uninformative trajectories to \(\LieGroupSGal{3}\). The key point is that symmetry is exactly what leads to unidentifiability: when a shift in the delay can be absorbed into the initial condition, the measurements no longer uniquely determine the parameters.
The special Galilean group \(\LieGroupSGal{3}\) is a ten-dimensional Lie group. We include just enough background on \(\LieGroupSGal{3}\) for our purposes; more details are available in 2023_Kelly_Galilean? and 2025_Mahony_Galilean?. The group describes transformations between inertial frames undergoing constant relative motion, and combines rotations, Galilean boosts, and spacetime translations. Elements of \(\LieGroupSGal{3}\) can be written as \(5 \times 5\) matrices,\[\label{eqn:SGal395definition} \LieGroupSGal{3} \Defined \begin{Bmatrix} \Matrix{X} = \bbm \Matrix{C} & \Vector{v} & \Vector{r} \\ \Zero & 1 & \eta \\ \Zero & 0 & 1 \ebm \in \Real^{5 \times 5} \;\bBigg@{3}\vert \; \Matrix{C} \in \LieGroupSO{3}, \, \Vector{v} \in \Real^3,\, \Vector{r} \in \Real^3,\, \eta \in \Real \end{Bmatrix}.\tag{21}\] Here, \(\Matrix{C}\) is a rotation matrix, \(\Vector{v} \in \Real^3\) is the Galilean boost, \(\Vector{r} \in \Real^3\) is the spatial translation, and \(\eta \in \Real\) is the time translation. The group composition operation is matrix multiplication. The inverse of \(\Matrix{X}\) is \[\label{eqn:SGal395inverse} \Inv{\Matrix{X}} = \bbm \Transpose{\Matrix{C}} & -\Transpose{\Matrix{C}}\Vector{v} & -\Transpose{\Matrix{C}}\mathopen{}\mathclose{\left(\Vector{r} - \Vector{v}\<\eta}\right) \\ \Zero & 1 & -\eta \\ \Zero & 0 & 1 \ebm,\tag{22}\] such that \(\Matrix{X}\Inv{\Matrix{X}} = \Identity_{5}\).
A group element may be interpreted as a transformation between inertial frames in constant relative motion, and acts on spacetime coordinates \((\Vector{p}, t)\), with \(\Vector{p} \in \Real^3\), according to \[(\Vector{p}, t) \mapsto (\Matrix{C}\<\Vector{p} + \Vector{v}\<t + \Vector{r},\, t + \eta).\] Using homogeneous coordinates \(\bbm \Vector{p}^{\T}\! & t\! & 1 \ebm^\T\), this action can be written as \[\bbm \Vector{p} \\ t \\ 1 \ebm \mapsto \Matrix{X} \bbm \Vector{p} \\ t \\ 1 \ebm = \bbm \Matrix{C} & \Vector{v} & \Vector{r} \\ \Zero & 1 & \eta \\ \Zero & 0 & 1 \ebm \bbm \Vector{p} \\ t \\ 1 \ebm.\] For two group elements \[\Matrix{X}_1 = \bbm \Matrix{C}_1 & \Vector{v}_1 & \Vector{r}_1 \\ \Zero & 1 & \eta_1 \\ \Zero & 0 & 1 \ebm, \quad \Matrix{X}_2 = \bbm \Matrix{C}_2 & \Vector{v}_2 & \Vector{r}_2 \\ \Zero & 1 & \eta_2 \\ \Zero & 0 & 1 \ebm,\] their composition is \[\Matrix{X}_1\Matrix{X}_2 = \bbm \Matrix{C}_1\Matrix{C}_2 & \Matrix{C}_1\Vector{v}_2 + \Vector{v}_1 & \Matrix{C}_1\Vector{r}_2 + \Vector{v}_1\eta_2 + \Vector{r}_1 \\ \Zero & 1 & \eta_1 + \eta_2 \\ \Zero & 0 & 1 \ebm.\] The term \(\Vector{v}_1\eta_2\) reflects the coupling between boosts and time translations, while the terms \(\Matrix{C}_1\Vector{v}_2\) and \(\Matrix{C}_1\Vector{r}_2\) reflect the action of rotations on boosts and spatial translations.
The Lie algebra \(\LieAlgebraSGal{3}\) consists of matrices of the form \[\label{eqn:SGal395algebra95definition} \LieAlgebraSGal{3} \Defined \begin{Bmatrix} \Matrix{\Xi} = \bbm \Vector{\phi}^{\wedge} & \Vector{\nu} & \Vector{\rho} \\ \Zero & 0 & \iota \\ \Zero & 0 & 0 \ebm \in \Real^{5 \times 5} \;\bBigg@{3}\vert \; \Vector{\phi},\, \Vector{\nu},\, \Vector{\rho} \in \Real^3,\, \iota \in \Real \end{Bmatrix},\tag{23}\] where \(\Vector{\phi} \in \Real^3\) parameterizes the rotational part, \(\Vector{\nu} \in \Real^3\) the boost part, \(\Vector{\rho} \in \Real^3\) the translational part, and \(\iota \in \Real\) the temporal part. We overload the wedge operator as a mapping \(\Real^{10} \rightarrow \LieAlgebraSGal{3}\), \[\label{eqn:SGal395wedge} \Vector{\xi}^{\wedge} = \bbm \Vector{\rho} \\ \Vector{\nu} \\ \Vector{\phi} \\ \iota \ebm^{\wedge} = \bbm \Vector{\phi}^{\wedge} & \Vector{\nu} & \Vector{\rho} \\ \Zero & 0 & \iota \\ \Zero & 0 & 0 \ebm,\tag{24}\] where \(\Vector{\xi} = \bbm \Vector{\rho}^{\T}\;\; \Vector{\nu}^{\T}\;\; \Vector{\phi}^{\T}\;\; \iota\ebm^{\T} \in \Real^{10}\). The corresponding vee operator is defined by \[\Vector{\xi}^{\wedge} = \Matrix{\Xi} \quad \Longleftrightarrow \quad \Matrix{\Xi}^{\vee} = \Vector{\xi}.\]
Let \(\Vector{\xi} = \bbm \Vector{\rho}^{\T}\;\; \Vector{\nu}^{\T}\;\; \Vector{\phi}^{\T}\;\; \iota \ebm^{\T} \in \Real^{10}\). The exponential map is defined by the matrix exponential, \[\Matexp{\Vector{\xi}^{\wedge}} = \sum_{n=0}^{\infty} \frac{1}{n!} \mathopen{}\mathclose{\left(\Vector{\xi}^{\wedge}}\right)^n.\] In closed form for \(\LieGroupSGal{3}\), \[\label{eqn:SGal395exp95closed} \Matexp{\Vector{\xi}^{\wedge}} = \bbm \Matrix{C}(\Vector{\phi}) & \Matrix{D}(\Vector{\phi})\<\Vector{\nu} & \Matrix{D}(\Vector{\phi})\<\Vector{\rho} + \Matrix{E}(\Vector{\phi})\<\Vector{\nu}\iota \\ \Zero & 1 & \iota \\ \Zero & 0 & 1 \ebm,\tag{25}\] where \[\begin{align} \tag{26} \Matrix{C}(\Vector{\phi}) &= \Identity_{3} + \sin(\phi)\,\Vector{u}^{\wedge} + \bigl(1-\cos(\phi)\bigr)\Vector{u}^{\wedge}\Vector{u}^{\wedge}, \\[2mm] \tag{27} \Matrix{D}(\Vector{\phi}) &= \Identity_{3} + \mathopen{}\mathclose{\left(\frac{1-\cos(\phi)}{\phi}}\right)\Vector{u}^{\wedge} + \mathopen{}\mathclose{\left(\frac{\phi-\sin(\phi)}{\phi}}\right)\Vector{u}^{\wedge}\Vector{u}^{\wedge}, \\ \tag{28} \Matrix{E}(\Vector{\phi}) &= \frac{1}{2}\Identity_{3} + \mathopen{}\mathclose{\left(\frac{\phi-\sin(\phi)}{\phi^{2}}}\right)\Vector{u}^{\wedge} + \mathopen{}\mathclose{\left(\frac{\phi^{2} + 2\cos(\phi)-2}{2\phi^{2}}}\right)\Vector{u}^{\wedge}\Vector{u}^{\wedge}, \end{align}\] and \(\Vector{\phi} = \phi\<\Vector{u}\), where \(\phi = \Norm{\Vector{\phi}}\) and \(\Vector{u}\) is a unit vector.
We now consider aided inertial navigation in three-dimensional space. The process model is driven by known IMU angular-rate and linear-acceleration measurements, both resolved in the body frame. In addition to the unknown initial condition and delay, the model includes gyroscope and accelerometer biases. For the delay-estimation analysis, we assume these biases are constant over the relevant time window and that the system evolves under a constant, known gravity vector.6
Relative to the one-dimensional case, the analysis is more involved for two reasons. First, the state and parameter spaces are higher dimensional, and the orientation must also be estimated, introducing a constrained nonlinear state component. Second, the unknown bias terms enter the kinematics and therefore become part of the identifiability problem. Accordingly, we ask how many measurements, and of what type, are sufficient to determine the unknown initial condition, the delay, and the biases.
In this section, we use \(\StateVector\) for the parameter tuple, including any group-valued elements, and \(\SmallStateVector\) for its local-coordinate representation. This distinction is important for the orientation component of the initial condition. We follow the notation from 4 wherever possible, since most of the same ideas and conclusions carry over. Any changes specific to the three-dimensional setting are introduced where needed.
The aided INS is driven by IMU measurements. The state is represented on \(\LieGroupSGal{3}\) as \[\label{eqn:SGal395state} \Matrix{X}(t) = \bbm \Matrix{C}(t) & \Vector{v}(t) & \Vector{r}(t) \\ \Zero & 1 & t \\ \Zero & 0 & 1 \ebm,\tag{29}\] where \(\Matrix{C}(t) \in \LieGroupSO{3}\) is the orientation of the body frame with respect to the fixed inertial frame, and \(\Vector{v}(t), \Vector{r}(t) \in \Real^3\) are the velocity and position, respectively, expressed in the inertial frame. The IMU measurements \(\Vector{\omega}_m(t)\) and \(\Vector{a}_m(t)\) are given in the body frame.
The unknown parameters are \[\StateVector \Defined \mathopen{}\mathclose{\left( \Matrix{X}_0,\, \tau,\, \Vector{b}_g,\, \Vector{b}_a }\right),\] where \(\Matrix{X}_0 \in \LieGroupSGal{3}\) is the initial condition, \(\tau \in \Real\) is the delay, and \(\Vector{b}_g,\Vector{b}_a \in \Real^3\) are the gyroscope and accelerometer biases, respectively. Without loss of generality, we take the initial time to be zero, placing \(\Matrix{X}_0\) in the isochronous subgroup of \(\LieGroupSGal{3}\), and write \[\label{eqn:SGal395initial95state} \Matrix{X}_0 = \bbm \Matrix{C}_0 & \Vector{v}_0 & \Vector{r}_0 \\ \Zero & 1 & 0 \\ \Zero & 0 & 1 \ebm \in \LieGroupSGal{3},\tag{30}\] where \(\Matrix{C}_0 = \Matrix{C}(0)\), \(\Vector{v}_0 = \Vector{v}(0)\), and \(\Vector{r}_0 = \Vector{r}(0)\) are unknown.
The continuous-time kinematics are \[\begin{align} \dot{\Matrix{C}}(t) &= \Matrix{C}(t)\bigl(\Vector{\omega}_m(t)-\Vector{b}_g\bigr)^{\wedge}, \\ \dot{\Vector{v}}(t) &= \Matrix{C}(t)\bigl(\Vector{a}_m(t)-\Vector{b}_a\bigr)+\Vector{g}, \\ \dot{\Vector{r}}(t) &= \Vector{v}(t), \end{align}\] where \(\dot{t} = 1\) by definition, \(\Vector{\omega}_m(t),\, \Vector{a}_m(t) \in \Real^3\) are the measured body-frame angular rates and specific forces, and \(\Vector{g} \in \Real^3\) is the inertial-frame gravity vector.
It turns out that what matters for identifiability is the shape of the trajectory generated by the input history. The accelerometer measures proper acceleration, the acceleration relative to free fall, while our analysis requires the coordinate acceleration with respect to the fixed inertial reference frame. Let \(\Vector{s}(t) \Defined \Matrix{C}(t)^\T\Vector{a}(t)\), where \(\Vector{a}(t) \Defined \dot{\Vector{v}}(t) = \ddot{\Vector{r}}(t)\) is the coordinate acceleration. The measured specific force vector is then \(\Vector{a}_m(t) = \Vector{s}(t) - \Matrix{C}(t)^\T\Vector{g} + \Vector{b}_a\), so the gravity contribution cancels in the velocity kinematics, \[\label{eqn:SGal395gravity95cancel} \dot{\Vector{v}}(t) = \Matrix{C}(t)\bigl(\Vector{a}_m(t) - \Vector{b}_a\bigr) + \Vector{g} = \Matrix{C}(t)\bigl(\Vector{s}(t) - \Matrix{C}(t)^\T\Vector{g}\bigr) + \Vector{g} = \Matrix{C}(t)\,\Vector{s}(t).\tag{31}\] Gravity therefore does not appear in the state-transition matrix below and does not affect the identifiability analysis of 6.2. Define also the bias-corrected angular rate vector \(\Vector{\omega}(t) \Defined \Vector{\omega}_m(t) - \Vector{b}_g\).
It is convenient to express the trajectory on the group as \[\Matrix{X}(t) = \Matrix{X}_0\<\Matrix{\Phi}(t),\] where \(\Matrix{\Phi}(t) \in \LieGroupSGal{3}\) is the state-transition matrix, \[\label{eqn:SGal395phi95matrix} \Matrix{\Phi}(t) = \bbm \breve{\Matrix{C}}(t) & \breve{\Vector{v}}(t) & \breve{\Vector{r}}(t) \\ \Zero & 1 & t \\ \Zero & 0 & 1 \ebm,\tag{32}\] with \(\breve{\Matrix{C}}(0)=\Identity_3\), \(\breve{\Vector{v}}(0)=\Zero\), and \(\breve{\Vector{r}}(0)=\Zero\). The components satisfy \[\begin{align} \dot{\breve{\Matrix{C}}}(t) & = \breve{\Matrix{C}}(t)\,\Vector{\omega}(t)^{\wedge}, \\ \dot{\breve{\Vector{v}}}(t) & = \breve{\Matrix{C}}(t)\,\Vector{s}(t), \\ \dot{\breve{\Vector{r}}}(t) & = \breve{\Vector{v}}(t). \end{align}\]
We now develop the measurement model, following 4.1. The structure carries over directly, with the scalar kinematics replaced by their \(\LieGroupSGal{3}\) counterparts. The Lie algebra is now ten-dimensional, so the time translation direction is a vector in \(\Real^{10}\) rather than \(\Real^{3}\), \[\label{eqn:sgal395pure95time95generator} \Vector{\xi}_{d} \Defined \bbm \Zero_{1 \times 9} & 1 \ebm^\T \in \Real^{10}.\tag{33}\] Let \[\label{eqn:SGal395pure95time95translation} \Matrix{T}(\beta) \Defined \Matexp{\beta\<\Vector{\xi}_{d}^{\wedge}}\tag{34}\] denote the corresponding pure time translation, where the wedge maps \(\Vector{\xi}_{d}\) to the \(5 \times 5\) matrix representation. Under left multiplication, \(\Matrix{T}(\beta)\) shifts the group time coordinate by \(\beta\) while leaving the orientation, velocity, and position components unchanged. This is the operation used in the measurement construction below.
As in the one-dimensional case, the measured kinematics are the values at the delayed time \(t_k - \tau\), but the measurement arrives at time \(t_k\). A left time translation \(\Matrix{T}(\tau)\) advances the group time coordinate from \(t_k - \tau\) to \(t_k\). Define \[\label{eqn:SGal395delayed95measurement} \Matrix{Y}_k \Defined \Matrix{T}(\tau)\,\Matrix{X}(t_k - \tau) = \Matrix{T}(\tau)\,\Matrix{X}_0\,\Matrix{\Phi}(t_k - \tau) = \bbm \Matrix{C}(t_k - \tau) & \Vector{v}(t_k - \tau) & \Vector{r}(t_k - \tau) \\ \Zero & 1 & t_k \\ \Zero & 0 & 1 \ebm, \quad k = 1, \dots, n.\tag{35}\] The initial condition \(\Matrix{X}_0\) retains a zero time coordinate and remains in the isochronous subgroup. Using the propagation equations above, the delayed orientation, velocity, and position are \[\begin{align} \Matrix{C}_k &= \Matrix{C}(t_k - \tau) = \Matrix{C}_0\< \breve{\Matrix{C}}(t_k - \tau), \\ \Vector{v}_k &= \Vector{v}(t_k - \tau) = \Matrix{C}_0\< \breve{\Vector{v}}(t_k - \tau) + \Vector{v}_0, \\ \Vector{r}_k &= \Vector{r}(t_k - \tau) = \Matrix{C}_0\< \breve{\Vector{r}}(t_k - \tau) + (t_k - \tau)\< \Vector{v}_0 + \Vector{r}_0. \end{align}\] The unknown parameters are the initial condition \(\Matrix{X}_0\), whose components are \((\Matrix{C}_0, \Vector{v}_0, \Vector{r}_0)\) as given above, together with the delay \(\tau\) and the constant biases \((\Vector{b}_g, \Vector{b}_a)\), while the functions \(\breve{\Matrix{C}}(\cdot)\), \(\breve{\Vector{v}}(\cdot)\), and \(\breve{\Vector{r}}(\cdot)\) are determined by the measured IMU history together with the biases.
We now examine the identifiability of delayed aided navigation on \(\LieGroupSGal{3}\). As in the one-dimensional case, we start by studying the constraints induced by the measurements directly. We consider three measurement types: full-state measurements (position, velocity, and orientation), pose measurements (position and orientation), and position-only measurements.
With a single delayed full-state measurement at time \(t_1\), \[\Matrix{Y}_1 = \Matrix{T}(\tau)\< \Matrix{X}(t_1 - \tau) = \Matrix{T}(\tau)\< \Matrix{X}_0\< \Matrix{\Phi}(t_1 - \tau),\] the unknown initial condition again cannot be eliminated. As in the \(\LieGroupSGal{1}\) case, for any admissible alternative delay \(\bar{\tau}\) define \[\bar{\Matrix{X}}_0 = \Matrix{T}(\tau - \bar{\tau})\< \Matrix{X}_0\< \Matrix{\Phi}(t_1 - \tau)\< \Matrix{\Phi}(t_1 - \bar{\tau})^{-1},\] such that \[\Matrix{Y}_1 = \Matrix{T}(\bar{\tau})\< \bar{\Matrix{X}}_0\< \Matrix{\Phi}(t_1 - \bar{\tau}).\] The same observation can be explained by different values of \(\tau\) together with corresponding changes in the initial condition. The delay and initial condition are therefore jointly unidentifiable from a single full-state measurement. As before, the transformation of \((\Matrix{X}_0, \tau)\) defines a continuous symmetry satisfying 1. The biases enter only through the integrated quantities \(\breve{\Matrix{C}}\), \(\breve{\Vector{v}}\), and \(\breve{\Vector{r}}\), which a single measurement cannot separate from the initial condition, so they are also unidentifiable.
While two full-state measurements are generically sufficient, that case is more tedious to work through algebraically. We instead move directly to the case of three delayed pose measurements (i.e., position and orientation), which is more useful in practice and easier to treat. Let \[\Matrix{C}_k = \Matrix{C}(t_k - \tau), \quad \Vector{r}_k = \Vector{r}(t_k - \tau), \quad k = 1, 2, 3.\] Using the propagation equations above, we establish identifiability by analyzing the measurement constraints in sequence.
From the orientation equation, \[\Matrix{C}_k = \Matrix{C}_0\<\breve{\Matrix{C}}(t_k - \tau),\] so for any pair \((i,j)\), \[\Transpose{\Matrix{C}}_i\<\Matrix{C}_j = \Transpose{\breve{\Matrix{C}}(t_i - \tau)} \breve{\Matrix{C}}(t_j - \tau)\] and the initial orientation \(\Matrix{C}_0\) is eliminated. Using the pairs \((1, 2)\) and \((2, 3)\) gives two independent relative orientation constraints, giving six scalar equations in the four unknowns \((\tau, \Vector{b}_g)\). Under sufficiently informative motion, these determine \(\tau\) and \(\Vector{b}_g\) locally.
Once \(\tau\) and \(\Vector{b}_g\) are known, the propagated rotation \(\breve{\Matrix{C}}(t_k - \tau)\) is known, and the initial orientation is recovered from any single measurement: \[\Matrix{C}_0 = \Matrix{C}_1\breve{\Matrix{C}}(t_1 - \tau)^{-1}.\]
From the position equation, \[\Vector{r}_k = \Matrix{C}_0\,\breve{\Vector{r}}(t_k - \tau) + (t_k - \tau)\<\Vector{v}_0 + \Vector{r}_0.\] Subtracting two such equations eliminates \(\Vector{r}_0\): \[\label{eqn:SGal395pose95difference} \Vector{r}_j - \Vector{r}_i = \Matrix{C}_0 \bigl( \breve{\Vector{r}}(t_j - \tau) - \breve{\Vector{r}}(t_i - \tau) \bigr) + (t_j - t_i)\<\Vector{v}_0.\tag{36}\] Once \(\tau\), \(\Vector{b}_g\), and \(\Matrix{C}_0\) are known, the remaining unknowns in 36 are \(\Vector{v}_0\) and \(\Vector{b}_a\), since the propagated quantity \(\breve{\Vector{r}}(\cdot)\) depends on \(\Vector{b}_a\). Using the pairs \((1, 2)\) and \((2, 3)\) gives six scalar equations in the six unknowns \((\Vector{v}_0, \Vector{b}_a)\). Under generic motion, these determine \(\Vector{v}_0\) and \(\Vector{b}_a\) locally.
Once \(\tau\), \(\Vector{b}_g\), \(\Matrix{C}_0\), \(\Vector{v}_0\), and \(\Vector{b}_a\) are known, the initial position follows from any one position measurement: \[\Vector{r}_0 = \Vector{r}_1 - \Matrix{C}_0\,\breve{\Vector{r}}(t_1 - \tau) - (t_1 - \tau)\<\Vector{v}_0.\] Three pose measurements are therefore generically sufficient for local identifiability.
Finally, we consider the case in which only delayed position measurements are available: \[\Vector{r}_k = \Vector{r}(t_k-\tau), \quad k = 1, \dots, n.\] From the position model, \[\Vector{r}_k = \Matrix{C}_0\,\breve{\Vector{r}}(t_k - \tau) + (t_k - \tau)\<\Vector{v}_0 + \Vector{r}_0,\] differencing eliminates \(\Vector{r}_0\): \[\Vector{r}_j - \Vector{r}_i = \Matrix{C}_0 \bigl( \breve{\Vector{r}}(t_j - \tau)-\breve{\Vector{r}}(t_i - \tau) \bigr) + (t_j - t_i)\<\Vector{v}_0.\] After eliminating \(\Vector{r}_0\), the remaining unknowns are \((\Matrix{C}_0, \Vector{v}_0, \tau, \Vector{b}_g, \Vector{b}_a)\), which have total dimension \(13\). Each independent position difference contributes three scalar constraints. Hence, with \(n\) position measurements, at most \(3\<(n - 1)\) independent scalar constraints can be formed. A necessary condition for local identifiability is therefore \(3\<(n - 1) \ge 13\), which implies \(n \ge 6\). In generic terms, six position measurements are the first case in which local identifiability is possible. We do not work through the full elimination argument here.
We now revisit the \(\LieGroupSGal{3}\) identifiability analysis using the Jacobian of the measurement function with respect to the unknown parameters. As in the \(\LieGroupSGal{1}\) case, the goal is to characterize local identifiability through the rank and nullspace of the Jacobian. Using local coordinates for \(\LieGroupSO{3}\), we parameterize perturbations by \[\delta\SmallStateVector \Defined \bbm \delta\Vector{r}_0^\T & \delta\Vector{v}_0^\T & \delta\boldsymbol{\phi}_0^\T & \delta\tau & \delta\Vector{b}_g^\T & \delta\Vector{b}_a^\T \ebm^\T \in \Real^{16},\] where \(\delta\boldsymbol{\phi}_0 \in \Real^3\) is the local perturbation of the initial orientation. We use right orientation perturbations and right-invariant local coordinates for orientation measurement errors throughout. Making use of the propagated quantities introduced earlier: \[\begin{align} \Matrix{C}(t) &= \Matrix{C}_0\<\breve{\Matrix{C}}(t), \\ \Vector{v}(t) &= \Matrix{C}_0\<\breve{\Vector{v}}(t) + \Vector{v}_0, \\ \Vector{r}(t) &= \Matrix{C}_0\<\breve{\Vector{r}}(t)+\Vector{v}_0\<t + \Vector{r}_0, \end{align}\] where \(\breve{\Matrix{C}}(t)\), \(\breve{\Vector{v}}(t)\), and \(\breve{\Vector{r}}(t)\) are determined by the bias-corrected IMU history. For compactness, let \[t_{d,k} \Defined t_k - \tau.\]
The full-state measurement is projected to local coordinates by the map \(\pi : \LieGroupSGal{3} \to \Real^3 \times \Real^3 \times \LieGroupSO{3}\), which returns the position, velocity, and orientation of a group element, \[\pi(\Matrix{Y}_k) \Defined \bigl( \Vector{r}(t_k - \tau),\, \Vector{v}(t_k - \tau),\, \Matrix{C}(t_k - \tau) \bigr).\] The position and velocity are vector-valued, while the orientation lies on \(\LieGroupSO{3}\). Linearizing \(\pi(\Matrix{Y}_k)\) about the operating point gives the measurement perturbation \[\delta \Vector{y}_k \Defined \bbm \delta\Vector{r}_k^\T & \delta\Vector{v}_k^\T & \delta\boldsymbol{\vartheta}_k^\T \ebm^\T \in \Real^9,\] where \(\delta\Vector{r}_k\) and \(\delta\Vector{v}_k\) are the position and velocity perturbations, and \(\delta\boldsymbol{\vartheta}_k\) is the local orientation perturbation.
Consider a single delayed full-state measurement at time \(t_1\), consisting of position, velocity, and orientation. The linearized measurement equation is \[\delta \Vector{y}_1 \approx \Matrix{H}_1^{(rv\phi)}\,\delta\SmallStateVector,\] with Jacobian \[\label{eqn:single95full95jacobian} \Matrix{H}_1^{(rv\phi)} = \begin{bmatrix} \Identity_3 & t_{d,1}\Identity_3 & -\Matrix{C}_0\,\breve{\Vector{r}}(t_{d,1})^\wedge & -\Vector{v}(t_{d,1}) & \Matrix{C}_0\<\Matrix{\Psi}^{(r)}_{g}(t_{d,1}) & \Matrix{C}_0\<\Matrix{\Psi}^{(r)}_{a}(t_{d,1}) \\[0.5mm] \Zero & \Identity_3 & -\Matrix{C}_0\,\breve{\Vector{v}}(t_{d,1})^\wedge & -\Vector{a}(t_{d,1}) & \Matrix{C}_0\<\Matrix{\Psi}^{(v)}_{g}(t_{d,1}) & \Matrix{C}_0\<\Matrix{\Psi}^{(v)}_{a}(t_{d,1}) \\[0.5mm] \Zero & \Zero & \breve{\Matrix{C}}(t_{d,1})^\T & -\Vector{\omega}(t_{d,1}) & \Matrix{\Psi}^{(\phi)}_{g}(t_{d,1}) & \Zero \end{bmatrix}.\tag{37}\] In the velocity row, the delay entry \(-\Vector{a}(t_{d,1})\) is the coordinate acceleration of the vehicle in the inertial frame, \(\Vector{a}(t) = \Matrix{C}(t)\,\Vector{s}(t)\), where \(\Vector{s}(t)\) is the body-frame coordinate acceleration defined above. The orientation sensitivity with respect to the gyroscope bias is defined through the local perturbation \[\delta\boldsymbol{\phi}_g(t) \Defined \Matlog{\breve{\Matrix{C}}(t)^{-1}\breve{\Matrix{C}}_{g}(t)}^\vee,\] where \(\breve{\Matrix{C}}_{g}(t)\) denotes the propagated orientation under a perturbed bias, to first order in \(\delta\Vector{b}_g\). The bias sensitivities are \[\begin{align} \Matrix{\Psi}^{(r)}_{g}(t) &\Defined \frac{\partial\<\breve{\Vector{r}}(t)}{\partial\<\Vector{b}_g}, \qquad \Matrix{\Psi}^{(v)}_{g}(t) \Defined \frac{\partial\<\breve{\Vector{v}}(t)}{\partial\<\Vector{b}_g}, \qquad \Matrix{\Psi}^{(\phi)}_{g}(t) \Defined \frac{\partial\<\delta\boldsymbol{\phi}_g(t)}{\partial\<\Vector{b}_g}, \\ \Matrix{\Psi}^{(r)}_{a}(t) &\Defined \frac{\partial\<\breve{\Vector{r}}(t)}{\partial\<\Vector{b}_a}, \qquad \Matrix{\Psi}^{(v)}_{a}(t) \Defined \frac{\partial\<\breve{\Vector{v}}(t)}{\partial\<\Vector{b}_a}. \end{align}\] The matrices \(\Matrix{\Psi}^{(r)}_{g}(t)\), \(\Matrix{\Psi}^{(v)}_{g}(t)\), \(\Matrix{\Psi}^{(\phi)}_{g}(t)\), \(\Matrix{\Psi}^{(r)}_{a}(t)\), and \(\Matrix{\Psi}^{(v)}_{a}(t)\) depend on the input history and the propagated trajectory, and are not available in closed form in general.
To characterize the corresponding nullspace, set \(\Matrix{H}_1^{(rv\phi)}\,\delta\SmallStateVector = \Vector{0}_{9\times 1}\). We solve the three block rows from bottom to top, since the orientation row involves the fewest unknowns. The three block rows give \[\begin{align} \delta\Vector{r}_0 + t_{d,1}\<\delta\Vector{v}_0 - \Matrix{C}_0\<\breve{\Vector{r}}(t_{d,1})^\wedge \delta\boldsymbol{\phi}_0 - \Vector{v}(t_{d,1})\<\delta\tau + \Matrix{C}_0\<\Matrix{\Psi}^{(r)}_{g}(t_{d,1})\<\delta\Vector{b}_g + \Matrix{C}_0\<\Matrix{\Psi}^{(r)}_{a}(t_{d,1})\<\delta\Vector{b}_a & = \Vector{0}_{3\times 1}, \tag{38} \\ \delta\Vector{v}_0 - \Matrix{C}_0\<\breve{\Vector{v}}(t_{d,1})^\wedge \delta\boldsymbol{\phi}_0 - \Vector{a}(t_{d,1})\<\delta\tau + \Matrix{C}_0\<\Matrix{\Psi}^{(v)}_{g}(t_{d,1})\<\delta\Vector{b}_g + \Matrix{C}_0\<\Matrix{\Psi}^{(v)}_{a}(t_{d,1})\<\delta\Vector{b}_a & = \Vector{0}_{3\times 1}, \tag{39} \\ \breve{\Matrix{C}}(t_{d,1})^\T\<\delta\boldsymbol{\phi}_0 - \Vector{\omega}(t_{d,1})\<\delta\tau + \Matrix{\Psi}^{(\phi)}_{g}(t_{d,1})\<\delta\Vector{b}_g & = \Vector{0}_{3\times 1}. \tag{40} \end{align}\] We isolate the delay direction by setting the bias perturbations to zero, \(\delta\Vector{b}_g = \delta\Vector{b}_a = \Zero\). The orientation row 40 then gives the initial-orientation perturbation directly, \[\delta\boldsymbol{\phi}_0 = \breve{\Matrix{C}}(t_{d,1})\,\Vector{\omega}(t_{d,1})\,\delta\tau = \Vector{\omega}_0(t_{d,1})\,\delta\tau,\] where \(\Vector{\omega}_0(t) \Defined \breve{\Matrix{C}}(t)\,\Vector{\omega}(t)\) is the angular velocity expressed in the initial-body frame. With \(\delta\boldsymbol{\phi}_0\) known, the velocity row 39 gives the initial-velocity perturbation, \[\delta\Vector{v}_0 = \bigl( \Matrix{C}_0\< \breve{\Vector{v}}(t_{d,1})^\wedge\Vector{\omega}_0(t_{d,1}) + \Vector{a}(t_{d,1}) \bigr)\<\delta\tau,\] and finally the position row 38 gives the initial-position perturbation, \[\delta\Vector{r}_0 = \Big( \Vector{v}(t_{d,1}) - t_{d,1} \big( \Matrix{C}_0\< \breve{\Vector{v}}(t_{d,1})^\wedge \Vector{\omega}_0(t_{d,1}) + \Vector{a}(t_{d,1}) \big) + \Matrix{C}_0\< \breve{\Vector{r}}(t_{d,1})^\wedge \Vector{\omega}_0(t_{d,1}) \Big)\<\delta\tau.\] Hence, the nullspace contains the one-dimensional direction \[\Ker{\Matrix{H}_1^{(rv\phi)}} \supseteq \Span{ \bbm \Vector{v}(t_{d,1}) - t_{d,1}\big( \Matrix{C}_0\< \breve{\Vector{v}}(t_{d,1})^\wedge\Vector{\omega}_0(t_{d,1}) + \Vector{a}(t_{d,1}) \big) + \Matrix{C}_0\< \breve{\Vector{r}}(t_{d,1})^\wedge\Vector{\omega}_0(t_{d,1}) \\[0.5mm] \Matrix{C}_0\< \breve{\Vector{v}}(t_{d,1})^\wedge\Vector{\omega}_0(t_{d,1}) + \Vector{a}(t_{d,1}) \\[0.5mm] \Vector{\omega}_0(t_{d,1}) \\[0.5mm] 1 \\[0.5mm] \Zero_{3\times 1} \\[0.5mm] \Zero_{3\times 1} \ebm }.\] This is the direct analogue of the \(\LieGroupSGal{1}\) case: a change in the delay can be compensated by corresponding changes in the initial condition, leaving the measurement unchanged to first order.
We now consider the case of two full-state measurements at times \(t_1\) and \(t_2\). The stacked Jacobian is \[\label{eqn:SGal395two95full95stacked} \delta \Vector{y}_{1:2} \approx \Matrix{H}_{1:2}^{(rv\phi)}\< \delta\SmallStateVector, \quad \Matrix{H}_{1:2}^{(rv\phi)} = \bbm \Matrix{H}_1^{(rv\phi)} \\[0.5mm] \Matrix{H}_2^{(rv\phi)} \ebm \in \Real^{18\times 16},\tag{41}\] where each block \(\Matrix{H}_k^{(rv\phi)} \in \Real^{9\times 16}\) has the form \[\label{eqn:SGal395two95full95single95block} \Matrix{H}_k^{(rv\phi)} = \begin{bmatrix} \Identity_3 & t_{d,k}\Identity_3 & -\Matrix{C}_0\,\breve{\Vector{r}}(t_{d,k})^\wedge & -\Vector{v}(t_{d,k}) & \Matrix{C}_0\<\Matrix{\Psi}^{(r)}_{g}(t_{d,k}) & \Matrix{C}_0\<\Matrix{\Psi}^{(r)}_{a}(t_{d,k}) \\[0.5mm] \Zero & \Identity_3 & -\Matrix{C}_0\,\breve{\Vector{v}}(t_{d,k})^\wedge & -\Vector{a}(t_{d,k}) & \Matrix{C}_0\<\Matrix{\Psi}^{(v)}_{g}(t_{d,k}) & \Matrix{C}_0\<\Matrix{\Psi}^{(v)}_{a}(t_{d,k}) \\[0.5mm] \Zero & \Zero & \breve{\Matrix{C}}(t_{d,k})^\T & -\Vector{\omega}(t_{d,k}) & \Matrix{\Psi}^{(\phi)}_{g}(t_{d,k}) & \Zero \end{bmatrix}, \quad k = 1,2.\tag{42}\]
This is the Jacobian counterpart of the direct algebraic argument: the two measurements jointly constrain the initial condition, the delay, and the IMU biases. Unlike the single-measurement case, there are now \(18\) scalar constraints for \(16\) unknowns, so generic local identifiability is possible. In particular, if \[\Rank{\Matrix{H}^{(rv\phi)}_{1:2}} = 16,\] then the initial condition, the delay, and the constant IMU biases are locally identifiable. Thus, two full-state measurements are generically sufficient for local identifiability in the \(\LieGroupSGal{3}\) aided navigation problem.
The two-pose case clarifies how the delay-related nullspace direction is constrained by multiple measurements. The stacked Jacobian is \[\label{eqn:SGal395two95pose95stacked} \delta\Vector{y}_{1:2} \approx \Matrix{H}_{1:2}^{(r\phi)}\,\delta\SmallStateVector, \quad \Matrix{H}_{1:2}^{(r\phi)} = \bbm \Matrix{H}_1^{(r\phi)} \\[0.5mm] \Matrix{H}_2^{(r\phi)} \ebm \in \Real^{12 \times 16},\tag{43}\] where each block \(\Matrix{H}_k^{(r\phi)} \in \Real^{6\times 16}\) has the form \[\label{eqn:SGal395two95pose95single95block} \Matrix{H}_k^{(r\phi)} = \begin{bmatrix} \Identity_3 & t_{d,k}\Identity_3 & -\Matrix{C}_0\,\breve{\Vector{r}}(t_{d,k})^\wedge & -\Vector{v}(t_{d,k}) & \Matrix{C}_0\<\Matrix{\Psi}^{(r)}_{g}(t_{d,k}) & \Matrix{C}_0\<\Matrix{\Psi}^{(r)}_{a}(t_{d,k}) \\[0.5mm] \Zero & \Zero & \breve{\Matrix{C}}(t_{d,k})^\T & -\Vector{\omega}(t_{d,k}) & \Matrix{\Psi}^{(\phi)}_{g}(t_{d,k}) & \Zero \end{bmatrix}, \quad k = 1, 2.\tag{44}\] To characterize the corresponding nullspace, set \(\Matrix{H}_{1:2}^{(r\phi)}\,\delta\SmallStateVector = \Vector{0}_{12\times 1}\). The two block rows give, for \(k=1,2\), \[\begin{align} \delta\Vector{r}_0 + t_{d,k}\,\delta\Vector{v}_0 - \Matrix{C}_0\,\breve{\Vector{r}}(t_{d,k})^\wedge \delta\boldsymbol{\phi}_0 - \Vector{v}(t_{d,k})\,\delta\tau + \Matrix{C}_0\<\Matrix{\Psi}^{(r)}_{g}(t_{d,k})\,\delta\Vector{b}_g + \Matrix{C}_0\<\Matrix{\Psi}^{(r)}_{a}(t_{d,k})\,\delta\Vector{b}_a &= \Vector{0}_{3\times 1}, \tag{45} \\ \breve{\Matrix{C}}(t_{d,k})^\T\,\delta\boldsymbol{\phi}_0 - \Vector{\omega}(t_{d,k})\,\delta\tau + \Matrix{\Psi}^{(\phi)}_{g}(t_{d,k})\,\delta\Vector{b}_g &= \Vector{0}_{3\times 1}. \tag{46} \end{align}\]
As before, we consider only the case where the gyroscope and accelerometer bias perturbations are zero. Then 46 reduces to \[\delta\boldsymbol{\phi}_0 = \breve{\Matrix{C}}(t_{d,k})\< \Vector{\omega}(t_{d,k})\,\delta\tau = \Vector{\omega}_0(t_{d,k})\<\delta\tau, \quad k = 1, 2,\] where, again, \(\Vector{\omega}_0(t) \Defined \breve{\Matrix{C}}(t)\<\Vector{\omega}(t)\) is the angular velocity expressed in the initial-body frame. For a nonzero delay perturbation to remain in the nullspace, these two expressions must agree, so \[\label{eqn:SGal395two95pose95time95condition} \Vector{\omega}_0(t_{d,1})=\Vector{\omega}_0(t_{d,2}).\tag{47}\] Under this condition, \[\delta\boldsymbol{\phi}_0 = \Vector{\omega}_0(t_{d,1})\,\delta\tau. \label{eqn:SGal395two95pose95phi95tau}\tag{48}\] Next, subtracting 45 for \(k=1\) and \(k=2\) eliminates \(\delta\Vector{r}_0\) and gives \[(t_2 - t_1)\,\delta\Vector{v}_0 - \Matrix{C}_0 \Bigl( \breve{\Vector{r}}(t_{d,2})^\wedge-\breve{\Vector{r}}(t_{d,1})^\wedge \Bigr)\delta\boldsymbol{\phi}_0 - \bigl(\Vector{v}(t_{d,2})-\Vector{v}(t_{d,1})\bigr)\<\delta\tau = \Vector{0}_{3\times 1}.\] Substituting 48 yields \[\label{eqn:SGal395two95pose95v95tau} \delta\Vector{v}_0 = \Vector{d}_v\,\delta\tau,\tag{49}\] where \[\Vector{d}_v \Defined \frac{1}{t_2 - t_1}\, \Matrix{C}_0 \Bigl( \breve{\Vector{r}}(t_{d,2})^\wedge-\breve{\Vector{r}}(t_{d,1})^\wedge \Bigr)\Vector{\omega}_0(t_{d,1}) + \frac{1}{t_2 - t_1}\, \bigl(\Vector{v}(t_{d,2})-\Vector{v}(t_{d,1})\bigr).\] Finally, substituting 48 and 49 into 45 at \(k = 1\) gives \[\delta\Vector{r}_0 = \Vector{d}_r\,\delta\tau, \label{eqn:SGal395two95pose95r95tau}\tag{50}\] where \[\Vector{d}_r \Defined -t_{d,1}\,\Vector{d}_v + \Matrix{C}_0\<\breve{\Vector{r}}(t_{d,1})^\wedge \Vector{\omega}_0(t_{d,1}) + \Vector{v}(t_{d,1}).\] Therefore, when 47 holds, \[\Ker{\Matrix{H}_{1:2}^{(r\phi)}} \supseteq \Span{ \bbm \Vector{d}_r \\ \Vector{d}_v \\ \Vector{\omega}_0(t_{d,1}) \\ 1 \\ \Zero_{3\times 1} \\ \Zero_{3\times 1} \ebm }.\] This is the same basic situation seen in the \(\LieGroupSGal{1}\) case: a change in the delay can be absorbed by corresponding changes in the initial condition, with the biases held fixed. In three dimensions, the compensation also includes an orientation perturbation, and this nullspace direction exists only when the angular velocities at the two delayed measurement times, expressed in the initial-body frame, are equal.
Identifiability of the delay (and the initial condition) depends not only on the number of measurements, but also on whether the input is sufficiently exciting. As in the one-dimensional case, there exist trajectories for which the delay and initial condition cannot be uniquely determined, regardless of the number or type of measurements. Once again, we refer to such trajectories as uninformative.
The relevant class of uninformative trajectories is characterized by motion that, over the delayed interval, is generated by a constant Lie algebra element. Gravity does not enter \(\Matrix{\Phi}(t)\), by the cancellation in 31 . We set the biases aside to isolate the delay–initial-condition symmetry, working directly with the resulting trajectory. Suppose that the body-frame angular velocity and body-frame resolved coordinate acceleration are constant, \[\Vector{\omega}(t) = \Vector{\omega}_0, \quad \Vector{s}(t) = \Vector{s}_0,\] for \(\Vector{\omega}_0, \Vector{s}_0 \in \Real^3\).7 In this case, the state-transition matrix \(\Matrix{\Phi}(t)\) is generated by the exponential map of a fixed Lie algebra element. Because \(\Matrix{\Phi}(0) = \Identity_5\), the generator is not arbitrary: it must be chosen to match the zero initial conditions built into \(\Matrix{\Phi}(t)\). Specifically, \[\Matrix{\Phi}(t) = \Matexp{t\<\Vector{\xi}^{\wedge}}, \quad \Vector{\xi}^{\wedge} = \bbm \Vector{\omega}_0^{\wedge} & \Vector{s}_0 & \Zero \\ \Zero & 0 & 1 \\ \Zero & 0 & 0 \ebm.\] It follows that \[\Matrix{\Phi}(t_k - \tau)\,\Matrix{\Phi}(t_k - \bar{\tau})^{-1} = \Matexp{(\bar{\tau}- \tau)\<\Vector{\xi}^{\wedge}},\] which is independent of \(t_k\).
Returning to the measurement model, the same transformation used in the single-measurement analysis therefore applies simultaneously to all measurements. Define \[\bar{\Matrix{X}}_0 = \Matrix{T}(\tau - \bar{\tau})\, \Matrix{X}_0\, \Matrix{\Phi}(\bar{\tau}- \tau),\] where the left time translation keeps \(\bar{\Matrix{X}}_0\) in the isochronous subgroup. Then, for all measurement times \(t_k\), \[\Matrix{Y}_k = \Matrix{T}(\tau)\,\Matrix{X}_0\<\Matrix{\Phi}(t_k - \tau) = \Matrix{T}(\bar{\tau})\,\bar{\Matrix{X}}_0 \Matrix{\Phi}(t_k - \bar{\tau}).\] The entire measurement set can therefore be explained by a different value of \(\tau\) together with a corresponding change in the initial condition.
To connect this with 2.2, consider the parameter tuple \[\StateVector \Defined (\Matrix{X}_0, \tau).\] For each \(\alpha \in (-\epsilon, \epsilon)\) with \(\epsilon > 0\) sufficiently small, define a transformation \(\mathcal{S}_\alpha\) on this parameter tuple by \[\mathcal{S}_\alpha : (\Matrix{X}_0, \tau) \mapsto \bigl( \Matrix{T}(-\alpha)\< \Matrix{X}_0\< \Matrix{\Phi}(\alpha),\, \tau + \alpha \bigr),\] where the leading time translation keeps the transformed initial condition in the isochronous subgroup. For motions of the form considered here, the parameter tuples \((\Matrix{X}_0, \tau)\) and \(\mathcal{S}_\alpha\big((\Matrix{X}_0,\tau)\big)\) generate the same measurement history for all sufficiently small \(\alpha\). Therefore, 1 applies (and likewise 1), and local identifiability fails.
Which Trajectories Are Uninformative?
Several familiar trajectory shapes turn out to be uninformative. We can group them, roughly, by their geometry. A few concrete cases are listed below.
Straight-line constant-acceleration motion, produced by zero angular velocity and constant specific force. This is the direct three-dimensional analogue of the \(\LieGroupSGal{1}\) example from 4.4.
Circular or helical motion, produced by constant body-frame angular velocity together with constant body-frame linear velocity. A coordinated turn at constant bank angle is an example.
General curvilinear motion, produced by constant body-frame angular velocity together with constant body-frame specific force. The body rotates at a constant rate while the body-frame velocity varies, producing a more general curved trajectory than the helical case above.
The uninformative trajectories identified here include those reported by Yang et al. in 2019_Yang_Degenerate?, 2023_Yang_Online?. In particular, those papers identified the following cases:
Constant body-frame angular velocity together with constant body-frame linear velocity.
Constant body-frame angular velocity together with constant acceleration in the inertial frame.
Both fit within the broader class of trajectories generated by constant Lie algebra elements on the Galilean group. The advantage of the Lie group formulation is that it captures a broader family of uninformative motions.
In this report, we studied delay identifiability in aided inertial navigation using the Galilean groups \(\LieGroupSGal{1}\) and \(\LieGroupSGal{3}\). For \(\LieGroupSGal{1}\), we showed how identifiability depends on both the available measurements and the excitation of the trajectory, characterizing when the delay and initial condition can be recovered from full-state and position-only measurements, with the same conclusions following from both a direct constraint-based analysis and a Jacobian-based analysis. Building on this, we extended the analysis to \(\LieGroupSGal{3}\), the full aided inertial navigation setting with IMU biases, and identified the first generic cases in which local identifiability becomes possible for full-state, pose, and position-only measurements.
A central theme throughout is that identifiability depends not only on the number and type of measurements, but also on the form of the trajectory itself. This leads naturally to a characterization of uninformative trajectories in terms of symmetry. When the motion is generated by a fixed Lie algebra element, the trajectory evolves along a one-parameter subgroup, and shifts in the delay can be absorbed into corresponding changes in the initial condition. The use of Lie algebra generators to characterize globally uninformative trajectories on the Galilean group is, to our knowledge, new.
A rough list of revisions to the report follows.
Revision 1.01, 2026-02-03 — Initial release.
Revision 1.02, 2026-02-15 — Added further details on continuous symmetries.
Revision 1.03, 2026-03-19 — Split \(\LieGroupSGal{3}\) analysis into component form (position, orientation, etc.).
Revision 1.04, 2026-03-30 — Extended \(\LieGroupSGal{3}\) results to include six position measurements.
Revision 1.05, 2026-04-22 — Added short \(\LieGroupSGal{1}\) filtering discussion.
Revision 1.06, 2026-05-20 — Reformatted \(\LieGroupSGal{3}\) Jacobians.
Revision 1.07, 2026-05-30 — Fixed various typos throughout.
To avoid clutter, we omit the frame identifiers throughout.↩︎
We use \((\breve{\cdot})\) to indicate a quantity obtained by integrating the known input history.↩︎
Superscripts in parentheses denote measured quantities (e.g., \((rv)\) for position and velocity, respectively), while subscripts indicate measurement times (e.g., \(1{:}3\) for time indices \(1\) through \(3\) inclusive).↩︎
These trajectories are sometimes referred to as degenerate in the literature. We use the term uninformative to emphasize that the loss of identifiability arises from insufficient excitation of the input, rather than any defect in the trajectory itself.↩︎
The Lie bracket relation \([\Matrix{B}, \Matrix{K}] = \Matrix{P}\) gives the structure of this symmetry: shifting the delay changes not only the velocity component but also the position component.↩︎
The rotation of the Earth is neglected, since its effect is negligible over the short time windows considered here.↩︎
Under constant body-frame angular velocity, the initial-frame rate \(\Vector{\omega}_0(t) = \breve{\Matrix{C}}(t)\,\Vector{\omega}_0\) of 6.3 reduces to the constant \(\Vector{\omega}_0\), since the rotation is about its own axis.↩︎