Difference between revisions of "MoonSlam"

From AIRWiki
Jump to: navigation, search
m (MoonSLAM moved to MoonSlam)
(PhD Thesis)
 
(22 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
|coordinator=MatteoMatteucci
 
|coordinator=MatteoMatteucci
 
|tutor=SimoneCeriani;
 
|tutor=SimoneCeriani;
|students=VincenzoRizzo;RobertoBacciocchi; AntonioBianchi; MladenMazuran; MatteoLuperto; AngeloZuffiano;  
+
|students=VincenzoRizzo;RobertoBacciocchi; AntonioBianchi; MladenMazuran; MatteoLuperto; AngeloZuffiano;
 
|resarea=Computer Vision and Image Analysis
 
|resarea=Computer Vision and Image Analysis
 
|start=2010/06/30
 
|start=2010/06/30
 
|status=Active
 
|status=Active
|level=Ms
 
 
}}
 
}}
 +
== PhD Thesis ==
 +
Simone Ceriani PhD Thesis, download [https://www.box.com/s/pzgt89pzl17mb7zyd52r here] or on [http://hdl.handle.net/10589/74243 POLITesi]
 +
 +
== 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: <code>svn co https://svn.ws.dei.polimi.it/airlab/Projects/MoonSlamProject/</code>
 +
* to download only the "trunk": <code>svn co https://svn.ws.dei.polimi.it/airlab/Projects/MoonSlamProject/trunk/</code>
 +
* to download only a "tag": <code>svn co https://svn.ws.dei.polimi.it/airlab/Projects/MoonSlamProject/tags/<tagname>/</code>
 +
** (you can know all the tags by <code>svn ls https://svn.ws.dei.polimi.it/airlab/Projects/MoonSlamProject/tags/</code>)
 +
 +
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: [[http://svnbook.red-bean.com/en/1.4/svn.tour.cycle.html]]
 +
* do <code>svn up</code> or <code>svn update</code> to check the status of repository
 +
* with <code>svn add</code> you can add the unversioned elements (it is recursive)
 +
* with <code>svn stat</code>  you can check your svn status
 +
* with <code>svn ci -m"comments"</code> 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 <code>svn propedit .</code>
 +
* add in the editor (nano, vim or something similar) the folders or files that you want to ignore (one per line).
 +
* run <code>svn stat</code>, the '?' should disappear, because the elements are ignored.
 +
 +
== Useful readings ==
 +
 +
=== Introduction to SLAM ===
 +
* Wikipedia [http://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping]
 +
* IEEE Slam tutorials
 +
** Simultaneous Localization and Mapping: Part I [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1638022&userType=inst]
 +
** Simultaneous Localization and Mapping: Part II [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1678144]
 +
 +
* The SSS06 (SLAM Summer School) pages, refer to "lectures" and "Practicals" [http://www.robots.ox.ac.uk/~SSS06/Website/index.html]
 +
* The BMVC 2007 tutorials [http://www.cs.bris.ac.uk/Research/Vision/Realtime/bmvctutorial/]
 +
* Joan Solà have an on line course on SLAM [http://homepages.laas.fr/jsola/JoanSola/eng/course.html here]. It's based on a Matlab toolbox developed by Solà (http://homepages.laas.fr/jsola/JoanSola/eng/toolbox.html)
 +
 +
==== EKF ====
 +
* Probabilistic Robotics [http://robots.stanford.edu/probabilistic-robotics/]
 +
 +
==== Computer Vision ====
 +
* Computer Vision: Algorithms and Applications [http://szeliski.org/Book/]
 +
A freely available book about Computer Vision. Some chapters are dedicated to features recognition. 
 +
 +
==== Useful Materials ====
 +
* Joan Solà materials on quaternions [http://homepages.laas.fr/jsola/JoanSola/objectes/notes/kinematics.pdf], EKF mathematics for SLAM [http://homepages.laas.fr/jsola/JoanSola/objectes/notes/FisslamNotes.pdf] and PhD Thesis [http://homepages.laas.fr/jsola/JoanSola/objectes/PhD/Thesis.pdf]
 +
 +
=== Some thesis (Bachelor, MS or PhD) ===
 +
* Visual
 +
** Migliore Davide (PhD) []
 +
** MarzoratiDaniele (PhD) []
 +
** RigamontiRoberto (MS) []
 +
** Joan Solà (Phd) [http://homepages.laas.fr/jsola/JoanSola/objectes/PhD/Thesis.pdf]
 +
 +
* Laser
 +
** [[User:MauroBrenna|Mauro Brenna]] []
 +
** [[User:MladenMazuran|Mladen Mazuran]] &amp; [[User:MatteoLuperto|Matteo Luperto]] (Bachelor) []
 +
 +
* Computer Vision
 +
** MassimoQuadrana (Bachelor) []
 +
 +
* CI-Slam
 +
** Pedro Piniés Rodriguez (Phd) [http://robots.unizar.es/data/documentos/PedroPiniesThesis.pdf]
 +
 +
== How to compile ==
 +
On a "clean" Ubuntu 10.04.2 32bit installation, first of all, you need to install these packages:
 +
* <code>subversion cmake g++ doxygen</code>
 +
Then you have to install all the libraries required
 +
by moonSlam:
 +
* <code>liblog4cpp5-dev libxml++2.6-dev libpng3-dev libboost-all-dev</code>
 +
 +
 +
moonSlam requires packages that are not available in Ubuntu standard repositories:
 +
*libconfig++1.4.6
 +
Download it from [http://www.hyperrealm.com/main.php?s=libconfig here]
 +
and then install it, following the instructions written in INSTALL file.
 +
* Eigen 3.0 library
 +
Download it from [http://eigen.tuxfamily.org/index.php?title=3.0_beta here]
 +
and then install it, following the instructions written in INSTALL file.
 +
* Opencv 2.2
 +
Download it from [http://opencv.willowgarage.com here]
 +
and then install it, following the instruction written [http://opencv.willowgarage.com/wiki/InstallGuide here].
 +
 +
Opencv2.2 needs eigen2 library. Before compiling it, install eigen2 library (<code>apt-get install libeigen2-dev</code>).
 +
 +
You need also mrpt from the svn
 +
svn checkout http://mrpt.googlecode.com/svn/trunk/ mrpt-read-only
 +
cd mrpt-read-only/
 +
mkdir build
 +
cd build/
 +
cmake ..
 +
make
 +
sudo make install
 +
Now you can compile moonSlam.
 +
* open a shell inside trunk folder
 +
* <code>mkdir build <br> cd build </code>
 +
* now you can make one of these folder
 +
** <code>Debug</code>
 +
** <code>Release</code>
 +
** <code>RelWithDebInfo</code>
 +
** <code>MinSizeRel</code>
 +
* cd in the created folder (e.g. <code>cd Debug</code>)
 +
* <code>cmake ../..</code>
 +
* <code>make</code>
 +
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
 +
<code>doxygen <LibraryName>.doxyfile</code>
 +
 +
you will find documentation in doc/<LibraryName>/html folder
 +
 +
for each library
 +
 +
== Links ==
 +
[http://www.doc.ic.ac.uk/~ajd/ Andrew Davison home page]
 +
 +
[http://homepages.laas.fr/jsola/JoanSola/eng/JoanSola.html Joan Solà home page]
 +
 +
[http://robots.unizar.es/html/home.php Robotics, Perception and Real Time group, Zaragoza]

Latest revision as of 10:37, 23 April 2013

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

PhD Thesis

Simone Ceriani PhD Thesis, download here or on POLITesi

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):

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]

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

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

Some thesis (Bachelor, MS or PhD)

  • Visual
    • Migliore Davide (PhD) []
    • MarzoratiDaniele (PhD) []
    • RigamontiRoberto (MS) []
    • Joan Solà (Phd) [12]
  • Computer Vision
    • MassimoQuadrana (Bachelor) []
  • CI-Slam
    • Pedro Piniés Rodriguez (Phd) [13]

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).

You need also mrpt from the svn

svn checkout http://mrpt.googlecode.com/svn/trunk/ mrpt-read-only
cd mrpt-read-only/
mkdir build
cd build/
cmake ..
make
sudo make install

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

Links

Andrew Davison home page

Joan Solà home page

Robotics, Perception and Real Time group, Zaragoza