用于产生机器人的方法和系统的制作方法

文档序号:2375008阅读:146来源:国知局
用于产生机器人的方法和系统的制作方法
【专利摘要】本发明提供了一种用于自动产生机器人设备的方法,其中,所述方法包括以下步骤:接收用户输入,以确定所述机器人设备的一个或多个任务的任务规定;基于所提供的任务规定来确定包括一个或多个任务的任务列表;基于所提供的任务列表来确定一个或多个机械组件、一个或多个处理组件以及执行一个或多个任务所需的逻辑组件;以及产生执行一个或多个任务所需的逻辑组件,并将所述逻辑组件嵌入与所述机器人设备相关联的可记录介质上。
【专利说明】用于产生机器人的方法和系统
[0001]分案说明
[0002]本申请是申请日为2008年I月11日,申请号为200880008371.7,题为“用于产生机器人的方法和系统”的中国专利申请的分案申请。
【技术领域】
[0003]本发明总体涉及机器人学领域,更具体地涉及用于产生机器人设备的改进的方法和系统。
【背景技术】
[0004]许多年以前已经预测过,而现在继续着这种预测,即在将来数年,普通消费者对机器人设备的使用的依赖性将会不断增加。尽管目前有许多采用机器人设备执行特定任务的方法和系统,但这些机器人设备一般用于专门用途。
[0005]机器人的使用尚未变得像所预测的那样流行的一个主要原因是:设计和开发哪怕用于执行简单任务的简单机器人都需要大量的时间和努力。此外,尽管为设计机器人已经付出了相当多的努力,但在机器人开发方面存在限制。设计机器人方面目前的限制包括:设计和开发机器人所需的技艺的复杂特性;缺乏将目前机器人设计扩展到新机器人设计的可移植性;以及机器人设备不能对非预见的情形或情况作出响应。

【发明内容】

[0006]在本发明的第一方面,提供了一种用于完全或部分自动产生机器人设备的方法。该方法包括以下步骤:引出和接收用户输入,以确定所述机器人设备的一个或多个任务的任务规定;基于所提供的任务规定来确定包括一个或多个任务的任务列表;基于所提供的任务列表来确定一个或多个运动组件、一个或多个处理组件以及执行一个或多个任务所需的逻辑组件;以及产生执行一个或多个任务所需的逻辑组件,并将所述逻辑组件嵌入与所述机器人设备相关联的可记录介质上。
[0007]在本发明的第二方面,提供了一种创建机器人设备的方法,其中提供了所述机器人设备操作的环境,该方法包括:输入对所述环境的区域进行限定的地图;输入起始点,所述起始点指示了所述区域内所述机器人设备将从其开始操作的位置;沿从所述起始点发出的、所述机器人设备将遵循的路线输入一个或多个停止点;以及输入所述机器人设备在起始点、停止点或沿所述路线要完成一个或多个任务。
[0008]在本发明的另一方面,提供了一种用于规定机器人设备要完成的一个或多个任务的方法。该方法包括:规定所述机器人设备是物理机器人设备还是虚拟机器人设备;规定所述机器人设备将要操作的位置;规定所述机器人设备将要执行的活动;以及提供与所述机器人设备将要执行的活动有关的详细信息。
[0009]在本发明的另一方面,提供了一种由在团队环境中进行操作的多个机器人设备完成一个或多个任务的方法。该方法包括:将所述多个机器人设备中的一个或多个选择为控制机器人设备;在所述控制机器人设备处确定所述多个机器人设备中的一个或多个是否需要新的机器人规定;从所述控制机器人设备向机器人服务器发送针对新的机器人规定的请求;以及在所述多个机器人设备中的所述一个或多个处接收新的机器人规定。
【专利附图】

