一、定义
- 工作空间(workspace)是一个存放工程开发相关文件的文件夹。
- src:代码空间(Source Space)
- build: 编辑空间(Build Space)
- devel:开发空间(Development Space)
- install:安装空间(Install Space)
二、创建工作空间
1. 创建工作空间
mkdir -p ~/catkin_ws/src
cd~/catkin_ws/src
catkin_init_workspace
(输入catkin_init_workspace后会在src目录下生成一个CMakeLists.txt文件)
2. 编译工作空间
cd ~/catkin_ws/
catkin_make
此时会在catkin_ws下产生build、devel、src三个文件夹;
使用
catkin_make install
会产生install文件夹
src里面存放功能包的源码;install存放最终生成的可执行文件;devel存放在开发过程中可执行文件和库;build是编译过程中一些空间文件或二进制文件
3. 设置环境变量
source devel/setup.bash
4. 检查环境变量
echo $ROS_PACKAGE_PATH
三、创建功能包
1.创建功能包
cd ~/catkin_ws/src
catkin_create_pkg<功能包名字>[依赖1][依赖2][依赖3]
(<>和[]不用加)
例如:(依赖是指这个功能包在编译的过程中需要依赖哪些其他别的功能包)
catkin_create_pkg test_pkg std_msgs rospy roscpp
功能包名字和依赖分别为:<tset_pkg>[std_msgs][rospy][roscpp] (std_msgs为ros定义的标准的消息结构)
打开创建的功能包,里面存在四个文件[include]、[src]、[CMakeLists.txt]、[package.xml]
[src]用来存放功能包的代码,如cpp文件等其他代码文件
[include]用来存放c++的.h头文件
[CmakeLists.txt]和[package.xml]这两个文件是每个功能包必须存放的两个文件,这样才能标志这个文件夹是一个功能包,而不是一个普通的文件夹。
2. 编译功能包
cd ~/catkin_ws/src
catkin_make
设施环境变量
source~/catkin_ws/devel/setup.bash
检查环境变量(确保功能包存放在src文件下)
echo $ROS_PACKAGE_PATH
package.xml文件通过xml语言描述功能包相关的信息,功能包的依赖信息(依赖信息不存在会报错)。
CmakeLists.txt用来描述功能包的编译规则;使用Cmake的语法(基于gcc的编译器)。
同一工作空间下,不允许存在同名的功能包;不同工作空间下,允许存在同名的功能包。