-
Notifications
You must be signed in to change notification settings - Fork 28
Installation & Dependencies
NOTE: These installation instructions are deprecated and will be removed soon. Please follow the new instructions in the README.
Omnimapper has been developed using Ubuntu’s latest Long Term Support (LTS) release 14.04, for best support with ROS’s latest LTS release of Indigo. Although installation is possible for other Linux distributions and Mac OS X, this will require further source builds for additional dependency and is not recommended.
###Packages
If you don’t have these packages already then simply install them from Ubuntu's repository. The following packages are used when building the rest of the dependencies from source
- cmake (used by all)
sudo apt-get install cmake
- boost (used by all)
sudo apt-get install libboost-all-dev
- FLANN (used by PCL)
sudo apt-get install libflann-dev
- VTK (used by PCL)
sudo apt-get install libvtk6-dev
- Google Perf Tools (used by OmniMapper)
sudo apt-get install libgoogle-perftools-dev
- Intel Threading Building Blocks (TBB) (GTSAM, OmniMapper)
sudo apt-get install libtbb-dev
- [git] (http://git-scm.com) (used to get PCL)
sudo apt-get install git
- [GSL] (http://www.gnu.org/software/gsl/) (dependency for OmniMapper ROS's CSM plugin)
sudo apt-get install libgsl0-dev
GTSAM is a library of C++ classes that implement smoothing and mapping (SAM) in robotics and vision, using factor graphs and Bayes networks as the underlying computing paradigm rather than sparse matrices. You can download and extract the available source code and follow the quickstart guide here. Then cd
into the root source directory for GTSAM, make a build folder, run cmake, compile with the number of available CPU cores, and install:
mkdir build
cd build
cmake ..
make -j4
sudo make install
If you plan on using OmniMapper with ROS, then you’ll need ROS installed on your system. The up-to-date guide for installing ROS Indigo on Ubuntu 14.04 can be found here. Installing the ros-indigo-desktop-full
package is recommended as this will include additional tools such as rviz
and rqt
that are useful for visualizing and debugging your ROS applications.
You'll also need the perception_pcl package that can be installed using with:
sudo apt-get install ros-indigo-perception-pcl
To use OpenNI compliant RGB-D sensors, you'll also need OpenNI. Installing the following will give you both OpenNI, and launch files needed to start an RGB-D camera.
sudo apt-get install ros-indigo-openni-launch
PCL is available on github. Detailed installation instructions are available at here. Note that you will need to build it against GTSAM's version of Eigen, which has some custom patches. Organized edges are only available in the master branch. This fork includes some additional features for planar landmarks.
git clone https://github.com/PointCloudLibrary/pcl.git
cd pcl
mkdir build
cd build
Modify to reflect the path to your gtsam directory:
cmake -DEIGEN_INCLUDE_DIR="~/software/gtsam-3.1.0/gtsam/3rdparty/Eigen" ..
make -j4
sudo make install
Now you are ready build the base library of OmniMapper. This uses the same build procedure as PCL, making sure to build against the same Eigen library as provide in GTSAM’s source folders.
git clone https://github.com/CognitiveRobotics/omnimapper.git
cd omnimapper
mkdir build
cd build
cmake -DEIGEN_INCLUDE_DIRS="~/software/gtsam-3.1.0/gtsam/3rdparty/Eigen" ..
make -j4
Once the base library has been compiled you can then begin to build the ROS wrapper for OmniMapper. First we’ll need to add the path to your omnimapper/ros
directory to your ROS_PACKAGE_PATH
, this can be done by adding:
export ROS_PACKAGE_PATH=/home/user/omnimapper/ros/:${ROS_PACKAGE_PATH}
To the end of your ~/.bashrc file in Ubuntu, this is a similar environment setup you performed while installing ROS before. Then we should be able to roscd
to our OmniMapper ROS source folder and use rosmake
to auto generate our cmake files.
roscd omnimapper_ros
rosmake
This will fall just short of successful build, as rosmake
will at first fail to use the correct Eigen library. We then need to cd
into the new build folder, specify the path to GTSAM’s version Eigen to cmake, and then rebuild.
cd build
cmake -DEIGEN_INCLUDE_DIRS="~/software/gtsam-3.1.0/gtsam/3rdparty/Eigen" ..
make -j4
You should now be ready to run! If you wish, you can now proceed to one of the tutorials to learn more about using and working with OmniMapper.