Classic Literature Reading--Point-LIO (Robust High Bandwidth Laser Inertial Odometer)

0. Introduction

In the algorithms we have come into contact with before, it is basically necessary to deal with the inter-frame radar distortion, similar to the VSLAM system, the frequency is fixed (for example, 10Hz), but in fact, the lidar points are sampled according to the order of different time instants, and the Accumulating these points into frames introduces artificial motion distortion and can negatively impact map results and odometry accuracy. A low frame rate also increases the latency of the odometry and limits the achievable bandwidth, where the odometry bandwidth is analogous to the bandwidth of a dynamic system, i.e. the frequency at which the system gain drops to 0.707. The odometry bandwidth indicates how fast the motion can be before the odometry can satisfactorily estimate it. Mars Laboratories presented the article " Point-LIO: Robust High-Bandwidth LiDAR-Inertial Odometry ", Point-LIO can provide accurate high-frequency odometry under severe vibration and intense motion (up to 75 rad/s angular velocity) (4-8 kHz) and reliable mapping, beyond the range of IMU measurements.


1. Main contributions

In this work, we address these issues with two key new techniques: peer-to-peer state updates and stochastic process-augmented kinematics models. Specifically, our contributions are as follows:

  1. A point-wise LIO framework is proposed that fuses lidar points at actual sampling time without accumulating into frames. Removing point accumulation eliminates intra-frame motion artifacts and allows high odometry output and mapping updates at near point sampling rates, which further enables the system to track very fast motion.
  2. To further increase the system bandwidth beyond the IMU measurement range, the IMU measurement is modeled with a stochastic process model. Extend this model to system kinematics and consider IMU measurements as system outputs. Even when the IMU is saturated, the stochastic process-enhanced kinematics model can smoothly estimate the system state, including angular velocity and linear acceleration.
  3. Integrating these two key technologies into a fully tightly coupled LIO system is called Point-LIO. The system uses a manifold extended Kalman filter to update the system state by fusing each LiDAR point or IMU data at its respective sampling time. By exploiting the sparsity and linearity of the system, the developed system enables real-time state estimation even on a low-power ARM-based computer on a MAV.
  4. The developed system is tested on various challenging real-world data collected by emerging solid-state LiDARs with very small FoV. The results show that Point-LIO is capable of motion distortion compensation with high odometry output rate (4-8 kHz) and high bandwidth (>150Hz). The system is also able to estimate the state under extremely aggressive motion (angular velocity greater than 75 rad/s) by saturating the IMU measurements after the initial phase. Furthermore, an exhaustive benchmark comparison of 12 sequences from various publicly available LiDAR datasets shows that Point-LIO achieves consistently comparable accuracy and efficiency to other methods while consuming fewer computational resources. Finally a practical application on an actual drone is demonstrated.

2. Systematic review

The design concept of this article is based on the following two points:

1) Lidar points are sampled in their respective time order, not frames sampled at the same time;

2) IMU data is a measurement of the system, not an input.

Once the respective measurements (per lidar point or IMU data) are received, we fuse the two measurements in a manifold-based extended Kalman filtering framework [55]. An overview of the system we designed is shown in Figure 1, where sequentially sampled lidar points and IMU data are both used to update the state at their respective timestamps, enabling an extremely high rate of odometry output, i.e., effectively 4- 8 kHz. In particular, for each lidar point received, we search the map for the corresponding plane. If the point matches the plane fitted to the point in the map, the residual is computed to update the system state using a manifold-based Kalman filter. The final optimized pose registers lidar points to the global coordinate system and merges into the map, then proceeds to the next measurement (either lidar points or IMU data). Otherwise, if there is no matching plane for that point, the pose predicted by the Kalman filter is added directly to the map. To simultaneously enable fast planar correspondence search and allow the joining of new registration points, we use the incremental kd tree structure ikd-Tree, which was originally developed in FAST-LIO2 [29]. For each IMU measurement, a saturation check is done separately, and channels with saturation values ​​are not used for status updates.

