Часть 1.4. Документация по ROS. Установка ROS из исходников — TechCave

Оглавление Установка ROS из исходников Для установки из исходников необходимо загрузить и скомпилировать исходный код вручную. ROS Indigo имеет скомпилированные пакеты только для дистрибутивов Ubuntu Saucy и Trusty

Часть 1.4. Документация по ROS. Установка ROS из исходников

Робототехника

Часть 1.4. Документация по ROS. Установка ROS из исходников

Оглавление

Установка ROS из исходников

Для установки из исходников необходимо загрузить и скомпилировать исходный код вручную. ROS Indigo имеет скомпилированные пакеты только для дистрибутивов Ubuntu Saucy и Trusty. Другие платформы также можно использовать, но это все не будет работать из коробки. Возможные целевые платформы определены в REP 3.

1. Предварительная подготовка

1.1 Установка начальных зависимостей

Установка начальных зависимостей (Ubuntu):

Эти инструменты используются для облегчения загрузки и управление пакетами ROS и их зависимостей.

Ubuntu:

$ sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential

Если у вас есть проблемы с установкой пакетов командой выше, убедитесь, что вы добавили репозиторий Debian пакетов packages.ros.org в список ваших источников, как описано здесь:

Если apt ругается, что python-support не может быть установлен, убедитесь, что у вас включен репозиторий Ubuntu universe в файле /etc/apt/sources.list

Fedora:

$ sudo yum install python-rosdep python-rosinstall_generator python-wstool python-rosinstall @buildsys-build

Некоторые пакеты используемые ROS в настоящее время не доступны в RPM репозиториях Fedora. Большинство пакетов доступны в RPM репозитории Fusion. См установка RPM репозитория Fusion из командной строки.

Любые пакеты не доступные в RPM репозитории Fusion, можно найти в репозитории RPM SDSM&T ROS, доступном по адресу csc.mcs.sdsmt.edu.

Универсальный способ (pip):

Если вы используете не Debian систему, то вам нужно убедиться, что у вас все инструменты для сборки (компилятор, CMake, и т.д.) установлены. Вы можете установить все средства ROS Python с помощью PIP:

$ sudo pip install -U rosdep rosinstall_generator wstool rosinstall

Если возникли ошибки с rosdep при выполнении команды выше, то возможно версия вашей системы pip устарела. Используйте средства управления пакетами в вашей системе, чтобы обновить pip, или всю систему целиком:

$ sudo pip install --upgrade setuptools

Обратите внимание, что на многих платформах, таких как OSX вы можете установить пакеты и использовать ROS внутри virtualenv, чтобы избежать конфликтов с системными зависимостями.

1.2 Инициализация rosdep

$ sudo rosdep init
$ rosdep update

2. Установка

Начало сборки ядра ROS.

2.1 Сборка Catkin пакетов

ROS находится в процессе перехода к новой системе сборки catkin, и не все пакеты были сконвертированы, но две системы сборки не могут использоваться одновременно. Поэтому необходимо сначала построить пакеты ядра ROS (пакеты сatkin), а затем все остальное.

2.1.1 Создание рабочего пространства catkin

Для того, чтобы собрать базовые пакеты, вам понадобится рабочее пространство catkin. Создайте его:

$ mkdir ~/ros_catkin_ws
$ cd ~/ros_catkin_ws

Далее нам необходимо получить базовые пакеты, чтобы собрать их. Мы будем использовать wstool для этого. Выберите wstoolcommand для конкретного варианта, который вы хотите установить:

Desktop-Fulll: (Рекомендуемая): ROS, rqt, rviz, основные робототехнические библиотеки, 2D/3D симуляторы, библиотеки навигации и 2D/3D библиотеки восприятия окружающей среды.

  • $ rosinstall_generator desktop_full --rosdistro indigo --deps --wet-only --tar > indigo-desktop-full-wet.rosinstall
    $ wstool init -j8 src indigo-desktop-full-wet.rosinstall

Desktop: ROS, rqt, rviz, и основные робототехнические библиотеки.

  • $ rosinstall_generator desktop --rosdistro indigo --deps --wet-only --tar > indigo-desktop-wet.rosinstall
    $ wstool init -j8 src indigo-desktop-wet.rosinstall

ROS-Comm: (Только основа) ROS, средства разработки и основные коммуникационные библиотеки. Без GUI.

  • $ rosinstall_generator ros_comm --rosdistro indigo --deps --wet-only --tar > indigo-ros_comm-wet.rosinstall
    $ wstool init -j8 src indigo-ros_comm-wet.rosinstall

Это позволит добавить все пакеты catkin, а затем загрузить исходники в каталог ~ /ros_catkin_ws/src. Выполнение команды займет несколько минут, чтобы загрузить все основные ROS пакеты в папку SRC. Ключ -j8 позволяет делать 8 загрузок пакетов параллельно.

В дополнение к 3-м вариантам выше, есть и другие, которые более подробно определенны в REP 131, такие как robot, perception и т.д. К примеру, для установи варианта robot необходимо выполнить:

$ rosinstall_generator robot --rosdistro indigo --deps --wet-only --tar > indigo-robot-wet.rosinstall
$ wstool init -j8 src indigo-robot-wet.rosinstall

