2016-08-25 19:19:10 +08:00
|
|
|
.. Copyright 2016 The Cartographer Authors
|
|
|
|
|
|
|
|
.. Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
.. Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
|
|
|
|
.. Cartographer documentation master file, created by
|
|
|
|
sphinx-quickstart on Fri Jul 8 10:41:33 2016.
|
|
|
|
You can adapt this file completely to your liking, but it should at least
|
|
|
|
contain the root `toctree` directive.
|
|
|
|
|
2016-08-25 21:16:33 +08:00
|
|
|
============================
|
|
|
|
Cartographer ROS Integration
|
|
|
|
============================
|
2016-08-25 19:19:10 +08:00
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
:maxdepth: 2
|
2016-08-25 21:16:33 +08:00
|
|
|
:hidden:
|
|
|
|
|
|
|
|
`Cartographer`_ is a system that provides real-time simultaneous localization
|
|
|
|
and mapping `SLAM`_ across multiple platforms and sensor configurations. This
|
|
|
|
project provides Cartographer's ROS integration.
|
|
|
|
|
|
|
|
.. _Cartographer: https://github.com/googlecartographer/cartographer
|
|
|
|
.. _SLAM: http://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping
|
|
|
|
|
|
|
|
Getting Started
|
|
|
|
===============
|
|
|
|
|
|
|
|
Installation has been tested on Ubuntu 14.04 (Trusty) with ROS Indigo and on
|
|
|
|
Ubuntu 16.04 (Xenial) with ROS Kinetic. For ROS Kinetic, simply replace the two
|
|
|
|
occurrences of "indigo" with "kinetic" in the instructions below. There are
|
|
|
|
multiple options for building cartographer_ros as part of a ROS workspace. Two
|
|
|
|
common use cases are described below.
|
|
|
|
|
|
|
|
These dependencies always have to be installed:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
# Install the required libraries that are available as debs
|
|
|
|
sudo apt-get install \
|
|
|
|
ros-indigo-tf2-eigen \
|
|
|
|
g++ \
|
|
|
|
google-mock \
|
|
|
|
libboost-all-dev \
|
|
|
|
liblua5.2-dev \
|
|
|
|
libprotobuf-dev \
|
|
|
|
libsuitesparse-dev \
|
|
|
|
libwebp-dev \
|
|
|
|
protobuf-compiler \
|
|
|
|
python-sphinx \
|
|
|
|
libpcap-dev # For 3D SLAM with Velodynes
|
|
|
|
|
|
|
|
Standalone Workspace
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
# Set up your Catkin workspace
|
|
|
|
mkdir -p ~/catkin_ws/src
|
|
|
|
cd ~/catkin_ws/src
|
|
|
|
source /opt/ros/indigo/setup.bash
|
|
|
|
catkin_init_workspace
|
|
|
|
|
|
|
|
# Clone the necessary repos into your Catkin workspace
|
|
|
|
git clone https://github.com/googlecartographer/cartographer.git
|
|
|
|
git clone https://github.com/googlecartographer/cartographer_ros.git
|
|
|
|
git clone https://github.com/ethz-asl/ceres_catkin.git # Caution! Make sure you do not have "suitesparse" in your Catkin workspace
|
|
|
|
git clone https://github.com/ethz-asl/glog_catkin.git
|
|
|
|
git clone https://github.com/ethz-asl/gflags_catkin.git
|
|
|
|
git clone https://github.com/ethz-asl/catkin_simple.git
|
|
|
|
git clone https://github.com/ros-drivers/velodyne.git # For 3D SLAM with Velodynes
|
|
|
|
|
|
|
|
# Build everything in your Catkin workspace
|
|
|
|
cd ~/catkin_ws
|
|
|
|
catkin_make_isolated
|
|
|
|
source devel_isolated/setup.bash
|
|
|
|
|
2016-08-25 21:39:39 +08:00
|
|
|
Using wstool
|
|
|
|
------------
|
2016-08-25 21:16:33 +08:00
|
|
|
|
|
|
|
If ``cartographer_ros`` is to be used as part of a pre-existing
|
2016-08-25 21:39:39 +08:00
|
|
|
workspace/existing project, using `wstool <http://wiki.ros.org/wstool>`_ is
|
2016-08-25 21:16:33 +08:00
|
|
|
recommended.
|
2016-08-25 19:19:10 +08:00
|
|
|
|
2016-08-25 21:16:33 +08:00
|
|
|
.. code-block:: bash
|
2016-08-25 19:19:10 +08:00
|
|
|
|
2016-08-25 21:16:33 +08:00
|
|
|
# Enter workspace root (i.e. the folder that has "src" as a subfolder)
|
|
|
|
# Merge the cartographer_ros rosinstall file
|
|
|
|
wstool merge https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
|
2016-08-25 19:19:10 +08:00
|
|
|
|
2016-08-25 21:16:33 +08:00
|
|
|
# Update workspace
|
|
|
|
wstool update
|
2016-08-25 19:19:10 +08:00
|
|
|
|
2016-08-25 21:16:33 +08:00
|
|
|
# Build workspace contents. It is recommended to use catkin tools:
|
|
|
|
catkin build
|