insert image description here

Figure 1: Overview of the Point-LIO system. ⊕ means adding information.

3. Explanation of symbols

The state estimation of Point-LIO is a tightly coupled manifold-based Kalman filter. Here, we briefly introduce the basic formulation and workflow of the filter, and refer to [55] for a more detailed and theoretical explanation of the manifold-based Kalman filter.

For the convenience of explanation, we adopt the following notation:

insert image description here

Additionally, we introduce two wrapping operations ⊞ ⊞ ("boxplus") and its inverse⊊ ⊊ (“boxminus”), defined in [55], is used todescribeManifoldMM of nThe system on M , and in the Euclidean space R n \mathbb{R}^nRParameterized state error in n . At the same time, these operations can more compactly describe the state-space model of the system in discrete time. We refer to [55] for more detailed definitions and derivations. In this paper, we only focus on the manifoldSO ( 3 ) SO(3)SO ( 3 ) andR n \mathbb{R}^nRn

insert image description here

Among them, $Exp®= I + sin(∥r∥)\frac{|r|}{∥r∥} + (1 − cos(∥r∥))∕\frac{|r| 2}{ ∥r∥ 2} yes yesis an exponential map onSO(3)The exponential map on , and Logis its inverse map. For a composite manifold is its inverse map. For a compound manifoldis its inverse mapping. For a composite manifold M = SO(3) × \mathbb{R}^n, which is two submanifolds, it is two submanifolds, which are two submanifolds M = SO(3)$ andR n \mathbb{R}^nRCartesian product of n , we have:

insert image description here

4. Kinematic model

We first derive the system model, which consists of a state transition model and a measurement model.

4.1 State transition model (similar to Fast-LIO2)

Taking the IMU coordinate system (expressed as I) as the body coordinate system, and the first IMU coordinate system as the global coordinate system (expressed as G), the continuous kinematics model is:

insert image description here

Among them, GRI ^GR_IGRI G p I ^G p_I GpIG v I ^G v_IGvIIndicates the attitude, position and velocity of the IMU in the global coordinate system, G g ^G gG grepresents the gravity vector in the global coordinate system. bg b_gbgJapanese ba b_abais the random drift IMU bias driven by Gaussian noise, respectively nbg ∼ N ( 0 , Q bg ) n_{b_g} ∼ N(0, Q_{b_g} )nbgN(0,Qbg) n b a ∼ N ( 0 , Q b a ) n_{b_a} ∼ N(0, Q_{b_a} ) nbaN(0,Qba) . Symbol⌊a ⌋ ⌊a⌋a a ∈ R 3 a ∈ \mathbb{R}^3 aRThe antisymmetric cross-product matrix of 3 . I ω I_ωIohI a I_aIaIndicates the angular velocity and acceleration of the IMU in the body coordinate system, that is, the IMU coordinate system. As proposed in [14], some robot motion (angular velocity I ω I_ωIohand linear acceleration I a I_aIa) can always be viewed as a sample of a signal set or population, which allows us to statistically describe robot motion by stochastic processes. Furthermore, as suggested by [14], since the motion of robotic systems usually has some smoothness (e.g., due to actuator delays), rapid changes in angular velocity and acceleration are relatively unlikely, so an Nth order integrator stochastic process is often Enough for practical use. In particular, we choose the Gaussian noise wg ∼ N ( 0 , Q g ) w_g ∼ N(0, Q_g )wgN(0,Qg) w a ∼ N ( 0 , Q a ) w_a ∼ N(0, Q_a ) waN(0,Qa) driven first-order integrator model to simulate the angular velocityI ω I_ωIohand linear acceleration I a I_aIa

Then, at each measurement step kkDiscretize the continuous model at k (2). ∆tk∆t_ktkDenoted as the current measurement interval, it is the time difference between the previous measurement (IMU data or LiDAR point) and the current measurement (IMU data or LiDAR point). By assuming that the input is in the interval ∆tk ∆t_ktk, the continuous model (2) is discretized, resulting in

