Spline-Based Factor-Graph Optimization with High-Grade Inertial Sensors

  • NAVIGATION: Journal of the Institute of Navigation
  • January 2026,
  • 73
  • navi.742;
  • DOI: https://doi.org/10.33012/navi.742

Abstract

Inertial measurement units (IMUs) are central to global navigation satellite system-based and alternative navigation solutions. This paper combines three lines of research to explore a novel methodology for using inertial sensors: factor graphs, spline-based trajectory estimation, and high-grade inertial sensing. Spline-based factor-graph trajectory estimation is increasingly used in the literature, especially for asynchronous or high-rate sensors. However, prior models neglect the impact of the Earth’s rotation, which is significant for high-grade IMUs. We extend spline-based factor graphs to incorporate accelerometer and gyroscope models that account for the Earth’s rotation. We apply this approach to simulated data from high-grade inertial sensors for two evaluations. First, we evaluate the estimation accuracy using the proposed approach and demonstrate a consistent one-order-of-magnitude improvement after 60 s of inertial coasting when compared with the literature’s spline-based approaches with coarse inertial measurement models. Then, we compare two spline-based trajectory representations applied to high-grade inertial navigation.

Keywords

1 INTRODUCTION

Precise and reliable platform localization is a core component for autonomous and unmanned navigation. Inertial sensors commonly form the backbone of precise trajectory estimation in both global navigation satellite system (GNSS)-based and alternative navigation solutions. This paper combines three unique lines of research to explore a novel methodology for using inertial sensors: factor graphs, spline-based trajectory estimation, and high-quality inertial sensing. First, factor graphs have received increased interest as a framework for fusing data from multiple sensors for maximum a posteriori (MAP) state estimation (Taylor & Gross, 2024). While factor graphs have demonstrated the ability to handle complex and highly nonlinear systems, they traditionally model a set of discrete states, at least one state for every measurement sample time. This approach has drawbacks when asynchronous sensors, such as neuromorphic cameras, rolling-shutter cameras, or simply any fusion of sensors without aligned sample times, are incorporated into a navigation solution. Additionally, this discrete-time trajectory estimation poses challenges with high-rate sensors, where an abundance of measurements can lead to an explosion in the number of states to be estimated and, therefore, an explosion in computational complexity. To overcome these problems, prior work has applied factor graphs to estimate a continuous-time trajectory rather than a trajectory at a set of discrete times (Anderson et al., 2015; Furgale et al., 2012). This approach has become increasingly popular in the literature for incorporating various sensors that either are difficult to synchronize or provide measurements at a high rate (Mueggler et al., 2015; Ng et al., 2021; Oth et al., 2013).

One method for estimating a continuous-time trajectory is to use B-splines, where a continuous trajectory is represented by a finite set of control points (first proposed by Furgale et al. (2012)). While using splines to represent translational movement (i.e., movement in ℝ3) is relatively straightforward, representing a trajectory that also moves through rotational space (SO(3)) is more difficult. To solve this problem, Patron-Perez et al. (2015) adapted cumulative B-splines to apply them to Lie groups, such as SO(3) (rotation) or SE(3) (rotation and translation). Several works in the literature have applied B-splines over Lie groups in order to represent a full trajectory and to enable the incorporation of inertial measurements from accelerometers and gyroscopes (Hug et al., 2022; Sommer et al., 2020; Sommer et al., 2016). However, these published approaches for incorporating inertial measurements into a spline-based factor-graph framework employ inertial sensor models that do not account for the effects of the Earth’s rotation on inertial measurements. High-quality inertial measurement units (IMUs), such as tactical-grade and navigation-grade IMUs, have sufficient precision for these effects to significantly impact the state estimate (Tang et al., 2022). As a result, when a high-grade IMU is available, which is commonly the case in airborne applications, the published inertial measurement models for spline-based estimation fail to fully exploit the IMU’s precision, limiting the achievable accuracy of the navigation solution. This paper presents an approach for incorporating refined inertial measurement models into a spline-based factor graph, thereby accounting for the effects of the Earth’s rotation on accelerometer and gyroscope measurements. This approach is then applied to simulated data from high-grade inertial sensors to demonstrate the improvement of the refined sensor models. Next, two potential trajectory representations are compared: a single B-spline in SE(3) and a split representation composed of B-splines in SO(3) and ℝ3. With simulated inertial measurements, the results of using each trajectory representation for navigation via factor-graph optimization are evaluated based on the accuracy of the position estimates. The intent of these evaluations is to explore effective methods for incorporating raw inertial measurements from high-grade sensors into a multi-sensor, spline-based factor-graph navigation solution.

To provide a clear description of the development and evaluation of the proposed approach, the remainder of the paper is organized as follows. Section 2 provides a brief review of factor-graph optimization and B-spline trajectory estimation. Section 3 presents the proposed approach for incorporating a refined inertial sensor model into spline-based factor-graph optimization. Section 4 conducts two comparative analyses using simulated data sets. First, the benefits of the refined inertial models are demonstrated by comparing the proposed implementation against an implementation using inertial models in the literature for spline-based factor graphs. Second, the unified-spline (SE(3)) and split-spline (SO(3) × ℝ3) trajectory representations are compared in the context of navigation with high-grade inertial sensors via a Monte Carlo evaluation with simulated measurements along randomly generated paths. Finally, Section 5 provides relevant conclusions and potential avenues of further research.

2 TECHNICAL BACKGROUND

To properly introduce our formulation of high-quality inertial sensors with a continuous-time factor graph, several topics must be clearly defined. In this section, we will review and introduce our notation for factor graphs (including continuous-time factor graphs) and cubic B-splines for Lie groups. This discussion will lay the foundation for Section 3, which provides the approach for incorporating improved measurement models for inertial sensors into a spline-based factor-graph formulation.

2.1 Factor Graphs

Factor graphs are a mathematical framework, proposed by Kschischang et al. (2001), that models the posterior distribution of state estimates based on observations. This framework opens the door for applying various elements from graph theory, linear algebra, and nonlinear optimization research to develop methods for accurate, robust, and efficient state estimation.

2.1.1 Bipartite Graph Representation

This state estimation problem may be represented by a bipartite graph with two types of vertices: states and factors. Each factor vertex encapsulates stochastic information and is connected by edges to the relevant state or states. Commonly, a factor vertex is a probabilistic model of a noisy sensor measurement given the relevant states, and it is connected by edges to those states. Factor graphs may perform estimations over batches of time, where each time step will have state vertices connected to the factor vertices related to the states at that time. Figure 1 depicts an example of a simple factor graph formulated in this manner, with states at multiple time steps, factors potentially corresponding to sensor measurements at those times, and dynamics factors modeling the relationship between states at successive time steps.

FIGURE 1

A basic factor-graph depiction where state estimates xn at time n are informed by probabilistic models of sensor measurements at time n (represented by black squares) and by probabilistic models of the dynamics between successive states (represented by green squares)

2.1.2 Weighted Least-Squares Optimization

To solve a factor graph, the goal is to find a set of estimates X^ for the set of states X with the MAP probability, given a set of observations Z:

X^=argmaxp(X|Z)X1

By applying Bayes’ theorem, assuming conditional independence of the observations zi in Z, and simplifying, we obtain a form of Equation (1) that is equivalent to the following maximization problem:

X^=argmaxXziZp(ziX)2

By modeling each observation as a function of the states with additive white Gaussian noise, zi=hi(X)+ηi,ηiN(0,i), Equation (2) becomes a nonlinear weighted least-squares (WLS) optimization problem:

X^=argminXziZZihi(X)i23

The operator denotes the Mahalanobis distance, such that ν=ν1ν. In factor-graph optimization, each factor is defined by its cost function ei=zihi(X)i and the Jacobian matrix of the cost function with respect to the related states. As demonstrated by Dellaert and Kaess (2006) the equivalent matrix representation of the nonlinear WLS problem is typically sparse and can therefore be efficiently solved by iteratively applying linear algebra algorithms, such as QR or Cholesky decomposition, in a nonlinear least-squares optimization procedure, such as the Gauss-Newton (Dennis & Schnabel, 1996) or Levenberg-Marquardt (Marquardt, 1963) algorithms.

2.2 Continuous-Time Trajectory with B-Splines

While factor graphs for trajectory estimation were originally applied for estimating states at discrete times, further research developed approaches for estimating a trajectory in continuous time by representing the trajectory with B-splines (Furgale et al., 2012). A cubic B-spline is C2-continuous, resulting in a continuous position, velocity, and acceleration. This feature is a desirable quality for optimization with acceleration information, such as would arise from an accelerometer. As an example, a one-dimensional cubic B-spline is shown in Figure 2, where the x-axis represents time and the y-axis represents the position of the spline over time. To utilize a spline for pose estimation, we first introduce a formulation of a cubic B-spline in ℝ3, which could represent the three-dimensional position. Then, we introduce a formulation for a cubic B-spline over a Lie group, as first demonstrated by Patron-Perez et al. (2015). In a trajectory representation, Lie groups may be applied to represent rotation (SO(3)) or a combination of rotation and translation (SE(3)).1 The following discussions of cubic B-splines in ℝ3 and in a Lie group also include a brief description of how these splines are estimated within a factor-graph framework.

FIGURE 2

A simple cubic B-spline in ℝ

The position at any time along the trajectory is dictated by four control points: the two preceding (or equal to) the current time and the two after the current time. A cubic B-spline is C2-continuous.

2.2.1 Cubic B-Spline

A cubic B-spline can represent the position in continuous time through the following formulation (Cox, 1972; de Boor, 1978). With n + 2 evenly spaced spline knot points at times [t–1, t0, …, tn+1] and a continuous time t that falls in the interval tit < ti+1, the value of u is u(t) = (tti)/∆t, where ∆t is the uniform time difference between each knot point. The position on the spline at time t ∈ [ti, ti+1) is then dictated by the control points {pi–1, pi, pi+1, pi+2} through the following expression:

p(u)=pi1+j=13B˜j(u)(pi+j1pi+j2),pi3B˜(u)=C[1uu2u3],C=16[6000533113320001]4

where the subscript j of B˜j indicates the j-th element of B˜ (zero-based). The coefficients B˜j are cumulative spline coefficients, as they provide an aggregated expression of the general B-spline coefficients that is specific to a cubic spline (Qin, 1998). This B-spline formulation can be applied within a factor graph by including the control points {p1,p0,,pn+1} as states in the factor graph, where n is the number of intervals defined on the spline. If the position is represented by a cubic B-spline, then the estimated position at any time on the spline may be sampled using Equation (4) and the MAP estimate of the control point states. Typically, the factors within the graph do not provide information directly related to the control points. For example, a direct position measurement provides information related to the position estimate at a specific time, and that position estimate is a function of the estimated control points. Thus, optimizing a spline-based factor graph requires the Jacobian matrices of the factors’ cost functions with respect to the control points. This additional layer of abstraction requires the application of the chain rule from basic calculus, as the error is typically a function of the position estimate at a specific time and that position estimate is a function of four control points. Then, through a nonlinear least-squares optimization procedure, the control point states may be updated to reach a MAP estimate, which then forms a continuous-time estimate of the position throughout the spline’s defined intervals.

2.2.2 Cubic B-Spline in a Lie Group

While Equation (4) can represent translation in ℝ3, many applications require estimating the full pose of a platform, which would also include rotation. Lie groups are a popular mathematical tool in these applications, including the Lie groups SO(3), which can represent rotations, and SE(3), which can represent the combination of translations and rotations. Patron-Perez et al. (2015) adapted the cumulative, cubic B-spline formulation in Equation (4) to form a B-spline over Lie groups by replacing the arithmetic addition and subtraction operations in Equation (4) with matrix exponential and natural logarithm operations, respectively.

To provide the mathematical background for the spline-based pose estimation in this paper, we first consider a formulation for a B-spline in SO(3). The attitude of a platform may be represented by a B-spline over the rotation matrices in SO(3), where Rw,tSO(3) is the rotation matrix from the platform’s body frame to the world frame at time t. The spline is defined by control points Rw,iSO(3). The attitude at time t where t is in [ti, tt+1) is dictated by the control points {Rw,i–1, Rw,i, Rw,i+1, Rw,i+2} through the following expression:

Rw,t(u)=Rw,i1exp(B˜1(u)Ωi1,i)exp(B˜2(u)Ωi,i+1)exp(B˜3(u)Ωi+1,i+2)Ωj,k=log(Rw,j1Rw,k)5

If factors provide information not directly related to the attitude, but to the angular velocity or angular acceleration, then the expressions for Rw,tt=R˙w,t and 2Rw,tt2=R¨w,t, respectively, are required to form the factor graph. By applying the product rule from basic calculus to Equation (4), we obtain the first and second derivatives of the attitude on the spline with respect to time as follows:

R˙w,t(u)=Rw,i1(A˙0A1A2+A0A˙1A2+A0A1A˙2)6

R¨w,t(u)=Rw,i1(A¨0A1A2+A0A¨1A2+A0A1A¨2+2A˙0A˙1A2+2A˙0A1A˙2+2A0A˙1A˙2)Aj=exp(B˜j(u)Ωi,j),A˙j=B˜˙j(u)AjΩi,j,A¨j=B˜¨j(u)AjΩi,j+B˜˙j(u)A˙jΩi,jB˜˙(u)=1ΔtC[012u3u2],B˜¨(u)=1Δt2C[0026u]7

The spline formulation in Equation (5) and the time derivatives in Equations (6) and (7) may also be applied to form a spline in SE(3) that represents both translation and rotation. This step is done by simply replacing the control points {Rw,1,Rw,0,,Rw,n+1} in SO(3) with pose matrices in SE(3). The closed-form expressions of the exponential and natural logarithm operations for SO(3) as well as for SE(3) have been provided by Blanco (2010). As described before, optimizing a factor graph with a spline-based trajectory representation includes iterative updates to the control points, rather than direct updates of the pose estimates at specific time points. In the implementation presented in this paper, the SO(3) control points are updated using a vector from the corresponding Lie algebra 𝔰𝔬(3), as described by Blanco (2010). Each control point Rw,i with an associated update vector ϵi𝔰𝔬(3) is updated such that Rw,iRw,iExp(ϵi), where Exp(‧) is the exponential map from 𝔰𝔬(3) to SO(3) defined by Blanco (2010). States in SE(3) are similarly updated with a vector in the Lie algebra 𝔰𝔢(3), such that Tw,iTw,iExp(ϵi). Optimizing the factor graph then requires the Jacobian matrices of an attitude (or pose) on the spline with respect to exponential updates applied to each of the Lie group control points. The necessary Jacobian matrices are derived in Appendix A. With these Jacobian matrices and the application of the chain rule for derivatives, the cost function in Equation (3) can be linearized about the current state estimate, and various linear algebra approaches may be applied to iteratively solve the resulting linear least-squares problems to update the state and reduce the error norm.

