Google Картограф РОС

Цели

  • Получите wstool, rosdep, Ninja
  • Создайте рабочее пространство ROS
  • Установите зависимости Cartographer
  • Соберите рабочее пространство ROS и установите

Предпосылки

  • Убунту 18.04 ЛТС
  • РОС Мелодик

Обновляйте все время. (ВО ВСЕ ВРЕМЕНА!)

sudo apt-get update

Получить wstool, rosdep, Ninja

Чтобы собрать Cartographer ROS, используйте wstool и rosdep. Для более быстрой сборки мы будем использовать Ninja. (Из Компиляция Cartographer ROS)

sudo apt-get install -y python-wstool python-rosdep ninja-build stow

Если вы используете Ubuntu Focal (20.04) с ROS Noetic:

sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow

Создайте рабочее пространство ROS

После установки инструментов создайте рабочее пространство ROS для пакета Cartographer. Имя каталога для этого руководства — cartorapher_ws.

mkdir cartographer_ws

Зайдите в рабочее пространство, чтобы заняться другими делами.

cd cartographer_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

Теперь вам нужно установить зависимости Cartographer. Мы используем rosdep для установки необходимых пакетов. Появится ошибка, если вы уже выполнили ее с момента установки ROS. Эту ошибку можно игнорировать.

sudo rosdep init

${ROS_DISTRO} автоматически изменится на вашу версию ROS при копировании и вставке в терминал. Теперь сделайте все остальное.

rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y\

Картограф использует библиотеку abseil-cpp, которую необходимо установить вручную с помощью:

src/cartographer/scripts/install_abseil.sh

Github issue «#1726 от cartographer-project/cartographer_ros

Если есть такая ошибка:

ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: cartographer: [libabsl-dev] defined as "not available" for OS version [focal]

Сотрите одну строку в файле package.xml Картографа:

<depend>libabsl-dev</depend>

Из-за конфликтующих версий вам может потребоваться удалить ROS abseil-cpp, используя:

sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp

Соберите рабочее пространство ROS и установите

catkin_make_isolated --install --use-ninja

Это создает изолированное рабочее пространство вместо обычного рабочего пространства. В чем разница? Я не знаю.

Результат (в файле каталога)

Отличная работа! Вы успешно установили и собрали Cartographer ROS! 🎈