ros包的结构用法解析

本文介绍了在Ubuntu上安装ROS后文件夹结构,重点讲解了ROS的功能包设计,包括其组成部分、创建包的步骤以及在ROS中编译和依赖管理。
摘要由CSDN通过智能技术生成

一、ubuntu安装ROS后

路径为:/opt/ros/noetic

文件夹的内容:

  1. bin内部是全部shell的命令。放置一些具体的可执行的程序,在ros的bin文件夹下面保存的都是ros系统和一些功能包给我们提供的可以直接执行的命令,可以在终端下面执行这些命令。
  2. etc是配置文件,其中包括catkin的所在地。
  3. include是调用lib中的节点头文件。即所有通过命令行和终端安装的功能包的代码头文件。
  4. lib是所有节点的放置地,通过运行节点来启动相应功能包里的功能。
  5. share是所有功能包放置地。保存的是功能包里面接口的一些具体信息,接口包含话题、服务、action等。

二、功能包介绍

ROS的功能包旨在产生一些功能,促进代码复用。

每个节点都必须有功能包,ROS1的功能包是这样排布的。每个ROS软件包的组织结构如下:

  • action:放置自定义的动作指令
  • config:放置配置文件,用户创建。一般是一些参数文件,这些文件的后缀多为.yaml
  • include:放置功能包头文件
  • launch启动文件夹:包含启动文件
  • msg:定义消息类型
  • scripts:放置python的脚本
  • src文件夹:包含源代码
  • srv:放置功能包的动作指令
  • CMakeList.txt:用于编译的cmake规则列表
  • package.xml:包的信息和依赖项

在package.xml中

  • <build_depend>  </build_depend>
  • <run_depend>  </run_depend>

需要随情况修改

三、创建功能包

创建功能包的语法:

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

package_name是软件包的名称。depend是该软件包所以来的其他ROS软件包的名称。

举例:

首先在src文件夹下创建一个“hello_world"的ROS包这个包有三个依赖项(即包所依赖的库,以便包中的代码正常运行):roscpp(C++的ROS库),rospy(Python的ROS库)和std_msgs(ROS中预定义的常见数据类型...“标准消息”)。

如下:

catkin_create_pkg hello_world std_msgs rospy roscpp

于是出现下图结果:

现在的工作路径下有个名为hello_world的包。前进到hello_world下,共出现了四个文件,分别为CMakeLists.txtincludesrcpackage.xml。

这四个文件:

CMakeLists.txt: 用于编译在ROS编写程序的命令;将源代码和其他文件转为可执行文件。

include:包含头文件。相当于在C++中编写头文件的那个地方,这里就是存储头文件的。

src:包含C++源代码。如果要用Python写代码,还需要创建一个scripts的文件夹,这个文件夹用来存py代码。

mkdir scripts

就会出现以下结果:

package.xml:这是一个一结构化的方式存储信息的地方,不执行任何其他操作。包含hello_world软件包的信息。

在本案例中如下图所示:

完成!

四、在ROS中编译包

在ROS中创建新包后,需要编译后才能运行。

catkin_make

将编译src中所有内容。注意要在src上一级目录进行。

如果只想编译特定的包:

catkin_make --only-pkg-with-deps <your_package>

例如本案例中

catkin_make --only-pkg-with-deps hello_world

参考文献:

Ros知识【09】:功能包介绍_ros功能包_无水先生的博客-CSDN博客

一、ROS安装与配置 - 知乎

  • 43
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值