Оглавление Установка ROS из исходников Для установки из исходников необходимо загрузить и скомпилировать исходный код вручную. ROS Indigo имеет скомпилированные пакеты только для дистрибутивов Ubuntu Saucy и Trusty
Для установки из исходников необходимо загрузить и скомпилировать исходный код вручную. ROS Indigo имеет скомпилированные пакеты только для дистрибутивов Ubuntu Saucy и Trusty. Другие платформы также можно использовать, но это все не будет работать из коробки. Возможные целевые платформы определены в REP 3.
Установка начальных зависимостей (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, чтобы избежать конфликтов с системными зависимостями.
$ sudo rosdep init
$ rosdep updateНачало сборки ядра ROS.
ROS находится в процессе перехода к новой системе сборки catkin, и не все пакеты были сконвертированы, но две системы сборки не могут использоваться одновременно. Поэтому необходимо сначала построить пакеты ядра ROS (пакеты сatkin), а затем все остальное.
Для того, чтобы собрать базовые пакеты, вам понадобится рабочее пространство 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После завершения выполнения команды вы должны увидеть, что то вроде этого:

Прежде чем вы сможете построить свое рабочее пространство 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 будет завершена установка системы зависимостей, и вы сможете продолжить.
Команда должна завершиться так:

После того, как завершиться загрузка пакетов и разрешение зависимостей мы будем собирать 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Если мы хотим, чтобы наши исходники были обновлены до последней версии, нам нужно будет периодически обновлять наш rosinstall файл, загрузить последние версии источников, и пересобрать наше рабочее пространство.
Чтобы обновить рабочее пространство, сначала переименуйте существующий файл 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Теперь, в рабочем пространстве находятся последние версии исходников, пересоберите его:
$ ./src/catkin/bin/catkin_make_isolated --installЕсли вы указывали параметр --install-space, когда собирали ваше рабочее пространство изначально, вы также должны указать его, когда будете пересобирать его.
После того, как ваше рабочее пространство будет пересобрано, вы должны снова выполнить команду source:
$ source ~/ros_catkin_ws/install_isolated/setup.bash