= Installing RT-SLAM = RT-SLAM is currently provided as-is and is not standalone, and is not advised to people who don't feel very comfortable with manual installation from source. Installation will be more simple when the first release will be made. Currently you need to install our modular development environment [[http://homepages.laas.fr/croussil/doc/jafar/|Jafar]], and the required dependencies. Installation is possible with all Linux flavors and MacOS X. == Dependencies == === Standard development tools === 1. '''gcc-c++''' 1. '''make''' 1. '''cmake ''' 1. '''git''' === External libraries === When you install these libraries with your system package manager, '''you have to also install the development packages''' (in general named package-devel or package-dev). 1. '''boost''' >= 1.40 1. '''boost-sandbox/numeric-bindings''': {{{ svn co http://svn.boost.org/svn/boost/sandbox/numeric_bindings boost-sandbox/}}} 1. '''lapack''' 1. '''opencv''' >=2.1 1. '''qt4''' (optional, for 2D display) === LAAS libraries === 1. [[http://gdhe.openrobots.org/|gdhe]] (optional, for 3D display) 1. [[http://homepages.laas.fr/mallet/soft/image/viam-libs|viam]] (optional, for live use of firewire cameras) 1. [[http://trac.laas.fr/openrobots/robotpkg/hardware/MTI/index.html|MTI driver]] (optional, for live use of XSens MTi IMU) == Jafar Installation == === Download === {{{ git clone git://trac.laas.fr/git/robots/jafar/jafar.git}}} We will later refer to the directory where you cloned jafar as $JAFAR_DIR. === Configure the build system === Jafar uses cmake. {{{#!highlight sh mkdir $JAFAR_DIR/build cd $JAFAR_DIR/build cmake ../ -DENABLE_TCL=OFF -DENABLE_RUBY=OFF -DCMAKE_BUILD_TYPE=release }}} {i} If you need to modify RT-SLAM, you may want to create two directories build_debug and build_release and run cmake in each of them with the appropriate -DCMAKE_BUILD_TYPE option. The additional common options you may want to pass to cmake are: 1. '''-DPATH_TO_BOOST_SANDBOX=/path/to/boost-sandbox''' to tell cmake where to find boost-sandbox (such that $PATH_TO_BOOST_SANDBOX/boost/numeric/bindings exists and is an '''absolute''' path) 1. '''-DBOOST_ROOT=/path/to/boost''' to tell cmake which boost installation to use, if there are several of them or if it is in a non-standard path (such that $BOOST_ROOT/include/boost exists and is an '''absolute''' path) 1. '''-DOpenCV_ROOT_DIR=/path/to/opencv''' to tell cmake where to find opencv (such that $OpenCV_ROOT_DIR/include/opencv exists and is an '''absolute''' path) 1. '''-DCMAKE_BUILD_TYPE=debug''' or '''-DCMAKE_BUILD_TYPE=release''' to choose a compilation profile, you can have both in two different build dirs at the same time, to easily switch between them You may want to save the cmake command with its arguments in some file $JAFAR_DIR/cmake-command.txt in case you have to do it again from the beginning. {i} If you have some trouble making it find the right dependencies, sometimes it is useful to remove the CMakeCache.txt file in the build directory before running the cmake command again. == RT-SLAM installation == {{{#!highlight sh cd $JAFAR_DIR bin/jafar_checkout rtslam bin/jafar_checkout qdisplay bin/jafar_checkout gdhe cd build make }}} /!\ don't fetch the jafar module gdhe for 3D display with {{{bin/jafar_checkout gdhe}}} if you didn't install the [[http://gdhe.openrobots.org/|gdhe library]] or are not willing to, as the project won't compile. If you fetched it by mistake, you can remove it by simply deleting the $JAFAR_DIR/modules/gdhe folder. If you want to compile faster, you can do {{{make -jn}}} instead of {{{make}}} with n the number of real CPU cores on your system plus one (-j3 for dualcore, -j5 for quadcore). == RT-SLAM update == {{{#!highligh sh bin/jafar_update stash cd build make rebuild_cache make }}} If you made some modifications, you may want to get an overview of them with '''bin/jafar_status'''.