ROS目录结构

2023-05-16

参考:https://zhuanlan.zhihu.com/p/139405796

ROS项目通常组织在一个catkin的workspace下面,里面包含典型的文件和目录,如下

如上图所示,首先是最顶层的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:安装空间

即开发完成后的安装包。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS目录结构 的相关文章

随机推荐