[翻译]商业机器开发的工具、标准和平台:基本档案

原文:Tools, Standards, and Platforms for Commercial Robotics Development: An Adoption Profile

Robotics Business Review 对就职于机器人公司的专业人员进行了一项调查,为技术提供商、开发者和经理等提供一份关于机器人系统开发的工具、标准和平台的基本档案。

引言

机器人和机器人技术的开发需要掌握多个学科的知识——主要包含软件开发、机械和电子工程。嵌入式和实时性的要求使得机器人开发尤其困难。 但是大家对于实时性的关注刚刚开始,特别是机器人及其技术正在被广泛应用到家庭、工作场所、公共场合以及战场。

商业上的可行性给机器人开发者增加了额外的负担——所得的系统必须具有创新性、适应极端条件、像对外宣传的一样,并且具有价格优势。这需彻底地理解系统、系统工程、设计目标(和这些目标的轮廓),严格的开发过程,并且尽可能遵守官方的和事实上的标准。

下一代机器人和机器人设备必须与环境中的其它系统整合。 解决方案提供商已经开始提供机器人设计和开发工具,甚至现成的机器人“平台”,这大大简化了设计、开发、测试和制造机器人的工作。

为了提高机器人发展速度,推动整个机器人产业,Robotics Business Review 调查了大约250位就职于机器人公司的专业人员,以确定现在和将来使用的机器人设计和开发方案。 所得的这份基本档案可作为解决方案提供商、工程师和投资界作知情决策的基础。

被调查对象

与Robotics Business Review之前进行的研究不同,机器人开发工具的调查是针对专业人士的——具体地说,是那些能够对下列问题作出肯定回答的专业人士:“你的公司生产机器人及其相关技术吗?”调查问卷通过电子邮件发送给“机器人开发会议”RoboDevelopment Conference and Exposition
)和“机器人商业会议和展览”( RoboBusiness Conference and Exposition)的与会者。 在线回答问题的受访者可以参加抽奖(奖品为iRobot Create Premier Development Package)。此次调查共收到253份完整的问卷。

受访者代表了细分垂直市场和业务多样性(图1)。调查的焦点是机器人开发。因此,大部分受访者以机器人及其技术作为主要业务(28%)。学术界是第二大团体 (23.6%)。在机器人公司和学术界之后,受访者分布在各个产业,没有一个团体超过7.6%的。

大约70%的受访者表示他们参与到机器人研究和开发中,这是因为样本中学者占很大的比例,同时研发是商业机器人开发者的主要工作(图2)。“软件工程”和“系统工程”成为机器人系统开发的关键角色,这是因为很多受访者表示这是他们在公司职位中的部分职责。略微超过56%的受访者表示他们在公司中承担不止一个开发角色,平均每个人承担三个独立的角色。

虽然有国防工业的代表,但是大部分受访者表示为研究和学术市场研究和开发机器人(图3)。只有 7.5% 的受访者表示他们为了除去研究、国防、工业机器人、消费机器人、教育和医疗之外的市场开发产品。51%的被调查者表示他们不仅为一个市场开发,平均目标市场为1.9。

受访者们来自各种各样的公司,从刚刚起步的小公司、正在成长的中型公司到最大的全球企业都有。如你所预见的,在机器人这个新兴产业中,大部分受访者就职于小公司——大约59%来自去年收入小于5千万美元的公司(图4)。就职于大型公司——收入大于1亿美元的企业——的受访者占样本的大约12%,15%的受访者就职于中型公司(5千万到9.9千万美元)。大约有13%受访者就职于“其他”(未知,学术,非盈利等)单位。这些企业的年平均收入为17.6亿美元。

标准和参考模型

如图5a所描述的,受访者们认为在机器人开发中“个人电脑标准”和“现有商业标准”(commercial-off-the-shelf technology)比其他标准和参考模型更重要。“个人电脑标准”和“现有商业标准技术”的重要性还表现在选择标准和参考模型中“关键”选项中的比例(图5b)。可以看出“个人电脑标准”是最关键的(28%),“通用现有商业标准技术”排第二位,大约14%的受访者认为这是开发机器人的关键。

