Ber*_*rdo 4 share software-distribution package ros
有没有办法在不共享源的情况下分发ROS包?
我只是希望用户能够在没有依赖性问题的情况下运行ROS节点.
我知道ROS是一个开源项目,但我不允许共享代码.
Vti*_*tik 10
解决方案1:
在包CMakelists.txt中,添加install指令.它是这样的:
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
)
Run Code Online (Sandbox Code Playgroud)
运用
$ catkin_make
$ catkin_make install
Run Code Online (Sandbox Code Playgroud)
您可以创建执行所需的二进制文件而无需共享代码.这将创建/install除常规/devel和/buildcatkin工作区之外的另一个文件夹.
注意:您可以使用以下命令指定安装文件夹:
$ catkin_make -DCMAKE_INSTALL_PREFIX=path/to/folder install
Run Code Online (Sandbox Code Playgroud)
只需确保the binaries need to be compiled for the correct architecture that the other computer has在调用catkin_make时,您在工作区中没有的依赖关系也需要在使用之前由其他部分安装.
现在您已拥有该/install文件夹,只需压缩并发送即可.
现在,关键部分是将install/setup.bash添加到您的其他计算机.bashrc,否则ROS将找不到分布式pacakges.
$ echo "source ~/catkin_ws/install/setup.bash" >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参见此处
解决方案2:
你可以生成一个deb-src,然后你可以编译它并分发.deb文件,离开另一台机器,你可以安装它dpkg -i.这可以通过遵循预发布教程的这一部分来完成.
| 归档时间: |
|
| 查看次数: |
2852 次 |
| 最近记录: |