Cartographer_ros编译
系统要求
Cartographer_ros的安装依赖项与Cartographer相同
目前支持以下的ROS发行版本:
- Kinetic
- Melodic
- Noetic
编译和安装
为了构建 Cartographer ROS,推荐使用 wstool 和 rosdep。 为了更快的构建,还建议使用 Ninja。
在装有 ROS Noetic 的 Ubuntu Focal 上,使用这些命令来安装上述工具:
sudo apt-get update
sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow
在之前的发行版上,使用以下命令:
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build stow
在上述工作安装后,需要为Cartographer_ros创建一个工作空间并拉取代码:
mkdir catkin_ws
cd catkin_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
现在需要安装 cartographer_ros 的依赖项。 首先,使用 rosdep 来安装所需的包。 如果在安装 ROS 后已经执行过‘sudo rosdep init’命令,则会打印错误信息。 这个错误可以忽略。
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
# 对于Ubuntu 16 / ROS Kinetic还需要执行这个脚本来安装protobuf:
# src/cartographer/scripts/install_proto3.sh
Cartographer 使用 abseil-cpp 库,需要使用此脚本手动安装:
src/cartographer/scripts/install_abseil.sh
由于版本冲突,可能需要使用以下命令卸载 ROS abseil-cpp
sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp
之后执行编译和安装命令:
catkin_make_isolated --install --use-ninja
这将从 master 分支的最新 HEAD 构建 Cartographer。 如果需要特定版本,则需要更改 cartographer_ros.rosinstall 中的版本。