ByLiZhao / slamlib

A collect of libraries for SLAM, for my own reference

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

slamlib

A collect of libraries for SLAM, for my own reference

  1. g2o
  2. GTSAM
  3. Ceres
  4. SE-Sync

papers

  1. A paper that compares the four The SE-Sync paper. An oversimplied interpretation of main conclusions of this paper is that GTSAM and SE-Sync is generally at least not worse than alternatives. Considering that SE-Sync is not as mature as GTSAM, STSAM could be used as a starting point if one needs to experiment with SLAM.
  2. Factor graphs and gtsam a hands-on introduction GTSAM incorporates the work of iSAM2, which is designed to solve graph optimization problem while the graph is growing, 'i' in "iSAM" stands for "incremental". The resulted nonlinear least square problem is solved using generic solvers with sparse block matrix computation.
  3. The g2o paper g2o is like GTSAM,it also model the problem domain with a graph model. It is the first SLAM lib that uses the square-add operator ⊞. The square-add operator is used where a generic optimization solvers uses "+" to generate a one-step update of the estimated value.
  4. "Least Squares Optimization: From Theory to Pratice" by Giorgio Grisetti, et al., an interesting paper that tries to design a module-based composable and configurable unified interface to the optimization problem.

Comments

  1. Special attention should be paid to the SE-Sync paper. The analysis of the paper reveals some very fascinating facts about StherLAM problems:
    • The graph optimization problem has an equivalent representation of Rotation Only Optimization.
    • The Rotation Only Optimization problem can be relaxed to a Convex Semidefinite problem if replacing the SO(n) group by the O(n) group.
    • The Convec semidefinite problem can be solved by "go up" the Remanian staircase, with upper "stair" giving a better approximation of the Convex semidifinite problem.
    • If noise is not very large, global minimum can be found. Otherwise, a suboptimal solution can be found by projecting back to the feasible space. The beauty of SE-Sync is that has profound geometric ituition. Not sure whether the Truncated Newton Method used in the paper would cause some subtle issues. It is also not clear the "Riemannian optimization" by Boumal has some unkown issues.
  2. Among the four solvers, Ceres is more of a general-purpose solver. It can solve nonlinear least square problems with box constraints, or general unconstrained nonlinear optimization problem. Ceres is very good at Automatic Differentiation. In fact, g2o uses Ceres's AD code.
  3. GTSAM has its own "Expression" based Automatic Differentiation framework. The authors of GTSAM state that it is faster than that of Ceres.

Outliners and large-residual problems

Optimization-based SLAM algorithms generally behave well when the resdual of the objective function is small. A few outliners can "poison" a small-residual optimization problem into a large-residual problem. There are two related problems:

  1. Before actually solving a SLAM problem, it is hard to tell beforehand whether it is a small-residual problem or not. But the effectiveness of many algorithms rely on the fact that residuals are small.
  2. Even if we are lucky and get the global minimum of the optimization problem, for example, through a brutal-force approach, The result is usually not what we want. Because a few outliners can scew the resulted map. What we really need is actually a method to filter out those outliners.
  3. Robust estimators can partially solve the outliner problem, for example, instead of solving the original nonlinear least square problem, we can solve a so-called Iteratively Reweighted Least Square problem. The idea behind it is to use an objective function that is less-sensitive to outliners while converging to the same optimizer under some conditions. Though it is possible that the algorithm is trapped into newly introduced local minimum because of reweighting.
  4. Outliner detection method such as RANSAC is too expensive to be practical.

About

A collect of libraries for SLAM, for my own reference