【附图说明】
[0010]为了更好地理解此处描述的系统和方法的实施例,以及更清楚地示出如何实现这些实施例,将以示例方式参照附图,在附图中:[0011]图1是示出了机器人产生系统的组件的框图;[0012]图2是示出了机器人设备的组件的框图;[0013]图3是示出了产生器的组件的框图;[0014]图4是示出了知识库模块的组件的图;[0015]图5是示出了机器人产生方法的步骤的流程图;[0016]图6是示出了任务规定方法的步骤的流程图;[0017]图7是示出了任务产生方法的步骤的流程图;[0018]图8是示出了环境规定方法的步骤的流程图;[0019]图9是示例地图编辑器窗口的屏幕截图;[0020]图10是示例地图编辑器窗口的另一屏幕截图;[0021]图11是示例地图编辑器窗口的另一屏幕截图;[0022]图12是示例地图编辑器窗口的另一屏幕截图;[0023]图13是示例地图编辑器窗口的另一屏幕截图;以及[0024]图14A和图14B是任务规定窗口的示例屏幕截图。
【具体实施方式】
[0025]应当理解,为了示意简单清楚,在认为适当的情况下,在附图中可以重复使用附图标记,以指示对应的或相似的元件或步骤。另外,为了提供对此处描述的示例实施例的详尽理解,阐述了许多具体细节。然而,本领域普通技术人员应当理解,此处描述的实施例可以在没有这些具体细节的情况下实施。在其他情况下,未详细描述公知的方法、过程和组件,以免不能突出此处描述的实施例。此外,该描述不应被视为以任何方式限制此处描述的实施例的范围,而应被视为仅仅描述了此处描述的各种实施例的实现方式。
[0026]现在参照图1,图1是示出了机器人产生系统10的组件的框图。机器人产生系统10用于产生机器人设备12,机器人设备12可以是真实机器人设备、虚拟机器人设备以及包括真实和虚拟组件的混合在内的机器人设备(被称作混合现实机器人设备)。示例实施例中的系统10由一个或多个机器人设备12组成。一个或多个机器人设备12组成的组可以被称作机器人团队14。机器人设备12通过机器人服务器20来与指令进行交互并接收指令。机器人服务器20用于接收与所创建的机器人设备12有关的指令,并执行对与机器人设备12相关联的组件进行确定所需的处理。机器人服务器20还被称作机器人控制器,并且在如下所述的示例实施例中,机器人服务器20由机器人产生器应用22、机器人产生接口24和知识数据库26组成。机器人服务器20从通过计算设备30与机器人服务器20进行通信的一个或多个用户接收指令。计算设备30通过任何类型的通信网络31来与机器人服务器20进行交互。
[0027]机器人设备12在所限定的环境中进行操作,并通过实现任务规定来执行已针对设备12定义的一个或多个任务。机器人设备12操作的环境可以包括真实设置、仿真设置或混合现实设置。这样的真实环境的示例包括但不限于:家庭环境、办公室环境、公园、购物中心、商场、加工和制造厂、石油钻探和采矿环境、精炼厂、飞行和空间环境、医疗和显微环境、以及可以关于其区域和潜在障碍物来描述的任何其他环境。在示例实施例中,用户通常描述环境的位置(即室内、室外、或两者)、环境的类型(即虚拟环境、真实环境、或混合环境)、控制的类型(即用户控制或自控制)。如下以更详细描述的,用户可以进一步规定兴趣点、起始点、行进方向以及机器人设备在环境内的竞赛任务。标准的区别包括但不限于:室内环境、室外环境或混合环境;虚拟、物理或混合现实;自控制、用户控制或用户引导;而如沿途点之间的行程之类的区别完全覆盖了给定区域或徘徊于给定区域,或特定障碍物,或者可以与特定应用相关来规定特定任务。仿真设置包括虚拟机器人设备12可以操作的所限定的任何虚拟环境,这些虚拟环境的示例包括仿真中使用的虚拟环境,如通过仿真提供训练的视频游戏和环境。这些训练环境的示例可以包括但不限于:仿真的操作室环境、仿真的灾难/营救环境以及仿真的空间环境。混合现实设置可以包括真实、虚拟或混合现实机器人设备可以操作的所限定的任何环境,这些混合现实环境的示例包括但不限于以下的真实环境:其中,环境的一部分是投影到真实环境中或投影到真实环境上的虚拟环境。任务可以包括为使机器人设备在限定的环境内完成而定义的任何活动或动作。
[0028]机器人团队14可以包括任意数目的机器人设备12。作为机器人团队一部分的机器人设备12进行协作,以执行在特定环境中已针对机器人设备12定义的任务。机器人团队14内的机器人设备12可以互相进行交互以完成定义的任务。机器人设备12之间的交互可以由以下构成:传感器数据、动作计划和/或控制指令的交换;以及对各个其他机器人设备12的总体操作的控制。
[0029]机器人服务器20是计算设备,用于产生机器人设备,更具体地,用于产生与机器人设备12相关联的固件、硬件和软件(被称作逻辑组件)。当用户希望发起产生机器人的过程,或者希望与已产生的机器人设备12进行交互时,通过使用计算站30来接合机器人服务器20。在示例实施例中,多个计算站30可以通过通信网络31来访问机器人服务器20。在备选实施例中,服务器20和计算站可以驻留于相同计算机上,而无需是分离的设备。机器人服务器20可以是web应用、云计算机(cloud computer)、联网计算机、个人计算机、手持计算机,或者可以在移动设备上找到。
[0030]在示例实施例中,机器人产生器应用22驻留于机器人服务器20上。在备选实施例中,机器人产生器应用22可以分布在两个或更多个设备12上。因此,机器人产生器应用22可以被多个计算设备访问。参照图3更详细地描述机器人产生器应用22。在接合时,机器人产生器应用22允许接收对要产生的机器人设备12的描述,以便可以创建适当的设计方案。
[0031]机器人产生接口 24用于从用户接收涉及机器人设备12的设计的指令,并与已创建的机器人设备12进行交互。产生接口 24还根据机器人设备12的规定来产生定制接口,以允许用户根据需要控制设备12的操作。
[0032]在示例实施例中,知识库模块26是数据存储器或储存库,存储产生机器人设备12的组件过程中所使用的多种类型的信息。在示例实施例中,如图4所示,提供了多种类型的知识库,其中,机器人产生器应用22访问并使用这些知识库,以确定机器人的规定并创建机器人设备12。
[0033]机器人制造模块28接收所有的硬件规定、软件规定和固件规定,以包括在机器人设备12中。当机器人制造模块28已接收到用于创建机器人设备12的指令时,制造模块28可以产生芯片上机器人系统(RSOC)。制造模块可以产生机器人设备12的组件,以使得机器人设备可以包括RS0C、机器人规定、固件下载、固件ROM、软件模块、如通过CNC的机械制造、以及MEMS/NEMS制造的任意组合。如在以下解释的机器人创建方法中由用户所规定的,对机器人设备12的组件的确定将根据要创建的机器人设备12的特性、使用和用途而变化。例如,机器人制造模块28所创建的机器人设备12的组件可能根据机器人设备是用于大规模市场销售还是用于一次性创建而变化。制造模块28接收由各种产生器提供的输出,然后,使用该信息来制造机器人设备12。在示例实施例中,由产生器提供的输出是应当产生的组件的规定。在示例实施例中,要产生的组件是通过对被称作高级组件组的内容进行标识来描述的。高级组件组可以包括但不限于:发动机、传感器、致动器、机械组件、软件和固件、逻辑和处理组件。这些高级组件组可以进一步子划分为更具体的组件,如温度、音频、视觉、触觉和环境传感器。这些组件可以包括机械组件、处理组件和逻辑组件。在示例实施例中,规定是以XML格式提供的,并可以表示实际软件代码或规定。关于与机器人设备相关联的机械组件,在示例实施例中,规定包括对在机器人设备12的组装中应当使用的机械组件的描述。这些机械组件可以包括但不限于:轮子、接合部、齿轮、底盘、夹持器、传感器和致动器。这些机械组件可以关于制造者、制造者的指令、设备类型、电学要求、固件接口、大小、重量和成本的任意组合来进行描述。在示例实施例中,这些规定是以如XML之类的文件格式提供的。在接收到这样的规定之后,可以手动组装机器人设备12的物理组件,或者备选地,可以通过自动化过程来组装机器人设备12的物理组件。
[0034]举例而言,对于已具有执行清扫任务这一任务的机器人设备12,制造模块28从如下所述的各个产生器接收对机器人设备进行构造所必需的所有物理(机械)组件的规定。这样的描述可以包括:与任何传感器和致动器相关联的各种规定;以及与关联于设备12的底盘和底座的机械规定相关联的各种规定。该规定还可以包括电气和电子组件,这些电气和电子组件可以包括但不限于:处理器、存储器、配线、存储装置。该规定还包括软件、操作系统信息和环境描述。软件包括但不限于相应的行为、例程、算法、试探法以及任何人工智能组件。一旦组装了机器人设备12,机器人设备12将其操作所需的适当软件/固件下载到机器人设备12。在示例实施例中,基于已由如下所述的各个产生器提供的规定,制造模块28创建用于机器人设备12的软件/固件。
[0035]可以接合机器人产生服务器20的计算设备30可以是用户能向其提供输入的任何类型的计算设备,包括但不限于:膝上型计算机、薄线型计算机、大型计算机、手持计算机、视频游戏类型控制台计算机、云计算机、蜂窝设备、以及具有处理能力并可接收输入的任何其他计算设备。
[0036]现在参照图2,其中,在示例实施例中示出了一幅框图,该框图示意了机器人设备12的组件。示例实施例中的机器人设备12由一个或多个传感器32、一个或多个致动器34、一个或多个通信信道36、至少一个处理器38以及电源和存储器(图中未示出)组成。机器人设备12由可以存储于机器人设备12的外部、内部或内部与外部组合的各种硬件、软件、固件组件(逻辑组件)组成。与机器人设备相关联的传感器32可以包括视觉传感器、音频传感器、温度传感器或用于确定与机器人设备12操作的环境有关的特性的任何其他传感器。然后,可以将感测到的特性发送给处理器38,然后在处理器38中可以可选地将其发送给包括机器人控制器在内的允许对该机器人设备进行外部控制的设备,或发送给作为机器人团队14 一部分的其他机器人设备12。致动器能够在相应环境内执行各种动作,这样的动作的示例包括:环境内的运动;以及在环境内与一个或多个对象接合。通信信道36允许与外部组件或设备进行有线或无线通信。被发送至外部通信设备或从外部通信设备接收的通信允许对传感器数据进行交换,以及允许接收指令以允许控制设备12。与机器人设备相关联的处理器38用于执行命令,并接收和发送指令,以使得机器人设备12将以规定的方式进行操作。
[0037]基于产生机器人设备12的组件的过程,将机器人设备12设计并实现为在环境内完成一个或多个任务,而无需来自用户的任何特定指令交互。在该示例实施例中,已将机器人设备12描述为物理实体,然而应当注意,在备选实施例中,机器人设备可以在虚拟环境、仿真环境或混合现实环境中表示。
[0038]现在参照图3,其中,在示例实施例中示出了产生器应用22的组件。产生器应用22用于规定创建机器人设备12的用途,然后在不需要任何另外的低级规定或开发者编程的情况下创建机器人设备。因此,产生器应用22允许基于用户规定来自动产生要与机器人设备12相关联的各种硬件、软件和固件组件。
[0039]在示例实施例中,产生器应用22包括以下组件:任务规定模块40、任务产生器模块42、机器人产生器模块44、接口产生器模块46和通信产生器模块48。与产生器应用22相关联的各种组件能够同与以下参照图4更详细描述的知识模块26相关联的组件进行交互,因此,这允许产生与机器人设备12相关联的组件。
[0040]用户通过产生器应用22来接合任务规定模块40,产生器应用22提供与创建机器人设备12相关联的用途和其他细节。如下更详细描述的,用户提供要与机器人设备12相关联的任务的描述。在示例实施例中,用户通过包括与该用户的多种交互的用户接口来接合任务产生器模块40。首先可以基于问题和答案、多项选择问题、图示接合的任意组合来确定与创建机器人设备12相关联的任务描述,在该图示接合中,用户可以操控可用于提供任务描述的图形对象。用户可以提供先前已完成的任务的任务描述,或与先前已完成的任务类似的任务的任务描述。用户还可以接合已设计并实现的机器人设备12,以通过具有关联视觉识别系统和其他感官组件的机器人设备12来提供任务描述。其他感官组件可以包括但不限于听觉和触觉传感器。视觉识别系统可以用于向机器人设备12规定例如它们可以穿行在什么区域。在一个示例实施例中,感官组件可以用于规定要穿行的区域,在该区域中在环境中放置各个已标识的标记。这些标记可以代表可穿行和不可穿行的区域。相应的标识符可以由传感器检测,该传感器包括但不限于:视觉、GPS、RFID、音频、减震器或轴编码器系统。可以以可以包含不同级别的细节的地图的形式来表示相应的环境。
[0041]在示例实施例中,任务规定模块40首先从用户接收机器人设备12将要执行的任务的描述,以及与用户相关联的技巧级别(该级别的范围从新初学者至有经验的用户)。基于技巧级别的规定,针对适当的级别来调整用户与相应接口之间的任何通信交换。在示例实施例中,被提供给用户的功能可以根据该技巧级别以及向用户给出的相关联特权而变化。在特定实施例中,可以向高级用户提供规定用于产生机器人设备12的较高级别细节的能力。在接收到任务规定的描述时,如下详述的任务规定模块40创建对机器人设备12要执行的任务的规定以及与机器人设备12操作的环境相关联的约束有关的任何信息。然后,任务产生器模块42使用这些约束和已规定的任务,来产生机器人设备12要使用的适当硬件/软件规定。在示例实施例中,可以使用专家系统来对任务规定细节进行构造,该专家系统采用一系列问题和选择,以将该规定从概括的可能性范围缩小至一个或多个集中具体的任务。此外,还可以使用学习方法,其中,对先前的动作进行检查以帮助确定未来的动作。此外,还可以使用案例推理算法。任务产生器模块42接收各种输入,以产生硬件/软件规定,这将在以下更详细地描述。任务产生器模块42接收用户已提供的高级别的任务规定。如果先前已实现了类似的或相同的任务,则任务产生器模块42从适当的知识数据库检索这些规定。用户可以提供输入,以进一步阐明或规定预先存在的任务规定。新的任务还可以由若干预先存在的任务组成。如参照图5进一步描述的,示例实施例中的任务产生器将已针对特定机器人设备而规定的任务、与该机器人设备将要操作的环境有关的信息、以及处理要求作为输入进行接收。与机器人设备12操作的环境有关的信息包括但不限于与区域的尺寸、障碍物和环境条件有关的信息。还可以将物理能力和成本作为任务规定的方面予以提供。一旦基于与执行机器人设备12要实现的任务的实现相关联的计算要求对这些任务进行了确定,则进行处理要求确定。产生器模块42与之交互的相应知识数据库存储与各个任务相关联的处理要求有关的数据。例如,知识数据库62将针对任何特定任务来规定所需处理器的类型(即,微控制器或如桌面处理器之类的较大处理器是两个这样的示例)。任务产生器模块44首先接收任务的规定,然后开发任务列表。任务列表的开发基于如参照图7描述的与任务产生器知识数据库62的交互。基于以下更详细解释的与任务产生器知识数据库62的交互来规定任务列表,在任务列表中规定了机器人设备12执行的任务。此外,任务产生器模块42基于与知识产生器62的交互来开发各种控制系统功能。控制系统功能用于指代对机器人设备12的较低级别功能(可以与例如运动能力有关)的控制。确定与机器人设备12相关联的约束的一个示例是以必须重复执行多个类似运动的机器人设备为例。这样的机器人在其运动中需要高度的稳定性和可重复性,这是由于如果在先运动失败,则未来的运动可能不能进行。这些约束将通过从可能性范围中去除实验机器人,来缩小机器人设备的选择。如果运动包括通过重复的过道运动(例如,在监视机器人中),则可以选择带轮子的机器人,而不选择较不稳定的人形机器人。相应知识数据库和产生器模块确定机器人设备12要实现的适当算法,以实现任务列表中的任务。这些算法可以包括但不限于:定位算法、路径规划算法、计算机视觉算法、模式识别算法、学习算法、行为模式、试探法以及案例推理。各种硬件/软件/和固件规定被称作逻辑组件。
[0042]参照图6所示的任务规定方法150的操作来进一步描述任务规定模块42的操作,并参照图7来更详细地描述任务产生器模块与任务产生器知识数据库62之间的交互。
[0043]机器人产生器模块44从任务规定模块42接收输入。基于提供给机器人产生器模块44的各种输入,模块44对要与机器人设备12相关联的要求作出各种确定。这些确定包括:确定机器人底座(一般指设备12的底座)。例如,如果机器人设备12要执行水上动作,则使用在平台(如船)上实现的机器人设备,此外,如果机器人设备12要执行需要机器人设备12处于空中的任务,则将在基于飞机的平台上建造该底座。其他确定包括:对处理要求以及组成机器人设备12的其他机器人组件(可以包括但不限于:机器臂、机器人接合部、其他机械组件和机器人设备的潜在覆盖物)的确定。机器人产生器模块44基于与机器人产生器知识库64的交互来确定这些要求。细化来自用户的任务规定,直到机器人产生器的可能性范围包含单一的匹配响应(不再有其他选项)或包含已从包括可接受方案的知识库检索到的响应集合。一旦方案可用,则可以产生机器人,或者如果用户给出了另外的规定,则可以进一步细化机器人,直到该方案可接受或者是唯一可能的方案为止。如果不存在方案,则不能满足规定。举例而言,可以基于任务规定来选择传感器。例如,如果需要机器人设备12监视环境的空气质量,则如煤气和C02的传感器将被添加至机器人设备12的物理组成。如果规定了最高成本,则将选择满足规定成本的组件,而如果规定了可靠性,则将代之以选择高度可靠的组件。接口产生器模块46产生允许用户与机器人设备12进行交互的适当接口。具体地,接口产生器46接收与确定接口特性(例如,最大带宽、可靠性)的接口类型(即,有线或无线)有关的信息以及机器人设备12将与之通信的计算设备的类型(即,PDA、台式计算机)的描述。计算设备的类型确定了屏幕大小、计算能力和接口的存储特性。参照适当知识库与接口产生器模块46之间的交互,来更详细地描述接口产生器模块46确定接口组件的方法。
[0044]通信产生器模块48用于产生由机器人设备12使用的各种通信工具。通信产生器模块48确定各种设备12采用以进行通信的方法。在示例实施例中,该确定包括规定哪种协议用于通信,这可以包括以下协议,这些协议包括但不限于UPD、RF、莫尔斯码、基于视觉的通信和自然语言通信。通信产生器模块48与通信知识库68进行交互,以确定机器人设备12要使用的适当通信工具。
[0045]现在参照图4,其中在示例实施例中示出了知识库模块26的组件。出于描述的目的,已经将知识数据库描述为分离的知识数据库。在示例实施例中,知识库模块26包括任务规定知识数据库60、任务产生器知识数据库62、机器人产生器知识数据库64、接口产生器知识数据库66和通信产生器知识数据库68。此处的示例实施例中描述的各个知识数据库是参照这些数据库中包含的、用于产生机器人设备12的一个或多个组件的信息来描述的。
[0046]当与描述任务并提供与机器人设备12操作的环境有关的信息的用户进行交互时,任务规定模块20使用任务规定知识数据库60。在示例实施例中,任务规定知识数据库60存储与多个用户接口有关的信息以及与针对要产生的机器人设备来规定任务的用户相关联的其他信息。用户接口用于从用户接收所需的规定。呈现给用户的用户接口可以根据交互的当前状态而变化。知识数据库60可以用于采用各种类型的接口,包括但不限于:问答形式、判决树、图形编辑器、具有可选选项列表的形式、包括前进按钮或后退按钮的用户导航元件、具有启用缺省选项的形式以及强制用户输入字段。呈现给用户的接口可以基于与用户相关联的技巧级别,并包括帮助确定用户接口的元模型信息。元模型用于在与计算机或机器人系统进行交互的过程中封装与各种用户类型及其偏好有关的知识。例如,元模型可以指示高级用户偏爱文本输入(例如,编程)胜于图形表示(例如,可视编程)。元模型还允许用户控制呈现给他们的细节的级别。例如,管理员可以选择非常详细地检查代码,对其进行优化和微调,而终端用户可以选择仅使用大量系统产生的代码。管理员可以管理接口以允许更强大的功能,其中,向用户呈现与机器人设备可以完成的潜在任务有关的更多选项。此外,相应的任务规定知识数据库存储与特定机器人设备12及其规定相关联的用户接口。
[0047]任务产生器知识数据库62存储关于任务考虑的信息、任务特定信息、域信息和历史信息。任务产生器知识数据库62存储与先前机器人系统相关联的要求。例如,对于先前建造的机器人系统12,数据库62将存储与特定任务的处理要求、硬件和软件要求有关的信息以及任何其他这种信息。机器人产生器知识数据库64存储允许机器人产生器模块44执行其相应任务的信息。在示例实施例中,机器人产生器知识数据库64存储与同机器人设备12的设计相关联的材料考虑(即,重量和成本考虑)有关的信息、与先前设计有关的信息、环境考虑(与特定机器人组件可能如何受环境影响有关的信息)、处理能力、以及与任何机器人设备的可用组件(包括可以在任何设计中使用的致动器和传感器组件)有关的信息。
[0048]接口产生器知识数据库66存储与接口的选择相关联的考虑有关的信息,例如包括与先前产生的机器人设备12的接口设计有关的信息。具体地,接口产生器知识数据库66存储与关于接口的系统考虑有关的信息,包括:其驻留的平台、与相关联机器人设备12及其组件相关联的能力、机器人设备组件之间的物理连接、以及与机器人设备12可能如何受环境条件影响有关的其他信息。关于系统考虑,接口产生器知识数据库66存储与特定接口相关联的硬件和软件有关的信息。与特定接口相关联的硬件可以包括与显示类型有关的考虑和与接口相关联的组件(包括音频组件、输入组件和视频组件)有关的信息。关于软件,接口产生器知识数据库66存储与在先前接口设计中使用并可以在后续接口设计中使用的任何GUI库和控件有关的信息。
[0049]通信产生器知识数据库68存储与机器人设备12可以如何进行通信有关的信息,并包括与通信设备和先前设计的机器人设备的相关联的规定有关的信息。示例实施例中的通信产生器知识数据库68存储与可以与特定任务相关联的通信的要求和能力有关的信息、以及与各种通信设备12的硬件和软件考虑有关的信息。
[0050]由于可以针对与产生机器人设备12的组件有关的特定功能来实现知识库,因而已出于示例目的描述了此处已描述的所有知识库。知识数据库通常存储与各种组件有关的信息以及其可用以实现已在任务规定中规定的任务的设计信息。在知识数据库中存储具体与特定组件是否适合于特定任务有关的各种信息,包括与是否存在任何特定要求有关的信息(包括使用任何组件之前必须满足的事先考虑和事后考虑)。组件信息可以包括与特定设备的组件的总体适合性有关的细节。例如,推进器通常适合于基于水的设备。与组件有关的其他信息可以包括特定适合性细节(即,0.Sm范围的声纳传感器适合于不大于ImX ImX Im的机器人设备)、过去的使用、或基于所定义的稳定性和过去使用而推断出的未来使用。特定设备的总体描述还允许用户或产生器从设备的选择中选择任何合适的设备。例如,任务规定可以仅指示需要光传感器设备,从而允许产生器或程序在系统中选择被描述为光传感器的任何设备以实现其作用(即,可以选择可用的最便宜的光传感器)。与创建机器人设备12相关联的产生器的数目可以变化,以下更详细地描述用于访问产生器的方法。管理员可以更新各个知识数据库(管理员例如可以添加对特定传感器的规定以及其对机器人产生器知识数据库64执行的功能,并通过创建其他机器人设备12),其中,然后在各个数据库中存储与机器人设备12相关联的任务和组件有关的规定。[0051]现在参照图5,图5是示出了机器人创建方法100的步骤的流程图。机器人创建方法100提供了对采取用以创建机器人的过程的高级概述。方法100开始于步骤102,在步骤102,要求用户提供与机器人设备12要操作的环境相关联的任务和约束的描述。参照图6和任务规定方法150来进一步描述步骤102。在步骤104,基于由用户提供的任务描述,任务产生模块产生任务列表。在产生任务列表时,方法100前进至步骤106,在步骤106,确定将组成机器人设备12的部分的各个组件。在步骤106,基于已规定的任务列表,定义各个组件,包括机器人设备中包括的硬件和软件组件。然后,方法100前进至步骤108,在步骤108,定义控制接口。控制接口是由接口产生器模块通过与接口产生器知识数据库66接合来定义的。控制接口允许用户通过向机器人设备12提供另外的指令,以及通过接收对特定环境内机器人设备12的状态及其交互的更新,来与机器人设备12进行交互。然后,方法100前进至步骤110,在步骤110,定义了允许机器人设备12在环境内与其他外部设备或者其他机器人设备12或对象进行通信的通信组件。通信组件可以允许同与其他机器人设备12相关联的其他设备和组件进行的电子数据互换,或者可以使得通信组件提供在机器人设备12在环境内与人进行交互时的语音通信能力。然后,方法100前进至步骤112,在步骤112,制造或构造机器人设备12。在示例实施例中,可以在制造步骤中创建RS0C,其中,示例实施例中的RSOC可以包含所有处理和计算功能、高级功能(传感器/致动器)以及输入/输出能力的连接。可以通过FPGA编程来创建RS0C,其中,FPGA编译器用于产生嵌入式芯片。如上关于制造模块28所讨论的,可以基于手动和机械制造的组合来构造机器人设备12。例如,CNC制造可以用于制造与设备12相关联的金属组件。已参照被接合以提供与机器人设备相关联的一个或多个组件的产生器应用22的每个模块描述了方法100。应当注意,在示例实施例中,机器人创建方法100通过首先确定任何特定组件是否需要产生以及特定组件何时需要产生来进行操作,然后接合适当的模块。此外,机器人设备的构造可以包括物理或虚拟组件,并且RSOC可以以仿真或虚拟的方式存在。
[0052]现在参照图6,其中,参照规定方法150更详细地描述图5所示的上述处理步骤102。任务规定方法150用于产生机器人设备12要执行的任务的一组规定。方法150开始于步骤152,在步骤152,用户提供机器人设备12将操作的环境的描述。用户可以提供与环境有关的各种细节。例如,如果用户已规定其后院(已针对该后院提供了坐标,或者通过知识库可以获得该坐标),则用户提供了与该环境相关联的陆标或约束信息,并且例如可以规定如游泳池和花坛等陆标。基于已定义的陆标,可以规定约束,这些约束包括要避免的指令。具体地,在示例实施例中,在步骤152,用户可以提供与可以出现在特定环境中的导航约束有关的信息以及可以出现在该环境中的其他对象(例如陆标)的描述。此外,用户可以提供机器人设备12将操作的环境的地图。地图是可以通过一种或多种方法来提供的,这些方法包括:画草图程序、画图程序、或上载系统10可识别的地图。参照图8提供对地图提供的进一步描述。还可以使用传感器提供的数据,或通过访问包含相关信息的现有数据系统(例如,Google Maps等),来动态创建地图。
[0053]然后,方法150前进至步骤154,在步骤154,执行检查以确定用户是否已提供对环境的充分描述。这种确定是通过以下方式作出的:首先分析任务描述以确定关于该环境将需要哪种类型的约束信息,然后检查是否已提供这种约束信息。例如,如果已提供了机器人设备12要在后院中移动但应避开花坛的任务描述,则执行检查以确定是否已提供与花坛有关的信息。如果在步骤154确定尚未提供充分描述,则方法150返回至步骤152,在步骤152,请求用户提供与该环境有关的另外的细节。如果在步骤154确定用户已提供与该环境有关的充分信息,则方法150前进至步骤156。基于用户已规定的任务,从用户请求与该任务有关的更详细的特定信息。例如,如果用户已规定机器人设备要割草,则必须提供与时间、速度、日期、长度、障碍物、区域和地形有关的另外的信息。如果没有提供特定信息或者特定信息不一致,则方法150返回至步骤152,向用户提供特定问题或方向以求更多规定或修正的规定。
[0054]在步骤156,用户提供与机器人设备12要执行的任务描述有关的信息。如上所述,用户可以通过多于一种方法来提供信息,这些方法包括:通过响应于多项选择问题的回答,或者从一个或多个已定义的任务中进行选择。用户响应于所示提示而提供的输入用于形成对机器人设备12要执行的各种任务/目标的总体任务规定。然后,方法150前进至步骤158。在步骤158,执行检查以确定已提供的任务描述是否充分,这可以包括:确定在适当时是否已提供适当位置或持续时间信息。如果在步骤158确定尚未提供充分描述,则方法150返回至步骤156,并且向用户询问与任务描述有关的另外的信息。如果在步骤158确定已提供与任务描述有关的充分信息,则方法150前进至步骤160。
[0055]在步骤160,用户提供与机器人设备相关联的约束有关的信息。在示例实施例中,这些约束的示例可以包括与特定任务的定时和调度相关联的约束。例如,用户可以规定与任务相关联的最大时间限制或者必须执行任务的特定时刻。然后,方法150前进至步骤162,在步骤162,执行检查以确定是否已提供与各种系统约束有关的充分信息。如果在步骤164确定已提供充分信息,则方法150前进至步骤166。如果在步骤164确定尚未提供系统约束的充分规定,则方法150返回至步骤164,在步骤164,要求用户提供与系统约束有关的更多息。
[0056]在步骤166,要求用户提供与机器人设备12的制造方法有关的信息。用户提供与在适当时应当如何制造设备12有关的信息。例如,用户可以在各种选项之间进行选择,这些选项包括但不限于:确定是否应当由CNC机器自动完成制造,或者是否应当将规定提供给将制造适当组件的制造者。在步骤168,执行检查以确定是否提供了充分信息。如果在步骤168确定尚未提供充分信息,则方法150返回至步骤166,并且要求用户提供与制造机器人设备12有关的另外的信息。
[0057]在方法150的结束处,系统10已从用户接收到如下所述的、然后可以用于设计和开发机器人的总体任务描述。在接收到任务描述后,如上所述,系统10随后继续以产生可以由机器人设备12实现的任务列表。如上所述,基于与任务规定知识数据库60的交互来确定各种任务规定,此处提供与各个知识数据库的交互的描述。
[0058]现在参照图7,其中,在示例实施例中示出了任务产生方法200的步骤。执行任务产生方法200,其中如参照图5的步骤102所示,已从用户接收到任务描述。方法200进一步详述了参照图5所示在步骤104采取的处理。
[0059]示例实施例中的任务产生器模块40定义了要基于已提供的任务规定而实现的目标或任务(可以基于其重要性对其进行分级),定义了与机器人设备相关联的最低要求,并确定了与机器人设备相关联的处理要求。任务产生器模块40与任务产生器知识数据库62进行交互以定义任务列表。如上所述,任务产生器知识数据库62存储与已用于其他机器人设备的任务列表有关的信息以及与特定任务相关联的硬件和软件要求。任务产生器模块40基于所提供的任务规定来分析任务规定,并且如果该任务为知识数据库所知,则任务产生器将返回与该特定任务的完成相关联的相关联处理要求。如果已提供的任务规定不匹配于先前已执行的任务,则任务产生器向用户返回可能任务的列表,所述可能任务与随后可以被修改以实现期望任务的任务规定相类似。类似地,对各个知识数据库的各种其他模块进行访问采用与此处已描述相类似的方式来完成这一点。
[0060]方法200是递归函数,开始于步骤202,在步骤202,该方法基于已提供的任务规定,将目标列表以及要用于规定与每个目标相关联的要求的模板作为输入进行接收,然后,方法200前进至步骤204,以确定已提供的目标列表是否确实包含一个或多个目标。如果目标/任务的列表为空,则意味着不再有针对其必须规定任务的目标。如果在步骤204确定不存在已输入的任务/目标,则方法200前进至步骤206,并且将已确定的模板返回至产生器模块40。如果在步骤204确定任务列表或目标列表不为空,则方法200前进至步骤208。在步骤208,执行检查以确定计算资源是否耗尽。当与方法200相关联的计算资源已被耗尽时,说明将永远不会产生针对所提供的任务规定的任务列表。计算资源已被耗尽的情况包括但不限于:相关联的任务产生器知识数据库62为空的情况,这说明无法产生任务列表;以及存储器不足的情况。当确定计算资源已被耗尽时,方法200前进至步骤210,在步骤210,产生失败消息,该失败消息指示将不会产生针对特定任务规定的任务列表。如果在步骤208确定计算资源尚未被耗尽,则方法200前进至步骤212。在步骤212,按照每个目标的重要性顺序对目标或任务的列表进行排序。可以确定每个目标的重要性,其中,用户已规定了与他们已提供的每个任务的规定相关联的优先级。举例而言,如果用户正在规定与要在家庭环境内操作的机器人设备12相关联的任务描述,则可以为一些任务描述给出比其他任务描述高的优先级。然后,方法200前进至步骤214,在步骤214,对于每个目标或任务,搜索知识数据库以确定是否存在与该特定任务规定有关的任何知识,并且如果存在,则将该特定知识或信息存储在模板中。对每个目标都采取该过程。在方法200的结束处,返回模板,其中,对于作为输入提供的每个任务规定,返回用作下一产生器的输入的信息,并且在这种情况下,产生任务列表。
[0061 ] 包括机器人产生器模块在内的各个其他模块以及接口产生器模块执行与方法200类似的方法,其中,通过提供一组目标来访问它们的相应知识数据库,这组目标是作为用于在知识数据库中搜索的输入而提供的。这些目标与以下输入有关,对于该输入,知识数据库包含用于产生机器人设备12的规定和组件。然后在产生机器人设备12的过程中使用所返回的信息。
[0062]现在参照图8,其中,在示例实施例中示出了一幅流程图,该流程图示意了环境规定方法250的步骤。环境规定方法250更详细地描述了方法150中主要在步骤152和156采取的步骤。环境规定方法描述了用户可以如何规定环境以及用户可以如何将特定任务与环境中的区域或路线相关联。此处描述的环境规定方法250描述了可以如何规定环境的一个示例。
[0063]参照图9至13描述环境规定方法250,图9至13提供了用于更好地示意各个方法步骤中描述的功能的示例屏幕截图。
[0064]方法250开始于步骤252,在步骤252,用户可以首先规定要在环境中使用的机器人设备12的类型。在步骤252选择的机器人设备12可以是移动机器人设备或静止机器人设备。然后,方法250前进至步骤254,在步骤254,用户规定该环境是室外环境还是室内环境。然后,方法250前进至步骤256,在步骤256,用户规定该环境是真实环境、虚拟环境还是混合现实环境。然后,方法250前进至步骤258,在步骤258,用户规定设备是否将要在其自身控制下在环境中导航,或者设备是否要由外部控制(例如,通过操纵杆输入的用户命令)所控制。在示例实施例中,导航方法可以基于在环境内提供特定点,或者通过允许机器人设备12以徘徊模式来在环境中导航,其中,设备12在不遵循预定义路径的情况下探测环境。然后,方法250前进至步骤260,在步骤260,用户提供机器人设备12要操作的环境的地图。参照图9,其中,在一个实施例中示出了示例地图编辑器窗口 300。此处描述的地图编辑器窗口 300允许用户规定环境的布局、环境内的各个点、以及要在环境内完成的任务。用户可以通过在地图规定窗口 302中提供相应的尺寸,来创建用户在步骤260提供的地图。用户可以通过利用在工具菜单304中提供的各种工具来在地图规定窗口中规定环境的尺寸。用户还可以选择机器人设备12,针对该机器人设备12使用设备选择器窗口 306来规定相应环境。将图9的地图编辑器窗口 300不出为可以用于规定环境的方法的一个不例。备选地,用户可以上载二维的或者三维的地图。这些相应地图所覆盖的地理区域不限于房间大小尺寸,而是可以表示任何尺寸的地图。
[0065]现在,方法250前进至步骤262,在步骤262,用户可以在地图上选择区域,以规定特定沿途点或兴趣点。兴趣点可以是起始点、停止点或过渡点。参照图10,其中示出了地图编辑器窗口 300,其中,用户已选择兴趣点310。在规定了兴趣点310后,方法250前进至步骤264。在步骤264,用户可以规定机器人设备12从兴趣点310开始要采用的行进方向或路线。在示例实施例中规定了路线,然而应当注意,还可以要求机器人设备12确定已规定的特定点之间的路线。现在参照图11,其中示出了地图编辑器窗口 300,其中,用户规定了从兴趣点310开始机器人设备12应当遵循的路线312。现在参照图12,其中与兴趣点310一起示出了两个停止点314。在停止点314处,机器人设备12可以执行任务或可以改变其行进方向。然后,方法250前进至步骤266,在步骤266,用户可以规定要在兴趣点310、停止点314处或沿路线312采取的任务。参照图13,其中与地图编辑器窗口 300 —起示出了任务选择器窗口 316。任务选择器窗口 316用于选择要由机器人设备12完成的一个或多个任务。一旦用户已完成在相应环境内规定机器人设备12的行进的各个点,并且当规定了要在各个位置处完成的任务时,方法250前进至步骤268。在步骤268,将相应地图和任务发送给机器人设备12。在示例实施例中,通过UDP将相应信息发送给机器人设备。此外,在机器人设备要执行特定任务的情况下,还可以将预定任务发送给机器人设备。
[0066]如上所述,当用户规定任务时,可以向用户呈现各种选项,以充分详述与正在规定的任务相关联的功能。现在参照图14A和14B,其中示出了在规定任务时所使用的屏幕截图的示例集合。现在参照图14A和图14B,其中,在一个实施例中示出了任务规定窗口 350。任务规定窗口 350将根据正在规定的任务而变化。图14A和14B所示的任务规定窗口 350用于针对机器人设备12来规定完成的任务,其中,从与系统相关联的预定义任务中选择任务。图14A和14B示出了用户已通过首先规定位置352来选择任务。本领域技术人员应当理解,出于示例目的提供了参照图14A和14B提供的种类,并且可以在规定任务时使用不同类型的种类,并且可以向用户呈现一个种类内的多个选项。位置字段352允许用户规定是要在室内还是室外完成任务。然后,要求用户从活动字段354选择要执行的活动的类型。活动字段354允许用户从要执行的活动类型中进行选择。在该示例中,用户已选择“清扫”作为机器人设备12要执行的活动的类型。在选择活动类型时,关于清扫活动类型,用户从方法字段356中进行选择。在该示例中,用户已选择进行用吸尘器进行清扫。然后,用户通过在强度字段358中指示强度,来规定要进行的吸尘器清扫的类型。与每个种类内的选项一同向用户示出的种类依赖于用户先前作出的选择以及已在每个种类中规定的选项。
[0067]如上所述,机器人设备12还可以作为机器人团队14的一部分进行操作。机器人团队是指在相同环境中共同存在的两个或更多个机器人设备。机器人设备的团队14可以存在于物理环境、虚拟环境或混合环境中。在环境内,团队成员中的一个或多个可以用于控制各个其他设备12。在机器人团队内,可以控制其他设备12的机器人设备12被称作控制机器人设备。控制机器人设备可以是机器人服务器或可以访问机器人服务器。控制设备监视相应动作以及环境内的要求,并可以在正被控制的其他机器人设备需要新组件时与机器人服务器进行通信。例如,如果被控制设备要在环境内执行新任务,则该任务的完成可能需要新组件,包括对新任务规定的更新。然后,控制设备可以与机器人服务器进行交互,并规定新任务信息,并且机器人服务器将继续确定对于各个被控制机器人设备中的每一个可能必要的各种组件和后续修改。控制机器人设备也可以针对自身的新组件向机器人服务器发出请求。
[0068]尽管以上描述提供了实施例的示例,但应当理解,在不脱离所描述的实施例的操作的精神和原理的前提下,可以对所描述的实施例的一些特征和/或功能进行修改。相应地,以上已描述的内容意在示意本发明而不是限制本发明,并且本领域技术人员应当理解,在不脱离所附权利要求所限定的本发明范围的前提下,可以作出其他变型和修改。
【权利要求】
1.一种用于完全或部分自动产生机器人设备的系统,包括: a)用于经由任务规定模块引出和接收用户输入,以确定所述机器人设备的一个或多个任务的任务规定的装置; b)用于使用任务产生器模块,基于所提供的任务规定来自动确定包括一个或多个任务的任务列表的装置; c)用于使用机器人产生模块,基于所提供的任务列表来自动确定一个或多个机械组件、一个或多个处理组件以及执行一个或多个任务所需的逻辑组件的装置;以及 d)用于自动产生执行一个或多个任务所需的逻辑组件,并将所述逻辑组件嵌入与所述机器人设备相关联的可记录介质上的装置。
2.根据权利要求1所述的系统,还包括:用于自动确定对所述一个或多个机械组件、所述一个或多个处理组件以及一个或多个逻辑组件的规定,以用于产生所述机器人设备的装置。
3.根据权利要求2所述的系统,其中,通过以与所述处理组件和所述可记录介质相结合的方式来组装所述一个或多个机械组件,来构造物理机器人设备。
4.根据权利要求3所述的系统,其中,创建多个物理机器人设备,并且所述多个物理机器人设备在机器人团队环境中操作。
5.根据权利要求2所述的系统,其中,通过创建所述一个或多个机械组件的虚拟表示来构造虚拟机器人设备,所述一个或多个机械组件与所述一个或多个处理组件和所述逻辑组件相结合。
6.根据权利要求5所述的系统,其中,创建多个虚拟机器人设备,并且所述多个虚拟机器人设备在机器人团队 环境中操作。
7.根据权利要求1所述的系统,还包括:用于引出和接收与环境规定有关的用户输入的装置,所述环境规定与所述机器人设备要操作的环境有关。
8.根据权利要求1所述的系统,其中,利用表示所述一个或多个机械组件的物理和虚拟组件来构造机器人设备,所述一个或多个机械组件与所述一个或多个处理组件和所述逻辑组件相结合。
9.根据权利要求8所述的系统,其中,创建具有混合的物理和虚拟组件的多个机器人设备,并且所述多个机器人设备在机器人团队环境中操作。
10.根据权利要求1所述的系统,其中,所述系统在机器人服务器处执行。
11.根据权利要求10所述的系统,其中,机器人设备是机器人服务器。
12.根据权利要求7所述的系统,其中,用于引出和接收与环境规定有关的用户输入的装置包括: a)用于输入对所述环境的区域进行限定的地图的装置; b)用于输入起始点的装置,所述起始点指示了所述区域内所述机器人设备将从其开始操作的位置; c)用于沿从所述起始点发出的、所述机器人设备将遵循的路线输入一个或多个停止点的装置;以及 d)用于输入所述机器人设备在所述起始点、所述停止点或沿所述路线要完成的一个或多个任务的装置。
13.根据权利要求12所述的系统,其中,所述地图是上载的预先存在的地图。
14.根据权利要求12所述的系统,其中,所述地图能够被创建为限定所述环境的区域。
15.根据权利要求12所述的系统,其中,所规定的环境被发送到所述机器人设备。
16.根据权利要求12所述的系统,其中,所述机器人设备是物理机器人设备或虚拟机器人设备,或者具有混合的物理和虚拟组件的机器人设备。
17.根据权利要求1所述的系统,其中,用于经由任务规定模块引出和接收用户输入以确定所述机器人设备的一个或多个任务的任务规定的装置包括: a)用于规定所述机器人设备是物理机器人设备、虚拟机器人设备、还是具有混合的物理和虚拟组件的机器人设备的装置; b)用于规定所述机器人设备要操作的位置的装置; c)用于规定所述机器人设备要执行的活动的装置;以及 d)用于提供与所述机器人设备要执行的活动有关的详细信息的装置。
18.根据权利要求17所述的系统,其中,所述位置可以是室内或室外位置,或者室内和室外位置。
19.根据权利要求17所述的系统,其中,所述活动能够从所述机器人设备先前已执行的一个或多个活动中选择。
20.根据权利要求17所述的系统,其中,所述活动是所述机器人设备先前尚未执行的活动。
21.根据权利要求17所述的系统,其中,产生机器人设备以完成所述一个或多个任务。
22.根据权利要求17所述的系统,其中,所述机器人设备是物理机器人设备或虚拟机器人设备,或者具有混合的物理和虚拟组件的机器人设备。
23.根据权利要求22所述的系统,其中,所述机器人设备能够操作于物理环境、虚拟环境或混合的虚拟和物理环境中。
【文档编号】B25J9/16GK103433923SQ201310252706
【公开日】2013年12月11日 申请日期:2008年1月11日 优先权日:2007年1月12日
【发明者】汉斯乔格·巴尔特斯, 杰克·埃尔明·彼得森, 斯旺·萨缪尔·希勒, 晓文·特里·刘, 布莱恩·P·麦金农, 萨拉·埃珀, 瓦吉尔·凯恩, 谢恩·扬克 申请人:汉斯乔格·巴尔特斯, 杰克·埃尔明·彼得森, 斯旺·萨缪尔·希勒, 晓文·特里·刘, 布莱恩·P·麦金农, 萨拉·埃珀, 瓦吉尔·凯恩, 谢恩·扬克
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1