Experimental Results
Here, we present experiments where we compare Sparse Pose Adjustment (SPA) with state-of-the art approaches on 61 real world datasets. We considered a broad variety of approaches, including the best state-of-the-art.- Information filter: DSIF [1]
- Stochastic gradient descent: TORO [2]
- Decomposed nonlinear system: Treemap [3]
- Sparse pose adjustment: SPA, with (a) sparse direct Cholesky solver, and (b) iterative PCG [4]
We also evaluated a dense Cholesky solver, but both the computational and the memory requirements were several orders of magnitude larger than the other approaches. As an example, for a dataset with 1600 constraints and 800 nodes one iteration using a dense Cholesky solver would take 2.1 seconds while the other approaches require an average of a few milliseconds. All experiments are executed on an Intel Core i7-920 running at 2.67 Ghz.
Accuracy Measure
For these indoor datasets, there is no ground truth. Instead, the measure of goodness for a pose-constraint system is the covariance-weighted squared error of the constraints, or χ^2 error. If the scan matcher is accurate, lower χ^2 means that scans align better. In the following we present the detailed evaluation of the real world data sets. Each data set is accompanied by a details page which shows several plots about the data set and the performance of each of the above listed algorithms.Real-World Experiments: Off-Line Optimization
To optimize a dataset off-line, we provide each optimizer with a full description of the problem. We leave out from the comparison DSIF and TreeMap, since they only operate incrementally (DSIF is equivalent to one iteration of SPA in batch mode). Since the success of the off-line optimization strongly depends on the initial guess, we also investigated two initialization strategies, described below.- Odometry: the nodes in the graph are initialized with incremental constraints. This is a standard approach taken in almost all graph optimization algorithms.
- Spanning-Tree: A spanning tree is constructed on the graph using a breadth-first visit. The root of the tree is the first node in the graph. The positions of the nodes are initialized according to a depth-first visit of the spanning tree. The position of a child is set to the position of the parent transformed according to the connecting constraint. In our experiments, this approach gives the best results.