功能包是什么?

英文表述package,我可没有在炫英文啊,我的英文很烂的,只是在提醒大家,在ROS系统中,这个词使用的频率非常之高,你必须记住它,要不就没法正确的看懂信息。言归正传,package是什么呢?指的是一种特定的文件结构和文件夹组合。

如何识别一个package呢?

通俗点儿的方式,就是找manifest.xml文件,这本来就是一个用来描述package相关的各类信息的一个文档,打开后可以看到包的名称、依赖关系等,下图就是一个manifest.xml的样子。当然,是用xml格式编写的,看不懂的xml的话,翻我另一篇博文就成了,如果一个文件夹下有这样一个文件,那这个文件夹描述的就有百分之九十的可能是package,为什么是有可能呢?请耐心看我下文道来。

建立package需要用到的几个简单指令

第一个:

cd ~

怎么样?非常简单吧!这条指令表示进入用户在该系统的home目录下,进行操作;如果你需要需要进入不同目录下进行操作,也可以用这个指令,比如,我想要进入到home目录下的一个叫catkin_ws的文件夹下的一个叫src文件夹下的一个叫做smartcar_description的文件夹里进行操作。

那我就可以:

就是通过这样,来回的切换目标目录的。

第二个:roscreate-pkg [package_name] [depend1] [depend2] [depend3]

这些依赖(depend)包括:std_msgs(包含了常见消息类型,表示基本数据类型和其他的消息构造)和rospy(一个ROS的纯python客户端库),roscpp(一个ROS的纯c++客户端库)

说的这么枯燥,其实经常使用的格式就是:

roscreate-pkg  package的名字  std_msgs rospy roscpp,后边的depend基本上不咋变。

比如,建立一个输入 roscreate-pkg  zeshou  std_msgs rospy roscpp

第三个:

rosmake

用此命令来编译功能包,如果你没有编译,或者说你没有这步,就说明你这个package虽然形式上建立起来了,但实质上还没有跟底层进行连接,这就是为什么我说有 manifest.xml但也有可能不是功能包,我在执行的时候就遇到了,只完成了roscreate-pkg,但没rosmake,就死活用rospack 找不到,快怀疑人生了都,后来又试试了,有的时候,能找到,有的时候又找不到,见鬼了?——  ——(反正流程就是这)

第四个:

rospack  find  package_name

这个的作用是用来查找目标的

该怎么建立一个package呢?

还不会啊,按上面四个代码一个一个敲就行了。

选定文件夹->创建功能包roscreat-pkg->把新建的功能包编译rosmake->查找一下试试rospack

题外记:

为什么我创建的这个功能包取名叫zeshou呢?因为最近刚刚看到那个文那在一席演讲,特别喜欢她创作的这个角色:泽寿!你喜欢吗?

ROS学习记录(四)————怎样建立一个package包?的更多相关文章

  1. leveldb 学习记录(四)Log文件

    前文记录 leveldb 学习记录(一) skiplistleveldb 学习记录(二) Sliceleveldb 学习记录(三) MemTable 与 Immutable Memtablelevel ...

  2. JavaScript学习记录四

    title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  3. 4.VUE前端框架学习记录四:Vue组件化编码2

    VUE前端框架学习记录四:Vue组件化编码2文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...

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

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

  5. ROS学习记录(三)————创建一个简单的发布节点和订阅节点

    暑假在家有些懈怠,不,非常懈怠- -||!良心已经发痛了,想快些补回原来的进度,但忽然发现,中断了一段时间再重新去学习,有的地方连最基本的符号都忘记了 ,这次特意弄个最最基础的,恢复一下,以前的进度. ...

  6. ROS学习记录(二)————使用smartcar进行仿真(用.xacro文件来运行rviz)

    我发现一个学习ROS系统的好网站: 创客智造http://www.ncnynl.com/ 这里面关于ROS的各个方面都有很详细的介绍. 这周,不,上周我对整个ROS是绝望的,我用一个一个下午的时间在敲 ...

  7. leveldb 学习记录(四) skiplist补与变长数字

    在leveldb 学习记录(一) skiplist 已经将skiplist的插入 查找等操作流程用图示说明 这里在介绍 下skiplist的代码 里面有几个模块 template<typenam ...

  8. openWRT自学---对官方的开发指导文档的解读和理解 记录1:编译一个package

    针对的是:http://kamikaze.openwrt.org/docs/openwrt.html#x1-390002 1.If you want, you can also modify the ...

  9. JavaSE入门学习17:Java面向对象之package(包)

           一Java包(package)        为了更好地组织类,Java提供了包机制,用于差别类名的命名空间.        包的作用:        A把功能类似或相关的类或接口组织在 ...

随机推荐

  1. Go语言结构体(struct)

    Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型. 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 结构体表示一项记录,比如保存图 ...

  2. webpack入门篇--1.简单介绍

    简单介绍: webpack是一个模块打包工具,给js准备的打包工具,可以把很多的模块打包成很少的文件 目标: 1.切分依赖数,分到不同代码块里,按需加载,懒加 载 2.任何静态资源都可以被视为一个模块 ...

  3. Vue动态组件

    前面的话 让多个组件使用同一个挂载点,并动态切换,这就是动态组件.本文将详细介绍Vue动态组件 概述 通过使用保留的 <component> 元素,动态地绑定到它的 is 特性,可以实现动 ...

  4. .Net Core 2.0生态(4):Entity Framework Core 2.0 特性介绍和使用指南

    前言 这是.Net Core 2.0生态生态介绍的最后一篇,EF一直是我喜欢的一个ORM框架,随着版本升级EF也发展到EF6.x,Entity Framework Core是一个支持跨平台的全新版本, ...

  5. oracle多表连接查询竟然还有这种操作

    仔细观察上面几个图,比较下 oracle数据库中的+操作符竟然可以替换left join 和right join sql server暂时没用到过

  6. linux学习网站

    centos中文站  cnblogs.com/bethal/p/6007962.html 最火软件 veryhuo.com 学网资讯 xue163.com/Network/ linux大神 linux ...

  7. DOM-----style属性对照表

    CSS和Java script 标签对照表 盒子标签和属性对照 CSS语法 (不区分大小写) Java script 语法 (区分大小写) border border border-bottom bo ...

  8. 切诺夫界证明(Chernoff bound)

  9. Java入门(7)——循环和debug 调试

    循环: while 循环: 格式: int i = 0; ①    //初始化条件 while(i < 10) { ②  //判断条件 System.out.println(i); ④ //循环 ...

  10. django文件上传

    -------------------上传图片-------------------1.model中定义属性类型为models.ImageField类型 pic=models.ImageField(u ...