Skip to content

Commit 94ce98b

Browse files
committed
added some more information in the readme
1 parent 6097e5c commit 94ce98b

File tree

1 file changed

+83
-1
lines changed

1 file changed

+83
-1
lines changed

README.md

+83-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,86 @@
11
ssa
22
===
33

4-
Sparse Surface Adjustment
4+
Sparse Surface Adjustment:
5+
SSA is an open-source C++ tool for post optimization of 2D or 3D SLAM solutions.
6+
SSA iteratively refines robot poses and surface points in one global graph optimization
7+
system and produces highly accurate 3D point clouds.
8+
3D sensor observations are not treated as rigid body and might be refined during the
9+
optimization procedure. This leads to substantially less accumulated noise in the
10+
resulting model. SSA builds upon g2o as optimization back-end.
11+
12+
More detailed information can be found in the Sparse Surface Adjustment publication:
13+
http://ais.informatik.uni-freiburg.de/publications/papers/ruhnke12icra.pdf
14+
15+
Authors:
16+
Michael Ruhnke; Rainer Kuemmerle; Giorgio Grisetti; Wolfram Burgard;
17+
18+
License:
19+
SSA is free software: you can redistribute it and/or modify
20+
it under the terms of the GNU Lesser General Public License as published
21+
by the Free Software Foundation, either version 3 of the License, or
22+
(at your option) any later version.
23+
24+
SSA is distributed in the hope that it will be useful,
25+
but WITHOUT ANY WARRANTY; without even the implied warranty of
26+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27+
GNU Lesser General Public License for more details.
28+
29+
You should have received a copy of the GNU Lesser General Public License
30+
along with this program. If not, see <http://www.gnu.org/licenses/>.
31+
32+
===
33+
34+
How to get the code?
35+
git clone https://github.com/MichaelRuhnke/ssa.git
36+
37+
Dependencies:
38+
- libqglviewer (for opengl visualization)
39+
- Suitesparse (math library for sparse matrices)
40+
SSA offers an option to download and compile openBLAS and suitesparse.
41+
usually this gives a speedup up between 2 and 10 for the optimization.
42+
- Pointcloud Library (for import / export of data)
43+
- FLANN (also a dependency of pcl)
44+
- Eigen3 (also a dependency of pcl)
45+
- g2o (will be checked out from the developer git repository during the build process)
46+
47+
On Ubuntu machines you might install the dependencies with:
48+
sudo apt-get install libqglviewer-qt4-dev
49+
sudo apt-get install libsuitesparse-dev
50+
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
51+
sudo apt-get update
52+
sudo apt-get install libpcl-all
53+
54+
Compiling ssa:
55+
mkdir build
56+
cd build
57+
cmake-gui ../
58+
#if qmake-NOTFOUND appears change it into qmake-qt4
59+
make
60+
61+
Run an example:
62+
There is an example data set of a dark mug in example/alufr_black_mug/
63+
64+
First step to convert a dataset into ssa format is:
65+
pcd_to_ssa
66+
67+
$ pcd_to_ssa: converts a set of PointXYZRGBA pcd files into a ssa 3d graph file
68+
$ usage pcd_to_ssa [options] <ssa3d_file> options:
69+
$ -p [string] prefix of the pcd file list.
70+
$ -r [double] resolution of the resulting model (default resolution 0.01m)
71+
$ -n [int] count of point clouds
72+
$ example:
73+
$ pcd_to_ssa -p alufr_black_mug_raw -n 60 -r 0.001 alufr_black_mug_raw.ssa3d
74+
75+
this will load alufr_black_mug_raw00000.pcd to alufr_black_mug_raw00059.pcd
76+
and subsample to a resolution of 1mm.
77+
78+
The pcd files should have proper sensor poses and orientations (from your registration
79+
algorithm). The points itself should be in sensor frame and not transformed!!!
80+
81+
> ssa_viewer_3d -ini ssa.ini alufr_black_mug_raw.ssa3d
82+
83+
runs the optimizer gui. An example ssa.ini file is located in the ssa root dir.
84+
85+
If you apply parameters that result in an unconnected graph, the optimizer will crash.
86+
Right now I do not check for the connectivity, but I will provide that feature pretty soon.

0 commit comments

Comments
 (0)