| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 快速了解机器人操作系统ROS -> 正文阅读 |
|
[人工智能]快速了解机器人操作系统ROS |
????????ROS(Robot Operating System)机器人操作系统,由斯坦福大学人工智能实验室开发的一套提供类似操作系统服务的机器人专用开源系统。ROS包括一个类似于硬件系统的硬件抽象,但它不是一个传统的操作系统,它具有可用于异构硬件的特性。
????????分布式进程:它以可执行进程的最小单位(节点,Node)的形式进行编程,每个进程独立运行,并有机地收发数据。 ????????功能包单位管理:由于它以功能包的形式管理着多个具有相同目的的进程,所以开发和使用起来很容易,并且很容易共享、修改和重新发布。 ????????公共存储库:每个功能包都将其功能包公开给开发人员首选的公共存储库(例如GitHub),并标识许可证。 ????????API类型:使用ROS开发程序时,ROS被设计为可以简单地通过调用API将其加载到其使用的代码中。在每章中介绍的源代码中,您会发现ROS编程与C++和Python程序没有区别。 ????????支持多种编程语言:ROS程序提供客户端库(Client Library) 2 以支持各种语言。它可以用于如JAVA、C#、Lua和Ruby等语言,也可以用于机器人中常用的编程语言,如Python、C++和Lisp。换句话说,您可以使用熟悉的语言开发ROS程序。
????????ROS中比较重要的概念包括节点、主节点、消息、主题、服务和动作。 ????????节点(node)是指在ROS中运行的最小处理器单元。可以把它看作一个可执行程序。在ROS中,建议为一个目的创建一个节点,建议设计时注重可重用性。节点在运行的同时,向主节点注册节点的名称,并且还注册发布者(publisher)、订阅者(subscriber)、服务服务器(service server)、服务客户端(service client)的名称,且注册消息形式、URI地址和端口。基于这些信息,每个节点可以使用话题和服务与其他节点交换消息。 ????????主节点(master)负责节点到节点的连接和消息通信,当你运行主节点时,可以注册每个节点的名字,并根据需要获取信息。没有主节点,就不能在节点之间建立访问和消息交流(如话题和服务)。 ????????节点之间通过消息(message)来发送和接收数据。消息是诸如integer、floating point和boolean等类型的变量。用户还可以使用诸如消息里包括消息的简单数据结构或列举消息的消息数组的结构。 图1 节点基于话题通信框图 ????????如上图所示,话题(topic)就是“故事”。在发布者(publisher)节点关于故事向主节点注册之后,它以消息形式发布关于该故事的广告。希望接收该故事的订阅者(subscriber)节点获得在主节点中以这个话题注册的那个发布者节点的信息。基于这个信息,订阅者节点直接连接到发布者节点,用话题发送和接收消息。 ????????服务(service)消息通信是服务客户端(service client)与服务服务器(service server)之间的同步双向消息通信。其中服务客户端请求对应于特定目的任务的服务,而服务服务器则负责服务响应。 ????????动作是在需要像服务那样的双向请求的情况下使用的消息通信方式,不同点在于在处理请求之后需要很长的响应,并且需要中途反馈值。动作文件也非常类似于服务,目标和结果对应请求和响应。此外,还需要添加对应中途的反馈。它由一个动作的动作客户端来设置一个动作,然后动作服务器来运作,并发送反馈和结果。 ROS通信机制 ????????在上面概念的基础中,主节点,也就是ROS的控制器(ROS Master)通过RPC(Remote Procedure Call Protocol,远程过程调用)提供了登记列表和对其他计算图表的查找。没有控制器,节点将无法找到其他节点,交换消息或调用服务。其通信机制如下所示: 图2 ROS节点间的消息通信 ????????首先ROS中的两个节点要进行通信的话,首先要在主节点(ROS Master)进行注册,然后注册后其他节点通过ROS Master才能知道此节点的存在,主节点就是负责节点到节点的连接和消息通信的,没有主节点,其他节点就不能建立访问和消息交流。这里主要显示了ROS中用的较多的三种通信方式,分别是基于话题、服务和动作的。希望本文对你有帮助,如想获取持续信息,可关注“互联网技术之家”公众号,让我们一起学习探讨。 ???????? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 6:23:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |