ROS学习笔记二:ROS文件系统及创建功能包

一、安装一个学习需要的ros学习包:

sudo apt-get install ros-kinetic-ros-tutorials

二、功能包

1.最简单的程序包也许看起来就像这样:

my_package/
  CMakeLists.txt
  package.xml

软件包必须包含一个catkin编译文件package.xml(manifests文件),此文件包含了描述该软件包的重要信息。

软件包必须包含一个CMakeLists.txt文件,并且采用catkin。

2.在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

3.创建一个catkin软件包

现在使用catkin_create_pkg命令来创建一个名为'beginner_tutorials'的新程序包,这个程序包依赖于std_msgs、roscpp和rospy:

cd ~/catkin/src
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

依赖于std_msgs、rospy、roscpp在src目录下创建一个名为beginner_tutorials的catkin软件包,这将会创建一个名称为beginner_tutorials的包含CMakeLists.txt和package.xml文件的文件夹。

catkin_create_pkg命令会要求你输入package_name,如果有需要你还可以在后面添加一些需要依赖的其它程序包:

catkin_create_pkg <package_name> [depend1] [depend2] [depend3]

回到工作空间根目录下进行编译并且设置环境变量:

cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash

在编译完成工作空间之后,在devel文件夹中产生了一系列的和/opt/ros/indigo目录中结构相似的文件,通过读取devel文件夹中的.*sh文件来将软件包的工作空间添加到环境变量当中。

4.程序包依赖关系

直接依赖:

在前面利用catkin_create_pkg命令的时候,在选项中提供了一些依赖,利用rospack工具可以查看这些直接依赖。

rospack depends1 beginner_tutorials
std_msgs
rospy
roscpp

可以看出rospack工具列出了在使用catkin_create_pkg命令的时候提供的依赖,这些信息存储在packa.xml文件中,可以cat package.xml查看。

间接依赖:

使用rospack depends(没有阿拉伯数字1),则会列出catkin软件包的所有依赖文件。

总结:

  1. catkin软件包必要组成:package.xml和CMakeList.txt文件。
  2. 创建catkin软件包:catkin_create_pkg命令创建一个新的catkin软件包。
  3. 编译catkin工作空间:catkin_make命令编译catkin工作空间。
  4. 查看ROS软件包依赖:rospack depends1查看直接依赖,rospack depends查看间接依赖。

猜你喜欢

转载自blog.csdn.net/weixin_40599145/article/details/87778275