2.3 Inertial Measurements in a Factor Graph

This paper is specifically focused on an improved method for incorporating raw inertial measurements in a spline-based factor graph. To give context to this work and the proposed approach, we first provide a brief summary of related work using inertial measurements in factor graphs, including works using traditional discrete-time trajectory representations. Incorporating inertial measurements into a factor graph requires a probabilistic model for the expected sensor measurements given the estimated states. A straightforward approach is to estimate the relevant states (e.g., position, velocity, and attitude) at the discrete time when the measurement was sampled. However, inertial sensors typically have a high sampling rate, commonly on the order of 100 Hz. If the state were estimated at the discrete sample time of each measurement, then representing the state at the discrete time of each measurement would result in a large number of states to be estimated. To reduce the computational cost of including inertial measurements in a factor graph, Forster et al. (2017) proposed a technique that integrates batches of accelerometer and gyroscope measurements and forms a single, pre-integrated factor from a batch of measurements from a sensor. Tang et al. (2022) refined the pre-integration approach by incorporating the effects of the Earth’s rotation on the expected accelerometer and gyroscope measurements with significant improvement in the estimated position and attitude. Although this approach substantially reduces the computational complexity of incorporating IMU measurements, the pre-integrated inertial factors are still linked to a discrete-time representation of the state, which presents a challenge when incorporating additional, asynchronous sensors.2 This challenge is alleviated by continuous-time estimation with spline-based factor graphs, which have been successfully applied for combining inertial measurements with measurements from event-based cameras (Mueggler et al., 2015), lidar (Lv et al., 2021), and rolling-shutter cameras (Patron-Perez et al., 2015). However, spline-based factor formulations in the literature that incorporate inertial measurements use measurement models that do not account for the Earth’s rotation:

ha(t)=Rw,t(p¨wgw)+ba8

hg(t)=(Rw,tR˙w,t)+bg9

Here, for the accelerometer model, ha (t) is the expected accelerometer measurement, Rw,t is the attitude from the SO(3) spline, p¨w is the second derivative of the position in the world frame, gw is the gravity vector in the world frame, and ba is the estimated bias on the accelerometer, all at time t. For the gyroscope model, hg (t) is the expected gyroscope measurement, R˙w,t is the first derivative of the attitude matrix, and bg is the estimated bias of the gyroscope, all at time t. The “vee” operator v is the operation that converts a skew-symmetric matrix to the corresponding vector in ℝ3, as described by Blanco (2010). This coarse inertial measurement model neglects the rotation of the Earth and is used in the literature for spline-based factor-graph approaches (Hug et al., 2022; Lv et al., 2021; Ng et al., 2021; Patron-Perez et al., 2015).

3 SPLINE-BASED FACTOR GRAPH FOR HIGH-GRADE INERTIAL SENSORS

This paper develops an approach for including a high-precision inertial model in a spline-based factor graph. Building on previously published approaches, the model presented in this paper refines the precision by introducing terms to the accelerometer and gyroscope measurement models that account for the effects of the Earth’s rotation. The proposed inertial measurement and bias factors are incorporated into a factor graph, along with supplementary prior factors and altitude measurement factors for proper initialization and stability. Each of these factors are defined, and then, two potential spline-based trajectory representations are discussed. Figure 3 provides a graphical depiction of the proposed implementation.

FIGURE 3

In this depiction of the proposed approach, the circles with xi represent control point and sensor bias state estimates at spline knot time i, and the blocks represent factors, including a prior factor (magenta), inertial measurement factors (cyan), and bias transition factors (yellow).

3.1 High-Precision Inertial Factors

The accelerometer and gyroscope measurement models are as follows:

ha(t)=(Re,wRw,t)(Re,wp¨w+2ωe,ei×(Re,wp˙w)ge)+ba10

hg(t)=((Re,wRw,t)(Re,wR˙w,t))+(Re,wRw,t)ωe,ei+bg11

where Rw,t is the estimated attitude represented as a rotation matrix from the body frame (at time t) to the local w-frame, pw is the estimated position in the w-frame dictated by the position spline control points, Re,w is the rotation matrix from the w-frame to the Earth-centered, Earth-fixed (ECEF) frame, ωe,ei is the rotation rate of the ECEF frame relative to the inertial frame (represented in the ECEF frame), and ge is the expected gravity vector in the ECEF frame, given the position estimate. The terms ba and bg represent the accelerometer and gyroscope bias terms, respectively. The term 2ωe,ei×(Re,wp˙w) in Equation (10) models the Coriolis acceleration due to the rotation of the Earth, and the term (Re,wRw,t)ωe,ei in Equation (11) models the rotation of the w-frame relative to the inertial frame. By applying the properties of SO(3) matrices such that Rb,aRb,a=I3 as well as Ra,b(v×w)=Ra,bv×Ra,bw,we can simplify Equations (10) and (11) as follows:

ha(t)=Rw,t(p¨w+2ωw,ei×p˙wgw)+ba12

hg(t)=(Rw,tR˙w,t)+Rw,tωw,ei+bg13

where ωw,ei=Re,wωe,ei is the rotation of the ECEF frame relative to the inertial frame represented in the local w-frame and gw is the modeled gravity vector at the current position estimate represented in the w-frame. Incorporating these measurement models into a factor-graph optimization framework also requires the Jacobian matrices of ha (t) and hg (t) relative to changes in the state estimates, specifically updates applied to the relevant control points and bias estimates for time t. These Jacobian matrices are a key contribution of this paper; for readability, they are derived and provided in Appendix B for Equation (12) and in Appendix C for Equation (13). The costs associated with each accelerometer and gyroscope measurement are then as follows:

ea=za,tha(t)a14

eg=zg,thg(t)g15

where za,t is the accelerometer measurement and zg,t is the gyroscope measurement at time t. The covariance matrices Σa and Σg are the discretized accelerometer and gyroscope sensor noise covariance matrices, respectively. The noise on the bias states, ba and bg, is modeled as first-order Gauss–Markov noise such that, for sensor s, we have the following:

bs,t+Δt=bs,texp(Δtτs)+ηb,s,ηb,sN(03,b,s)16

where bs,t is the bias of sensor s at time t, τs is the time correlation constant associated with the sensor’s bias, and Σb,s is the discretized bias instability noise covariance of the sensor, as thoroughly described by Brody et al. (2023). This bias noise model results in the corresponding cost function for two successive estimated bias states:

eb,s=bs,t2bs,t1exp(t2t1τs)b,s17

