添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
首发于 算法集市

ROS的目录文件结构

如上图所示,首先是最顶层的catkin工作空间,它是整个ROS工程中层次最高的概念。

工作空间也就是管理和组织ROS工程项目文件的地方。其下主要的一级目录有四个:

  • src:源空间
  • build:编译空间
  • devel:开发空间
  • install:安装空间

其中,

  • 最顶层的工作空间(可以任意命名)和 src (必须为src)文件夹是需要自己创建;
  • build 和 devel 文件夹由 catkin_make 命令自动创建;
  • install 文件夹由 catkin_make install 命令自动创建。
catkin 是 ROS 定制的编译构建系统,是对CMake的扩展,对ROS这样大体量的工程有更好的支持,同时也简化了操作。

注意:使用 catkin_make 编译之前一定要回到最顶层的工作空间。

1、src:源空间

存放功能包(package)。

功能包是ROS文件系统中组织程序文件的基本单元,也就是catkin编译的基本单元。一个 package 下必须包含 CMakeLists.txt 和 package.xml 两个文件:

  • CMakeLists.txt 文件中规定了功能包的编译规则,包括指定功能包名称,指定编译依赖项,指定要编译的源文件,指定要添加的消息格式文件/服务格式文件/动作格式文件,指定生成的消息/服务/动作,指定头文件搜索目录,指定链接库搜索目录,指定生成的静态链接库文件,指定需要链接的库文件,指定编译生成的可执行文件以及路径等等。
  • package.xml 文件定义了功能包的属性信息,包括包名,版本号,作者,编译依赖和运行依赖等。

另外,

  • include 和 src 分别存放头文件(*.h)和源程序文件(*.c/*.cpp等);
  • scripts 存放脚本文件(比如Python文件 *.py,shell文件 *.sh);
  • launch 存放 launch文件(*.launch),用于批量运行多个可执行文件;
  • config 存放配置文件(*.yaml等);

此外,还有自定义的通信格式文件,包括消息(*.msg)、服务(*.srv)以及动作(*.action)。

2、build:编译空间

存放CMake和catkin的缓存信息、配置信息和其他中间文件。

3、devel:开发空间

存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。

4、install:安装空间

即开发完成后的安装包。

编辑于 2020-05-10 13:29

文章被以下专栏收录