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! 🎈