首先一个Package必须至少包含以下两个文件
package.xml–包含该包的元信息(meta information)
CMakeList.txt–http://blog.youkuaiyun.com/u013243710/article/details/35795841 该博客有详细介绍
workspace_folder/ -- WORKSPACE
src/ -- SOURCE SPACE
CMakeLists.txt -- 'Toplevel' CMake file, provided by catkin
package_1/
CMakeLists.txt -- CMakeLists.txt file for package_1
package.xml -- Package manifest for package_1
...
package_n/
CMakeLists.txt -- CMakeLists.txt file for package_n
package.xml -- Package manifest for package_n
以上表明每个catkin package都要有package.xml CMakeList.txt这两个文件
接下来进入正题
1.进入catkin工作空间
$ cd ~/catkin_ws/src
2.catkin_create_pkg
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
$ cd ~/catkin_ws
$ catkin_make
这个命令创建了一个beginner_tutorials的文件夹。依靠与后面三个包
catkin_create_pkg这个命令原型为
$ catkin_create_pkg [depend1] [depend2] [depend3]
其中后面三个分别为三级依赖关系
这里我们用rospack来查看一级依赖程序包(first-order dependency)
$ rospack depends1 beginner_tutorials
显示
std_msgs
rospy
roscpp
这些依赖包会被保存到package.xml里面
我们用一下命令可以看看
$ roscd beginner_tutorials
$ cat package.xml
$ cat filename就是显示整个文件的意思,也可以直接在文件夹中打开,一样。
打开后我们会看到很多行都是以《!–开始,–》结束(注意书名号要换成<>)这是注释的意思,可以删掉,无视
描述标签
<description>The beginner_tutorials package</description>
维护者标签,这里要把user@todo.todo改成维护者的邮箱,user改成维护者名字
<maintainer email="user@todo.todo">user</maintainer>
许可证标签,在注释中有列举,我们在学习过程中使用BSD
<license>TODO</license>
依赖项标签
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
接下来我们还需要补充以项依赖项到run_depend中
<run_depend>roscpp</run_depend>
<run_depend>rospy</run_depend>
<run_depend>std_msgs</run_depend>