事实标准是指没有政府部门或者机构正是宣布的标准,相反,它们通过市场份额的增加而成为标准。“个人电脑标准” (包括基于Windows的个人电脑)是软硬件的事实标准——例如,Windows家族的操作系统,Win32 API, Intel x86 系列处理器, USB连接, 蓝牙和802.11无线网络等等。

现有商业标准的定义隐含了所谓的标准必须有足够的市场份额。在许多情况下,现有商业标准技术凭借其巨大的市场份额成为工业上的事实标准——例如,x86芯片组就既是现有商业标准技术也是事实标准。因此,对机器人技术供应商来说,理想的现有商业标准技术既是商业可行的,也是商业上成功的(有足够的发货量)。

从图5b中可以看出,受访者们认为“个人电脑标准”和“现有商业标准”比其他标准要关键。但是,还应注意只有28%的受访者认为“个人电脑标准”是“关键”。除了“个人电脑标准”和“现有商业标准”,所有的其他行业标准都获得差不多的排名(图5a)。这反应了商用的、非工业用机器人市场还处于起步阶段,机器人开发还没有成熟的标准。

相对于事实标准,官方标准是由政府机构或者部门制定的。图5a和5b中,在“个人电脑标准”和“现有商业标准”之后的三个官方标准被广泛应用于军事或者非商业场合。其中包含无人驾驶系统中基于信息的SAE联合架构 (message-based SAE Joint Architecture for Unmanned Systems,OpenJAUS) 和无人驾驶飞行器(unmanned aerial vehicles,UAVs)和无人驾驶车辆(unmanned ground vehicles,UGVs)的标准化协议,无人系统的自主水平(the Autonomy Levels for Unmanned Systems,ALFUS)——描述各种无人系统自主水平的标准。

所有的官方标准,其中很多是军事标准,在样本中占中等比例(图5a)。但是,如图5b所示,与其它标准相比而言,受访者们认为它们更重要是因为:

  • 已有的标准缺乏对机器人领域的支持(如 CORBA)
  • 标准适用范围有限 (如Spacecraft Markup Language, SML)
  • 对标准的支持主要限于大学和研究机构 (如Extensible Robot Control Language, or XRCL)

官方标准的优点是可以依赖政府部门集中修改、整合标准,以提高效率和实用性。例如,针对OpenJAUS正在进行的讨论中包含无人系统的命令和控制与STANAG 4586(其重点是无人飞行器上的数据)的合并,以构成一个完善的无人系统标准。虽然现有商业标准和官方标准厂商之间有“合作”,但是技术厂商必须同时注意市场意愿,最终是个别厂商决定了它们所代表的事实标准的命运。

在大多数情况下,官方标准不是专有的。另一方面,事实标准是基于专有技术,因此只能局限于厂商自身。但是,如图5a和5b所示,机器人产品开发者们相信现有商业标准和个人电脑标准比相关专有技术更有优势:

  • 经过验证的技术——事实标准技术,包括现有商业标准已经在市场上证明了自己。
  • 可用性——现有商业标准和标准个人电脑技术现在已经存在市场中,无须从头开发,可以很快地应用,满足市场的需求。
  • 成本低——标准硬件和软件是技术开发成本分摊到很多用户,所以减少了最终产品的成本。
  • 支持——现有商业标准和标准技术不仅生产厂家提供支持,还有第三方提供应用、工具、服务和培训。

现今很多的机器人技术是基于开源软件的。开源是一种软件开发和发布模式,根据许可条款其源代码是免费的、可以被修改、再发布的。

严格来说,“开源”不等于“标准”。但是,开源软件更接近官方标准,因为开源软件不局限于特定产品或厂商。

没有基于开放标准(官方标准)的开源软件严格来讲不是“开放的”;你只有阅读和修改代码的可能。令人高兴的是,大多数开源软件使用的是开放标准。

除了对开放标准的支持,开源方案还有很多有点,特别是对机器人开发,这包含了很多基于开源软件的工具、库、框架和系统软件。例如,Eclipse 开发环境,开源 Open Computer Vision Library, Orca 开源中间件和 Carnegie Mellon 机器人导航工具包 (Carmen) 。

相对于它们的优点,开源解决方案往往缺乏专业的开发和支持,特别是在开发商业机器人系统时。但是在源码是免费的同时,可由公司——而不是个人——来主导开源软件的开发,使用可靠的、商用级的开发方法。在机器人领域,Willow Garage是一个例子,一个个人机器人开源解决方案公司,对ROS(最早由斯坦福大学人工智能实验室开发的机器人操作系统)的开发提供支持。一些公司还出售开源软件的发行版,整合了开源软件、专有工具和技术支持。

机器人开发环境的特性

除了“集成的服务执行架构”(Integrated Service Execution Architectures),机器人开发环境所有的特性选项都得到了5分中4分,其中1分意味着不重要,5分表示非常关键(图6a)。 受访者们一致选择的重要特性包括“硬件驱动”、“可复用功能组件”,“集成仿真环境”和集成开发环境。

图6b为被选择为“关键”的开发环境特性的百分比,所有的特性——除了“集成的服务执行架构”——几乎都一样。如图6a和6b所示,没有哪个特性占主导,尽管30%以上的受访者认为“硬件驱动”、“可复用功能组件”,“集成仿真环境”和集成开发环境是关键。

嵌入式系统和信息技术(IT)市场拥有众多成熟的集成开发环境。对于应用程序开发来说,IT领域、数据库、通讯、图形接口、硬件驱动和其他一些事实标准的工具集、可复用的软件、框架和API都已经包含在集成开发环境中。在嵌入式领域,类似的——尽管功能不同——软件开发的集成开发环境同样存在。

机器人技术开发同IT和嵌入式开发都有所不同,但是同样需要成熟的、稳定的集成开发环境。这样的工具可以使得缓慢、昂贵、易出错的开发过程变得严格、高效和抽象。

对设计者来说目前已经有一些综合的机器人开发平台,如Microsoft 的 Robotics Developer Studio 和 National Instruments 的 LabVIEW。尽管有Microsoft和National Instruments这样优秀的机器人工具开发商,但是相比嵌入式系统来说,机器人市场还是很新的。 机器人开发工具正在变得成熟,但是还是落后于传统的嵌入式软件和IT开发工具很多年。

机器人集成开发环境支持的功能

当受访者们被问到机器人开发环境中支持的功能时,表面上看没有一个选项胜过其它选项(见图7a)。但是仔细研究之后会发现人机交互功能(如“语音生成”和“语音识别”)没有其它的功能重要。与识别和计算相关的功能——在经典的感知-思考-执行的机器人定义中的“思考”——如“规则解释器”,“机器学习”和“神经网络”同样获得很低排名。受访者中将这一类功能选为关键的比例很小(图7b)。

受访者们表示“无线通讯”、“视觉处理”和“导航”是三种最应该嵌入到机器人开发环境中的功能(图7a)。支持无线通讯是机器人集成开发环境的重要功能,受访者中选择它为“关键”总数中的很大比例(Fig. 7b)。视觉处理和导航同样得分很高——实际上比调查中其它选项得分都高。

现在还不是开发多任务、全自主机器人系统的阶段。实际上,大多数产品——不管是军用的、民用的、商用的还是消费市场——都是针对单一任务或者最多是有限目的的。大多数机器人是以某种方式遥控的(因此图7b中对遥控的支持很高)。这些系统发展的一下步是采用无线技术,但仍然是遥控的。 甚至,简单的机器人可以与网络中的其它机器人进行交互和协作来完成更复杂的任务,如移动感知网络。

虽然机器人的外形和功能差别可以很大,但是所有的机器人都被定义为能够感知周围环境、在环境中移动并能操作环境中的物体。不同类型机器人的区别是感知、移动和交互的自主性不同。“提高自主性”是单个机器人和群体机器人研究的首要课题,包括军用、医疗、工业机器人甚至消费机器人。理由很明显,提高自主性可以:

  • 提高能力和功能
  • 降低成本

