package 是 ROS 软件的基本组织形式,ROS 就是由一个个的 package 组成的

package 是 catkin 的编译基本单元

一个 package 可以包含多个可执行文件(节点)

package 下要包含这两个文件 CMakeLists.txt、package.xml

CMakeLists.txt 规定 catkin 编译的规则,例如:源文件、依赖项、目标文件

cmake_minimum_required()  # 指定 catkin 最低版本
project() # 指定软件包的名称
find_package() # 指定编译时需要的依赖项
add_message_files() # 添加消息文件
add_service_files() # 添加服务文件
add_action_files() # 添加动作文件
generate_messages() # 生成消息、服务、动作
catkin_package() # 指定 catkin 信息给编译系统生成 Cmake 文件
add_library() # 指定生成库文件
add_executable() # 指定生成可执行文件
target_link_libraries() # 指定可执行文件去链接哪些库
catkin_add_gtest() # 添加测试单元
install() # 生成可安装目标

package.xml:定义 package 的属性,例如:包名、版本号、作者、依赖等

<package>       <!--根标签-->
<name> <!--包名-->
<version> <!--版本号-->
<description> <!--包描述-->
<maintainer> <!--维护者-->
<license> <!--软件许可-->
<buildtool_depend> <!--编译工具-->
<build_depend> <!--编译时的依赖-->
<run_depend> <!--运行时的依赖-->
</package> <!--根标签-->

代码文件:

package:CMakeLists.txt、package.xml、script(放 shell 脚本或 python 脚本)、include(放 C 的头文件 .h)、src(放 C 的源文件.cpp,也能放 python 的源文件)

自定义通信格式:

消息(msg)、服务(srv)、动作(action)

package:CMakeLists.txt、package.xml、msg(存放 .msg 文件)、srv(存放 .srv 文件)、action(存放 .action 文件)

launch 以及配置文件:

launch文件(launch)、配置文件(yaml)

package:CMakeLists.txt、package.xml、config(.yaml)、launch(.lanuch)

常用的包管理指令:

创建一个 package:catkin_creat_pkg <pkg_name> [deps]

std_msgs 为通信的依赖,nav_msgs 为导航的依赖

查找某个 package 的地址:rospack find package_name

列出本地所有的 package:rospack list

sch01ar@ubuntu:~$ rospack list

跳转到某个 package 路径下:roscd package_name

列举某个 package 下的文件信息:rosls package_name

编辑 package 中的文件:rosed package_name file_name

sch01ar@ubuntu:~$ rosed test CMakeLists.txt

安装某个 package 所需的依赖:rosdep install [package_name]

catkin 工作空间 - Package 组成的更多相关文章

  1. ROS学习笔记一(ROS的catkin工作空间)

    在安装完成ROS indigo之后,需要查看环境变量是否设置正确,并通过创建一个简单的实例来验证ROS能否正常运行. 1 查看环境变量 在ROS的安装过程中,我们执行了如下命令:(此命令就是向当前用户 ...

  2. catkin 工作空间

    catkin 工作空间:组织和管理功能包的文件夹,以 catkin 工具编译 建立工作空间 sch01ar@ubuntu:~$ mkdir -p ~/catkin_ws/src sch01ar@ubu ...

  3. ROS-3 : Catkin工作空间和ROS功能包

    一.创建一个Catkin工作空间 步骤一:构建catkin工作空间 安装完成ROS版本后,设置好环境变量:$ source /opt/ros/kinetic/setup.bash.然后即可创建一个ca ...

  4. AR Drone系列之:使用ROS catkin创建package并使用cv_bridge实现对ar drone摄像头数据的处理

    1 开发环境 Ubuntu 12.04 ROS Hydro 2 前提 可參考这篇blog:http://blog.csdn.net/yake827/article/details/44564057 b ...

  5. 创建一个catkin工作空间

    先确定自己的环境变量是否设置正确 export | grep ROS 若出现如下的,说明是正确的 declare -x ROSLISP_PACKAGE_DIRECTORIES="" ...

  6. 在工作空间中构建和使用catkin包

    在这篇博客中将会介绍,如何在工作空间中构建和使用一个包. 首先,我们来看一下如何在catkin工作空间中,使用catkin_make工具从源文件构建和安装一个包.使用catkin_make来构建一个c ...

  7. ROS创建工作空间(三)

    查看正在使用的ROS工作空间,使用命令 echo $ROS_PACKAGE_PATH 我新建了两个

  8. ROS工作空间和程序包创建

    预备工作后面操作中我们将会用到ros-tutorials程序包,请先安装: $ sudo apt-get install ros-<distro>-ros-tutorials 将 < ...

  9. ROS学习(四)—— 创建ROS Package

    一.caktin Package的组成 1.必须含有 package.xml文件,提供有关程序包的元信息 2.必须含有一个catkin版本的 CmakeLists.txt文件,如果是一个catkin元 ...

随机推荐

  1. Word批量设置表格宽度自动适应页面宽度

    怎么批量修改Word表格的宽度呢.Word表格可根据窗口自动调整表格宽度,使得所有的表格宽度和页面宽度一样. 当页面设置了新的页边距后,所有的表格都需要调整新的宽度.或者文档中有许多大大小小的表格,希 ...

  2. python面向对象编程学习

    python面向对象编程 基本概念理解 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作 ...

  3. MySQL忘记密码解决方案

    1.修改本地mysql目录中的my.ini文件 添加skip-grant-tables 2.在win +r 输入cmd,进行mysql的重启启动操作 net stop MySQL 停止服务      ...

  4. MySQL备份与恢复实战案例及生产方案

    按天备份 按周备份 mysql的mysqldump备份什么时候能派上用场1,迁移或者升级数据库时2,增加从库的时候3,如果因为硬件或特殊情况,主库或者从库宕机,主从可以互相切换,无需备份4,人为的DD ...

  5. css中zoom:1以及z-index的作用

    一.CSS中zoom:1的作用在做IE6.IE7.IE8浏览器兼容的时候,经常会遇到一些问题,可以使用zoom:1来解决,有如下作用:1.触发IE浏览器的haslayout2.解决IE下的浮动,mar ...

  6. EL标签

    1.EL的作用 jsp的核心语法: jsp表达式 <%=%>和 jsp脚本<%  %>. 开发jsp的原则: 尽量在jsp页面中少写甚至不写java代码. 使用EL表达式替换掉 ...

  7. springmvc 请求和响应的json和Object的转换

    就是两个注解的使用@RequestBody和@ResponseBody注解的使用,然后springmvc解析进行转换然后注入 例子: @RequestMapping("/...") ...

  8. windows7自动登录后锁定 & 其他VBS

    首先设置自动登录(原已设置登录密码),在开始菜单搜索框输 入 “netplwiz” 按 回车,打开高级用户控制面板,然后取消对“要使用本机,用户需输入用户名和密码(E)”项的勾选,系统弹出窗口要求输入 ...

  9. 关于bind named.conf.options

    /etc/named/named.conf.options中的Options参数   listen-on port 53 { any; }; 监听在这部主机系统上面的哪个网路介面.预设是监听在loca ...

  10. [置顶] Kubernetes1.7新特性:新增自动伸缩条件和参数

    一.核心概念 Horizontal Pod Autoscaling,简称HPA,是Kubernetes中实现POD水平自动伸缩的功能.云计算具有水平弹性的特性,这个是云计算区别于传统IT技术架构的主要 ...