2020-04-10

ROS学习笔记1(基础知识和ROS架构)

文章目录

    ROS学习笔记1(基础知识和ROS架构)

        1. 什么是ROS

        2. ROS和其他机器人平台有什么不同

        3. ROS架构组成

            3.1 文件系统级别

            3.2 ROS架构组成——计算图层

        4. ROS安装文件夹架构

            4.1 bin文件夹

            4.2 include文件夹

            4.3 lib文件夹

            4.4 etc文件夹

1. 什么是ROS

ROS 是一个适用于机器人的开源的元操作系统,某些时候也是一种机器人框架(robot frameworks)。系统包括如下服务:

1. 硬件抽象

2. 底层设备控制

3. 常用函数实现

4. 进程间消息传递

5. 包管理

从这张图片来看,ROS是2007年诞生与斯坦福大学,斯坦福大学,世界名校,而且是专业研究机器人的,目前也在从事人工智能的研发,ROS诞生于这样的贵族,可见ROS的发展还是非常有前途的

2. ROS和其他机器人平台有什么不同

Brian Gerkey(同时涉猎 Player 和 ROS)向ROS用户所写的关于ROS和Player区别的电子邮件中提到:

    这个问题的答案,和许多问题一样,视情况而定。特别是取悦于你想要干什么。Player非常适合简洁的非铰接的移动平台。它的设计为那些激光雷达的先锋提供了简单的传感器和电机操作方法。

    然而,ROS是围绕着基于驱动传感器(倾斜式激光,盘式/斜试头部传感器,机械臂传感器)的复杂移动处理平台设计的。与Player相比,ROS可以更方便的借助分布式计算设备,而且我可以肯定,越高级的应用越适用于ROS而不是Player。换句话说,Player提供了更多的硬件驱动,而ROS提供了更多算法。

    关于你们针对OpenCV集成提出的问题,我想你们会发现ROS集成OpenCV的代码要比Player多一点。未来,当ROS和OpenCV团队明显重叠时,你们会发现这种差异将变得更大。

    我发现ROS利用了大量的来自于Player工程的代码。ROS节点的代码重用了许多Player的驱动,而且Stage和Gazebo可在ROS社区中得到广泛的支持和良好的应用。

总结一下ROS的特点:

    更方便地借助分布式计算设备

    提供更多算法的支持

    分布式的进程(节点),进程被封装在程序包和功能包集中。

3. ROS架构组成

ROS的纵向介绍主要从小到大,从深到浅进行介绍,整个ROS系统分为以下三个层次,如图

在这里插入图片描述

3.1 文件系统级别

img

文件系统级的概念如下:

    功能包:功能包是ROS系统中软件组织的基本形式,包含运行的节点以及配置文件等。

    功能包清单:这个清单是指明功能包的依赖关系、源文件编译标志信息等。功能包中的package.xml文件就是一个功能包清单。

    综合功能包:将几个功能包组织在一起,即可形成综合功能包。

    综合功能包清单:类似普通功能包清单.在格式上也有一定的限制。

    消息类型:ROS中节点之间发送消息时需要事先进行消息说明。ROS中提供了标准类型消息,也可以自行定义。消息类型的说明存储在功能包下的msg文件内。

    服务类型:定义了在ROS系统中由每个进程提供的关于服务请求和响应的数据结构。

3.2 ROS架构组成——计算图层

这个层次最深,主要是描述程序是如何运行的,也就是ROS当中很细节的层次,这个层次我们主要介绍几个概念,这几个概念分别是节点、节点管理器、话题、服务。

(1)节点

就是指功能,或者说是进程,也可以当做一个个软件模块。

(2)节点管理器

节点管理器说白了就是管理节点的,跟指挥中心一样,类似于每一个固定电话是一个节点,那节点管理器就是基站,总站。

在这里插入图片描述

(3)话题

在这里插入图片描述

首先介绍ROS的话题通讯,ROS的话题通讯信息流图如下:

在这里插入图片描述

看到这幅图可能是懵逼的,接下来我们详细介绍。

