Skip to content

Installation & Dependencies

Antonella Wilby edited this page Feb 12, 2019 · 1 revision

NOTE: These installation instructions are deprecated and will be removed soon. Please follow the new instructions in the README.

Dependencies

Ubuntu
Version: 14.04 LTS

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

GTSAM
Version: 3.1.0

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

ROS
Version: Indigo

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.

perception_pcl

You'll also need the perception_pcl package that can be installed using with:

  • sudo apt-get install ros-indigo-perception-pcl

openni_launch

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
Version: 1.7.2, or see below

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

Installation

Build OmniMapper Base

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

Build OmniMapper ROS

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.