2016-08-02 15:07:31 +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:39:51 +08:00
|
|
|
|
============
|
|
|
|
|
Cartographer
|
|
|
|
|
============
|
2016-08-02 15:07:31 +08:00
|
|
|
|
|
|
|
|
|
.. toctree::
|
|
|
|
|
:maxdepth: 2
|
2016-08-25 21:39:51 +08:00
|
|
|
|
:hidden:
|
|
|
|
|
|
2016-12-21 23:21:43 +08:00
|
|
|
|
configuration
|
|
|
|
|
|
2016-08-25 21:39:51 +08:00
|
|
|
|
`Cartographer`_ is a system that provides real-time simultaneous localization
|
2016-10-05 23:27:08 +08:00
|
|
|
|
and mapping (`SLAM`_) in 2D and 3D across multiple platforms and sensor
|
|
|
|
|
configurations.
|
2016-08-25 21:39:51 +08:00
|
|
|
|
|
2016-08-29 16:23:27 +08:00
|
|
|
|
.. _Cartographer: https://github.com/googlecartographer/cartographer
|
2016-08-30 20:48:12 +08:00
|
|
|
|
.. _SLAM: https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping
|
2016-08-25 21:39:51 +08:00
|
|
|
|
|
2017-09-28 14:27:27 +08:00
|
|
|
|
Technical Overview
|
|
|
|
|
==================
|
|
|
|
|
* High level structure of Cartographer
|
|
|
|
|
|
|
|
|
|
.. image:: High_Level_Structure.jpg
|
|
|
|
|
:target: https://github.com/googlecartographer/cartographer/blob/master/docs/source/High_Level_Structure.jpg
|
|
|
|
|
|
2016-10-11 22:09:55 +08:00
|
|
|
|
Getting started
|
|
|
|
|
===============
|
|
|
|
|
|
|
|
|
|
Cartographer is a standalone C++ library. To get started quickly, use our `ROS
|
|
|
|
|
<http://www.ros.org>`_ integration.
|
|
|
|
|
|
2016-09-01 17:46:17 +08:00
|
|
|
|
Getting started with ROS
|
2016-10-11 22:09:55 +08:00
|
|
|
|
------------------------
|
2016-08-25 21:39:51 +08:00
|
|
|
|
|
2016-08-29 16:23:27 +08:00
|
|
|
|
ROS integration is provided by the `Cartographer ROS repository`_. You will find
|
|
|
|
|
complete documentation for using Cartographer with ROS at the
|
|
|
|
|
`Cartographer ROS Read the Docs site`_.
|
2016-08-25 21:39:51 +08:00
|
|
|
|
|
2016-08-29 16:23:27 +08:00
|
|
|
|
.. _Cartographer ROS repository: https://github.com/googlecartographer/cartographer_ros
|
|
|
|
|
.. _Cartographer ROS Read the Docs site: https://google-cartographer-ros.readthedocs.io
|
2016-08-25 21:39:51 +08:00
|
|
|
|
|
2016-09-01 17:46:17 +08:00
|
|
|
|
Getting started without ROS
|
2016-10-11 22:09:55 +08:00
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
|
|
Please see our ROS integration as a starting point for integrating your system
|
|
|
|
|
with the standalone library. Currently, it is the best available reference.
|
2016-08-25 21:39:51 +08:00
|
|
|
|
|
|
|
|
|
On Ubuntu 14.04 (Trusty):
|
2016-08-02 15:07:31 +08:00
|
|
|
|
|
2016-08-26 23:34:51 +08:00
|
|
|
|
.. literalinclude:: ../../scripts/install_debs.sh
|
|
|
|
|
:language: bash
|
|
|
|
|
:linenos:
|
|
|
|
|
:lines: 20-
|
|
|
|
|
|
|
|
|
|
.. literalinclude:: ../../scripts/install_ceres.sh
|
|
|
|
|
:language: bash
|
|
|
|
|
:linenos:
|
|
|
|
|
:lines: 20-
|
|
|
|
|
|
|
|
|
|
.. literalinclude:: ../../scripts/install_cartographer.sh
|
|
|
|
|
:language: bash
|
|
|
|
|
:linenos:
|
|
|
|
|
:lines: 20-
|
2016-09-01 17:46:17 +08:00
|
|
|
|
|
2016-10-12 18:52:26 +08:00
|
|
|
|
.. _system-requirements:
|
|
|
|
|
|
2016-10-11 22:09:55 +08:00
|
|
|
|
System Requirements
|
|
|
|
|
===================
|
|
|
|
|
|
|
|
|
|
Although Cartographer may run on other systems, it is confirmed to be working
|
|
|
|
|
on systems that meet the following requirements:
|
|
|
|
|
|
|
|
|
|
* 64-bit, modern CPU (e.g. 3rd generation i7)
|
|
|
|
|
* 16 GB RAM
|
2016-12-09 20:08:43 +08:00
|
|
|
|
* Ubuntu 14.04 (Trusty) and 16.04 (Xenial)
|
|
|
|
|
* gcc version 4.8.4 and 5.4.0
|
2016-10-11 22:09:55 +08:00
|
|
|
|
|
2016-10-12 18:52:26 +08:00
|
|
|
|
Known Issues
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
* 32-bit builds have libeigen alignment problems which cause crashes and/or
|
|
|
|
|
memory corruptions.
|
|
|
|
|
|
2016-09-01 17:46:17 +08:00
|
|
|
|
How to cite us
|
|
|
|
|
==============
|
|
|
|
|
|
|
|
|
|
Background about the algorithms developed for Cartographer can be found in the
|
|
|
|
|
following publication. If you use Cartographer for your research, we would
|
|
|
|
|
appreciate it if you cite our paper.
|
|
|
|
|
|
|
|
|
|
W. Hess, D. Kohler, H. Rapp, and D. Andor,
|
|
|
|
|
`Real-Time Loop Closure in 2D LIDAR SLAM`_, in
|
|
|
|
|
*Robotics and Automation (ICRA), 2016 IEEE International Conference on*.
|
|
|
|
|
IEEE, 2016. pp. 1271–1278.
|
|
|
|
|
|
|
|
|
|
.. _Real-Time Loop Closure in 2D LIDAR SLAM: https://research.google.com/pubs/pub45466.html
|