This cost function, along with its Jacobian matrices, forms a bias-transition factor that relates successive bias estimates of the accelerometer or gyroscope in the factor graph.

3.2 Supplementary Factors

In addition to the refined inertial measurement factors, this paper also includes prior factors and an altimeter factor in the factor-graph implementation. The prior factors are necessary for proper initialization of the inertial-based coasting, and the altimeter factor is included to account for the instability of the vertical channel in inertial navigation (Titterton & Weston, 2004). The implementation includes prior factors for the initial position, velocity, and attitude with the following associated cost functions:

ep=pw,priorpw,0p18

eν=p˙w,priorp˙w,0v19

eR=log(Rw,priorRw,0)R20

where pw, prior is the a priori expectation of the position, pw,0 is the estimated position in the w-frame, p˙w,prior is the a priori expectation of the velocity, p˙w,0 is the estimated velocity vector, Rw, prior is the a priori expectation of the attitude represented as an SO(3) matrix, and Rw,0 is the estimated attitude as a rotation matrix, all at time t = 0. The covariance matrices p,v, and ΣR are the covariances of the prior position, velocity, and attitude, respectively. For the altimeter factors, the associated cost is as follows:

eh=zh,tpw,t,zσh221

where zh,t is the measured altitude converted to a displacement from the origin of the local w-frame and pw,t,z is the third component of the position vector from the estimated spline, both at time t when the measurement was sampled. σh2 is the scalar variance of the altimeter measurements.

3.3 State Representation

This work compares two potential spline-based trajectory representations: (1) a split representation composed of cubic B-splines in SO(3) and ℝ3 and (2) a unified cubic B-spline in SE(3). For the split-spline representation, the position is represented by a cubic B-spline in ℝ3 following the formulation in Equation (4), where the position sampled at time t on the spline is the position of the platform in the local tangent w-frame, pw,t.The attitude is represented by a cubic B-spline in SO(3) following the formulation in Equation (5), where the attitude sampled at time t on the spline is the rotation Rw,t from the platform’s body frame to the w-frame at time t. In the case of the unified spline, the control points in Equation (5) are matrices Tw,iSE(3), rather than rotation matrices in SO(3). The result of sampling from the spline at time t is then the transformation matrix from the platform’s body frame to the w-frame at time t, Tw,t. A matrix Tw,t in SE(3) is composed of the attitude Rw,t and position pw,t as follows:

Tw,t=[Rw,tpw,t031]22

For either trajectory representation, the splines are formed with a sufficient number of evenly spaced control points to define the trajectory across the range of measurement times, defining n intervals with n + 3 control points. For each of the n spline intervals, there is also an accelerometer bias state ba as well as a gyroscope bias state bg. These sensor biases are assumed to be constant over the interval and are not smoothed by a spline; this assumption is safer (though still not perfectly valid) in the case of high-grade IMUs, which have low bias instability relative to a knot interval.

4 SIMULATED EVALUATION OF THE PROPOSED FACTOR GRAPH

This section evaluates the approach proposed in Section 3 using simulated data sets. This evaluation is divided into two comparisons. First, the proposed approach with the refined inertial measurement models in Equations (12) and (13) is compared against an approach using the coarse inertial models in Equations (8) and (9), which are found in the literature for spline-based factor graphs. Second, two potential trajectory representations—a split spline in SO(3) × ℝ3 and a unified spline in SE(3)—are compared for use in the proposed approach with the refined measurement models. These evaluations are designed to explore the incorporation of high-grade inertial sensors in a spline-based factor graph. While these evaluations are performed in the context of inertial coasting, the intent is to demonstrate an effective approach for incorporating high-grade inertial sensors into a multi-sensor solution, especially for applications that require periods of inertial coasting.

4.1 Comparison of Precise and Coarse Inertial Models

The factor-graph implementation described in Section 3 was applied to simulated measurements from three IMUs along two paths. For comparison, the same factor-graph implementation, except with the coarse measurement models in Equations (8) and (9), was also applied to each IMU and path. For both the precise and the coarse measurement model implementations, the trajectory was represented by a split spline in SO(3) × ℝ3.

4.1.1 Simulated Data Set

To evaluate the benefit of including the effects of the Earth’s rotation in the inertial measurement models in a spline-based factor graph, we generated a data set including simulated measurements from three different grades of IMUs along two paths: a realistic, 4-min figure-eight loop (Figure 4) and a 1-min randomly generated path (Figure 5).

FIGURE 4

The figure-eight path is represented in an NED tangent frame, designated the w-frame, centered at 39.76˚ N, 84.19˚, and an altitude of 226 m HAE. (a) True pw over time, (b) True w over time, (c) True roll, pitch, and yaw over time.

FIGURE 5

The randomly generated path is represented in an NED tangent frame, designated the w-frame, centered at 52.477˚ S, 6.595˚ W, and an altitude of 920.54 m HAE. (a) True pw over time, (b) True w over time, (c) True roll, pitch, and yaw over time.

This paper evaluates the proposed approach using simulated measurements from an industrial-grade, a tactical-grade, and a navigation-grade IMU, where “industrial” is the least precise and “navigation” is the most precise of these three grades. This evaluation was accomplished by first generating ideal, noiseless accelerometer and gyroscope measurements along the known, true paths using the Python library “inu” (Woodburn, 2023b). Then, we generated the simulated measurements for each sensor by adding noise to the ideal measurements in accord with the sensor’s noise parameters. Random walk noise was modeled as white noise on the individual accelerometer and gyroscope measurements, and bias instability noise was modeled as a first-order Gauss-Markov process. The noise ns,k for a sensor s added to the ideal measurement at sample k is as follows:

ns,k=nrw,k+nb,k23

nrw,k=νk:νkN(0,σrw,s2/T)24

