ROS软件包开发完成后,需要安装包,如果你用的是catkin创建的工作空间,那么即可使用命令"catkin_make install"完成此项任务.下面介绍其安装的过程:

1.源码准备

准备好需要安装的代码,通常可以使用catkin来创建工作空间,包和编译整个项目.本例子假定工作空间为catkin_ws,包名为package_install.目录如下图所示:

2.编辑CMakeLists.txt

打开package/CMakeLists.txt,在文件末尾添加添加如下的代码:

  1. #############
  2. ## Install ##
  3. #############
  4.  
  5. # all install targets should use catkin DESTINATION variables
  6. # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
  7.  
  8. ## Mark executable scripts (Python etc.) for installation
  9. ## 添加python程序.in contrast to setup.py, you can choose the destination
  10. install(PROGRAMS
  11. scripts/talker.py
  12. scripts/listener.py
  13. DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
  14. )
  15.  
  16. ## 添加可执行文件或者库文件,Mark executables and/or libraries for installation
  17. install(TARGETS talker_node listener_node
  18. ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  19. LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  20. RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
  21. )
  22.  
  23. ## 添加头文件.Mark cpp header files for installation
  24. install(DIRECTORY include/${PROJECT_NAME}/
  25. DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
  26. FILES_MATCHING PATTERN "*.h"
  27. PATTERN ".svn" EXCLUDE
  28. )
  29. ## 添加资源文件的目录,例如文件夹:urdf mesh rviz,其下的所有子目录的文件也会安装到相应的目录下.
  30. install(DIRECTORY model
  31. DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  32. )
  33. install(DIRECTORY urdf
  34. DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  35. )
  36. install(DIRECTORY mesh
  37. DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  38. )
  39. install(DIRECTORY rviz
  40. DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  41. )
  42.  
  43. ## 添加资源文件.Mark other files for installation (e.g. launch and bag files, etc.)
  44. install(FILES
  45. launch/bringup.launch
  46. DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
  47. )

3.编译

打开命令终端,到catkin_ws目录下,执行如下命令:

  1. catkin_make install

安装的文件会生成在目录catkin_ws/install下.目录的结构如下图所示

4.运行

a.首先,可将install整个文件夹随意拷贝到一个目录下;然后,打开命令终端,到该目录install下,执行如下命令:

  1. source devel/setup.bash

b.打开命令终端,运行程序,执行如下命令:

  1. roslaunch package_install bringup.launch

这样就可以把安装的程序跑起来了.

5.源码

源码下载:catkin_ws.rar

