本文内容来源于官方wiki,http://wiki.ros.org/ROS/Tutorials/CreatingPackage
my_package/ CMakeLists.txt package.xml
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工作空间。
$ source /opt/ros/kinetic/setup.bash
使用如下命令创建一个catkin工作空间,名字为catkin_ws:
$ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/ $ catkin_make
使用ls命令查看,可以看出已经出现build,devel,src的子目录。
然后运行:
$ source devel/setup.bash $ echo $ROS_PACKAGE_PATH
返回如下:
/home/spy/catkin_ws/src:/opt/ros/kinetic/share
可以看出,环境变量中已经包含了该工作空间中的目录。
# This is an example, do not try to run this # catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
例如如下命令:
$ cd ~/catkin_ws/src $ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
创建一个名为 beginner_tutorials 的包,依赖项为 std_msgs rospy 和roscpp
输出如下:
Created file begginner_tutorials/CMakeLists.txt Created file begginner_tutorials/package.xml Created folder begginner_tutorials/include/begginner_tutorials Created folder begginner_tutorials/src Successfully created files in /home/shao/catkin_ws/src/begginner_tutorials. Please adjust the values in package.xml.
可以看出,该命令自动创建了一些文件。其中包括CMakeLists.txt和package.xml这些文件。
$ cd ~/catkin_ws $ catkin_make
则会自动将所有包都编译,包括刚创建的beginner_tutorials包。
catkin_make命令实际上调用了cmake命令,关于更多catkin_make的信息,请参考catkin/commands/catkin_make
$ rospack depends1 begginner_tutorials
则返回:
roscpp rospy std_msgs
这些依赖信息存储在package.xml中,可以查看package.xml。
$ rospack depends1 rospy genpy roscpp rosgraph rosgraph_msgs roslib std_msgs
$ rospack depends begginner_tutorials cpp_common rostime roscpp_traits roscpp_serialization catkin genmsg genpy message_runtime gencpp geneus gennodejs genlisp message_generation rosbuild rosconsole std_msgs rosgraph_msgs xmlrpcpp roscpp rosgraph ros_environment rospack roslib rospy
原文:https://www.cnblogs.com/spyplus/p/11479921.html