遥控机器人和自主机器人都需要无线通讯和图像处理,特别是如果这些系统与人、感知器和其它机器人通讯或者提供反馈给操作者。导航,定位和路径规划,与无线通讯和视觉处理一样是所有自主机器人所需要的功能。

机器人开发工具(或者包含在机器人平台中的工具集)厂商必须集中资源使得以下开发变得容易:遥操作系统;网络化的、协作机器人系统和自主机器人系统——尽管支持高级人机交互会很昂贵。所有的这三类系统都依赖于稳定的无线通讯、视觉处理和导航。

语言

如图8a所示,受访者们认为C和C++是最重要的机器人开发语言,更深奥的第4代语言和专用语言被认为是不重要的。机器人开发语言中被选为是“关键”的图形中(图8b),C++是遥遥领先者。值得注意的是一些语言——包括PARSL, RoboML, XRCL , TcL, Perl, Ruby, 和 Scheme 以及 SmallTalk 及其 SmallTalk 的变种(如Squeak)和一些古老的语言(如 Forth 和 Ada)没有列入调查中,但是令人怀疑它们能够比图8a和8b所得的比例高。

C++ 和一小部分的 C 是一切开发中事实上的标准语言,除了网页开发和特定类别的数据库交互,企业应用开发(如银行系统)——这些“软件开发”有别于“应用开发”,它们使用第4代语言、SQL甚至Cobol.。对微控制器和视觉处理来说,C 是最接近标准语言的(因为速度快)。这也是“熟练掌握C或者C++”是机器人工程师招聘中必备要求的原因。

高性能和开发性

开发语言的选择通常包含许多个人因素、权衡和取舍:

  • 性能——软件以多快的速度运行(编译型还是解释型)?
  • 效率——可执行文件和库多大?它们怎样使用资源?
  • 开放性——是专有语言,还是被国际标准组织(如美国国家标准学会ANSI,国际标准化组织ISO,国际电工委员会IEC)支持?
  • 开发效率——使用该语言编程有多容易?
  • 完整性——整个系统能够用该语言建立,或是否需要其它语言来与子系统或者硬件交互?

C 和 C++ 提供了高性能和安全的开放的标准。根据软件是如何编写的,C和C++开发的程序效率可以非常高。更重要的是,C和C++没有技术限制。第三代计算机语言,像C和C++,是能够构建完整系统的最高抽象等级,提供了各种类型平台中各个层次的功能。C#也许并不比C/C++慢,但是它是专有的。

Java,XML 和 Python 在“重要”或者“关键”选项中获得了中等得票率。XML(可扩展标记语言)是一种简单的描述语言,通过使用标记来存储结构化的数据。它是针对网页设计的,并已经获得广泛应用。一些机器人语言,包括PARSL, RoboML 和 XRCL,是以XML语言为基础的。

Java,一门语法类似C++的面向对象语言,消除了C++中的一些问题特性,包括goto,操作符重载和指针,并且支持内存管理和动态绑定功能。 图8b 中显示Java是第三受欢迎的语言,但是落后C和C++很多。

有很多机器人开发者谈到在开发中使用Python。同Java一样, Python是脚本解释型面向对象语言,同时有很多扩展库。Python在机器人开发中的主要优点是它很容易学习,能够提高开发效率,并且可以在运行时修改(它是解释型的,不需要编译)。结果很显然,容易维护的代码更容易快速开发和测试。

Java 和 Python 的众多优点正好弥补了C和C++在机器人开发所需的高级系统编程中的不足。解释型的 Java 和 Python 不能与C和C++比较运行速度(甚至编译型Java也不行)。此外,大多数的机器人开发框架和库——如流行的 Open Computer Vision Library 和 the Carmen robot navigation toolkit (见下一节开发框架和库)——都是使用C和部分C++开发的。其它一些形式的机器人软件开发也是基于C/C++的,包括Player/Stage 中间件。硬件接口也通常是使用C/C++访问。而 Python, Java 和其它一些语言提供一种与C/C++模块交互的机制以获得更快的速度和功能,但这样做的同时又增加一层复杂性和对多语言的支持。

