一、工作空间的介绍。
工作空间(workspace)是一个存放工程开发相关文件的文件夹,其中主要分为以下四个文件夹。
src:代码空间
主要用来存放功能包,功能包里的代码,配置文件,launch文件等
build:编译空间
主要用来存放在编译的时候产生的一些中间文件
devel:开发空间(在ROS2中不再需要devel)
主要用来存放编译生成的可执行文件,库和一些脚本。
install:安装空间
使用install等命令的时候就会下载在这里面。
二、建一个工作空间。
1、创建工作空间
cd ~
mkdir catkin_ws
cd catkin_ws
mkdir src
cd src
catkin_init_workspace
2、编译工作空间
cd ~/catkin_ws
catkin_make
这个时候可以用ls看一下当前目录,里面应该会自动生成两个文件夹build和devel
这里还缺少一个install文件夹,我们可以使用
catkin_make install
来生这个文件夹。
值得一提的是这里的catkin_ws文件夹是这个工作空间的名字,这里起始可以随便起名没必要一样。
如果你做到这里了那么暂停,剩下的3,4先停一会,因为现在的workspace里面没有功能包,不妨先创建个功能包。
3、设置环境变量
source ~/catkin_ws/devel/setup.bash
4、检测环境变量
echo $ROS_PACKAGE_PATH
三、创建功能包
1、创建功能包
cd ~/catkin_ws/src
catkin_creat_pkg test_pkg std_msgs rospy roscpp
catgin_creat_pkg是创建功能包的指令,test_pkg是功能包名字,std_msgs rospy roscpp是三个依赖,当然可以一直加依赖。
当然你可以进你的功能包里面看看,里面有两个文件夹src和include,这就比较熟悉了,代码放在src里面,include里面就放头文件。
2、编译功能包
cd ~/catkin_ws
catkin_make
在做完这些后我们重新回到上面第二大点的3,4小点即:
source ~/catkin_ws/devel/setup.bash
echo $ROS_PACKAGE_PATH
四、功能包中CMakeLists.txt和package.xml文件
如果您是按照以上步骤执行的话,您将会在您的
ls ~/catkin_ws/src/test_pkg 里看到一下两个奇怪的文件,首先这两个文件是每一个功能包必须存在的两个文件,他们的存在标志着这事一个功能包,而不是一个随便的程序。
1、CMakeLists.txt
我们可以使用 cat CMakeLists.txt来查一下里面的内容,里面主要是关于功能包的编译规则等。
2、package.xml
使用cat package.xml来查另一个里面的内容。
可以看到里面包含了功能包的名字,版本号,开源的许可证和基于的依赖等信息。
值得一提的是,如果需要添加依赖,可以手动的按照上面的格式加两条代码即可。