1、工作空间
工作空间 (workspace) 是一个存放工程开发相关文件的文件夹。一个工作空间里通常包含四个文件夹:
src:代码空间 (Source Space)
build:编译空间 (Build Space)
devel:开发空间 (Development Space)
install:安装空间 (Install Space)
2、功能包
2.1、简介
功能包,又称为 package,指的是一种特定的文件结构和文件夹组合。通常将实现同一个具体功能的程序代码放到一个package中,比如实现相机数据采集这一功能。
2.2、文件结构
- CMakeLists.txt: 定义package的包名、依赖、源文件、目标文件等编译规则,是package不可少的成分;
- package.xml:描述package的包名、版本号、作者、依赖等信息,是package不可少的成分 ;
- src:存放ROS的源代码,包括C++的源码和(.cpp)以及Python的module(.py) ;
- include:存放C++源码对应的头文件 ;
- scripts:存放可执行脚本,例如shell脚本(.sh)、Python脚本(.py) ;
- msg:存放自定义格式的消息(.msg) ;
- srv:存放自定义格式的服务(.srv) ;
- models:存放机器人或仿真场景的3D模型(.sda, .stl, .dae等) ;
- urdf:存放机器人的模型描述(.urdf或.xacro) ;
- launch:存放launch文件(.launch或.xml)
通常ROS文件组织都是按照以上的形式,这是约定俗成的命名习惯,建议遵守。以上路径中,只有 CMakeLists.txt 和 package.xml 是必须的,其余路径根据软件包是否需要来决定。
3、编程实现
以下所用到的命令解释清查看我的另一篇文章《ROS常用命令》。
mkdir catkin_ws
cd catkin_ws/
mkdir src
cd src/
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
source devel/setup.bash