From AIRWiki
Revision as of 22:55, 16 February 2011 by SimoneCeriani (Talk | contribs) (Download)

Jump to: navigation, search
Coordinator: MatteoMatteucci (
Tutor: SimoneCeriani (
Students: VincenzoRizzo (, RobertoBacciocchi (, AntonioBianchi (, MladenMazuran (, MatteoLuperto (, AngeloZuffiano (
Research Area: Computer Vision and Image Analysis
Research Topic:
Start: 2010/06/30
Status: Active


The aim of the moonSlam project is to create a generic software framework for SLAM (Simultaneous Localization And Mapping).



Use the DEI svn system (you need a valid account):

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 or svn 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
    • Simultaneous Localization and Mapping: Part I [3]
    • Simultaneous Localization and Mapping: Part II [4]


  • Probabilistic Robotics [7]

Useful Materials

  • Joan Solà materials on quaternions [8], EKF mathematics for SLAM [9] and PhD Thesis [10]

Some thesis (Bachelor, MS or PhD)

  • Visual
    • Migliore Davide (PhD) []
    • MarzoratiDaniele (PhD) []
    • RigamontiRoberto (MS) []
    • Joan Solà (Phd) [11]
  • Computer Vision
    • MassimoQuadrana (Bachelor) []

How to compile

On a "clean" Ubuntu 10.4 32bit installation, first of all you need to install these packages:

  • svn cmake g++

Then you have to install all the libraries required by moonSlam:

  • liblog4cpp5 liblog4cpp5-dev libcv-dev libhighgui-dev libconfig++8-dev libxml++2.6-dev libboost-all-dev libcvaux-dev opencv libopencv-dev

moonSlam requires also Eigen 3.0 library. It is not present on official Ubuntu 10.4 repository, download it from here and then install it, following the instructions written in INSTALL file.

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 now need OpenCV2.2, probably you have to compile it by hands (they are not available in Ubuntu standard repositories)

Note(3): 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. Get it from here.

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


Andrew Davison home page

Joan Solà home page

Robotics, Perception and Real Time group, Zaragoza