• ROS1云课→04功能包


    ROS1云课→03工作空间


    先下载课程主页提及的功能包:

    wget https://labfile.oss.aliyuncs.com/courses/854/rosdemos_ws.zip

    解压缩:

    unzip rosdemos_ws.zip 

     

    选择,任一个按“ROS1云课→03工作空间”中内容,进行编译,以ros_tutorials为例:

    功能包指的是一种特定结构的文件和文件夹组合。这种结构如下所示:

    • include/package_name/:此目录包含了需要的库的头文件。
    • msg/:如果开发需要非标准的消息,请把文件放在这里。
    • scripts/:其中包括Bash、Python或任何其他脚本的可执行脚本文件。
    • src/:这是存储程序源文件的地方。你可能会为节点创建一个文件夹或按照希望的方式去组织它。
    • srv/:这表示服务(srv)类型。
    • CMakeLists.txt:这是CMake的生成文件。
    • package.xml:这是功能包清单文件。

     

    为了创建、修改或使用功能包,ROS提供了一些工具:

    • rospack 使用此命令来获取信息或在系统中查找工作空间。
    • catkin_create_pkg使用此命令创建一个新的功能包。
    • catkin_make使用此命令来编译工作空间。
    • rosdep使用此命令安装功能包的系统依赖项。
    • rqt_dep   此命令用来查看包的依赖关系图。如果你想看包的依赖关系图,你会在rqt发现一个称为包图(package graph)插件。选择一个包并查看依赖关系。

    1. shiyanlou:ros_tutorials/ $ rospack -h [15:59:02]
    2. USAGE: rospack <command> [options] [package]
    3. Allowed commands:
    4. help
    5. cflags-only-I [--deps-only] [package]
    6. cflags-only-other [--deps-only] [package]
    7. depends [package] (alias: deps)
    8. depends-indent [package] (alias: deps-indent)
    9. depends-manifests [package] (alias: deps-manifests)
    10. depends-msgsrv [package] (alias: deps-msgsrv)
    11. depends-on [package]
    12. depends-on1 [package]
    13. depends-why --target= [package] (alias: deps-why)
    14. depends1 [package] (alias: deps1)
    15. export [--deps-only] --lang= --attrib= [package]
    16. find [package]
    17. langs
    18. libs-only-L [--deps-only] [package]
    19. libs-only-l [--deps-only] [package]
    20. libs-only-other [--deps-only] [package]
    21. list
    22. list-duplicates
    23. list-names
    24. plugins --attrib= [--top=] [package]
    25. profile [--length=] [--zombie-only]
    26. rosdep [package] (alias: rosdeps)
    27. rosdep0 [package] (alias: rosdeps0)
    28. vcs [package]
    29. vcs0 [package]
    30. Extra options:
    31. -q Quiets error reports.
    32. If [package] is omitted, the current working directory
    33. is used (if it contains a package.xml or manifest.xml).

     

    1. shiyanlou:ros_tutorials/ $ rqt_dep -h [16:00:53]
    2. usage: main.pyc [-b BINDING] [--clear-config] [--force-discover] [-h]
    3. [--reload-import] [-t] [-v]
    4. Options for GUI instance:
    5. -b BINDING, --qt-binding BINDING
    6. choose Qt bindings to be used [pyqt|pyside]
    7. --clear-config clear the configuration (including all perspectives
    8. and plugin settings)
    9. --force-discover force a rediscover of plugins
    10. -h, --help show this help message and exit
    11. --reload-import reload every imported module
    12. -t, --on-top set window mode to always on top
    13. -v, --verbose output qDebug messages

    若要在文件夹和功能包之间移动文件,ROS提供了非常有用的rosbash功能包,其中包含了一些非常类似于Linux命令的命令。例如:

    • roscd 此命令用于更改目录,类似于Linux中的cd命令。
    • rosed 此命令用来编辑文件。
    • roscp 此命令用于从一些功能包复制文件。
    • rosd 此命令列出功能包的目录。
    • rosls 此命令列出功能包下的文件,类似于Linux中的ls命令。

    文件package.xml必须在功能包中,用来说明此功能包相关的各类信息。如果你发现在某个文件夹内包含此文件,那么这个文件夹很可能是一个功能包或综合功能包。

    打开一个package.xml文件,可以看到包的名称、依赖关系等信息。功能包清单的作用就是为了更容易地安装和分发这些功能包。

    package.xml文件中使用的两个典型标记是<build_depend>和<run_depend>。

    <build_depend>标记会显示当前功能包安装之前必须先安装哪些功能包。这是因为新的功能包会使用其他包的一些功能。

    <run_depend>标记显示运行功能包代码所需要的包。

    补充:

     

    1. https://docs.ros.org/en/kinetic/api/catkin/html/howto/format2/index.html
    2. https://docs.ros.org/en/kinetic/api/catkin/html/howto/format2/migrating_from_format_1.html

     


     

     

     

  • 相关阅读:
    大数据架构师——音乐数据中心平台离线数仓综合项目(一)
    mysqldump常用操作示例/命令
    RocketMQ学习(3) 秒杀实战
    Linux 之查看标准错误码工具
    HDU 2089 不要62(数位DP,DFS写法)
    ubuntu安装ROS rosdep init rosdep update报错,完美解决方案!
    各种存储性能瓶颈分析与优化方案
    数据库 - [ 视图 事务 ]
    Linux基础
    Postgresql在jdbc处理bit字段的解决方案
  • 原文地址:https://blog.csdn.net/ZhangRelay/article/details/126544687