技术分享 | ROS基础讲解之ROS相关名词概念讲解
Posted 阿木实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术分享 | ROS基础讲解之ROS相关名词概念讲解相关的知识,希望对你有一定的参考价值。
在上一期的ROS基础讲解中,我们以另一种角度形象的描述了ROS,让大家能够更容易地去理解ROS,有一个大概的印象和理解。在本期的ROS基础讲解中,我们将介绍ROS相关的名词概念,让大家在学习ROS的过程中,能够知道这些名词的意思,从而能够更好地阅读ROS相关教程。
ROS:
ROS是Robot Operating System(机器人操作系统)的简称,可以将ROS理解为操作系统当中的应用程序,机器人的操作系统。ROS目前有两个大的版本,ROS1和ROS2。我们所说的ROS一般指ROS1,ROS2相比ROS1有了更大的提升,在多机器人,稳定性,实时性,跨平台支持等方面有显著的优势。ROS对于Ubuntu操作系统的支持度是最高的,每个Ubuntu版本都有相应的ROS版本。
Ubuntu(Linux):
Ubuntu是电脑的操作系统,和Windows 10操作系统本质上是一样的。Linux本质上是指系统的内核,Ubuntu和Linux之间的关系类似于 Windows 10 和 Windows的关系,严格意义上来说,Ubuntu才是操作系统,而Linux只是指Ubuntu操作系统的内核,但一般情况下,Linux和Ubuntu均指Ubuntu操作系统。
命令行:
命令行是在操作系统中,提示进行命令输入的一种工作提示符。在Windows操作系统中,几乎所有的操作用图形化界面就可以实现,而在Ubuntu系统当中,命令行的使用可以说是必须要掌握的。例如,启动一个应用程序,鼠标双击可以启动,使用命令也是可以启动的。文件的创建,复制,粘贴等等操作都是可以用命令实现的。
终端:
终端一般指输入命令行的窗口,在Ubuntu系统下默认按下ctrl + alt + t打开命令行终端窗口。
上面大概讲述了一些Ubuntu系统相关的相关概念,使用ROS也必须掌握Ubuntu系统的使用,下面介绍一些关于ROS的相关名词和概念。
节点:
指执行运算任务的进程,一般情况下,一个节点负责整个机器人系统的某一部分功能,一个庞大的机器人系统就是由多个节点组成,节点之间相互地传输数据,每个节点再相应地对数据进行处理。
话题:
节点之间最常用也最重要的数据传输方式就是话题(topic),话题采用发布/订阅的机制,一个节点可以向某个话题发布数据,另一个节点订阅该话题,获取其中的数据,这就实现了两个节点之间的数据通信。
消息:
指节点传输的数据,每一个消息都指一个固定的数据结构,可以是标准的数据类型,也支持嵌套和数组,除ROS本身提供的消息类型以外,用户还可以根据自身情况自定义消息。
我们用这幅图来形象化地描述节点,话题,消息之间的关系,将节点类比人,消息类比纸条,话题类比箱子,两个人现在就通过纸条以及箱子传递信息,左边的人将数据信息写到纸条上,再将纸条放到箱子中,这就是节点发布数据到话题中,右边的人从箱子内拿出纸条获取纸条上的信息,这就是节点订阅话题获取数据。
功能包:
功能包是一个文件夹,它是ROS中一个比较重要的文件结构,功能包一般会包含一个功能模块的全部源代码,包括c++代码文件,python代码文件,头文件,配置文件……等内容。
工作空间:
工作空间也是一个文件夹,工作空间内会包含一个或多个功能包,功能包编译生成的中间文件以及可执行文件,均会放置在工作空间内。一般情况下,一个工作空间下会有三个文件夹:
1、src:代码空间,存放ROS功能包
2、build: 编译空间,存放编译过程中产生的缓存信息和中间文件
3、devel: 开发空间,用于放置编译生成的可执行文件。
本期ROS基础讲解到这里结束了,ROS相关的名词概念还有很多,在这里介绍了一些常用的名词概念,希望能帮助各位更好地去理解,更多内容我们下期再见。
作者:阿木实验室-木十
- End -
技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。
以上是关于技术分享 | ROS基础讲解之ROS相关名词概念讲解的主要内容,如果未能解决你的问题,请参考以下文章