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.
|
|
|
|
|
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:
|
|
|
|
|
2016-10-05 22:33:50 +08:00
|
|
|
configuration
|
|
|
|
ros_api
|
2016-10-11 23:12:37 +08:00
|
|
|
data
|
2017-03-03 20:21:06 +08:00
|
|
|
faq
|
2016-09-27 18:09:57 +08:00
|
|
|
|
2016-08-25 21:16:33 +08:00
|
|
|
`Cartographer`_ is a system that provides real-time simultaneous localization
|
2016-10-05 23:27:21 +08:00
|
|
|
and mapping (`SLAM`_) in 2D and 3D across multiple platforms and sensor
|
|
|
|
configurations. This project provides Cartographer's ROS integration.
|
2016-08-25 21:16:33 +08:00
|
|
|
|
|
|
|
.. _Cartographer: https://github.com/googlecartographer/cartographer
|
2016-08-30 22:12:32 +08:00
|
|
|
.. _SLAM: https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping
|
2016-08-25 21:16:33 +08:00
|
|
|
|
2016-10-11 21:48:27 +08:00
|
|
|
System Requirements
|
|
|
|
===================
|
|
|
|
|
2016-10-12 20:30:10 +08:00
|
|
|
See Cartographer's :ref:`system requirements <cartographer:system-requirements>`.
|
|
|
|
|
|
|
|
The following `ROS distributions`_ are currently supported:
|
2016-10-11 21:48:27 +08:00
|
|
|
|
2016-12-09 23:17:13 +08:00
|
|
|
* Indigo
|
|
|
|
* Kinetic
|
2016-08-30 15:50:33 +08:00
|
|
|
|
2016-10-12 20:30:10 +08:00
|
|
|
.. _ROS distributions: http://wiki.ros.org/Distributions
|
|
|
|
|
2016-08-30 22:12:32 +08:00
|
|
|
Building & Installation
|
|
|
|
=======================
|
2016-08-25 21:16:33 +08:00
|
|
|
|
2016-10-11 21:48:27 +08:00
|
|
|
We recommend using `wstool <http://wiki.ros.org/wstool>`_ and `rosdep
|
|
|
|
<http://wiki.ros.org/rosdep>`_. For faster builds, we also recommend using
|
|
|
|
`Ninja <https://ninja-build.org>`_.
|
2016-08-25 21:16:33 +08:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
2016-08-30 22:12:32 +08:00
|
|
|
# Install wstool and rosdep.
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install -y python-wstool python-rosdep ninja-build
|
2016-08-25 21:16:33 +08:00
|
|
|
|
2016-08-30 22:12:32 +08:00
|
|
|
# Create a new workspace in 'catkin_ws'.
|
|
|
|
mkdir catkin_ws
|
|
|
|
cd catkin_ws
|
2016-09-28 20:36:22 +08:00
|
|
|
wstool init src
|
2016-08-25 21:16:33 +08:00
|
|
|
|
2016-09-28 20:36:22 +08:00
|
|
|
# Merge the cartographer_ros.rosinstall file and fetch code for dependencies.
|
|
|
|
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
|
|
|
|
wstool update -t src
|
2016-08-25 19:19:10 +08:00
|
|
|
|
2016-08-30 22:12:32 +08:00
|
|
|
# Install deb dependencies.
|
2017-04-20 18:30:20 +08:00
|
|
|
# The command 'sudo rosdep init' will print an error if you have already
|
|
|
|
# executed it since installing ROS. This error can be ignored.
|
|
|
|
sudo rosdep init
|
2016-08-30 22:12:32 +08:00
|
|
|
rosdep update
|
|
|
|
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
|
2016-08-25 19:19:10 +08:00
|
|
|
|
2016-08-30 22:12:32 +08:00
|
|
|
# Build and install.
|
|
|
|
catkin_make_isolated --install --use-ninja
|
|
|
|
source install_isolated/setup.bash
|
2016-08-25 19:19:10 +08:00
|
|
|
|
2016-10-11 21:48:27 +08:00
|
|
|
Running the demos
|
|
|
|
=================
|
2016-08-30 22:12:32 +08:00
|
|
|
|
|
|
|
Now that Cartographer and Cartographer's ROS integration are installed,
|
2016-10-05 23:27:21 +08:00
|
|
|
download the example bags (e.g. 2D and 3D backpack collections of the
|
|
|
|
`Deutsches Museum <https://en.wikipedia.org/wiki/Deutsches_Museum>`_) to a
|
|
|
|
known location, in this case ``~/Downloads``, and use ``roslaunch`` to bring up
|
|
|
|
the demo:
|
2016-08-30 22:12:32 +08:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
2016-09-30 20:25:28 +08:00
|
|
|
# Download the 2D backpack example bag.
|
2016-08-30 22:12:32 +08:00
|
|
|
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
|
2016-08-25 19:19:10 +08:00
|
|
|
|
2016-09-30 20:25:28 +08:00
|
|
|
# Launch the 2D backpack demo.
|
2016-09-30 17:25:43 +08:00
|
|
|
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
|
|
|
|
|
2016-09-30 20:25:28 +08:00
|
|
|
# Download the 3D backpack example bag.
|
2016-11-25 21:30:57 +08:00
|
|
|
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/b3-2016-04-05-14-14-00.bag
|
2016-09-30 17:25:43 +08:00
|
|
|
|
2016-09-30 20:25:28 +08:00
|
|
|
# Launch the 3D backpack demo.
|
2016-11-25 21:30:57 +08:00
|
|
|
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag
|
2016-09-30 17:25:43 +08:00
|
|
|
|
2016-09-30 20:25:28 +08:00
|
|
|
# Download the Revo LDS example bag.
|
2016-09-30 21:09:31 +08:00
|
|
|
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/revo_lds/cartographer_paper_revo_lds.bag
|
2016-09-30 20:25:28 +08:00
|
|
|
|
|
|
|
# Launch the Revo LDS demo.
|
|
|
|
roslaunch cartographer_ros demo_revo_lds.launch bag_filename:=${HOME}/Downloads/cartographer_paper_revo_lds.bag
|
|
|
|
|
2016-09-30 21:09:31 +08:00
|
|
|
# Download the PR2 example bag.
|
|
|
|
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/pr2/2011-09-15-08-32-46.bag
|
|
|
|
|
|
|
|
# Launch the PR2 demo.
|
|
|
|
roslaunch cartographer_ros demo_pr2.launch bag_filename:=${HOME}/Downloads/2011-09-15-08-32-46.bag
|
|
|
|
|
2016-11-22 22:39:35 +08:00
|
|
|
# Download the Taurob Tracker example bag.
|
|
|
|
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/taurob_tracker/taurob_tracker_simulation.bag
|
|
|
|
|
|
|
|
# Launch the Taurob Tracker demo.
|
|
|
|
roslaunch cartographer_ros demo_taurob_tracker.launch bag_filename:=${HOME}/Downloads/taurob_tracker_simulation.bag
|
|
|
|
|
2016-09-30 17:25:43 +08:00
|
|
|
The launch files will bring up ``roscore`` and ``rviz`` automatically.
|