ROS 功能包

ROS 功能包是 ROS 的核心组成部分之一,它是一个包含了源代码、配置文件、脚本等元素的一个单独的目录结构,用来实现特定功能。每个 ROS 功能包都有一些共同的文件,如 package.xml 文件,CMakeLists.txt 文件等,用于描述功能包的基本信息以及构建规则等。

一般来说,一个完整的 ROS 项目会包含多个功能包,分别负责不同的功能,例如控制部分、感知部分、导航部分等。通过这种方式,可以更好地组织代码,使整个项目更加清晰易懂。

除了基本的功能包之外,ROS 还提供了许多内置的功能包,涵盖了机器人的各个方面,如感知、导航、控制、运动学、规划等。这些功能包可以作为基础模块,用于快速构建自己的机器人应用程序。

CMakeLists.txt是功能包配置文件,用于编译Cmake功能包编译时的编译配置。

package.xml是功能包清单文件,用xml的标签格式标记该功能包的各类相关信息,比如包的名称、开发者信息、依赖关系等,主要是为了使功能包的安装和分发更容易。

include/是功能包头文件目录,可以把功能包程序中包含的*.h头文件放在这里。include目录之所以还要加一级路径是为了更好地区分自己定义的头文件和系统标准头文件,用实际功能包的名称替代。不过这个文件夹不是必要项,比如有些程序没有头文件。

msgsrvaction这三个文件夹分别用于存放非标准话题消息、服务消息和动作消息的定义文件。ROS支持用户自定义消息通信过程中使用的消息类型。这些自定义消息不是必要的,比如程序只使用标准消息类型。

scripts目录存放Bash、Python等脚本文件,为非必要项。

launch目录存放节点的启动文件,*.launch文件用于启动一个或多个节点,在含有多个节点的大型项目中很有用,为非必要项。

src目录存放功能包节点所对应的源代码,一个功能包中可以有多个节点程序来完成不同的功能,每个节点程序都可以单独运行。这里src目录存放的是这些节点程序的源代码,你可以按需创建文件夹和文件来组织源代码,源代码可以用C++、Python等编写。

你可能感兴趣的:(机器人,开发语言)