实时操作系统

实时操作系统 (Real-time operating systems,RTOSs) 是针对实时计算系统(如机器人)设计的操作系统——也就是,系统保证特定的函数(如对输入的响应)在特定的时间段内响应(确定的时间行为)。实时操作系统通常是多任务的,控制多个子任务和支持多线程操作和内核级抢占。实时操作系统与通用操作系统相比(如微软的Windows或者UNIX)尺寸小、延时短、响应速度快。

如图9所示,开发者们表示在今后的两年将更多地在机器人开发中使用实时操作系统。大概由于使用实时操作系统的费用会超过通用操作系统(例如Windows,或其它任何操作系统),表示在今后的两年中不会使用实时操作系统的开发者达到了28% 到 14%。

从调查中可以看出,嵌入式 Linux 实时操作系统是机器人开发的未来。超过 45% 的受访者表示他们正在使用嵌入式 Linux实时操作系统,并且预计在两年内增加到 50%。 Internal 实时操作系统(很多是基于Linux的)同一些独立的基于Linux的商业版本实时操作系统(如MontaVista和Wind River)预计使用率都会增加。

集成开发环境、工具包和仿真工具

当受访者们被问到他们正在使用和将会使用哪些集成开发环境、工具包和仿真工具时,四个选择占据了主导地位(图10)。它们是:

  • MathWorks 的 MATLAB 第4代语言和数值计算环境以及Simulink 仿真和建模开发环境
  • National Instruments 的 LabView 集成开发环境和可视化编程语言
  • Microsoft 的 Robotics Developer Studio 集成开发环境和仿真工具
  • 开源的Eclipse集成开发环境

需要注意的是得票最多的都是完善的开发工具供应商(The MathWorks、National Instruments 和 Microsoft)或者是由大型的、热情的开源社区支持的(Eclipse)。

除了Eclipse,其余占据主导地位的选项预计在两年内使用率将会减少。这有些令人困惑,这些产品的功能、稳定性和对机器人开发的支持肯定会增加,而同时商用机器人开发也肯定为增加。考虑到一些合作项目、支持水平和这些环境之间越来越多的相互影响、各种机器人制造商、硬件厂商和机器人价值链上的其它组成部分,结果变得更加混乱。Robotics Business Review 认为图10中的减少非常小,可以认为是统计的偏差或者样本误差。

与前4位相反,其余的集成开发环境、工具包和仿真工具目前只有很少的受访者使用,但是他们两年内预计使用量会有可观的增加。

大约75%的受访者使用过至少一种调查中提供的工具,两年内将会增加到 85%。受访者们目前平均每人使用2.4种机器人开发工具,这个数字预计两年内将增加到4。Robotics Business Review 认为开发者们正在使用的是市场领先的、与机器人开发工具包结合得好的集成开发环境。因此,此种方式产品的数量使用率会增加。

开发框架和库

机器人开发已经有各种类型开源的、专有的框架和库。大约 50% 的受访者正在使用调查中所列出的机器人开发框架或库(图11),并且会在两年内增加到 56%。

目前使用得最广泛的框架或库是 Open Computer Vision Library (OpenCV),一个跨平台的、开源的计算机视觉库,在BSD许可协议下可以免费地在商业和研究中使用(占23%,,见图11)。OpenCV 包含超过500个实时计算机视觉的算法和实例代码。该库最早由Intel开发,包含了针对Intel处理器的性能优化。 ROS中就包含了OpenCV,ROS 是针对移动机器人的操作系统,最早由斯坦福人工智能实验室开发,现在由Willow Garage开发。 Willow Garage是一个开发机器人开源软件和硬件的公司。

Eclipse 是另一个值得关注的平台。它是非常流行的开源开发平台,包含可扩展的框架、工具、构建和部署和管理软件(所有都在Eclipse公共许可证下免费)。受访者们表示将会更多地使用Eclipse作为开发环境(图10)。

