一、工作空间的组成与结构
工作空间的组成:
src用于存放功能包源码;
build用于存放编译过程中的文件,一些二进制文件。我们一般用不到build;
devel是存放开发过程中的一些文件;
install是存放开发完成后的一些文件。
工作空间的结构:
二、创建工作空间
1、创建工作空间
其中,catkin_ws是我们所命名的工作空间的名字
catkin_init_workspace是初始化,经过初始化catkin_ws才真正意义上成为了工作空间。
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
2、编译工作空间
$ catkin_make语句产生devel和build文件夹;
$ catkin_make install产生install文件夹。
$ cd ~/catkin_ws/
$ catkin_make
$ catkin_make install
3、经过1、2步的操作之后,结果如下:
三、创建功能包
创建工作空间下的src下的功能包。
创建功能包:
其中,catkin_create_pkg是创建功能包的命令;
test_pkg是我们命名的功能包的名称;
std_msgs、rospy、roscpp分别是test_pkg所依赖的其他功能包,包括:标准功能包、python程序、cpp程序。
$ cd ~/catkin_ws/src
$ catkin_create_pkg test_pkg std_msgs rospy roscpp
编译功能包:
$ cd ~/catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
注:
同一个工作空间下,不允许存在同名功能包
不同工作空间下,允许存在同名功能包
四、设置环境变量
如果想运行功能包下的某一程序,得需要先设置好环境变量。
设置环境变量:
$ source devel/setup.bash
检查环境变量:
环境变量ROS_PACKAGE_PATH的作用是,查找ROS所有功能包的路径。
echo是打开环境变量。
$ echo $ROS_PACKAGE_PATH
五、功能包的package.xml文件和CMakeLists.txt文件
在功能包中有如下文件和文件夹:
package.xml文件是记录功能包的基本信息,包括:名字、描述、依赖等等:
CMakeLists.txt文件作用是描述功能包的编译规则: