2016-10-14 11 views
2

Есть ли способ распространять пакет ROS без совместного использования источников?Как распределить пакет ROS без обмена источниками

Я просто хочу, чтобы пользователь мог запускать узлы ROS без проблем с зависимостями.

Я знаю, что ROS - проект с открытым исходным кодом, но мне не разрешено делиться кодом.

ответ

6

Решение 1:

В вашем пакете CMakeLists.txt, добавьте установочные директивы. Это выглядит следующим образом:

install(TARGETS 
    #list of nodes 
    DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 
) 

install(TARGETS 
    #list of shared libraries 
    ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 
    LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 
) 

install(FILES 
    #list of necessary files (xml...) 
    DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 
) 

install(DIRECTORY 
    include/${PROJECT_NAME}/ 
    DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 
    PATTERN ".svn" EXCLUDE 
    PATTERN ".git" EXCLUDE 
) 

Использование

$ catkin_make 
$ catkin_make install 

вы можете создать двоичные файлы, необходимые для исполнения без разделения кода. Это создаст еще одну папку /install в дополнение к обычным /devel и /build в вашем рабочем пространстве для кошки.

Примечание: Вы можете указать папку установки с помощью:

$ catkin_make -DCMAKE_INSTALL_PREFIX=path/to/folder install 

Просто убедитесь, что the binaries need to be compiled for the correct architecture that the other computer has и все зависимости вы не имеете в вашем рабочем пространстве, когда вы вызываете catkin_make должны также быть установлены с другой стороны, прежде чем быть использованным.

Теперь, когда у вас есть папка /install, просто отправьте zip &.

Теперь важной частью будет добавление install/setup.bash к вашей другой машине .bashrc, или ROS не найдет распределенные pacakges.

$ echo "source ~/catkin_ws/install/setup.bash" >> ~/.bashrc 

См. here для получения дополнительной информации.

Решение 2:

вы можете иметь цветение генерировать вам DEB-Src, а затем вы можете скомпилировать, что и distrbute файл .deb, ионным другой машине, вы можете установить его с dpkg -i. Это можно сделать, следуя этой части the pre-release tutorial.

+0

Будет ли это вступать в конфликт с окружающей средой, которая была настроена на другой машине уже? – Bernardo

+0

Ну, только если тот же пакет уже существует на другом компьютере, я думаю ... – Vtik

+1

Как именно я запускаю узлы на другом компьютере? Нет пакета, который содержит узлы, поэтому я не могу использовать rosrun. Они все в папке установки (извините за поздний ответ, только вернусь к этому сейчас) – Bernardo

0

Я не мог решить это либо catkin_make install, либо цвести. К счастью, мне разрешили обмениваться жестким диском с рабочим пространством, поэтому мне просто пришлось создавать файлы .pyc из моих .py-скриптов и сделать их исполняемыми.

 Смежные вопросы

  • Нет связанных вопросов^_^