rpng / MINS

An efficient and robust multisensor-aided inertial navigation system with online calibration that is capable of fusing IMU, camera, LiDAR, GPS/GNSS, and wheel sensors. Use cases: VINS/VIO, GPS-INS, LINS/LIO, multi-sensor fusion for localization and mapping (SLAM). This repository also provides multi-sensor simulation and data.
GNU General Public License v3.0
481 stars 80 forks source link

Formular does not make sense #16

Closed qpc001 closed 10 months ago

qpc001 commented 10 months ago

in

bool I_Initializer::initialization(Matrix<double, 17, 1> &imustate) {

...

  Vector3d z_axis = a_avg_2to1 / a_avg_2to1.norm();

  // Create an x_axis
  Vector3d e_1(1, 0, 0);

  // Make x_axis perpendicular to z
  Vector3d x_axis = e_1 - z_axis * z_axis.transpose() * e_1;
  x_axis = x_axis / x_axis.norm();

...

Why x_axis perpendicular z_axis? x_axis.dot(z_axis) is not equal to zero.

WoosikLee2510 commented 10 months ago

This process is called Gram–Schmidt process.

If you left multiply z_axis.transpose() to x_axis, you will see it become 0.

qpc001 commented 10 months ago

Oh, thanks. It my fault.