上图是文件系统
Workspace:工作空间,Package是工程结构中的核心关键词。
初步认识:一个工作空间可以包含很多Package,一个package可以开发出许多节点。
上图是标准的Workspace工作目录
一般地,一个Workspace对应一个项目,一个Workspace被创建会默认有一个src,devel和build文件,其中src目录下可以放很多的Package目录,Package目录(又包含了不同的目录)里面就是编码的地方。
build:ros编译打包的结果产出的目录。
devel:开发所需要的目录。
CMakeLists.txt: 整个工作空间编译的脚本(普通的文本文件)。
完整示意图如下:
标红色框的文件是系统默认生成的,不用去修改他们,能修改的是标黄色框的文件,理解的时候可以类比公司里的组织架构,
又 如这个无人小车工程实现结构。
我们从该工程也可总结出,节点多点好,每个节点干的活少,避免节点(进程)臃肿,这也符合微服务这种理念。
工作单元package
pkgn(n=1,2....):package的名称,开发过程中可以自由设定。
CMakeLists.txt:当前package的编译脚本,通常需要为C++代码添加编译时的依赖,执行等操作。
package.xml:package相关信息。通常添加一些ros库的支持。
include文件夹:存放C++头文件。
config文件夹:存放参数配置文件,格式为yaml.
launch文件夹:存放launch文件的。
src:C++源代码
scripts:python源代码(需新建)
srv:存放定义的service
msg:存放自定义的消息协议
action:存放自定义的action