ROS知识(13)----基于catkin的包安装的更多相关文章

  1. Mysql安装 ----> 基于源码包安装

    1)基于源码包安装MySQL [root@localhost ~]# rpm -q mysql mysql-server mariadb mairadb-server           //检查有没 ...

  2. ROS知识(3)----功能包package编译的两种方式

    ROS的包编译有两种方法(我知道的),一种是用rosmake,这种方法简单:另一种是用catkin_make,这种方法更方便包的管理和开发.这两种方法都是先建立工作空间workspace(类似于vs下 ...

  3. 【mysql】mac上基于tar.gz包安装mysql服务

    一.准备工作 (1)下载mysql-5.7.21-macos10.13-x86_64.tar.gz,并将该压缩包移动至/usr/local目录下 (2)解压压缩包 二.安装 (1)将解压的包重命名为m ...

  4. ROS知识(1)----ROS Jade安装

    ROS入门难,进去之后会是很简单,这是很多人的经验.但是今天安装ROS就吃了闭门羹,安装成功后,回顾发现,关键是操作系统Ubantu14.04没有安装好,一些系统包没有及时更新导致的.这里总结下ROS ...

  5. 基于linux下的NIST数字测试包安装过程

    基于linux下的NIST数字测试包安装过程 1. 首先解决windows文件不能粘贴到Ubuntu的问题 选择利用VMware Tools进行解决 打开虚拟机VMware Workstation,启 ...

  6. ROS知识(5)----消息与服务的示例

    ROS中已经定义了较多的标准类型的消息,你可以用在这些标准类型的消息上再自定义自己的消息类型.这个在复杂数据传输很有用,例如节点和服务器进行交互时,就可能用到传输多个参数到服务器,并返回相应的结果.为 ...

  7. (转)-编写第一个ROS(创建工作空间workspace和功能包package)

    原文网址:http://www.cnblogs.com/liuamin/p/5704281.html 刚接触ROS,学着写了第一个程序,怕以后忘记,就将其步骤记录下来.. 首先你必须保证你电脑已安装配 ...

  8. 编写第一个ROS(创建工作空间workspace和功能包package)

    刚接触ROS,学着写了第一个程序,怕以后忘记,就将其步骤记录下来.. 首先你必须保证你电脑已安装配置好ROS. 1.创建工作空间(workspace) 我们所创建功能包package,应该全部放到一个 ...

  9. Linux知识(1)----U盘安装Ubantu14.04系统

    由于需要用到ROS(Robot Operating System)机器人操作系统,该系统是基于Linux系统Ubantu14.04的,第一次安装接触Linux点点生惧,但我知道并没那么难弄,况且还是U ...

随机推荐

  1. Vue 3.0 的生命周期

    new Vue() new一个vue实例化对象 init Event & Lifecycle 执行一些初始化和生命周期相关的操作 beforeCreate 组件实例刚刚被创建出来 执行一些初始 ...

  2. 002_curl及postman专题

    一. 步骤 1: 下载cURL工具 使用您的Windows机器从cURL web站点下载最新版本的cURL: (1) 通常情况下,多数的Windows用户可以从官网下载页面http://curl.ha ...

  3. orcale数据库分配用户

    account lock:创建用户的时候锁定用户 account unlock:创建用户的时候解锁用户,默认该选项 create user zhou8–用户名 identified by zhou88 ...

  4. 微信小程序入坑之自定义组件

    前言 最近接触微信小程序,再次之前公司用的前端框架是vue ,然后对比发现,开发小程序是各种限制,对于开发者非常不友好.各种槽点太多,完全吐槽不过来,所以在此不多说,打算下次专门写一篇文章吐槽一下.本 ...

  5. 你竟然在公钥中下毒!——如何在RSA公钥中添加后门

    原文:http://www.hackdig.com/?01/hack-17893.htm 分享到: 当我知道它是如何运行时,我惊得下巴都掉了.这是一个非常简单的手法,但这篇文章会颠覆你之前对RSA的看 ...

  6. 洛谷P3088 挤奶牛

    传送门啦 这个题也是一个单调队列来优化的 $ dp $ ,我们考虑这个题,这个题让我们求出有多少奶牛会觉得拥挤,如果我们还像琪露诺那个题那样单纯用一次单调队列肯定是不行的,因为牛觉不觉得拥挤是受左右的 ...

  7. python 统计MySQL表信息

    一.场景描述 线上有一台MySQL服务器,里面有几十个数据库,每个库有N多表. 现在需要将每个表的信息,统计到excel中,格式如下: 库名 表名 表说明 建表语句 db1 users 用户表 CRE ...

  8. Shell学习笔记:<<EOF子命令

    在shell编程中,“EOF”通常与“<<”结合使用,“<<EOF”表示后续的输入作为子命令或子shell的输入,直到遇到“EOF”,再次返回到主调用shell,可将其理解为分 ...

  9. MyEclipse个性化设置

    1.修改项目文件默认编码 Note:myEclipse默认的编码是GBK, 也就是未设置编码格式的文件都默认使用GBK进行编码, 而更糟糕的是JSP.JavaScriptt默认编码竟然是ISO-885 ...

  10. 15:链表中倒数第K个节点

    /** * 面试题15:链表中倒数第K个节点 * 输入一个链表,输出该链表中倒数第k个结点. */ public class _15_linked_K { public static void mai ...