分类: LINUX
2009-02-25 19:29:15
本文对目前现役实用机器人的软件开发平台进行整体的评测。其中的主要内容是根据本人对这些平台的实际使用经验编写的。
所谓的“机器人软件开发平台”我们指的是用来给多种机器人设备开发程序的软件包。它一般包括下列内容:
大家可以看到,一个机器人软件开发平台需要包含很多东西。就我本人的观点,现在还没有一个现有的产品能满足所有的要求。它们总是或多或少的缺了什么东西。
平台名称 |
所属类型 | |
平台 |
商用 | |
平台 |
非商业用途免费 | |
控件库 |
开源且免费 | |
机器学习插件 |
商用 | |
平台 |
商用 | |
仿真环境 |
商用 | |
平台 |
开源且免费 | |
平台 |
商用 | |
平台 |
开源 | |
平台 |
开源 |
机器人控制软件的花费在整个机器人应用系统预算中占据了很大比例。比如,一个自动控制项目的80%工作量都集中在系统集成方面,包括软件的发开和定制。所以机器人开发平台的作用就是减少软件工程师的工作量,同时减少项目开支。
除了软件工程的问题外,在一个真正的机器人项目中还要涉及大量的人工智能。一个集成了许多现成的、可靠的组件库的统一软件开发平台,在应付各种机器人工程时能帮上大忙。
最后的问题是“行为协作”。许多文献中都有对行为协作的讨论。正因为这是一个普遍存在的问题,所以一些平台提供了统一的解决方案。
Evolution | Microsoft | OROCOS | Skilligent | URBI | Webots | Player, Stage, Gazebo | |
开源 | 否 | 否 | 是 | 否 | 否 | 否 | 是 |
免费 | 否 | 非商业用途 | 是 | 否 | 否 | 否 | 是 |
支持Windows | 是 | 是 | 否 | 是 | 是 | 是 | 是(仿真) |
支持Linux | 是 | 否 | 是 | 是 | 是 | 是 | 是 |
分布式环境 | 否 | 是 | 否 | 是 | 是 | 是(有限的) | |
行为协作 | 是 | 是 | 否 | 是 | 是 | 否 | 否 |
内置机械手臂控制模块 | 否 | 否 | 是 | 是 | 否 | 否 | 否 |
内置物体识别模块 | 是 | 否 | 否 | 是 | 否 | 否 | 否 |
内置导航模块 | 是 | 否 | 否 | 是 | 否 | 否 | 否 |
学习工具 | 否 | 否 | 否 | 是 | 否 | 否 | 否 |
仿真环境 | 否 | 是 | 否 | 否 | 是 (Webots) | 是 | 是 |
硬件支持范围 | 小 | 大 | 中 | 中 | 大 | 大 | 中 |
可重用自定义组件 | 是 | 是 | 是 | Not applcbl | 是 | 否 | 否 |
实时系统 | 否 | 否 | 是 | 否 | 否 | 否 | 否 |
Evolution Robotics是一个集设计和销售机器人软硬件的开发平台,简称ERSP。整个软件非常成熟。它集成了视觉识别系统(VIRP)和视觉导航绘图系统(VSLAM)。它所用的视觉系统是基于David Lowe开发的算法(已注册专利)。
平台提供了可视化的编程环境工具,通过搭建图标来构建程序。
可视化编程界面
系统通过运行时的“任务”程序来激活或停止“行为”组件。系统不支持仿真。它在Windows 和Linux下运行.
微软最近成立了专门的团队开发机器人软件平台,产品叫做Microsoft Robotics Studio(MSRS)。它能在Windows和Windows CE下运行。分布运行的开发环境承担了大部分的信息传递和线程管理任务。它的行为协作基于“服务优先级”的概念。它提供了完备的仿真和图形化开发环境。
可视化编程界面
仿真环境
在微软大旗的感召下,越来越多的机器人设备厂商宣布支持MSRS。(不知道在这个领域会不会出现WINDOWS的局面?不过我想应该不会,根据我的经验,在涉及程序开发这个领域微软的感召力仅局限与WINDOWS平台,根据他们公司的一贯作风来看,应该是不会做包打天下的产品的。译者注)
OROCOS是一个开源的控件库。这些控件主要用于高级运动控制和机器人控制。它自己带有一个针对实时运行环境优化了的开发平台。该环境使用“锁无关缓冲区”技术,满足应用程序对实时性严格的要求。
OROCOS体系
OROCOS提供一系列可重用组件和硬件驱动。独立的运动学与动力学开发框架能让用户进行物理运动学的建模和计算。应用的领域有机器人、人体工程、计算机动画、工业机械建模等。
该系统没有统一的图形化编程环境或者仿真环境。
从严格意义上说,Skilligent不属于机器人软件开发平台。因为它提供的是一种对机器人编程的仿真训练,而不是真正意义上编写实际运行在机器人上面的程序。
Skilligent的机器人行为控制系统是基于“developmental robotics”——一种新型的对多用途的、非特定任务控制的自治机器人系统进行学习人工智能系统。
Skilligent让一个常规的机器人变成一个能与终端用户交流并能被训练的友好的机器人。系统控制软件的良好的交互性能让用户与机器人之间的交流和协作更自然。用户可以通过手势、声音、控制操作和“共同注意(joint attention)”。
用户在训练机器人
Skilligent行为控制系统
系统的关键技术是一系列将实际应用情况中的任务或者技能转换成普适模型的算法。系统针对物体识别、声音识别和视觉导航的学习进行了优化。
严格来说,Skilligent倒不是一个平台,而更象是一个系统插件,因为它能够和本文中介绍的其他平台很好的结合在一起。
URBI是由Gostai开发的平台。它没有提供流行的图形编程界面,而是独立提供了一种语言。语言的特点是针对建立平行、分布式的事件驱动程序进行了优化。
对每一种机器人硬件平台,Gostai都承诺提供一种单独的专门的程序语言。目前,Gostai已经为数个机器人产品提供了服务,包括索尼Aibo, 乐高Mindstorms和 K-Team的Khepera.
URBI是一种分布式的平台。利用它用户可以组建一个计算机群来协同运行服务程序。Gostai的合作者负责提供视觉识别和语音识别的组件。
该平台没有自带的仿真平台,但是近期它宣布与Webots合作。Webots是一个流行的商用机器人仿真平台。
Webots是一个流行的机器人快速建模和仿真商用平台,由Cyberbotics公司出品。这个系统不算是一个软件开发平台,说是一个带有建模能力的仿真引擎比较贴切。
该系统提供了多种常见的机器人模型比如两足、轮式和机械手臂。
Webots快速建模和仿真环境
Player,是一个支持多种机器人硬件平台、开源的、基于TCP/IP的技术硬件抽象层。Stage和Gazebo提供的是内建的仿真环境。这个系统适合用于机器人集群冲突/协作的研究。
Player, Stage, Gazebo
Player还能提供一个在机器人上运行的简易界面用来通过IP网络读取传感器数据、向激励器发送命令和配置运行中的设备。
还有其他的平台例如iRobot AWARE, OpenJAUS, CLARAty, YARP。作者还没有机会深入学习。下列是一些相关的信息:
对于机器人平台开发公司来说,最美妙的事情莫过于将来大批量出产的机器人上都预装自己的系统,正象WINDOWS预装在PC上面那样。当然目前为止,我们还看不到有这种可能。在这个梦想成为现实之前,教育和科研机构还是最主要的客户。
微软的介入让其他的公司倍感压力。微软凭借自身实力将具有竞争力的产品免费的投放市场,这将有可能使当前的教育科研市场受到冲击。
目前,教育科研和业余爱好者的市场看上去已经趋于饱和,而且这个市场本身的容量就不大。各公司必须找到进军工业机器人和商用机器人领域的切入口。
在工业机器人领域,大部分的机器人器材制造商在产品中附带自己开发的平台(例如ABB)。他们也许更愿意使用自己的软件而不是使用第三方的产品。对于这种情况OMG小组正在发起一场建立一系列标准的活动,以试图打破这种卖方垄断的局面。尽管目前收效甚微,但是我们希望他们能建立行之有效的中长期标准。另一方面,在欧洲同样也有志同道合的人在独立的做这方面的努力(European Robotics Platform)。
在商用机器人领域,我们可能看到民用机器人软件平台标准的出台,特别是在军用机器人(对嵌入式系统兼容性要求严格)方面。在美国,绝大部分的机器人研究成果受美军科研机构控制。所以,我们相信很快会有关于远程控制、集群协作和导航组件的标准出现。另一方面,欧洲的科研力量集中在建立工业机器人和家庭、办公领域机器人的应用标准上。
最近Skilligent出品了新的机器人平台,他们的软件让机器人能在与人的交流过程中自主学习技能。从理论上说,这很大程度上将很多传统的商用机器人开发环境被废弃,因为机器人可以直接训练而不用编写程序。但是另一个方面,那些不能由用户提供的技能还是需要传统的编程。所以,我们能够望这样的系统能越来越聪明——在将不久的将来,能够自主学习的灵活多变的机器人能越来越多的出现在我们身边。
消费机器人市场价格敏感程度要远高于其他领域。当前最受关注的家用真空吸尘机器人,其价格已经远远低于大多数机器人软件开发平台的价格。所以现在谈论消费机器人的软件开发平台还为时尚早。
还有一个方面,那就是操作系统——Linux与Windows的竞争。Linux得到绝大多数开发平台的支持。而微软正致力于将Windows XP/CE推广成机器人标准平台。我的猜想是在未来的市场上他们都将各据其地,谁也吃不掉谁。至于市场份额比例,那只有以后才知道了。