1. Сборка пакета ROS
Описание: В этом руководстве описывается использование утилит rosmake, для построения пакета, и rosdep, для установки системы зависимостей.
2. Система зависимостей
Пакеты ROS, иногда требуют для своей работы наличия внешних библиотек и утилит, которые предоставляются операционной системой. Эти необходимые библиотеки и утилиты, обычно называют системой зависимостей. В некоторых случаях, эти системы зависимостей не установлены по умолчанию. ROS обеспечивает простой инструмент — rosdep, который используется для загрузки и установки системы зависимостей.
Пакеты ROS, должны объявить, что им нужны эти системные зависимости, в манифесте пакета. Давайте посмотрим на манифест для пакета turtlesim:
$ roscd turtlesim $ cat manifest.xml... ...
Как вы можете видеть turtlesim требуется для работы wxwidgets.
2.1 rosdep
rosdep — это утилита, которую можно использовать для установки системы зависимостей, требуемой пакетом ROS.
Использование:
rosdep install [package]
Загрузка и установка системы зависимостей для turtlesim:
$ rosdep install turtlesim
Если ROS установлена из пакетных файлов вы увидите:
executing this script: set -o errexit #No Packages to install
В противном случае вы увидите вывод установки зависимостей turtlesim:
set -o errexit set -o verbose if [ ! -f /opt/ros/lib/libboost_date_time-gcc42-mt*-1_37.a ] ; then mkdir -p ~/ros/ros-deps cd ~/ros/ros-deps wget --tries=10 http://pr.willowgarage.com/downloads/boost_1_37_0.tar.gz tar xzf boost_1_37_0.tar.gz cd boost_1_37_0 ./configure --prefix=/opt/ros make sudo make install fi if [ ! -f /opt/ros/lib/liblog4cxx.so.10 ] ; then mkdir -p ~/ros/ros-deps cd ~/ros/ros-deps wget --tries=10 http://pr.willowgarage.com/downloads/apache-log4cxx-0.10.0-wg_patched.tar.gz tar xzf apache-log4cxx-0.10.0-wg_patched.tar.gz cd apache-log4cxx-0.10.0 ./configure --prefix=/opt/ros make sudo make install fi if [ ! -f /opt/ros/lib/libboost_date_time-gcc42-mt*-1_37.a ] ; then mkdir -p ~/ros/ros-deps cd ~/ros/ros-deps wget --tries=10 http://pr.willowgarage.com/downloads/boost_1_37_0.tar.gz tar xzf boost_1_37_0.tar.gz cd boost_1_37_0 ./configure --prefix=/opt/ros make sudo make install fi if [ ! -f /opt/ros/lib/liblog4cxx.so.10 ] ; then mkdir -p ~/ros/ros-deps cd ~/ros/ros-deps wget --tries=10 http://pr.willowgarage.com/downloads/apache-log4cxx-0.10.0-wg_patched.tar.gz tar xzf apache-log4cxx-0.10.0-wg_patched.tar.gz cd apache-log4cxx-0.10.0 ./configure --prefix=/opt/ros make sudo make install fi
rosdep запускает bash-скрипт приведённый выше, и выходит после завершения его работы.
3. Построение пакета
После того, как вся система зависимостей установлена, мы можем построить наш пакет, который мы только что создали.
3.1 rosmake
rosmake аналогична команде make, но она реализует специфичную «магию» ROS. При вводе команды rosmake beginner_tutorials , rosmake собирает пакет beginner_tutorials, плюс все пакеты, от которых он зависит, в правильном порядке. Так как мы задали зависимости от rospy, roscpp, и std_msgs, то при создании нашего ROS пакета, эти пакеты (и их зависимости, и так далее) также будут построены rosmake.
Использование:
rosmake [package]
Пробуем:
$ rosmake beginner_tutorials
Выполнение этой команды может занять некоторое время. Во время её работы вы увидите некоторые информационные сообщения:
[ rosmake ] No package specified. Building ['beginner_tutorials'] [ rosmake ] Logging to directory [ rosmake ] /home/noonv/.ros/rosmake_output-2009-09-22-03-17-14 [ rosmake ] [ 0 of 18 Completed ] [rosmake-0] >>> genmsg_cpp >>> [ make ] [rosmake-0] <<< genmsg_cpp <<< [PASS] [ 0.39 seconds ] [ rosmake ] [ 1 of 18 Completed ] [rosmake-0] >>> roslib >>> [ make ] ... ... ... [ rosmake ] [ 17 of 18 Completed ] [rosmake-0] >>> beginner_tutorials >>> [ make ] [rosmake-0] <<< beginner_tutorials <<< [PASS] [ 0.79 seconds ]
3.1.1 rosmake и несколько пакетов
Мы также можем использовать rosmake чтобы построить несколько пакетов одновременно.
Использование:
rosmake [Package1] [package2] [package3]
Итак, теперь давайте создадим некоторые пакеты, которые нам потребуются на следующих уроках:
$ rosdep install turtle_teleop rxtools $ rosmake turtle_teleop roscpp_tutorials rospy_tutorials rxtools
3.2 Обзор
Перечислим команды, которые мы использовали:
rosdep = ros+dep(endencies): утилита для установки зависимостей пакета
rosmake = ros+make: собирает (компилирует) пакет ROS
Ссылки
http://www.ros.org/wiki/ROS/Tutorials/BuildingPackages
3 комментария на «“ROS — Урок 4 — Сборка пакета ROS”»
Здравствуйте.
Пытаюсь установить rxtools, но пока не понятно как это правильно делать.
Это значит, что нужно исходники качать и указывать путь в ROS_PACKAGE_PATH?
дело в том, что ROS развивается и текущие уроки не совсем актуальны для новых версийдистрибутива .rxtools больше не используется — вместо него — rqt.
в groovy
Успехов!
А как тогда установить хотя бы turtlesim?отсюда .
У меня имеется одноплатник (arm7) с ArchLinux.
Ставил по второму методу