【ROS入门-2】带你看ROS文件系统及其工具

前言

ROS的架构经过设计并划分成了三部分, 每一部分都代表一个层级的概念:

  • 文件系统级(Filesystem level)

主要有ROS的内部构成、 文件夹结构, 以及工作所需的核心文件。

  • 计算图级(Computation Graph level)

主要是进程和系统之间的通信,包括建立系统、 处理各类进程、 与多台计算机通信等。

  • 社区级(Community level)

主要是在开发人员之间共享知识、 算法和代码,塑造了ROS强大的开源社区。

ROS系列文章

本章的准备工作

本文章中我们将会用到ros-tutorials程序包,要先用apt命令去安装:

sudo apt-get install -y ros-<distro>-ros-tutorials

<distro>替换成你所安装的版本(比如 kinetic、melodic 等)。

从我们上一篇文章安装的是melodic版本,那么命令就是:

sudo apt-get install -y ros-melodic-ros-tutorials

ROS文件系统的概念

ROS文件系统可以将项目构建过程集中化, 同时提供很好的灵活性和工具来分散之间的依赖性。

Packages

功能包,也可以被称之为软件包,是ROS应用程序代码的组织单元,每个功能包都可以包含程序库、可执行文件、脚本或者其它手动创建的东西。

Manifest

清单,它包含了关于Packages的维护者、许可协议、依赖关系以及编译标志等的信息,由一个名为package.xml的文件管理。

Metapackage

元功能包:多个具有某些功能的包组织在一起,称为元功能包。

Metapackage Manifest

元功能包清单:由一个名字为package.xml的文件管理,类似普通功能包但有一个XML格式的导出标记。

文件系统工具

由于ROS中大量代码分散在众多的packages和Metapackage之中,linux本身的命令工具ls和cd已不能满足检索要求,因此ROS提供了一套自己的命令工具来完成与这些命令相似的工作。

rospack

rospack允许用户获取功能包的有关信息,比如我们找一个roscpp功能包所在的位置,可以通过以下命令:

➜  ~ rospack find roscpp

/opt/ros/melodic/share/roscpp

rospack的用法是:

rospack find [功能包名称]

ros006

roscd

roscdrosbash命令集中的一部分,它允许你直接切换(cd)工作目录到某个软件包或者软件包集当中。

roscd的用法是:

roscd [功能包名称[/子目录]]

比如切换到roscpp目录下:

roscd roscpp

比如切换到roscpp的子目录msg下:

roscd roscpp/msg

ros007

rosls

这个命令更linux下的ls很像,但它允许你在任何位置列出某个功能包的当前目录或者其子目录的内容,而不需要在绝对路径执行ls。

rosls的用法是:

rosls [功能包名称[/子目录]]

比如列出roscpp目录下的内容:

rosls roscpp

比如列出roscpp的子目录msg下的内容:

rosls roscpp/msg

ros008

同时它们都支持Tab补全,非常方便

参考:

ROS官方wiki

ROS笔记(5) ROS架构


 上一篇
【ROS入门-3】嘴对嘴讲解ROS的核心概念——节点与节点管理器 【ROS入门-3】嘴对嘴讲解ROS的核心概念——节点与节点管理器
前言我要给大家来介绍一下ROS当中一些核心的概念,帮助大家去在后面的ROS学习当中更快地吸收这些概念。 ROS系列文章 【ROS入门-1】手把手教你在Ubuntu18.04安装ROS Melodic 【ROS入门-2】带你看ROS文件系统
2020-04-05
下一篇 
【ROS入门-1】手把手教你在Ubuntu18.04安装ROS Melodic 【ROS入门-1】手把手教你在Ubuntu18.04安装ROS Melodic
引言先来一张ROS的美照: ROS系列文章 【ROS入门-1】手把手教你在Ubuntu18.04安装ROS Melodic 【ROS入门-2】带你看ROS文件系统及其工具 【ROS入门-3】嘴对嘴讲解ROS的核心概念——节点与节点管理
2020-04-04
  目录