MoonSlam
moonSlam
| |
Coordinator: | MatteoMatteucci (matteo.matteucci@polimi.it) |
Tutor: | SimoneCeriani (ceriani@elet.polimi.it) |
Collaborator: | |
Students: | VincenzoRizzo (vincenzo.arigliano@gmail.com), RobertoBacciocchi (roberto.bacciocchi@mail.polimi.it), AntonioBianchi (antonio.bianchi.333@gmail.com), MladenMazuran (mladen.mazuran@gmail.com), MatteoLuperto (matteo.luperto@polimi.com), AngeloZuffiano (angelo.zuffiano@mail.polimi.it) |
Research Area: | Computer Vision and Image Analysis |
Research Topic: | |
Start: | 2010/06/30 |
Status: | Active |
Contents
Goal
The aim of the moonSlam project is to create a generic software framework for SLAM (Simultaneous Localization And Mapping).
Motivation
Download
Use the DEI svn system (you need a valid account):
- cd in your workspace directory
- to download all the project:
svn co https://svn.ws.dei.polimi.it/airlab/Projects/MoonSlamProject/
- to download only the "trunk":
svn co https://svn.ws.dei.polimi.it/airlab/Projects/MoonSlamProject/trunk/
- to download only a "tag":
svn co https://svn.ws.dei.polimi.it/airlab/Projects/MoonSlamProject/tags/<tagname>/
- (you can know all the tags by
svn ls https://svn.ws.dei.polimi.it/airlab/Projects/MoonSlamProject/tags/
)
- (you can know all the tags by
Use --username <username> after the svn command if you neeed to specify your username and password
SVN principal commands
Check this, seems to be a good tutorial: [[1]]
- do
svn up
orsvn update
to check the status of repository - with
svn add
you can add the unversioned elements (it is recursive) - with
svn stat
you can check your svn status - with
svn ci -m"comments"
you can checkin your files
How to says to svn that some folders or files has to be ignored
This is the common situtation
- you want to avoid the versioning of .settings, build and doc folder (that are shown with a '?' in the svn stat result)
- do
svn propedit .
- add in the editor (nano, vim or something similar) the folders or files that you want to ignore (one per line).
- run
svn stat
, the '?' should disappear, because the elements are ignored.
Useful readings
Introduction to SLAM
- Wikipedia [2]
- IEEE Slam tutorials
- The SSS06 (SLAM Summer School) pages, refer to "lectures" and "Practicals" [5]
- The BMVC 2007 tutorials [6]
- Joan Solà have an on line course on SLAM here. It's based on a Matlab toolbox developed by Solà (http://homepages.laas.fr/jsola/JoanSola/eng/toolbox.html)
EKF
- Probabilistic Robotics [7]
Computer Vision
- Computer Vision: Algorithms and Applications [8]
A freely available book about Computer Vision. Some chapters are dedicated to features recognition.
Useful Materials
Some thesis (Bachelor, MS or PhD)
- Visual
- Migliore Davide (PhD) []
- MarzoratiDaniele (PhD) []
- RigamontiRoberto (MS) []
- Joan Solà (Phd) [12]
- Laser
- Mauro Brenna []
- Mladen Mazuran & Matteo Luperto (Bachelor) []
- Computer Vision
- MassimoQuadrana (Bachelor) []
How to compile
On a "clean" Ubuntu 10.04.2 32bit installation, first of all, you need to install these packages:
-
subversion cmake g++ doxygen
Then you have to install all the libraries required by moonSlam:
-
liblog4cpp5-dev libxml++2.6-dev libpng3-dev libboost-all-dev
moonSlam requires packages that are not available in Ubuntu standard repositories:
- libconfig++1.4.6
Download it from here and then install it, following the instructions written in INSTALL file.
- Eigen 3.0 library
Download it from here and then install it, following the instructions written in INSTALL file.
- Opencv 2.2
Download it from here and then install it, following the instruction written here.
Opencv2.2 needs eigen2 library. Before compiling it, install eigen2 library (apt-get install libeigen2-dev
).
Now you can compile moonSlam.
- open a shell inside trunk folder
-
mkdir build
cd build - now you can make one of these folder
-
Debug
-
Release
-
RelWithDebInfo
-
MinSizeRel
-
- cd in the created folder (e.g.
cd Debug
) -
cmake ../..
-
make
If everything goes fine, compiled binaries and libraries will be written inside trunk/build/<yourChoice> folder (keeping trunk folder "clean").
Note: performance, executable size and other aspects depends on the choosen build configuration. See the CMakeLists.txt file to know which compilations flags are used.
Note(2): MoonSlam compile with the libconfig++ proposed in Ubuntu repository, but some configuration files use the @include directive, that is supported by the libconfig++1.4.6.
Create the documentation
go in the base folder (e.g. trunk) and type
doxygen <LibraryName>.doxyfile
you will find documentation in doc/<LibraryName>/html folder
for each library