Skip to content

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

License

Notifications You must be signed in to change notification settings

sousarbarb/cartographer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cartographer

Ubuntu 22.04 Build Status Ubuntu 20.04 Build Status Ubuntu 18.04 Build Status Debian Bullseye Build Status Debian Buster Build Status Documentation Status Apache 2 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.

Cartographer 3D SLAM Demo

A Note for ROS Users

Cartographer is no longer actively maintained. On rare occasions critical pull requests may be merged, but no new development is currently taking place, including issue response. If you are installing Cartographer in ROS 1 / ROS 2 using a binary package that package is a fork of this repository. The ROS fork of Cartographer is only maintained in a limited capacity. No new development takes place on this fork, but pull requests may be merged at the maintainers' discretion.

The ROS fork of Cartographer, and the ROS wrapper library, can be found at these locations:

Additional discussion can be found in this ROS Discourse thread.

Getting started

Installation

# Dependencies
sudo apt update
sudo apt dist-upgrade
sudo apt install -y \
    clang \
    cmake \
    g++ \
    git \
    google-mock \
    libboost-all-dev \
    libcairo2-dev \
    libceres-dev \
    libcurl4-openssl-dev \
    libeigen3-dev \
    libgflags-dev \
    libgoogle-glog-dev \
    liblua5.2-dev \
    libsuitesparse-dev \
    lsb-release \
    ninja-build \
    python3-sphinx \
    stow
# JUST FOR Ubuntu 20.04 LTS (Focal)
sudo apt install -y libgmock-dev protobuf-compiler

# Build and install Cartographer.
cd cartographer
mkdir build && cd build
cmake .. -G Ninja
ninja
CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

Note: you may need to manually install Abseil manually.

# Install dependencies of cartographer before installing abseil
git clone https://github.com/abseil/abseil-cpp.git
cd abseil-cpp/
git checkout 215105818dfde3174fe799600bb0f3cae233d0bf   # tag 20211102.0
mkdir build && cd build
cmake -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
  -DCMAKE_INSTALL_PREFIX=/usr/local/stow/absl \
  ..
ninja
sudo ninja install
cd /usr/local/stow
sudo stow absl

Note: you may need to comment the documentation generation if the Ninja command fails.

sousarbarb97@exodus:~/srrg_ros1_ws/src/cartographer$ git diff CMakeLists.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ef2fcb3..2782101 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -63,10 +63,10 @@ else()
 endif()

 # Only build the documentation if we can find Sphinx.
-find_package(Sphinx)
-if(SPHINX_FOUND)
-  add_subdirectory("docs")
-endif()
+#find_package(Sphinx)
+#if(SPHINX_FOUND)
+#  add_subdirectory("docs")
+#endif()

 # Install catkin package.xml
 install(FILES package.xml DESTINATION share/cartographer)

See https://google-cartographer.readthedocs.io/en/latest/index.html#getting-started-without-ros for the official instructions on how to build and install Cartographer.

Contributing

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

Open house slide archive

In the past there had been regular open-for-all meetings to discuss progress and plans for Cartographer. Slides of these Cartographer Open House meetings are listed below.

About

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

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 95.8%
  • CMake 1.6%
  • Starlark 1.0%
  • Lua 0.6%
  • Shell 0.5%
  • Python 0.4%
  • Other 0.1%