Bundle adjustment

Bundle Adjustment (BA)

Bundle adjustment is an important optimization in SLAM system. Unlike pose graph optimization which only optimize the poses, BA can optimize the 3D points and poses simultaneously for minimizing reprojection error.

Here is the objective function

where is the image pixel. is 3D point in world coordinate (total n feature points). are the camera pose (total m frames). is camera intrinsic parameter. is the last element in . The optimized variables could be .

If we write the objective in Lie Algebra, it will be

In fact, we can use a function to represent . If we want to undistort, those undistortion calculation can be also included in . Recommend to read the slambook bundle adjustment in Chapter 10.

Anyway, the objective can be

Obviously, there are many variables need to be optimized. We use to represent all variables.

we rewrite the objective as below

In nonlinear optimization, we want to get the optimal . So apply Taylor expansion, the objective will become

where is the jacobian of Lie algebra , and is the jacobian of world point .

If we integrate all variable and apply GN or LM, we will still face the equation If you have problem to understand, go to check the nonlinear optimization section.

in GN. While in LM.

In SLAM early stage, people think there are too many variables to optimize in real-time (i.e. those variables will generate a very huge matrix in nonlinear optimization. It is prohibitive to calculate the by inversing ).

Later, researchers find there are some special structures in . And is a sparse matrix and there are special methods (so-called marginalization) to calculate quickly.

For the math detail, go to read the slambook sparse and marginalization (稀疏性和边缘化) in Chapter 10.

Bundle Adjustment - Canyu Le