跳到主要内容

Cartographer

Cartographer是一个跨多个平台和传感器配置提供 2D 和 3D 实时同步定位和地图绘制 ( SLAM ) 的系统。

技术概述

  • Cartographer 的高级系统概述

_images/高级系统概述.png

入门

Cartographer 是一个独立的 C++ 库。为了快速上手,请使用我们的ROS集成。

ROS 入门

ROS 集成由Cartographer ROS 代码库提供。您可以在 Cartographer ROS 阅读文档网站找到有关如何使用 Cartographer 与 ROS 进行集成的完整文档。

无需 ROS 即可开始

请参阅我们的 ROS 集成,作为将您的系统与独立库集成的起点。目前,这是最佳参考。

在 Ubuntu 18.04(Bionic)上:

# Install the required libraries that are available as debs.
sudo apt-get update
sudo apt-get 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
# Install Protocol Buffers and Abseil if available.
# No need to build it ourselves.
case "$(lsb_release -sc)" in
jammy|bullseye)
sudo apt-get install -y libgmock-dev protobuf-compiler libabsl-dev ;;
focal|buster)
sudo apt-get install -y libgmock-dev protobuf-compiler ;;
bionic)
;;
esac

git clone https://github.com/abseil/abseil-cpp.git
cd abseil-cpp
git checkout 215105818dfde3174fe799600bb0f3cae233d0bf # 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

VERSION="v3.4.1"
# Build and install proto3.
git clone https://github.com/google/protobuf.git
cd protobuf
git checkout tags/${VERSION}
mkdir build
cd build
cmake -G Ninja \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_BUILD_TYPE=Release \
-Dprotobuf_BUILD_TESTS=OFF \
../cmake
ninja
sudo ninja install

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

系统要求

虽然 Cartographer 可能在其他系统上运行,但确认可以在满足以下要求的系统上运行:

  • 64 位现代 CPU(例如第三代 i7)
  • 16 GB 内存
  • Ubuntu 18.04(Bionic)、20.04(Focal)、22.04(Jammy)
  • gcc 版本 7.5.0、8.3.0、9.3.0、10.2.1、11.2.0

已知问题

  • 32 位版本存在 libeigen 对齐问题,会导致崩溃和/或内存损坏。

如何引用我们

关于为 Cartographer 开发的算法的背景信息,请参阅以下出版物。如果您使用 Cartographer 进行研究,请引用我们的论文,我们将不胜感激。

W. Hess, D. Kohler, H. Rapp 和 D. Andor, 《2D LIDAR SLAM 中的实时环路闭合》,载于 《机器人与自动化(ICRA)》,2016 IEEE 国际会议。IEEE,2016 年,第 1271-1278 页。

更多信息

  1. cartographer纯定位+movebase导航
  2. cartographer的纯定位系统替代AMCL