本节主要介绍如何用 catkin 来创建一个新的功能包,并且使用前面介绍的 rospack 命令去查看功能包的依赖。
3.3.1 catkin 功能包的构成
一个完整的 catkin 功能包需要具备以下几个条件:
- 包含一个 package.xml 文件:该文件主要提供描述功能包的基础属性信息;
- 包含一个 CMakeLists.txt 文件:该文件提供了功能包的编译规则;
- 拥有独立的目录:这意味着没有嵌套功能包,也没有多个功能包共享同一目录。
所以一个最简单的功能包应该是如下所示:
my_package/
CMakeLists.txt
package.xml
3.3.2 创建一个 catkin 功能包
这里我们将演示如何使用 catkin_create_pkg 脚本创建一个新的catkin包,以及创建后的处理方法。catkin_create_pkg 的语法规则如下, package_name 是指功能包的名称, depend 是指该功能包编译所需要的依赖:
catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
首先进入我们之前创建的工作空间目录下的 src 目录中:
cd ~/catkin_ws/src
然后使用 catkin_create_pkg 命令来创建一个名为 beginner_tutorial 的功能包,假设功能包会依赖 std_msgs , rospy ,roscpp 。