ROS的运行架构是一种使用ROS通信模块实现模块间P2P的松耦合的网络连接的处理架构,它执行若干种类型的通讯,包括基于服务的同步RPC(远程过程调用)通讯、基于Topic的异步数据流通讯,还有参数服务器上的数据存储。但是ROS本身并没有实时性。
ROS的特殊性主要体现在消息通讯层,而不是更深的层次。端对端的连接和配置利用XML-RPC机制进行实现,XML-RPC也包含了大多数主要语言的合理实现描述。我们希望ROS能够利用各种语言实现的更加自然,更符合各种语言的语法约定,而不是基于C语言给各种其他语言提供实现接口。然而,在某些情况下利用已经存在的库封装后支持更多新的语言是很方便的,比如Octave的客户端就是通过C++的封装库进行实现的。
ros 分布式网络实现多台计算机间的通信http://www.cnblogs.com/W-chocolate/p/4328727.html
ROS本质是一个ROS的本质是一个开软的软件框架,并不是一个系统,也不是语言,它实质上统一通信接口
最大的好处就是可以调用满足这个通信接口的开发结果。用户机器人开发者之间的交流。避免大家的重复开发。由于机器人是一个复杂的系统,这样使得大家可以集中自己的精力在自己的研究领域。
Node--节点--可执行的最基本单元,可以用C++和Python来编写
Topics -主题---节点间传输数据的总线
Messages--消息--节点向特定主体发出的信息
Services--服务--用户开发的,直接与节点通信
ROS Master-管理器--节点之间通信的管理员,提供命名,注册服务,跟踪和记录话题的发布和订阅,提供参数服务器
Packages--功能包--基本组织形式,可以包含节点和配置文件
Parameter Server--参数--通过网络提供变量字典,可供节点存储和检索运行时的参数