其他分享
首页 > 其他分享> > ROS从入门到放弃(学习笔记1)

ROS从入门到放弃(学习笔记1)

作者:互联网

最近在想着做机器人,机缘巧合接触到了ROS,在这里分享一下我学习ROS的经历。

首先就是安装ROS,安装ROS网上有很多资料可以查到,但是我在安装的时候初始化一直出问题,基本网上什么方法都尝试了,总是在最后一步失败,最后实在没办法了,就淘宝上买了一个ROS安装工具,很快就装好了。真香!

安装并测试好ROS以后,就是学习一些ROS的核心概念,这里我主要是看古月居的视频,我大概把我的理解说一下。(本篇文章只是把自己对基本概念的理解进行阐述)

1.1 ROS是什么

首先就是要知道ROS包括什么?在学习以后,我的理解是ROS是由通信机制、开发工具、应用功能、生态系统组成的集合,主要目标就是用来提高机器人研发中的软件复用率。接下来就可以从这四大部分了解ROS。

  1. 发行版(Distribution):ROS发行版包括一系列带有版本号、可以直接安装的功能包。
  2. 软件源(Repository):ROS依赖于共享网络上的开源代码,不同的组织机构可以开发或者共享自己的机器人软件。
  3. ROS wiki:记录ROS信息文档的主要论坛。
  4. 邮件列表(Mailing list):交流ROS更新的主要渠道,同时也可以交流ROS开发的各种疑问。
  5.  ROS Answers:咨询ROS相关问题的网站。
  6. 博客(Blog):发布ROS社区中的新闻、图片、视频(http://www.ros.org/news)。

1.2 ROS核心概念

  1. 节点(Node):是ROS中一个具体的执行单元,是用来执行某个具体功能的可独立运行的可执行文件。不同的节点可以使用不同的编程语言。
  2. 节点管理器(ROS Master):是ROS中的控制中心,是ROS 所有节点的管理者。所有的节点都需要去找节点管理器注册,节点管理器去记录节点的个各种信息,帮助节点之间建立联系。所以我们可以看到各个节点并不知道彼此的存在,他们都是通过节点管理器进行通信的。节点管理器另一个比较重要的功能就是,它可以提供参数服务器,节点可以使用此服务器存储和检索运行时的参数。

ROS为节点之间的通信设置了两种通信方式:话题和服务

  1. 话题(Topics):采用异步通信机制。使用发布者和订阅者模型,同一个话题的订阅者和发布者可以不唯一。话题的通信方式是单向数据的传输,节点可以发布信息到一个话题,同样也可订阅话题来接收消息。
  2. 消息(Messages):通道中传输的数据。用来描述传输话题数据的数据类型,有一定类型和数据结构。使用编程语言无关的.msg文件定义,编译过程中生成对应的代码文件。

 

 

  1. 服务(Service):采用同步通信机制。使用客户端/服务器(C/S)模型,由客户端发送请求数据,服务器完成处理后返回应答数据。使用编程语言无关的.srv文件定义请求和应答的数据结构,编程过程中生成对应的代码文件。

 

话题通信和服务通信的区别:

个人认为,话题通信类似于写信,我们很难及时得到对方的反馈,而服务通信就类似于打电话,很快我们就可以得到对方的反馈。以下则是更加全面的对比:

  1. 功能包(Package):ROS软件中的基本单元,包含节点源码、配置文件、数据定义等。
  2. 功能包清单(Package manifest):记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编辑标志等。
  3. 元功能包(Meta Package):组织多个用于同一目的的功能包。 

 

标签:功能,管理器,入门,通信,笔记,话题,ROS,节点
来源: https://blog.csdn.net/lightningwl/article/details/119901184