insert image description here

Among them, the manifold MMM , functionfff , statusxxx and process noisewww is defined as follows:

insert image description here

For example, Q = diag ( Q bg , Q ba , Q g , Q a ) Q = diag(Q_{b_g},Q_{b_a},Q_g,Q_a)Q=diag(QbgQbaQgQa) is the process noisewwThe covariance matrix of w .

4.2 Measurement model (emphasis)

The system has two measurements, a LiDAR point or an IMU data (including angular velocity and acceleration measurements). These two measurements are usually sampled and received by the system at different times, so we model them separately. Assuming that the LiDAR coordinate system coincides with the body (ie IMU) coordinate system or has pre-calibrated external parameters, then the LiDAR point I pmk ^Ip_{m_k}IpmkEqual to the real position I pkgt ^Ip^{gt}_k in the local IMU coordinate systemIpkgt, the position is unknown, subject to additive Gaussian noise n L k ∼ N ( 0 , RL k ) n_{L_k} ∼ N(0, R_{L_k})nLkN(0,RLk) pollution:

insert image description here

Use the real point with the real (but unknown) IMU pose GTI k = ( GRI k , G p I k ) ^GT_{Ik} = (^GR_{Ik}, ^Gp_{Ik})GTI k=(GRI kGpI k) projected into the global coordinate system, should lie exactly on a local facet patch in the map (see Figure 2), ie:

insert image description here

insert image description here

Figure 2: Schematic of direct registration of LiDAR points to a map. Blue represents a flat vector. G qi ^Gq_iGqisum ui u_iuiRepresents a point and normal in the map.


Among them, G uk ^Gu_kGukis the normal vector of the corresponding plane, G qk ^Gq_kGqkis any point on the plane. Note that GTI k ^G T_{I_k}GTIkContained in the state vector xk x_kxkmiddle. (6) For state vector xk x_kxkAn implicit measurement model is introduced.

The IMU measurement is determined by the angular velocity measurement ( I ω m ^Iω_mI ωm) and acceleration measurements ( I am ^Ia_mIam)composition:

insert image description here

ng ~ N (0, R g ), na ~ N (0, R a ) n_g ~ N (0, R_g), n_a ~ N (0, R_a)ngN(0,Rg)naN(0,Ra) equal high voice. nI = [ ng T na T ] T ∼ N ( 0 , RI ) = N ( 0 , diag ( R g , R a ) ) n_I = [n^T_g n^T_a]^T ∼ N (0, R_I ) = N (0, diag(R_g , R_a ))nI=[ngTnaT]TN(0,RI)=N(0,diag(Rg,Ra)) represents the measurement noise of the IMU. It can be seen that in the angular velocity measurementω m ω_mohm(or accelerometer aaa ), two statesω ωω b g b_g bg(and similarly aaa b a b_a ba) were separated in the equation of state (2), but are now correlated.

In summary, the measurement model of the system can be expressed in the following compact form:

insert image description here

5. Extended Kalman filter

Point Cloud - Laser Inertial Navigation System uses tightly coupled Extended Kalman Filter for state estimation. This section introduces the workflow of EKF.

5.1 State Propagation

Suppose we have received kkA measurement at k steps, and the updated state at that time step isx ˉk x̄_kxˉk, the updated covariance matrix is ​​P ˉ k P̄_kPˉk. from the kkk steps to the next measurement stepk+1 k+1k+The state propagation of 1 directly follows the state transition model in Equation (3), wherewk w_kwkset to 0:

insert image description here

The propagation of the covariance matrix is:

insert image description here

where Q k Q_kQkis the process noise wk w_kwkThe covariance of the matrix F xk F_{x_k}Fxk F w k F_{w_k} FwkCalculated as follows:

insert image description here