假设一个节点需要某种类型的信息,假设这种类型是“bar”,也就是我们所说的话题,那这个节点必须接收这种话题的信息,我们把这个节点称之为接收者或者订阅者(listener),因此它会向节点管理器(ROS Master)求助,节点管理器(ROS Master)然后便会帮助这个接收者(listener)找正在发布这种话题“bar”的节点,这个节点我们称之为发布者(talker)找到之后便会帮助这两个节点建立连接,然后通讯。

http://ros.org/images/wiki/ROS_basic_concepts.png

总体上来说一下步骤(图中步骤是七个,此处精简为五个步骤):

第一步:信息的发布者(talker)和接收者(listener)都必须向节点管理器(ROS Master)注册自己的信息,就跟人员登记一样,节点管理器需要知道你这个节点的地址等信息,为什么需要知道呢,因为ROS的节点在实际机器人设计中,可能都存在于一个计算机之中,也可能分布于不同的计算机,因此需要地址等信息来对节点进行确定;

第二步:节点管理器在确定需要通信的两个节点之后就会对两个节点的信息进行匹配;

第三步:接收者(listener)向发布者(talker)发送自己的TCP通讯协议以及连接请求;

第四步:发布者(talker)确定连接请求,然后将自己的TCP地址发送给接收者(listener);

第五步:两个节点正式建立连接,并以TCP协议进行数据传输。

4. ROS安装文件夹架构

ROS安装之后的安装目录默认在“计算机/opt/ros/”安装目录下,如下图所示,大家打开之后会看到下面这五个文件夹。

在这里插入图片描述

4.1 bin文件夹

文件夹下面保存的基本是一些可执行的程序和命令,很多都是在ROS的终端界面可以直接运行的命令行,而如果需要在终端中调用命令行运行命令,就必须找到这个命令行程序,也就需要找到bin文件夹,也就需要前面所说的脚本文件,此外,还需要设置环境变量,设置环境变量的方法很简单,系统为我们已经准备好了脚本文件,我们只用将这些脚本添加到ROS的终端配置文件里面即可。

在这里插入图片描述

4.2 include文件夹

这个文件夹比较重要,里面放置的是头文件,这个大家就比较熟悉了,学过C语言的都知道,每次我们在写程序的第一行就是#include <stdio.h>,这个里面就包含了一个头文件。

ROS里面的某一具体的头文件属于某一具体的功能包,如果一个功能包需要依赖另外一个功能包,也就是要与另外一个功能包建立联系,那必须要包含另外那个功能包的头文件,功能包的头文件在功能包安装的时候就被存放于这个文件夹。

4.3 lib文件夹

主要存放一些.so结尾的可执行程序

在这里插入图片描述

4.4 etc文件夹

主要存放ros和catkin配置文件

原文链接:https://blog.csdn.net/cliukai/article/details/90448874

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容

  • 闭关在家这么久 连买菜都开始网购了 却因为出租屋那边的一个短信 让我忙活了一天...... 房客发信息过来 “没有...
    谢佳莲阅读 112评论 0 0
  • 烧烤店的生意 一场疫情改变了很多事,尤其是餐饮行业的生意一落千丈,好在现在已经全面复工了。 傍晚我和爱人到家附近的...
    春华如春花阅读 164评论 0 1
  • 奶奶去世三年了。 只有至亲离开的时候,才会真正教人认识死亡。我的爷爷、外婆都走得早,和外公相处的时间也极少,祖辈对...
    木寸子阅读 812评论 15 19
  • 很多相爱的人满怀希望的走进婚姻的殿堂,却在奔向终点的路上越走越远。 “80%的离异男女认为,他们婚姻的破碎是因为彼...
    橙橙design阅读 603评论 1 2
  • 夏天的温度那是一浪高过一浪,说好的雨呢?前一秒阳光毒辣,下一秒雨点哗哗,实际上是你我错觉,雨还没来。 你在等谁?我...
    冬日艳阳阅读 137评论 0 1