Если выполнение wstool закончилось со сбоем или прервалось, вы можете возобновить загрузку, выполнив:

$ wstool update -j 4 -t src

После завершения выполнения команды вы должны увидеть, что то вроде этого:

2.1.2 Разрешение зависимостей

Прежде чем вы сможете построить свое рабочее пространство catkin вам нужно убедиться, что у вас есть все необходимые зависимости. Для этого мы используем инструмент rosdep:

$ rosdep install --from-paths src --ignore-src --rosdistro indigo -y

Данная команда проверит зависимости во всех пакетах в директории с исходниками и установит их.

Опция --from-paths указывает, что мы хотим, чтобы установились зависимости для всего каталога пакетов, в данном случае src. Опция --ignore-src указывает rosdep, что он не должен пытаться устанавливать какие-либо пакеты ROS в папку src из менеджера пакетов, нам это не нужно, так как мы будем собирать их сами. Опция --rosdistro необходима, потому что у нас еще нет установленной среды ROS, так что мы должны указать rosdep, что за версию ROS мы собираем. Наконец, опция -y указывает rosdep, что мы не хотим много раз отвечать на вопросы менеджера пакетов.

Через некоторое время (возможно вам придется ввести пароль) командой rosdep будет завершена установка системы зависимостей, и вы сможете продолжить.

Команда должна завершиться так:

2.1.3 Сборка рабочего пространства catkin

После того, как завершиться загрузка пакетов и разрешение зависимостей мы будем собирать catkin пакеты. Мы будем использовать команду catkin_make_isolated, потому что у нас есть и catkin и CMake пакеты. Если вы разрабатываете пакеты только на catkin, то нужно использовать catkin/commands/catkin_make.

Вызовите catkin_make_isolated:

$ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release

Примечание: Вы можете выбрать разные типы сборки CMake (например RelWithDebInfo или Debug, подробнее смотрите тут

http://cmake.org/cmake/help/v2.8.12/cmake.html#variable:CMAKE_BUILD_TYPE).

Примечание: место установки catkin по умолчанию ~/ros_catkin_ws/install_isolated, если вы хотите установить куда то еще, то вы можете сделать это, добавив --install-space /opt/ros/indigoкак аргумент для команды catkin_make_isolated.

Для использования на роботе без Ubuntu, рекомендуется устанавливать скомпилированный код в /opt/ros/indigo. Не делайте этого в Ubuntu, так как пакеты будут конфликтовать с пакетами установленными с помощью apt. Кроме того, можно установить и в другое место (например, /usr), но это не рекомендуется.

Пожалуйста, посмотрите REP 122: Filesystem Hierarchy Layoutдля получения более подробной информации о том, как установленные файлы размещаются.

Примечание: Мы запустили команду catkin_make_isolated из папки с исходниками catkin, потому что она не была установлена, после установки она может быть вызвана из любого места.

Завершение команды будет выглядеть так:

Теперь ваши пакеты должны быть установлены в ~/ros_catkin_ws/install_isolated или там, куда вы указали с помощью аргумента --install-space. Если вы посмотрите в каталоге, то вы увидите, что там появился файл setup.bash. Выполните команду source для этого файла. Сделайте это перед тем, как продолжите:

$ source ~/ros_catkin_ws/install_isolated/setup.bash

3. Обновление исходников

Если мы хотим, чтобы наши исходники были обновлены до последней версии, нам нужно будет периодически обновлять наш rosinstall файл, загрузить последние версии источников, и пересобрать наше рабочее пространство.

3.1 Обновление рабочего пространства

Чтобы обновить рабочее пространство, сначала переименуйте существующий файл rosinstall так, чтобы он не был перезаписан. Для простоты, мы рассмотрим *destop-full* вариант. Для других вариантов, измените имена файлов и аргументы команды rosinstall_generator.

$ mv -i indigo-desktop-full-wet.rosinstall indigo-desktop-full-wet.rosinstall.old
$ rosinstall_generator desktop_full --rosdistro indigo --deps --wet-only --tar > indigo-desktop-full-wet.rosinstall

Затем сравните новый файл rosinstall и старую версию файла, чтобы увидеть, какие пакеты будут обновлены:

$ diff -u indigo-desktop-full-wet.rosinstall indigo-desktop-full-wet.rosinstall.old

Если вы согласны с этими изменениями, включите новый файл rosinstall в рабочее пространство и обновите его:

$ wstool merge -t src indigo-desktop-full-wet.rosinstall
$ wstool update -t src

3.2 Пересборка рабочего пространства

Теперь, в рабочем пространстве находятся последние версии исходников, пересоберите его:

$ ./src/catkin/bin/catkin_make_isolated --install

Если вы указывали параметр --install-space, когда собирали ваше рабочее пространство изначально, вы также должны указать его, когда будете пересобирать его.

После того, как ваше рабочее пространство будет пересобрано, вы должны снова выполнить команду source:

$ source ~/ros_catkin_ws/install_isolated/setup.bash

[wiki.ros.org]

Оглавление

13:18
1364

Нет комментариев. Ваш будет первым!

Авторизация

Пользователи

NewEXE
Георгiй Москвитинъ
Andpyxa Tutunnik
Andrey_fox
Jane linch
genagy
Pasha Radiuk
KotikBSD
Эрик Имашев

GeekBrains

Нетология

Нетология