另一个在调查中获得好成绩的框架是 Carmen,一个由C语言开发的导航开源软件集。OpenSLAM.org的OpenSLAM 库(解决同时定位和地图构建问题,simultaneous localization and mapping problem ,SLAM)与OpenJAUS (无人系统通讯JAUS标准的开源实现)一起在调查中取得不错的成绩,它们在今后的两年内预计使用都会增加。

总体而言,专有的框架和库同在同开源对手的竞争中不分上下,并且它们的使用在今后两年内也会增加。Aware (iRobot),ERSP (Evolution Robotics), Karto (Stanford Research International),eVision (Braintech),Selectin (Energid),URBI (Gostai) 和 Skilligent (Skilligent) 是其中的代表。

机器人开发硬件平台

大多数商用服务机器人只是显得有点智能、能完成特殊功能的移动平台,如iRobot的 Roomba清洁机器人、 Foster-Miller 的 MAARS 机枪机器人、医疗机器人等等。这些厂商创造的附加值不在这些移动平台上,而在垂直市场中特殊功能。

虽然一些机器人公司有资金和技术来生产自己的移动平台,但是许多解决方案提供商更愿意购买现有的平台、修改使之适合自己的目标市场。这种需求导致市场发展为完整的机器人平台要能很容易地修改,以适应工业、教育和研究等广泛领域。 通过使用这些平台,企业可以加速产品开发,降低整个系统的开发成本,同时专注于其核心竞争力。

为了避免样本数过小,此次调查集中在最典型的商业和研究机器人——即,地面系统——海上和空中机器人平台不放入调查中。大约31%的受访者使用在调查文书中列出的硬件平台之一,预计将在两年内上升至40%。

从图12中可见,目前最通用的机器人开发平台是 Lego NXT,移动机器人平台家族(包括PatrolBot、PowerBot、Pioneer等等呢个)紧随其后。受访者预计将更多地使用这些机器人开发硬件平台(Lego NXT除外,因为它适合于原型设计和研究,但不适合作为商业系统的基础)。有趣的是,iRobot的Aware平台,另一个原型设计和研究平台——不要与iRobot更完善的PackBot和军用平台混淆——预计使用率将增加。

此外针对商用和学术市场的商业级机器人平台正在开发之中。例如,Coroware 最近发布了增强版Corobot机器人平台——Explorer——针对户外环境设计。Willow Garage 的 PR2 个人机器人开发平台正在由研究人员使用,最近完成了第二个里程碑:遍历Willow Garage公司的办公室,四天内共移动了26.2公里,并自己找到10个插座充电。

机器人开发中间件

中间件在IT领域里已经有很长的历史,中间件在分布式计算环境中的应用、操作系统和数据库管理系统之间提供抽象的转换、整合、解释和代理服务。机器人中间件往前又进了一步:除了传统的针对系统、应用和网络通讯的中间件功能,还增加对硬件整合和控制功能。机器人中间件的主要功能是使得开发者从底层编程(整合软件、硬件、各个模块的通讯)中解放出来。

图13主要反映了只有少部分的受访者正在使用的机器人开发中间件。没有一个中间件使用率超过12%。此外,只有24%的受访者表示他们使用过中间件,预计将在两年内上升至32%。

受访者表示他们预计将减少使用各种类型的中间件,而其它类型的技术在类似的调查中都是增长的。调查中前四位的中间件使用率预计在两年内都会下降(图13)。

Player/Stage是基于TCP/IP的机器人设备控制中间件,提供控制多种类型硬件的功能,目前是调查者中使用最广泛的机器人开发中间件。Player、WURDE (一个简单的、模块化的中间件)和 Orca (基于组建开发的开源中间件)预计在两年内使用率都会下降(图13)。UPnP 机器人中间件(基于串行即插即用标准)的使用预计同样会下降。需要注意的是当Player/Stage被描述为一种集成开发环境或者工具集(这同样也是适用的),受访者们表示将在两年内增加使用(图10)。

