提供网站建设方案,wordpress图标svg更改,神一般的网页设计,aspcms到目前为止#xff0c;我们已经安装了ROS#xff0c;运行了ROS中内置的小乌龟案例#xff0c;并且也编写了ROS小程序#xff0c;对ROS也有了一个大概的认知#xff0c;当然这个认知可能还是比较模糊并不清晰的#xff0c;接下来#xff0c;我们要从宏观上来介绍一下ROS的…到目前为止我们已经安装了ROS运行了ROS中内置的小乌龟案例并且也编写了ROS小程序对ROS也有了一个大概的认知当然这个认知可能还是比较模糊并不清晰的接下来我们要从宏观上来介绍一下ROS的架构设计。
立足不同的角度对ROS架构的描述也是不同的一般我们可以从设计者、维护者、系统结构与自身结构4个角度来描述ROS结构:
1.设计者
ROS设计者将ROS表述为“ROS Plumbing Tools Capabilities Ecosystem” Plumbing: 通讯机制(实现ROS不同节点之间的交互) Tools :工具软件包(ROS中的开发和调试工具) Capabilities :机器人高层技能(ROS中某些功能的集合比如:导航) Ecosystem:机器人生态系统(跨地域、跨软件与硬件的ROS联盟)
2.维护者
立足维护者的角度: ROS 架构可划分为两大部分 main核心部分主要由Willow Garage 和一些开发者设计、提供以及维护。它提供了一些分布式计算的基本工具以及整个ROS的核心部分的程序编写。 universe全球范围的代码有不同国家的ROS社区组织开发和维护。一种是库的代码如OpenCV、PCL等库的上一层是从功能角度提供的代码如人脸识别他们调用下层的库最上层的代码是应用级的代码让机器人完成某一确定的功能。
3.系统架构
立足系统架构: ROS 可以划分为三层 OS 层也即经典意义的操作系统 ROS 只是元操作系统需要依托真正意义的操作系统目前兼容性最好的是 Linux 的 UbuntuMac、Windows 也支持 ROS 的较新版本 中间层 是 ROS 封装的关于机器人开发的中间件比如: 基于 TCP/UDP 继续封装的 TCPROS/UDPROS 通信系统 用于进程间通信 Nodelet为数据的实时性传输提供支持 另外还提供了大量的机器人开发实现库如数据类型定义、坐标变换、运动控制.... 应用层 功能包以及功能包内的节点比如: master、turtlesim的控制与运动节点...
4.自身结构
就 ROS 自身实现而言: 也可以划分为三层 文件系统 ROS文件系统级指的是在硬盘上面查看的ROS源代码的组织形式 计算图 ROS 分布式系统中不同进程需要进行数据交互计算图可以以点对点的网络形式表现数据交互过程计算图中的重要概念: 节点(Node)、消息(message)、通信机制_主题(topic)、通信机制_服务(service) 开源社区 ROS的社区级概念是ROS网络上进行代码发布的一种表现形式 发行版Distribution ROS发行版是可以独立安装、带有版本号的一系列综合功能包。ROS发行版像Linux发行版一样发挥类似的作用。这使得ROS软件安装更加容易而且能够通过一个软件集合维持一致的版本。 软件库Repository ROS依赖于共享开源代码与软件库的网站或主机服务在这里不同的机构能够发布和分享各自的机器人软件与程序。 ROS维基ROS Wiki ROS Wiki是用于记录有关ROS系统信息的主要论坛。任何人都可以注册账户、贡献自己的文件、提供更正或更新、编写教程以及其他行为。网址是Documentation - ROS Wiki。 Bug提交系统Bug Ticket System如果你发现问题或者想提出一个新功能ROS提供这个资源去做这些。 邮件列表Mailing list ROS用户邮件列表是关于ROS的主要交流渠道能够像论坛一样交流从ROS软件更新到ROS软件使用中的各种疑问或信息。网址是lists.ros.org Mailing Lists。 ROS问答ROS Answer用户可以使用这个资源去提问题。网址是Questions - ROS Answers: Open Source QA Forum。 博客Blog你可以看到定期更新、照片和新闻。网址是ROS robotics news不过博客系统已经退休ROS社区取而代之网址是ROS Discourse。
现在处于学习的初级阶段只是运行了ROS的内置案例编写了简单的ROS实现因此受限于当前进度不会详细介绍所有设计架构中的所有模块当前只介绍文件系统与计算图下一章会介绍 ROS 的通信机制这也是ROS的核心实现之一。