ROS 机器人操作系统
收藏64
评论0
分享
纠错
授权协议
BSD
开发语言
Python 查看源码 »
操作系统
Linux
软件类型
开源软件
所属分类
其他开源、 开源硬件
开源组织
无
地区
不详
投 递 者
bli
适用人群
未知
收录时间
2014-09-08
软件首页
软件文档
官方下载
软件简介
ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。ROS 遵守 BSD 开源许可协议。
ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。在某些方面 ROS 相当于一种 “机器人框架(robot frameworks)” 类似的 “机器人框架” 有:Player,YARP,Orocos,CARMEN,Orca,MOOS 和 Microsoft Robotics Studio。
ROS 运行时的 “蓝图” 是一种基于 ROS 通信基础结构的松耦合点对点进程网络。ROS 实现了几种不同的通信方式,包括基于同步 RPC 样式通信的服务(services)机制,基于异步流媒体数据的话题(topics)机制以及用于数据存储的参数服务器(Parameter Server)。想更加深入的解释这些概念,请参见概念综述。
ROS 并不是一个实时的框架,但 ROS 可以嵌入实时程序。Willow Garage 的 PR2 机器人使用了一种叫做 pr2_etherCAT 的系统来实时发送或接收 ROS 消息。ROS 也可以与 Orocos 实时工具包无缝集成。
ROS 不是一个集成了大多数功能或特征的框架。事实上,ROS 的主要目标是为机器人研究和开发提供代码复用的支持。ROS 是一个分布式的进程(也就是节点)框架,这些进程被封装在易于被分享和发布的程序包和功能包集中。ROS 也支持一种类似于代码储存库的联合系统,这个系统也可以实现工程的协作及发布。这个设计可以使一个工程的开发和实现从文件系统到用户接口完全独立决策(不受 ROS 限制)。同时,所有的工程都可以被 ROS 的基础工具整合在一起。
为了支持分享和协作的主要目的,ROS 框架也有其它几个目标:
小型化:ROS 尽可能设计的很小 -- 我们不封装您的 main () 函数 -- 所以为 ROS 编写的代码可以轻松的在其它机器人软件平台上使用。 由此得出的必然结论是 ROS 可以轻松集成在其它机器人软件平台:ROS 已经可以与 OpenRAVE,Orocos 和 Player 集成。
ROS 不敏感库:ROS 的首选开发模型都是用不依赖 ROS 的干净的库函数编写而成。
语言独立:ROS 框架可以简单地使用任何的现代编程语言实现。我们已经实现了 Python 版本,C++ 版本和 Lisp 版本。同时,我们也拥有 Java 和 Lua 版本的实验库。
方便测试:ROS 内建一个了叫做 rostest 的单元 / 集成测试框架,可以轻松安装或卸载测试模块。
可扩展:ROS 可以适用于大型运行时系统和大型开发进程。
ROS 目前只能在基于 Unix 的平台上运行。ROS 的软件主要在 Ubuntu 和 Mac OS X 系统上测试,同时 ROS 社区仍持续支持 Fedora,Gentoo,Arch Linux 和其它 Linux 平台。
与此同时,Microsoft Windows 端口的 ROS 已经实现,但并未完全开发完成。