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文件指定)

转载于:https://www.cnblogs.com/long5683/p/9937798.html

更多相关推荐

Python package钓鱼

Pythonpackage钓鱼 一.概述在收录该文之后,知道创宇404安全实验室对该文中所提到的攻击方式...

继续阅读

包管理器Package Manager

包管理器是一个面向软件开发人员的工具,使用它能方便的使用和分享软件包,并管理软件包依赖关...

继续阅读

import 本地Python module或pack...

很基础很重要的一课,虽然很简单,但是防止以后忘了,还是记下来这个笔记里说的都是import本地...

继续阅读

Linux用树形结构显示目录结构

在有些Linux上自带了tree命令来一树状结构显示一个目录,但是在有些linux上没有自带这个程序,...

继续阅读

python语法31[module/package+im...

 一module通常模块为一个文件,直接使用import来导入就好了。可以作为module的文件类型有".py"...

继续阅读

Archlinux更新提示invalid or co...

错误示例:通过以下命令查看key的状态:我这里提示是expired,所以直接刷新时间即可:但是如果...

继续阅读

Linux之冯.诺依曼体系结构

 冯.诺依曼体系结构,个人的理解: 物理电学补充: 所有的物质,是由分子或原子组成的。分子是能保...

继续阅读

cheat命令的安装&No package XXX...

    cheat命令简单来说,就是告诉你一个命令如何使用。它没有提供其他额外多余的信息,只通过...

继续阅读

Flask 系列之 优化项目结构

说明操作系统:Windows10Python版本:3.7x虚拟环境管理器:virtualenv代码编辑器:VSCode实验...

继续阅读

SciPy达到1.0版本,有了新的治理...

在诞生16年之后,SciPy这个领先的Python科技计算库达到了1.0版本,这标志着其技术及组织目标的...

继续阅读