nb,k={η0k=0eTτsηk1+ηkk>0:ηk(0,σb,s2(1e2Tτs))25

Here, Equations (24) and (25) model the random walk noise and bias instability, respectively, whereas T is the sample period for the IMU (Hiatt & Taylor, 2022; Woodburn, 2023a). The noise parameters for each IMU were drawn from the models reported by Brody et al. (2023), who derived these models from manufacturer specifications and verified their consistency with expected drift and random walk behavior in simulation. These parameters are listed in Table 1.

View this table:
TABLE 1

Accelerometer and Gyroscope Parameters

The accelerometer and gyroscope noise parameters assessed by Brody et al. (2023) were used to simulate noisy measurements from three different IMUs. These noise values are discretized and included within the factor graph in accord with the described measurement models.

With this approach, measurements from each of the three IMUs were simulated along a 4-min figure-eight path (Figure 4) and a 1-min random path (Figure 5). This random path was generated to confirm that the results along the more-realistic figure-eight path were not an artifact of that path’s particular geometry. For each path, the local w-frame was selected as a tangent, north–east–down (NED) frame at the platform’s starting latitude, longitude, and height above ellipsoid (HAE). The random path was built starting at the origin of the w-frame by generating a cubic B-spline in SE(3) with random control points. The first control point of the spline, Tw,0, was set as the identity matrix I4. Then, each following control point was generated by iteratively applying a random exponential update vector, such that Tw,i+1=Tw,iExp(ϵi). This approach resulted in the random path shown in Figure 5. For each path and each IMU, the spline trajectory and bias states are estimated via two factor graphs: one with the precise measurement models in Equations (12) and (13) and another with the coarse measurement models found in Equations (8) and (9), which are also the models employed in the literature for spline-based factor graphs. The resulting position, velocity, and attitude estimates are compared with the true values.

4.1.2 Comparison of Inertial Model Results

The estimated positions, velocities, and attitudes were compared against the true values along the two paths. Including the effects of the Earth’s rotation significantly impacted the accuracy of the position, velocity, and attitude estimates for the industrial-, tactical-, and navigation-grade IMUs. The estimated position and velocity errors along the figure-eight path are shown in Figure 6, and the estimated position and velocity errors along the randomly generated path are shown in Figure 7. The position and velocity errors at each time t are calculated as the L2-norm of the difference between the true and estimated position and velocity vectors, respectively, at that time.

FIGURE 6

Position (pw) and velocity (w) errors of the estimated pose when using the coarse and precise models of measurements from each IMU along the figure-eight path (a) pw error, (b) w error.

The position (velocity) errors at time t are calculated here as the L2-norm of the difference between the true position (velocity) vector and the estimated position (velocity) vector at time t.

FIGURE 7

Position (pw) and velocity (w) errors of the estimated pose when using the coarse and precise models of measurements from each IMU on a randomly generated path (a) pw error, (b) w error.

The position (velocity) errors at time t are calculated here as the L2-norm of the difference between the true position (velocity) vector and the estimated position (velocity) vector at time t.

The simulated scenario along the figure-eight path is analogous to 4 min of coasting with inertial measurements, stabilized by low-precision altimeter measurements. After 4 min of coasting along the figure-eight path, the position and velocity estimate errors obtained when using the refined measurement model outperformed coasting with a coarse measurement model by orders of magnitude, as shown in Figure 6. Applying a coarse model that does not account for the Earth’s rotation inhibited the ability of the factor-graph optimization framework to make full use of the sensors’ precision.

After 1 min of coasting along the randomly generated path, the precise measurement model resulted in submeter position error for the navigation-grade IMU, a position error on the order of tens of meters for the tactical-grade IMU, and a position error of hundreds of meters for the industrial-grade IMU. The estimated velocity errors after 1 min of coasting spanned from centimeters per second for the navigation-grade IMU to one meter per second for the industrial-grade IMU. As with the figure-eight path, the factor-graph implementation with the proposed precise measurement models significantly outperformed the factor-graph implementation with coarse measurement models in position and velocity estimation.

The final attitude errors after 4 min of coasting on the figure-eight path are shown in Table 2, and the final attitude errors after 1 min along the randomly generated path are given in Table 3. These tables provide the absolute values of the errors of the estimated attitude at the final time step. The substantial errors in attitude estimates for the coarse measurement models explain some of the dramatic position and velocity errors. A slight error in attitude can result in a misattribution of the sensed specific force of gravity, resulting in erroneous implied acceleration. This effect grows as coasting time increases, leading to the large position and velocity errors observed for the coarse measurement models.

View this table:
TABLE 2 Attitude Errors After 4 Min of Coasting Along the Figure-Eight Path with (a) Coarse and (b) Precise Inertial Measurement Models These values are the absolute value of the roll, pitch, and yaw errors of the attitude estimate at the final time in the data set.
View this table:
TABLE 3

Attitude Errors After 1 Min of Coasting Along the Randomly Generated Path with (a) Coarse and (b) Precise Inertial Measurement Models These values are the absolute value of the roll, pitch, and yaw errors of the attitude estimate at the final time in the data set.

Further analysis of the detrimental effects of the coarse measurement models depends on an understanding of the optimization mechanics. Within the nonlinear WLS problem, measurement errors are weighted according to the inverse of the corresponding measurement covariances, such that low-variance measurements have a larger weight. In the implementation with coarse measurement models, the slight error due to the neglected terms is amplified according to the expected precision of the sensor. Thus, the errors due to the excluded terms are amplified in high-grade IMUs, which would have a particularly low variance for the noise on the accelerometer and gyroscope measurements. Because each of the selected IMUs have sufficient precision to detect the neglected terms, excluding these terms results in a misalignment between the factor graph’s sensor model and the sensor measurements. This misalignment is significant enough to inhibit coasting with the coarse inertial measurement models.

4.2 Comparison of Split-Spline and Unified-Spline Trajectory Representations

When using B-splines over a Lie group to represent the trajectory, two potential options for representing the full pose are a split spline in SO(3) × ℝ3 and a unified spline in SE(3). Both representations are used in the literature (Lv et al., 2021; Patron-Perez et al., 2015; C. Sommer et al., 2020), and this analysis will compare the two representations in the context of high-grade inertial navigation. The unified-spline representation from Patron-Perez et al. (2015) may offer benefits in precision in some path geometries owing to the coupling of rotation and translation; however, this representation is expected to be computationally more expensive than the split-spline representation. While closed-form expressions are available for the exp(‧) and log(‧) operations for SE(3), they are significantly more complex than the closed-form expressions for the same operations for SO(3). In a split-spline representation, the simpler SO(3) operations are paired with the linear operations of Equation (4) for the position spline, which is expected to require less computation for optimization than the unified spline. Furthermore, for raw inertial factors, the Jacobian of the second time derivative of position (acceleration) with respect to the spline control points is required, whereas the Jacobian of the second time derivative of attitude (angular acceleration) is not required, as shown in Equations (12) and (13). In the split-spline case, this Jacobian can be obtained efficiently, as acceleration depends linearly on the position spline. In contrast, a unified spline requires differentiation of the second time derivative of the full SE(3) pose, which introduces additional computational cost due to nonlinear exponential and logarithmic operations. The concern in this comparison is whether this benefit of reduced computational complexity comes at the cost of accuracy in the context of inertial navigation with high-grade sensors. Thus, the following analysis provides a brief comparison of the two representations applied to navigation with high-grade inertial sensors. The two trajectory representations are compared based on position errors after 60 s of inertial navigation using the approach described in Section 3.

The data set for the trajectory representation comparison was comprised of 100 Monte Carlo iterations of simulated measurements on a 1-min randomly generated path for each of the three selected sensors. For each sensor on each iteration, two factor-graph implementations were separately applied to estimate the trajectory— an implementation with a split-spline representation in SO(3) × ℝ3 and an implementation with an SE(3) spline representation. Both implementations used the precise measurement models in Equations (12) and (13).

Because, for each iteration and sensor, the two trajectory representations are tested on the same simulated noisy measurements, the resulting position errors form paired samples. In this case, the paired differences were distinctly non-normal, violating an assumption of the common paired t-test. The Wilcoxon signed-rank test is a nonparametric test that can be applied to non-normal, symmetrically distributed paired differences. When applied to the paired differences of 1-min position estimate errors from the SE(3) and SO(3) × ℝ3 spline approaches at α =0.05, the Wilcoxon signed-rank test failed to reject the null hypothesis that the median difference in the position errors between the two implementations is zero. While no statistically significant median difference between the errors of the two approaches was found, the 60-s position estimate errors obtained by using an SE(3) spline had a higher maximum for each of the three sensor grades, as shown in Figure 8. The violin plots in this figure also portray the distribution of 60-s position errors from the 100 iterations for each sensor grade.

FIGURE 8

Position errors after 60 s of inertial coasting obtained from 100 Monte Carlo runs of randomly generated noise from each sensor (a) Navigation grade, (b) Tactical grade, (c) Industrial grade.

For each Monte Carlo iteration and each sensor, the trajectory is estimated via factor-graph optimization with two trajectory representations: a single spline in SE(3) and a split spline in SO(3) × ℝ3. For each trajectory representation in these violin plots, the width of the shape corresponds to the frequency of a given magnitude of position error, and the horizontal lines mark the maximum, median, and minimum of the errors.

While the split spline in SO(3) × ℝ3 and single spline in SE(3) trajectory representations were comparable in estimation accuracy for the randomly generated scenarios, the SE(3) trajectory implementation required a substantially higher computational load. For 60 s of simulated measurement data, factor-graph optimization of the SO(3) × ℝ3 implementation required an average of 3.78 s per Gauss-Newton iteration, whereas optimization of the SE(3) implementation required an average of 9.85 s per Gauss-Newton iteration. These experiments were conducted on an Intel i7-13700F central processing unit with 16 GB of random-access memory. A significant portion of the Python code was “just-in-time”-compiled using Numba; the compilation was single-threaded, and no graphics processing unit acceleration was used. Although the runtimes are suboptimal compared with optimized and fully compiled code, the relative computational load between the two approaches should be representative, as both spline-based factor-graph approaches were implemented analogously.

5 CONCLUSION

Using a simulated data set including three IMUs and two paths, this paper has demonstrated the improved position, velocity, and attitude accuracy offered by the presented inertial measurement models when compared with the coarse inertial measurement models reported in the published literature for spline-based, factor-graph implementations. Notably, the estimated positions and velocities after 60 s of coasting consistently improved by an order of magnitude after the coarse measurement factors were replaced with the precise measurement factors on both paths. The necessary components for incorporating these precise measurement models into a continuous-time, factor-graph implementation are provided in Section 3 and in further depth in the appendices. The coarse inertial measurement models employed in previously published spline-based, factor-graph implementations may be sufficient in applications that integrate low-grade IMUs with visual or GNSS sensors, which would constrain the absolute position error. In contrast, the approach presented here for high-precision inertial measurement models provides significant benefits for multi-sensor, spline-based factor-graph applications that incorporate high-grade IMUs, particularly in scenarios that include periods of inertial coasting. Additionally, an SE(3) spline trajectory representation and an SO(3) × ℝ3 split-spline trajectory representation were compared in the context of the proposed approach through Monte Carlo iterations with simulated noisy data. No significant difference in estimation accuracy was demonstrated, although optimizing the SE(3) spline implementation required significantly more time. The three primary contributions of this work are (1) high-precision sensor models of inertial measurements and the necessary components for inclusion in a continuous-time, factor-graph formulation, (2) a comparative study through a simulated data set of two paths and three IMUs to evaluate the proposed models against an approach in the published literature for including inertial sensors in a spline-based factor graph, and (3) a comparison between an SE(3) spline and an SO(3) × ℝ3 split-spline trajectory representation in the context of navigation with high-grade inertial sensors.

As the results presented in this paper are based entirely on simulated IMU measurements using the parameters verified by Brody et al. (2023), several limitations should be noted when considering real-world deployment. In practice, the performance of high-grade IMUs may degrade owing to environmental factors such as mechanical vibrations, temperature variations, magnetic interference, and other operational stresses that are not captured in idealized simulations. Additionally, real sensors may exhibit time-varying bias characteristics or other nonlinear behaviors not fully modeled here. All simulations were conducted with a fixed 100-Hz sampling rate; although higher sampling rates would not alter the mathematical framework of the proposed approach, they would increase the number of IMU factors per spline interval, resulting in design matrices with more rows in the factor-graph optimization. However, because the number of estimated states, and therefore the number of columns, remains unchanged, the primary determinant of computational cost—scaling roughly with the square of the number of columns in this context—is not affected (Trefethen & Bau, 2022). Importantly, while these real-world factors may degrade the absolute estimation performance compared with idealized simulations, the relative benefit of the proposed high-precision inertial measurement models over coarse inertial models in spline-based factor graphs should remain. Future work could validate the proposed approach on experimental IMU data sets and investigate the integration of asynchronous sensors with the proposed approach.

HOW TO CITE THIS ARTICLE:

Leland, K., Taylor, C., Woodburn, D., & Beard, R. (2026). Spline-based factor-graph optimization with high-grade inertial sensors. NAVIGATION, 73. https://doi.org/10.33012/navi.742

A | JACOBIANS OF UPDATES TO SPLINE CONTROL POINTS IN A LIE GROUP

This section provides expressions for the Jacobian matrices of the estimated pose and time derivatives of the pose with respect to incremental updates to the control points for a cubic B-spline in SO(3) with evenly spaced knots. With a vector ϵi𝔰𝔬(3), control point Rw,i is updated via a retraction on the SO(3) manifold such that Rw,iRw,iexp(ϵi). The derivative Rw,iϵi,j is then a (3 × 3) matrix, where each element on the k-th row and l-th column of the matrix is the derivative of the element Rw,i,(k,l) with respect to the j-th element of the update vector єi. The analytic expression of this matrix has been given by Blanco (2010). Finding the Jacobian matrices for the spline control points also requires the derivatives Ωexp(Ω) and Rlog(R); analytic, closed-form expressions of these derivatives have been provided by Blanco (2010). The Jacobian matrices with respect to updates to control points of a cubic B-spline in SE(3) may be evaluated with the same expressions presented here, although the closed-form expressions for the corresponding exponential and logarithmic operations for SE(3) would need to be substituted. These expressions have also been provided by Blanco (2010).

A.1 Prerequisite Derivatives

The expression given in Equation (5) for calculating the pose at a given time on the spline includes the skew-symmetric matrix representing the rotation between successive control points, Ωi,j = log(Ri,wRw,j). Thus, calculating the Jacobian matrices for updates to the control points requires the derivative of each Ωi,j with respect to updates to both Rw,i and Rw,j. The chain rule for scalar derivatives can be generalized to matrix derivatives via Einstein notation, where, for example, the expression (M)ab = (N)abcd (O)cd denotes that the entries of M are mab=cdnabcdocd. In this expression, M, N, and O are tensors in which the dimensions of M are denoted by a and b, the dimensions of N are denoted by a, b, c, and d, and the dimensions of O are denoted by c and d. Now, the derivative of the matrix Ωi,j with respect to the k-th element for applying the update vector єj to control point Rw,j can be expressed as follows:

(Ωi,jϵj,k)ab=(log(Ri,wRw,j)(Ri,wRw,j))abcd(Ri,wRw,jϵj,k)cd26

where Ωi,jϵj,k3×3,log(R)(R)(3×3)×(3×3), and Rw,jϵj,k3×3. Similarly, the derivative of the matrix Ωi,j with respect to the k-th element for applying the update vector єi to control point Rw,i can be expressed as follows:

(Ωi,jϵi,k)ab=(log(Ri,wRw,j)(Ri,wRw,j))abcd(((Ri,wRw,i)cdef(Rw,iϵi,k)ef)Rw,j)cd27

where Ωi,jϵi,k3×3,log(R)(R)(3×3)×(3×3),R1R3×3, and Rw,iϵi,k3×3. As a property of SO(3) matrices, Ri,w=(Rw,i)1=(Rw,i). (For SE(3) matrices, Ti,w = (Tw,i)–1.) The expression for the pose at a given time includes exp(B˜jΩi,j), where the scalar B˜j is the j-th element of B at that time, as defined in Equation (5). The derivative of exp(B˜jΩi,j) with respect to the k-th element for applying the update vector єj to control point Rw,j can be expressed as follows:

(exp(B˜jΩi,j)ϵj,k)ab=B˜j(exp(B˜jΩi,j)(B˜jΩi,j))abcd(Ωi,jϵj,k)cd28

where exp(B˜jΩi,j)ϵj,k3×3. Similarly, the derivative of exp(B˜jΩi,j) with respect to the k-th element for applying the update vector єj to control point Rw,j can be expressed as follows:

(exp(B˜jΩi,j)ϵi,k)ab=B˜j(exp(B˜jΩi,j)(B˜jΩi,j))abcd(Ωi,jϵi,k)cd29

where exp(B˜jΩi,j)ϵj,k3×3. Now, expressions have been presented for all of the prerequisite derivatives for expressing the derivative of a pose on the spline with respect to exponential updates to each of the control points.

A.2 Derivative of the Attitude on the Spline With Respect to Updates to the Control Points

For the attitude Rw,t at time t on the spline, the following expressions give the derivatives of the pose with respect to exponential updates to each of the control points dictating the spline on the interval tit < ti+1:

Rw,tϵi1,j=Rw,i1ϵi1,jexp(B˜1Ωi1,i)exp(B˜2Ωi,i+1)exp(B˜3Ωi+1,i+2)+Rw,i1(ϵi1,jexp(B˜1Ωi1,i))exp(B˜2Ωi,i+1)exp(B˜3Ωi+1,i+2)30

Rw,tϵi,j=Rw,i1(ϵi,jexp(B˜1Ωi1,i))exp(B˜2Ωi,i+1)exp(B˜3Ωi+1,i+2)+Rw,i1exp(B˜1Ωi1,i)(ϵi,jexp(B˜2Ωi,i+1))exp(B˜3Ωi+1,i+2)31

Rw,tϵi+1,j=Rw,i1exp(B˜1Ωi1,i)(ϵi+1,jexp(B˜2Ωi,i+1))exp(B˜3Ωi+1,i+2)+Rw,i1exp(B˜1Ωi1,i)exp(B˜2Ωi,i+1)(ϵi+1,jexp(B˜3Ωi+1,i+2))32

Rw,tϵi+2,j=Rw,i1exp(B˜1Ωi1,i)exp(B˜2Ωi.i+1)(ϵi+2,jexp(B˜3Ωi+1,i+2))33

These expressions arise from applying the product rule to the expression for the pose along the spline in Equation (5). For optimization with accelerometer and gyroscope measurements, the derivatives of the first and second time derivatives of the pose on the spline are also necessary. These derivatives are found by applying the product rule in the same manner to Equations (6) and (7) to find R˙w,tϵj,k and R¨w,tϵj,k respectively.

B | JACOBIANS OF THE ACCELEROMETER MEASUREMENT MODEL

This section provides expressions for the Jacobian matrices of the residual errors in Equation (12). With a split-spline representation in SO(3) × ℝ3, the Jacobian matrix of the residual errors in Equation (12) with respect to index k of an exponential update vector applied to the SO(3) control point Rw,j is as follows:

ϵj,kha(t)=Rw,tϵj,k(p¨w+2ωw,ei×p˙wgw)+Rw,t(p¨wϵj,k+p˙wϵj,k)34

For this, we must first calculate Rw,tϵj, the Jacobian of the transpose of the attitude sampled on the spline at time t with respect to an exponential update applied to Rw,j. The Jacobian of the residual errors in Equation (12) with respect to index k of an ℝ3 update vector added to position control point pj is as follows:

ϵj,kha(t)=Rw,t(p¨wϵj,k+p˙wϵj,k)35

This step requires first calculating p¨wϵj, the Jacobian of the second time derivative of the position on the spline at time t with respect to an update vector applied to control point pj, and p˙wϵj, the Jacobian of the first time derivative of the position on the spline at time t with respect to an update vector applied to control point pj . For a trajectory represented by a spline in SE(3) and with the derivatives of the pose and time derivatives of the pose along the spline at time t with respect to index k of an exponential update vector applied to control point j, the Jacobian of the high-precision accelerometer measurement model is as follows:

ϵj,kha(t)=Rw,tϵj,k(p¨w+2ωw,ei×p˙wgw)+Rw,t(p¨wϵj,k+p˙wϵj,k)36

where ϵj,kha(t)3,Rw,tϵj,k3×3 is the upper-left 3 × 3 submatrix of Tw,tϵj,k,p¨w,tϵj,k3 is composed of the first three rows of the last column of T¨w,tϵj,k (i.e., the indices of the acceleration vector), and p¨w,tϵj,k3 is composed of first three rows of the last column of T˙w,tϵj,k (i.e., the indices of the velocity vector). The Jacobian matrix of the expected accelerometer measurement with respect to updates to the estimated accelerometer bias state, ba, is simply the I3 matrix.

C | JACOBIANS OF THE GYROSCOPE MEASUREMENT MODEL

This section provides expressions for the Jacobian matrices of the residual errors in Equation (13). With a split-spline representation in SO(3) × ℝ3, the Jacobian matrix of the residual errors in Equation (13) with respect to index k of an exponential update vector applied to SO(3) control point Rw,j is as follows:

ϵj,khg(t)=(Rw,tϵj,kR˙w,t+Rw,tR˙w,tϵj,k)+Rw,tϵj,kωb,ei37

For this, we must first calculate Rw,tϵj, the Jacobian of the transpose of the attitude sampled on the spline at time t with respect to an exponential update applied to Rw,j, and R˙w,tϵj, the Jacobian of the first time derivative of the attitude sampled on the spline at time t with respect to an exponential update applied to Rw,j. For a trajectory represented by a spline in SE(3) and with the derivatives of the pose and first time derivative of the pose along the spline at time t with respect to index k of an exponential update vector applied to control point j, the Jacobian of the high-precision gyroscope measurement model is as follows:

ϵj,khg(t)=(Rw,tϵj,kR˙w,t+Rw,tR˙w,tϵj,k)+Rw,tϵj,kωb,ei38

where ϵj,khg(t)3,Rw,tϵj,k3×3, is the upper-left submatrix of Tw,tϵj,k, and R˙w,tϵj,k3×3 is the upper-left submatrix of T˙w,tϵj,k. The Jacobian matrix of the expected gyroscope measurement with respect to updates to the estimated gyroscope bias state, bg, is the I3 matrix.

D | SOFTWARE

The approaches in this paper were developed in Python 3.10.5. The implementation and evaluation depend on the following publicly available Python libraries: r3f 2.0.14, SciPy 1.8.1, NumPy 1.21.6, Matplotlib 3.5.2, pandas 1.4.3, and Numba 0.61.0. The r3f library is for reference frame rotations. SciPy’s “sparse” library was used for iteratively forming and solving the associated linearized least-squares problems. NumPy, Matplotlib, and pandas were used for quotidian utilities in implementation and evaluation. Numba was used for “just-in-time” compiling to expedite run times. Code to implement the approach and evaluations described in this paper can be found in the GitHub repository: https://github.com/kaleland/spline-based-factor-graph-optimization-with-high-grade-inertial-sensors/tree/main.

Footnotes

  • 1 The two trajectory representations relevant to this paper are (1) a split representation in SO(3) × ℝ3, which includes a spline in the Lie group SO(3) to represent attitude and a spline in ℝ3 to represent position, and (2) a unified spline in SE(3) that represents both attitude and position. We postpone a comparison of these approaches to Section 4.

  • 2 A comparison between pre-integrated inertial measurements and raw inertial measurements in a spline-based factor graph would be valuable, but is beyond the scope of this work.

This is an open access article under the terms of the Creative Commons Attribution License, which permits use, distribution and reproduction in any medium, provided the original work is properly cited.

REFERENCES

  1. Anderson, S., Barfoot, T. D., Tong, C. H., & Särkkä, S. (2015). Batch nonlinear continuous-time trajectory estimation as exactly sparse Gaussian process regression. Autonomous Robots, 39(3), 221238. https://doi.org/10.1007/s10514-015-9455-y
  2. Blanco, J.-L. (2010). A tutorial on SE(3) transformation parameterizations and on-manifold optimization (tech. rep.). University of Malaga.
  3. Brody, J., Leung, S., Shamwell, J., & Donavanik, D. (2023). Sources of error in GPS-denied odometry (tech. rep.). U.S. Army Combat Capabilities Development Command.
  4. Cox, M. G. (1972). The numerical evaluation of B-splines. IMA Journal of Applied Mathematics, 10(2), 134149. https://doi.org/10.1093/imamat/10.2.134
  5. de Boor, C. (1978). A practical guide to splines (1st ed., Vol. 27). Springer-Verlag. https://link.springer.com/book/9780387953663#accessibility-information
  6. Dellaert, F., & Kaess, M. (2006). Square root SAM: Simultaneous localization and mapping via square root information smoothing. The International Journal of Robotics Research, 25(12), 11811203. https://doi.org/10.1177/0278364906072768
  7. Dennis, J. E., & Schnabel, R. B. (1996). Numerical methods for unconstrained optimization and nonlinear equations. SIAM.
  8. Forster, C., Carlone, L., Dellaert, F., & Scaramuzza, D. (2017). On-manifold preintegration for real-time visual–inertial odometry. IEEE Transactions on Robotics, 33(1), 121. https://doi.org/10.1109/tro.2016.2597321
  9. Furgale, P., Barfoot, T. D., & Sibley, G. (2012). Continuous-time batch estimation using temporal basis functions. 2012 IEEE International Conference on Robotics and Automation, 20882095. https://doi.org/10.1109/ICRA.2012.6225005
  10. Hiatt, J., & Taylor, C. N. (2022). A comparison of correlation-agnostic techniques for magnetic navigation. Proc. of the 2022 25th International Conference on Information Fusion (FUSION), 17. https://doi.org/10.23919/FUSION49751.2022.9841293
  11. Hug, D., Bänninger, P., Alzugaray, I., & Chli, M. (2022). Continuous-time stereo-inertial odometry. IEEE Robotics and Automation Letters, 7(3), 64556462. https://doi.org/10.1109/LRA.2022.3173705
  12. Kschischang, F., Frey, B., & Loeliger, H.-A. (2001). Factor graphs and the sum-product algorithm. IEEE Transactions on Information Theory, 47(2), 498519. https://doi.org/10.1109/18.910572
  13. Lv, J., Hu, K., Xu, J., Liu, Y., Ma, X., & Zuo, X. (2021). CLINS: Continuous-time trajectory estimation for LiDAR-inertial system. 2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 66576663. https://doi.org/10.1109/IROS51168.2021.9636676
  14. Marquardt, D. W. (1963). An algorithm for least-squares estimation of nonlinear parameters. Journal of the Society for Industrial and Applied Mathematics, 11(2), 431441.
  15. Mueggler, E., Gallego, G., & Scaramuzza, D. (2015). Continuous-time trajectory estimation for event-based vision sensors. Robotics: Science and Systems, 11, 3644. https://doi.org/10.15607/RSS.2015.XI.036
  16. Ng, Y. Z., Choi, B., Tan, R., & Heng, L. (2021). Continuous-time radar-inertial odometry for automotive radars. 2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 323330. https://doi.org/10.1109/IROS51168.2021.9636014
  17. Oth, L., Furgale, P., Kneip, L., & Siegwart, R. (2013). Rolling shutter camera calibration. 2013 IEEE Conference on Computer Vision and Pattern Recognition, 13601367. https://doi.org/10.1109/CVPR.2013.179
  18. Patron-Perez, A., Lovegrove, S., & Sibley, G. (2015). A spline-based trajectory representation for sensor fusion and rolling shutter cameras. International Journal of Computer Vision, 113. https://doi.org/10.1007/s11263-015-0811-3
  19. Qin, K. (1998). General matrix representations for B-splines. Proc. of the Pacific Graphics ‘98. Sixth Pacific Conference on Computer Graphics and Applications (Cat. No.98EX208), 3743. https://doi.org/10.1109/PCCGA.1998.731996
  20. Sommer, C., Usenko, V., Schubert, D., Demmel, N., & Cremers, D. (2020). Efficient derivative computation for cumulative B-splines on Lie groups. 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 1114511153. https://doi.org/10.1109/cvpr42600.2020.01116
  21. Sommer, H., Forbes, J. R., Siegwart, R., & Furgale, P. (2016). Continuous-time estimation of attitude using B-splines on Lie groups. Journal of Guidance, Control, and Dynamics, 39(2), 242261. https://doi.org/10.2514/1.G001149
  22. Tang, H., Zhang, T., Niu, X., Fan, J., & Liu, J. (2022). Impact of the earth rotation compensation on MEMS-IMU preintegration of factor graph optimization. IEEE Sensors Journal, 22(17), 1719417204. https://doi.org/10.1109/JSEN.2022.3192552
  23. Taylor, C., & Gross, J. (2024). Factor graphs for navigation applications: A tutorial. NAVIGATION, 71(3). https://doi.org/10.33012/navi.653
  24. Titterton, D., & Weston, J. (2004). Strapdown inertial navigation technology (2nd ed.). The Institution of Engineering; Technology. https://doi.org/10.1049/PBRA017E
  25. Trefethen, L. N., & Bau, D. (2022). Numerical linear algebra, twenty-fifth anniversary edition. Society for Industrial; Applied Mathematics. https://doi.org/10.1137/1.9781611977165
  26. Woodburn, D. (2023a). Inertial navigation [Unpublished manuscript, Air Force Institute of Technology].
  27. Woodburn, D. (2023b). INU: Inertial navigation utilities (version 1.0.8) [Version released November 22, 2023. Accessed January 2025].
Loading
Loading
Loading
Loading