为catkin创建一个工作空间
这个教程假设你已经装好了catkin,并且初始化好了环境变量。如果你是通过apt-get来装ROS inidgo,下面的命令是source的命令
$ source /opt/ros/indigo/setup.bash
创建一个catkin工作空间:
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
即使这个工作空间是空的(没有任何包在src这个目录下,只有一个CMakeLists.txt)你仍然可以“编译”这个工作空间:
$ cd ~/catkin_ws/
$ catkin_make
catkin_make 这个命令是个很方便的工具用来操作catkin工作空间,如果你查看点钱目录下的文件夹,你会看到‘build’和‘devel’这两个文件夹。在devel文件夹里,你可以看到有几个setup.*sh文件,通过source命令激活这些文件中任何一个文件都会将这个工作空间覆盖到最上层的环境中:
$ source devel/setup.bash
为了确认工作空间被正确的通过sh脚本覆盖,先确认ROS_PACKAGE_PATH的环境变量包含在你自己的目录中,如下:
$ echo $ROS_PACKAGE_PATH
/home/youruser/catkin_ws/src:/opt/ros/kinetic/share
接下来你需要继续学习怎么使用这个工作空间,进行下一个教程的学习:创建一个ROS工作空间。
catkin包室友什么组成?
对于一个安装包catkin包需要考虑并满足到以下几点要求:
The package must contain a catkin compliant package.xml file.必须包含一个兼容的package.xml文件
That package.xml file provides meta information about the package.这个文件提供了包的一些元信息
The package must contain a CMakeLists.txt which uses catkin. If it is a catkin metapackage it must have the relevant boilerplate CMakeLists.txt file.必须包含一个使用catkin的CMakeLists.txt文件或者模板。
There can be no more than one package in each folder.每个文件夹不猛存在超过一个安装包
This means no nested packages nor multiple packages sharing the same directory.多个包不能共享一个文件夹
The simplest possible package might have a structure which looks like this:一个简单的包的目录树如下:
my_package/
CMakeLists.txt
package.xml
Packages in a catkin Workspace
建议使用catkin工作空间来操作catkin 安装包相关事宜,当然你也可以单独编译catkin 安装包,几个比较小的工作空间如下所示:
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
在继续这个教程之前,先按照前面一个教程的方法创建一个空的工作空间。
Creating a catkin Package
加下来会演示如何使用catkin——create_pkg这个脚本去创建一个新的catkin安装包,还有你接下去要如何做。
首先先把环境切换到catkin工作空间的源码目录下:
$ cd ~/catkin_ws/src
现在使用catkin_create_pkg脚本去创建一个新的安装包”beginner_tutorials”,这个包依赖于 std_msgs, roscpp, and rospy:
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
这个将会创建一个 beginner_tutorials文件夹,包含了package.xml and a CMakeLists.txt.
catkin_create_pkg会要求你提供一个安装包的名字还有一些可选的依赖包: