ROS-学习笔记(1) -- ROS基本知识

学习资料

1 ROS简介

ROS = 通信机制+开发工具+应用功能+生态系统, 由于集成了如此全面的功能,ROS又常被称为机器人元操作系统。ROS的应用目的是:提高机器人研发中的软件复用率

1.1 ROS 中的通讯机制

在这里插入图片描述

ROS提供了松耦合分布式通信框架,整个通讯框架可以被抽象为类似上述样例的 节点图, 节点图中有一系列的节点,每个节点都代表了一种功能,例如,图像采集、图像处理和SLAM导航等。节点之间可以相互通讯,信息可以在节点之间流通。我觉得关于ROS通讯这段介绍中,最关键的就是理解节点图与信息流动这个概念即可。

1.2 ROS中的开发工具

终端命令行工具、可视化工具、仿真工具等等。

1.3 ROS的应用功能

ROS应用功能丰富,可以支持包括移动机器人的开发、机械臂的开发等,ROS中功能的使用通过调用各种功能包来实现,使用功能包时,只需要关注模块之间的接口关系。关于这个部分,需要明确 接口 的概念。

1.4 ROS的生态系统

  • 发行版
  • 软件源
  • ROS wiki:记录ROS信息文档的主要论坛,信息较全。
  • 邮件列表:交流ROS更新的主要渠道,同时也可以交流ROS开发的各种疑问。
  • ROS Answers:咨询ROS相关问题的网站。
  • 博客:https://www.ros.org/news

2 ROS核心概念

2.1 节点(Node)

节点在ROS中是执行单元。

  • 执行具体任务的进程,独立运行的可执行文件,例如图像处理、摄像头驱动等具体任务。
  • 不同节点可以使用不同的编程语言,可分布式运行在不同主机,不同编程语言方便开发的进行,只要约定好节点直接的接口关系即可。
  • 节点在系统中的名称必须是唯一的。

2.2 节点管理器 (Node Master)

节点管理器是控制中心,用于管理ROS中众多的节点。

  • 为节点提供命名注册服务
  • 跟踪和记录话题、服务通信,辅助节点相互查找与建立连接
  • 在节点管理器中专门开辟了一个用于储存全局变量或参数的区域,相当于一个全局的对象字典,为ROS中的节点提供参数服务,节点可以利用这个服务储存或者提取参数。

2.3 通信

ROS中的节点有两种通信方式,分别是 话题通信服务通信

2.3.1话题通信-- 异步通信机制

在话题通信中需要明确的另个重要的概念是: 话题消息,简而言之:

  • 话题:数据传输的通道
  • 消息:通道中传输的数据
    关于两者详细的介绍如下:
(1) 话题(Topic)
  • 节点间用来传输数据的重要总线
  • 使用 发布、订阅模型,数据由发布者(publisher) 传输到** 订阅者(subscriber),这个过程是单向**数据的传输,此外同一个话题的订阅者或者发布者可以不唯一。
    发布订阅模型如下图所示:
    在这里插入图片描述
    话题在该模型中就由中间绿色的通道所表示。
(2)消息(Message)

话题中传递的信息就被称为消息,不同类型的消息都有自己特定的数据结构,许多数据类型在ROS中已经给出标准定义,同时也支持自定义。

2.3.2 服务通信–同步通信机制

服务通信采用 **客户端/服务器(C/S)**模型,客户端发送请求数据,服务器完成处理后返回应答数据。C/S模型如下图所示:
在这里插入图片描述
理解该模型可参考如下例子:
在这里插入图片描述
图像处理的节点通过 request 机制向摄像头节点发出调整分辨率的请求,摄像头节点接受到请求之后,对分辨率做出变化,并通过 response机制向图像处理节点返回处理完成的信号。

2.3.3 话题与服务的对比

在这里插入图片描述

2.4 参数(Parameter)

参数的作用是作为 全局共享字典

  • 通过网络访问的共享、多变量字典
  • 节点使用该服务器来储存和检索运行时的参数
  • 适合储存静态的配置参数、不适合储存动态配置的数据。
    理解参数,可以通过如下实例:
    在这里插入图片描述
  • (1)Talker向ROS Master设置一个参数
  • (2)Listener向ROS Master请求一个参数
  • (3)ROS Master检索对应参数,并返回给Listener.

2.5 功能包

ROS软件中的基本单元,包含节点码源等,完成一项具体的任务,由众多处理类似任务组成的功能包的集合被称之为 元功能包,例如有关图像的功能包可以被组合在一起,有关规划的功能包也可以被组合在一起。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值