Cartographer
Cartographer是一个跨多个平台和传感器配置提供 2D 和 3D 实时同步定位和地图绘制 ( SLAM ) 的系统。
技术概述
- Cartographer 的高级系统概述
入门
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 页。