ROS(Robot Operating System)是一个机器人软件平台,它能为异质计算机集群提供类似操作系统的功ROS的前身是斯坦福人工智能实验室为了支持斯坦福智能机器人STAIR而建立的交换庭项目。到2008年,主要由威楼加拉吉继续该项目的研发。ROS提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不同节点的进程能接受,发布,聚合各种信息(例如传感,控制,状态,规划等等)。目前ROS主要支持Ubuntu。 ROS可以分成两层,低层是上面描述的操作系统层,高层则是广大用户群贡献的实现不同功能的各种软件包,例如定位绘图,行动规划,感知,模拟等等。ROS(低层)使用BSD许可证,所有是开源软件,并能免费用于研究和商业用途。而高层的用ROS的首要设计目标是在机器人研发领域提高代码复用率。ROS是一种分布式处理框架(又名Nodes)。,这使可执行文件能被单独设计,并且在运行时松散耦合。这些过程可以封装到数据包和堆栈中,以便于共享和分发。ROS还支持代码库的联合系统。使得协作亦能被分发。这种从文件系统级别到社区一级的设计让独立地决定发展和实施工作成为可能。上述所有功能都能由ROS的基础工具实现。 为了实现“共享与协作”这一首要目标,人们制订了ROS架构中的其他支援性目标:“轻便”:ROS是设计得尽可能方便简易。您不必替换主框架与系统,因为ROS编写的代码可以用于其他机器人软件框架中。毫无疑问的,ROS更易于集成与其他机器人软件框架。事实上ROS已完成与OpenRAVE、Orocos和Player的整合。建议的开发模型是使用clear的函数接口书写ROS-agnostic库。ROS框架很容易在任何编程语言中执行。用户已经能在Python和C++中顺利运行,同时添加有Lisp、Octave和Java语言库。ROS有一个内建的单元/组合集测试框架,称为“rostest”。这使得集成调试和分解调试很容易。ROS适合于大型实时系统与大型的系统开发项目。 ROS有三个层次的概念:分别为Filesystem level,Computation graph level, 以及Communication level。 以下内容具体的总结了这些层次及概念。除了这三个层次的概念, ROS也定义了两种名称-- Package资源名称和Graph资源名称。同样会在以下内容中提及。Filesystem Level文件系统层概念就是你在碟片里面遇到的资源,例如:ROS的基本组织,可以包含任意格式文件。一个Package 可以包含ROS执行时处理的文件,一个ROS的依赖库,一个数据集合,配置文件或一些有用的文件在一起。Manifests 提供关于Package元数据,包括它的许可信息和Package之间依赖关系,以及语言特性信息像编译旗帜(编译优化参数)。Stacks 是Packages的集合,它提供一个完整的功能,像“navigation stack” Stack与版本号关联,同时也是如何发行ROS软件方式的关键。 在ROS的计算图中,ROS的Master以一个name service的方式工作。它给ROS的节点存储了topics和service的注册信息。Nodes 与Master通信从而报告它们的注册信息。当这些节点与master通信的时候,它们可以接收关于其他以注册节点的信息并且建立与其它以注册节点之间的联系。当这些注册信息改变时Master也会回馈这些节点,同时允许节点动态创建与新节点之间的连接。ROS里面使用最广的连接协议是TCPROS,这个协议使用标准的TCP/IP 接口。
|
-
无相关信息
- 网站名称
- 人气
- 戴尔官方网站
- 7884
- MAC苹果电脑
- 7684
- Intel英特尔官方
- 6885
- IBM官方网站
- 5773
- 华硕笔记本官网
- 5448
- Compaq康柏电脑
- 4883
- 西部数据公司
- 2774
- 德州仪器
- 640
- HP惠普官方网站
- 494