• package结构


    1、package结构

    一个package下常见的文件、 路径有:
    ├── CMakeLists.txt #package的编译规则(必须)
    ├── package.xml #package的描述信息(必须)
    ├── src/ #源代码文件
    ├── include/ #C++头文件
    ├── scripts/ #可执行脚本
    ├── msg/ #自定义消息
    ├── srv/ #自定义服务
    ├── models/ #3D模型文件
    ├── urdf/ #urdf文件
    ├── launch/ #launch文件

    CMakeLists.txt: 定义package的包名、 依赖、 源文件、 目标文件等编译规则, 是package
    不可少的成分
    package.xml: 描述package的包名、 版本号、 作者、 依赖等信息, 是package不可少的成
    src
    src/: 存放ROS的源代码, 包括C++的源码和(.cpp)以及Pythonmodule(.py)
    include/: 存放C++源码对应的头文件
    scripts/: 存放可执行脚本, 例如shell脚本(.sh)Python脚本(.py)
    msg/: 存放自定义格式的消息(.msg)
    srv/: 存放自定义格式的服务(.srv)
    models/: 存放机器人或仿真场景的3D模型(.sda, .stl, .dae)
    urdf/: 存放机器人的模型描述(.urdf.xacro)
    launch/: 存放launch文件(.launch.xml)


    以上路径中, 只有 CMakeLists.txt package.xml 是必须的, 其余路径根据软件包是否需要来决定。
    2、package的创建
    创建一个package需要在 catkin_ws/src ,用到 catkin_create_pkg 命令, 用法是:

    catkin_create_pkg package depends

    其中package是包名, depends是依赖的包名, 可以依赖多个软件包。

    例如, 新建一个package叫做 test_pkg ,依赖roscpprospystd_msgs(常用依赖)

    $ catkin_create_pkg test_pkg roscpp rospy std_msgs

    这样就会在当前路径下新建 test_pkg 软件包, 包括:
    ├── CMakeLists.txt
    ├── include
    │ └── test_pkg
    ├── package.xml
    └──
    src
    catkin_create_pkg 帮你完成了软件包的初始化, 填充好了 CMakeLists.txt package.xml
    并且将依赖项填进了这两个文件中。

    3、package相关命令

    rospack
    rospack是对package管理的工具, 命令的用法如下:

    以上命令如果package缺省, 则默认为当前目录(如果当前目录包含package.xml)

    roscd
    roscd 命令类似与Linux系统的 cd , 改进之处在于 roscd 可以直接 cd ROS的软件包。

    rosls
    rosls 也可以视为Linux指令 ls 的改进版, 可以直接 ls ROS软件包的内容。

    rosdep
    rosdep 是用于管理ROS package依赖项的命令行工具, 用法如下:

    一个较常使用的命令是 rosdep install --from-paths src --ignore-src --rosdistro=kinetic -
    y ,用于安装工作空间中 src 路径下所有package的依赖项( 由pacakge.xml文件指定)

  • 相关阅读:
    理解serverless无服务
    书单
    服务框架
    消息队列
    幂等设计
    MyBatis 3判断不为null
    Spring实现封装自定义注解@Trimmed清除字符串前后的空格
    Spring关于使用注解@Configuration去配置FormattingConversionServiceFactoryBean来实现自定义格式字符串处理无效的问题(未找到是什么原因造成的)
    Eclipse错误出现:Unable to install breakpoint in... (未能解决)
    Spring Boot中application.yml与bootstrap.yml的区别(转)
  • 原文地址:https://www.cnblogs.com/long5683/p/9937798.html
Copyright © 2020-2023  润新知