zoukankan      html  css  js  c++  java
  • ROS学习(四)—— 创建ROS Package

    一、caktin Package的组成

    1、必须含有 package.xml文件,提供有关程序包的元信息

    2、必须含有一个catkin版本的 CmakeLists.txt文件,如果是一个catkin元程序包一定要有对CmakeLists.txt的引用

    3、一个文件下只能有一个包

    最简单的包结构如下:

    my_package/
      CMakeLists.txt
      package.xml

    二、一个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
    

    三、创建一个catkin package

    1、新建一个空白catkin工程,见ROS学习(三)

    2、打开工程src目录

    cd ~/catkin_ws/src

    3、使用catkin_create_pkg创建一个包

    catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

    四、编译catkin工程,且将这个工程加入到ROS环境中

    cd ~/catkin_ws
    catkin_make
    . ~/catkin_ws/devel/setup.bash  (不加 . 出出现权限不够)

    五、程序包依赖

    1、一级依赖:

         之前在使用catkin_create_pkg命令时提供了几个程序包作为依赖包,现在我们可以使用rospack命令工具来查看一级依赖包。

    rospack depends1 beginner_tutorials 

    2、间接依赖:

          很多情况,一个一来的包还会有自己的依赖,称为间接依赖。

    六、定制自己的包

    1、 描述标签:

    Toggle line numbers
    
          <description>The beginner_tutorials package</description>

          写一写这个包的相关介绍,一行肯定是不够的。

    2、编写者标签:

       7   <!-- One maintainer tag required, multiple allowed, one person per tag --> 
       8   <!-- Example:  -->
       9   <!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
      10   <maintainer email="user@todo.todo">user</maintainer>

    3、专利标签

    Toggle line numbers
    
      12   <!-- One license tag required, multiple allowed, one license per tag -->
      13   <!-- Commonly used license strings: -->
      14   <!--   BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
      15   <license>TODO</license>

    4、依赖标签

    5、简化的package.xml

       1 <?xml version="1.0"?>
       2 <package>
       3   <name>beginner_tutorials</name>
       4   <version>0.1.0</version>
       5   <description>The beginner_tutorials package</description>
       6 
       7   <maintainer email="you@yourdomain.tld">Your Name</maintainer>
       8   <license>BSD</license>
       9   <url type="website">http://wiki.ros.org/beginner_tutorials</url>
      10   <author email="you@yourdomain.tld">Jane Doe</author>
      11 
      12   <buildtool_depend>catkin</buildtool_depend>
      13 
      14   <build_depend>roscpp</build_depend>
      15   <build_depend>rospy</build_depend>
      16   <build_depend>std_msgs</build_depend>
      17 
      18   <run_depend>roscpp</run_depend>
      19   <run_depend>rospy</run_depend>
      20   <run_depend>std_msgs</run_depend>
      21 
      22 </package>

     

  • 相关阅读:
    从表达式到变量:一行scheme代码之所见
    document 文挡对象详解(JavaScript脚本语言描述)
    开源Linux系统成为微软Vista竞争对手
    Java下的框架编程(5)cglib的应用
    如何做好职业规划(乾卦)
    Asianux将成为最先进的安全Linux操作系统
    开发人员行走Unix的随身四艺
    Java中类初始化的顺序
    用Java线程获取优异性能(II)——使用同步连载线程访问关键代码部份
    prototype.js的扩展
  • 原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/6268768.html
Copyright © 2011-2022 走看看