本课主要介绍ROS的工程结构,也就是文件系统结构。
文章目录
Catkin的编译系统
对于小的源代码,可以使用编译工具gcc/g++进行编译,执行,但是这种方式效率低下,所以开始用Makefile来进行编译,但随着工程量增大,Makefile也不能满足要求,出现了Cmake工具,Cmake是对make工具的生成器,来编译CMakeLists.txt文件,但对于ROS这种操作系统,对Cmake工具又进行了扩展,也就是Catkin编译系统。
#Catkin工作空间
catkin工作空间装载ROS的各种项目工程,便于系统组织管理调用。
初始化catkin工作空间
首先创建一个catkin_ws/路径,这是catkin工作空间结构的最高层级,使用以下指令来创建:
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make #初始化工作空间
**注意:**catkin_make命令必须在工作空间这个路径上执行。
结构介绍
catkin工作空间包括src、build、devel三个路径,具体作用如下:
- src/:ROS的catkin软件包(源代码)
- build/:catkin(CMake)的缓存信息和中间文件
- devel/:生成的目标文件(包括头文件,动态链接库,静态链接库,可执行文件等)、环境变量
后两个路径由catkin系统自动生成、管理,我们主要使用src文件夹,将ROS程序、网上源代码放在此文件夹下,之后使用catkin_make编译,就会生成build和devel文件。
src下存放多个源代码包(package),package是catkin工作空间的基本单元。
#Package软件包
Package是ROS源代码存放的地方,是catkin编译的基本单元。
Package的文件、路径有:
├── CMakeLists.txt #package的编译规则(必须)
├── package.xml #package的描述信息(必须)
├── src/ #源代码文件
├── include/ #C++头文件
├── scripts/ #可执行脚本
├── msg/ #自定义消息
├── srv/ #自定义服务
├── models/ #3D模型文件
├── urdf/ #urdf文件(机器人的模型描述)
├── launch/ #launch文件
#Metapacakge软件元包
Metapacakge可以把一些相近的功能模块、软件包放到一起。
文章参考柴长坤老师的《机器人操作系统入门》课程(https://www.icourse163.org/course/ISCAS-1002580008)。