where xk + 1 x_{k+1}xk+1is time step k + 1 k+1k+The truth value of the state vector of 1 , F 11 = E xp ( − I w ~ k ∆ tk ) F_{11} = Exp(- ^I\tilde{w}_k ∆t_k)F11=Exp(Iw~ktk) F 31 = − G R ˉ I k ⌊ I a ˉ k ⌋ ∆ t k F_{31} = -^G R̄_{I_k} ⌊^I ā_k⌋∆t_k F31=GRˉIkIaˉktk F 38 = G R ˉ I k ∆ t k F_{38} = ^G R̄_{I_k} ∆t_k F38=GRˉIktk

5.2 Residual calculation LiDAR measurement: (emphasis)

Radar measurement: According to the predicted attitude GT in Kalman propagation (9) ^ I k + 1 = ( GR ^ I k + 1 , G p ^ I k + 1 ) ^G T̂_{I_{k+1}} = (^ G R̂_{I_{k+1}}, ^Gp̂_{I_{k+1}})GT^Ik+1=GR^Ik+1Gp^Ik+1) , the measured LiDAR pointI pmk + 1 ^I p_{m_{k+1}}Ipmk+1G p ^ k + 1 projected into the global coordinate system = GR ^ I k I pmk + 1 + G p ^ I k + 1 ^Gp̂_{k+1} = ^GR̂_{I_k} ^I p_{m_k+1 } + ^G p̂_{I_{k+1}}Gp^k+1=GR^IkIpmk+1+Gp^Ik+1, and search its nearest 5 points in the map organized by ikd-Tree (distance G p ^ k + 1 ^G p̂_{k+1}Gp^k+1not more than 5 m). Then, use the found nearest neighbors to fit a local facet patch whose normal vector is G uk + 1 ^G u_{k+1}Guk+1, the center of gravity is G qk + 1 ^G q_{k+1}Gqk+1, as indicated by the measurement model (see Eq. (6) and Fig. 2). If the nearest 5 points are not on the fitted plane path (i.e., any point is more than 0.1 m away from the plane), then the current LiDAR point G p ^ k + 1 ^ G p̂_{k+1}Gp^k+1measurements are incorporated directly into the map without residual calculations or state updates. Otherwise, if the local plane fitting is successful, the residual is calculated according to equation (8) ( r L k + 1 r_{L_{k+1}}rLk+1)。

insert image description here

where, δ xk + 1 = xk + 1 ⊭ x ^ k + 1 δx_{k+1} = x_{k+1} ⊊ x̂_{k+1}δx _k+1=xk+1x^k+1, where xk + 1 x_{k+1}xk+1is time step k + 1 k+1k+The truth value of the state vector of 1 ,x ^ k + 1 x̂_{k+1}x^k+1is time step k + 1 k+1k+An estimate of the state vector of 1 .

insert image description here

IMU measurement: judge whether the IMU measurement channel is discarded by checking the gap between the current measurement value and the rated measurement range. If the gap is too small, that IMU measurement channel will be discarded without updating the state. Then, the acceleration and angular velocity measurements of the unsaturated IMU channel are collected, and the IMU residual is calculated according to equation (7) ( r I k + 1 r_{I_{k+1}}rIk+1) (for notational simplicity, we use here measurements from all six channels).

insert image description here

where, δ xk + 1 = xk + 1 ⊭ x ^ k + 1 δx_{k+1} = x_{k+1} ⊊ x̂_{k+1}δx _k+1=xk+1x^k+1, where xk + 1 x_{k+1}xk+1is time step k + 1 k+1k+The truth value of the state vector of 1 ,x ^ k + 1 x̂_{k+1}x^k+1is time step k + 1 k+1k+An estimate of the state vector of 1 .

insert image description here

In summary, the residuals from LiDAR point measurements (Equation 12) or IMU measurements (Equation 14) are related to the state x k+1 and the corresponding measurement noise as follows:

insert image description here

…For details, please refer to Gu Yueju

Guess you like

Origin blog.csdn.net/lovely_yoshino/article/details/130261605