此外,强调组件复用的传感器数据处理中间件(MARIE,日本筑波大学)和面向对象中间件Miro,它们的使用率预计会略微上升。但是,如图13所示,有超过10%的受访者表示两年内不会使用任何一种中间件。调查还显示,对于机器人开发,没有一种中间件产品、标准或框架占据主导地位。

机器人中间件的使用还相对有限——不管是现在还是不久的将来——这就引出一个问题:“机器人中间件有什么问题?”

如前所述,IT领域广泛使用的中间件来集成不同的硬件、软件和通讯技术。机器人通常需要比IT系统更复杂的整合技术,并且通常涉及实时交互。

Robotics Business Review 认为商业机器人开发的步伐由于缺乏完善的中间件或者缺少对现有中间件的使用而减慢。这应该归咎于技术和开发者自身。开发者使用的和所需的与机器人中间件所提供的似乎脱节。 中间件的问题包括:

  • 开发者——机器人开发者通常不了解中间件或者喜欢自己编写系统,认为中间件影响系统的速度和响应能力。
  • 标准——机器人开发和接口标准还不成熟,对机器人开发者只提供很少的支持(见标准和参考模型一节)。更重要的是,目前的机器人中间件产品依赖于各种的不同标准、技术,使得应用和互操作很困难。
  • 复杂性——开发机器人中间件要比开发IT系统的中间件复杂。
  • 共识——对中间件的最终目标缺乏共识。这使得商定、共享抽象层变得异常困难。
  • 系统类型——IT系统都十分地相似(数据入、处理数据、存储数据、数据出),但机器人系统差别非常大,从工业机器人到消费机器人,从军用的无人驾驶飞行器到太空探索的无人飞行器, 这些类型的系统有着完全不同的功能和技术需求。
  • 有限的支持——许多中间件发行版,如UPnP机器人中间件、Miro 和 传感器数据处理中间件,都是大学发布的,缺乏强大的商业支持。

Robotics Business Review 认为由于机器人系统的复杂性以及大量不同类型的机器人,使得开发能够应用到所有(或者一些)机器人的中间件变得不切实际。然而,中间件方案是已经被证明能够加速机器人开发、提高质量的,应当尽可能地使用。

一种创建中间件的途径是针对一种类型的机器人设计中间件,并在提供通用抽象接口的同时尽可能优化。通过减少使用范围,可以提供高级的、抽象的接口来简化使用。在某些方面,缩小功能范围与建立一个为多种应用建立抽象层的目标相违背。但是,与目前不切实际的中间件相比,这应该是有优点的。

根据上述情况,中间件提供商应该负责明确地陈述自己产品的适用范围。对于另一方面,开发经理应该强迫团队尽可能使用中间件。他们还应该催促自己的供应商——学术的、商业的或者其他——提供必要的支持使得中间件更加稳定和易于使用。

总结

Robotics Business Review 调查了253位就职于机器人开发或技术公司和相关领域的专业人员,得到一份关于机器人系统开发中工具、标准和平台的基本档案。调查发现:

  • 研究、国防、工业、消费机器人、教育和医疗是机器人的主要市场。
  • 总体来说,机器人开发者对各种技术标准的支持冷淡。
  • 机器人开发者认为现有商业标准(COTS) 和个人电脑标准胜过相关专有技术。
  • 在集成开发环境(IDE)中中包含硬件驱动、可复用功能模块和仿真环境对机器人开发十分重要。
  • 在IDE中集成人机通信和认知功能得到了受访者们非常少的支持。
  • C 和 C++ 是机器人开发的主要语言。
  • 机器人开发者在未来两年将增加使用实时操作系统。
  • 商业机器人IDE的使用率将保持目前的水平,而开源的Eclipse IDE 使用率将会上升。
  • 各种工具将被应用到机器人开发中,包括组合IDE和工具集。
  • 机器人开发平台、开源软件、专有库和框架在两年内使用率都会上升。
  • 没有一个中间件产品、标准或框架在机器人开发中占主导地位。
  • 商业机器人开发已经受到缺乏稳定的中间件和现有中间件的缓慢转变的阻碍。

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.