Difference between revisions of "MoonSlam"
(→PhD Thesis) |
|||
(23 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 | ||
− | |||
}} | }} | ||
+ | == 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]] & [[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 |
Contents
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):
- 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) []
- 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