Go to file
Martin Schwörer 3b511aa1ba Store histogram in submap (#1277)
The histogram of a submap is now stored in the submap (class and proto) itself. This change allows to accumulate the histogram of a submap in local SLAM by adding up the histogram of each new scan.

The main advantage is that the background thread doesn't have to loop over all `TrajectoryNode`s of a finished submap to compute the submap histogram for the `RotationalScanMatcher`. Instead this chunk of work is moved to the local SLAM thread but is split up into a few computations for each new scan. When running localization, the histogram of a submap can just be read from a map pbstream and does not have to be computed from the nodes.

In summary:
- This change improved the CPU time of offline SLAM by ~7%.
- Increases the readability of the code and performance of the background thread. (see `PoseGraph3D::ComputeConstraint`)
- No negative performance impacts on accuracy or finding loop-closures

However:
- With this change to the submap proto, old maps (pbstreams) are no longer supported and need to be re-created by running offline slam
2018-09-04 12:02:57 +02:00
.bazelci Limit `bazel test` parallelism more precisely (#1094) 2018-04-19 18:51:20 +02:00
.github Updated PR template taking wally into account. (#663) 2017-11-14 14:41:48 +01:00
bazel Various Bazel improvements (#1390) 2018-08-14 12:14:06 +02:00
cartographer Store histogram in submap (#1277) 2018-09-04 12:02:57 +02:00
cmake [ABSL] Use absl::Substitute in rigid_transform debug messages. (#1373) 2018-08-07 12:50:37 +02:00
configuration_files Move OverlappingSubmapTrimmerOptions to PoseGraphOptions (#1408) 2018-09-04 10:12:19 +02:00
docs Unified pbstream tool (#1326) 2018-07-24 15:48:34 +02:00
scripts Bump async_grpc (#1380) 2018-08-10 09:30:54 +02:00
.bazelrc Various Bazel improvements (#1390) 2018-08-14 12:14:06 +02:00
.dockerignore Add Xenial to build matrix. (#156) 2016-12-09 10:57:41 +01:00
.gitignore Add a Bazel build for cartographer (#834) 2018-01-22 16:47:07 +01:00
.travis.yml Support new Debian version of gmock and add testing for debian systems (#236) 2017-05-04 12:47:12 +02:00
AUTHORS Initial import of Cartographer codebase. 2016-08-02 09:12:42 +02:00
BUILD.bazel Add licenses() declarations to BUILD files (#843) 2018-01-24 13:16:25 +01:00
CHANGELOG.rst Release 1.0 (#1177) 2018-06-05 12:54:07 +02:00
CMakeLists.txt Add absl to CMake and Bazel builds. (#1301) 2018-07-26 06:49:37 +02:00
CONTRIBUTING.md Initial import of Cartographer codebase. 2016-08-02 09:12:42 +02:00
Dockerfile.jessie Introduce bazel docker file (#838) 2018-01-23 10:50:51 +01:00
Dockerfile.stretch Introduce bazel docker file (#838) 2018-01-23 10:50:51 +01:00
Dockerfile.trusty Use async_grpc (#1013) 2018-03-23 10:52:48 +01:00
Dockerfile.trusty.bazel Introduce bazel docker file (#838) 2018-01-23 10:50:51 +01:00
Dockerfile.xenial Introduce bazel docker file (#838) 2018-01-23 10:50:51 +01:00
LICENSE Initial import of Cartographer codebase. 2016-08-02 09:12:42 +02:00
README.rst Update README.rst (#1383) 2018-08-13 15:21:18 +02:00
RELEASING.rst Add instructions for releasing. (#342) 2017-06-19 12:00:12 +02:00
WORKSPACE Use sourceforge mirrors for boost. (#1378) 2018-08-10 20:03:26 +02:00
cartographer-config.cmake.in Make standalone_absl imported target global. (#1351) 2018-07-30 13:06:15 +02:00
package.xml Release 1.0 (#1177) 2018-06-05 12:54:07 +02:00

README.rst

.. 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
============

|build| |docs| |license|

Purpose
=======

`Cartographer`_ is a system that provides real-time simultaneous localization
and mapping (`SLAM`_) in 2D and 3D across multiple platforms and sensor
configurations.

|video|

.. _Cartographer: https://github.com/googlecartographer/cartographer
.. _SLAM: https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping

Getting started
===============

* Learn to use Cartographer at `our Read the Docs site`_.
* You can ask a question by `creating an issue`_.

.. _our Read the Docs site: https://google-cartographer.readthedocs.io
.. _creating an issue: https://github.com/googlecartographer/cartographer_ros/issues/new?labels=question

Open house
==========

We regularly meet in an open-for-all Google hangout to discuss progress and plans for Cartographer.
You can join the `mailing list`_ to receive announcements.

The next Cartographer Open House Hangout is on **Thursday, August 16th, 5pm CEST (8am PT)** [`Hangouts link`_].

.. _mailing list: https://groups.google.com/forum/#!forum/google-cartographer
.. _Hangouts link: https://staging.talkgadget.google.com/hangouts/_/google.com/cartographeropenhouse

- August 2, 2018: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/180802/slides.pdf>`_
- July 5, 2018: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/180705/slides.pdf>`_
- June 21, 2018: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/180621/slides.pdf>`_
- June 7, 2018: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/180607/slides.pdf>`_
- May 24, 2018: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/180524/slides.pdf>`_
- May 3, 2018: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/180503/slides.pdf>`_
- March 29, 2018: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/180329/slides.pdf>`_
- February 22, 2018: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/180222/slides.pdf>`_
- February 8, 2018: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/180208/slides.pdf>`_
- January 18, 2018: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/180125/slides.pdf>`_
- January 11, 2018: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/180111/slides.pdf>`_
- December 7, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/171207/slides.pdf>`_
- November 23, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/171123/slides.pdf>`_
- November 9, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/171109/slides.pdf>`_
- October 26, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/171026/slides.pdf>`_
- October 12, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/171012/slides.pdf>`_
- September 14, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/170914/slides.pdf>`_
- August 17, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/170817/slides.pdf>`_
- July 20, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/170720/slides.pdf>`_
- July 6, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/170706/slides.pdf>`_
- June 22, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/170622/sildes.pdf>`_
- June 8, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/170608/slides.pdf>`_

Contributing
============

You can find information about contributing to Cartographer at `our Contribution
page`_.

.. _our Contribution page: https://github.com/googlecartographer/cartographer/blob/master/CONTRIBUTING.md

.. |build| image:: https://travis-ci.org/googlecartographer/cartographer.svg?branch=master
    :alt: Build Status
    :scale: 100%
    :target: https://travis-ci.org/googlecartographer/cartographer
.. |docs| image:: https://readthedocs.org/projects/google-cartographer/badge/?version=latest
    :alt: Documentation Status
    :scale: 100%
    :target: https://google-cartographer.readthedocs.io/en/latest/?badge=latest
.. |license| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
     :alt: Apache 2 license.
     :scale: 100%
     :target: https://github.com/googlecartographer/cartographer/blob/master/LICENSE
.. |video| image:: https://j.gifs.com/wp3BJM.gif
    :alt: Cartographer 3D SLAM Demo
    :scale: 100%
    :target: https://youtu.be/DM0dpHLhtX0