存放CMake和catkin的缓存信息、配置信息和其他中间文件。
存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。
存放功能包(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存放自定义的通信格式文件,包括消息(*.msg)、服务(*.srv)
- urdf存放定义机器人模型文件(*.urdf)
即开发完成后的安装包。