具有可扩展的编程环境的机器人任务指挥器制造技术

技术编号:10443083 阅读:158 留言:0更新日期:2014-09-17 19:09
一种用于开发分布式机器人应用级软件的系统,包括具有相关控制模块的机器人和机器人任务指挥器(RTC),控制模块响应于命令的任务控制机器人的运动,机器人任务指挥器通过网络传输层(NTL)与控制模块网络通信。RTC包括脚本引擎和GUI,处理器和库块的中央库由解释性的计算机编程代码构成,并具有输入和输出连接。GUI提供访问可视化程序设计语言(VPL)环境和文本编辑器的入口。在执行方法中,打开VPL,用于机器人的任务从代码库块中建立,数据被分配给识别每个块的输入和输出数据的输入和输出连接。任务序列通过NTL被发送到控制模块,以命令执行任务。

【技术实现步骤摘要】
机器人系统及其任务规划方法关于联邦政府资助的研究或开发的声明本专利技术在美国航空航天局太空行动协议第SAA-AT-07-003号下由政府支持进行。美国政府可能拥有本专利技术的某些权利。
本公开涉及用于自动机器人的任务规划的系统和方法,尤其涉及一种可用于这种任务规划的具有可扩展的编程环境的机器人任务指挥器(commander)。
技术介绍
机器人是能够使用一系列机械链接来操纵物件的自动化装置。这些链接经由电机/致动器驱动的机器人关节而互相连接。典型机器人中的每个关节代表一种独立的控制变量,即自由度。末端执行器是位于机器人机械手末端的特殊装置,机械手用于执行手边的任务,比如抓住工作工具或捕捉物件的3D图像。因此,对机器人的精确控制可由任务规格的级别统筹:物件级控制(即控制由机器人的单个或协作抓握而保持的物件的行为的能力)、末端执行器控制和关节级控制。总的来说,各种控制级别协作以获得机器人移动性、灵活性和与工作任务相关的功能性的所需水平。机器人的复杂性从常规的3轴或6轴机器人手臂变化至高度复杂的仿人机器人,即具有类人结构或外形的机器人,不论是否作为完整本体、躯干和/或附属物。仿人机器人的结构复杂性主要取决于所执行的工作任务的性质。通常,每个机器人具有其自身专用的编程环境,其中,专家用户根据特殊的任务序列对必须执行的各种任务编程。然后编译程序码,每当新的外围装置和其它硬件元件添加到机器人时,重写通信协议。结果,某些任务编程效率底下可能存在于本领域中,尤其存在于利用不同设计和/或相对复杂性差异悬殊的机器人的大网络环境中。
技术实现思路
本文公开了一种系统,其包括机器人任务指挥器(RTC)。RTC旨在用于开发分布式机器人应用级软件,即并非实时关键的软件,如在本领域中众所周知的那样。RTC可体现为在一个或多个计算机装置上运行的一组程序,包括具有图形用户界面(GUI)的集成开发环境(IDE)和构造成充当相应脚本引擎的一个或多个程序。GUI用作RTC的图形“前端”,允许专家或非专家用户以直观的方式与脚本引擎配合。GUI还使用户能够观察运行时间诊断信息,以构成可存储在存储器中并经由图形文件浏览器可访问的新脚本,以及将作为“代码库块”的这种存储的脚本“拖放”进新序列中。任务序列同样存储在存储器中,用于在附加序列中作为“任务序列块”分等级地再次使用。GUI允许用户将作为“应用”的任务序列块配置给脚本引擎。反过来,脚本引擎充当RTC的计算“后端”。应用内的子块可分配给特定的脚本引擎,该特定的脚本引擎必须随后以指定的顺序解译和执行这些特定块。因此,脚本引擎在系统内用于将程序序列数据传输给其它脚本引擎,以及用于将诊断反馈传送给GUI。如本文中使用的诊断反馈可采取两种形式:GUI中的文字窗口和“块高亮”,使得当应用被配置给脚本引擎时,GUI中的相应块可变成不同的颜色,例如,绿色指示正常执行,红色指示错误或故障等。使用如本文所公开的RTC便于在网络环境中进行自动化机器人任务规划,其中,一个或多个机器人通过网络传输层(NTL)由多个计算装置控制。RTC设计成支持多个网络协议,例如机器人操作系统(ROS)、ZeroMQ、TCP/IP、UDP等,以实施不同脚本引擎、RTCGUI和一个或多个机器人/外围装置之间的网络通信,而不会独属于任何特定协议。因为应用可包括通过使用这些协议而分布在多个脚本引擎的宽网络上的多个块的任务序列,所以可能存在网络延迟。然而,这种延迟在RTC的预期应用级软件开发作用的范围内是完全可以接受的。RTC所使用的脚本引擎可位于网络上的不同计算机上。每个脚本引擎可发送“触发命令”给其它脚本引擎,例如作为并行执行的一组协调的状态机器。在这种环境中,GUI允许用户立刻精确地理解各分布式脚本引擎内正在发生什么。此外,例如在传感器/图像熔合或图像处理算法的情况下,如果特定库脚本或序列块(下文中统称为“代码库块”)特别密集,则分布式方法允许在整个网络上的计算负载平衡。在可能的方法中,给定的脚本引擎可专用于网络上相应的机器人。类似地,每个任务序列和代码库块可在不同计算机上的不同脚本引擎上运行。总的来说,每个块的配置在配置之前可由用户在GUI中设定,或者通过标准调度算法(比如“循环”等)自动地分配给网络上的脚本引擎,如本领域中众所周知的那样。连接各个块的特定触发事件通过NTL发送,从而允许RTC恰当地发挥作用,即使在宽广分布式的网络环境中也如此。任务序列本身不需要是线性的。即,单个触发命令可同时触发执行代码的多个块,从而开始并发或并行处理管线等等。本文中所述的RTC使用专门写入的脚本块来接受来自通过NTL发布的机器人和/或传感器数据的“输入”数据,如本领域中众所周知的那样,以及将“输出”数据发布到NTL本身。当在RTC的GUI中构成时,脚本必须被“抽象地”写入,即对任何特定输入/输出(I/O)数据绑定是不可知的。这样,每个单独脚本块仅了解信息的类型,例如关节位置、关节速度、图像坐标等,并不了解该信息的具体来源。留给用户的是,当在任务序列和/或应用中构成代码块时,通过使用直观图形界面来“绑定”在VPL中的该I/O数据的来源和接收器。因此,本方法的中心是能够在不同的应用中使用和再使用库脚本形式的抽象功能,同时可连接到不同的硬件装置。这些概念将在下面进一步详细讨论。如本领域普通技术人员所要明白的是,本文所公开的RTC可提供相对于现有命令和控制方法的各种优点。当创建新机器人任务应用时,这种方法可能会欠佳地适于与新添加的外围硬件装置(比如传感器、操纵器和/或第三方软件)以均匀一致的方式配合。在现有技术中可能还缺乏对程序状态和机器人遥测数据(可用于运行时内省和进行中的任务诊断)两者的在线反馈。集成支持用于通过NTL经由通信支持外部软件包,并且其是使这成为可能的多个网络协议的集成支持。总之,这些特征可使先进机器人编程技术的快速原型化和配置适于下一代柔性综合组装制造系统、空间探测系统等。作为额外的益处,通过使用RTC,无论何时将新硬件添加到网络,均不需要重新写入通信协议。在本文所公开的特定实施例中,该系统具体包括具有相关控制模块的机器人。控制模块响应于命令的任务控制机器人的至少一个关节的运动。该系统还包括上述的RTC,该RTC通过NTL与控制模块网络通信。RTC包括处理器和具有其中可以存储代码库块的中央库的存储器,每个代码库块通过使用解释性语言计算机编程代码经由相关的文字编辑器而构成。每个库代码块还可具有一个或多个I/O连接,该I/O连接在本文中定义为特定的I/O链接,其分别通过NTL作为输入和输出数据的指针通信。RTC还包括与存储器通信的GUI。GUI提供访问VPL环境和文本编辑器的入口。RTC响应于用户命令执行来自存储器的指令,从而打开VPL,并允许用户选择或开发代码用于经由机器人而要被执行的任务,这包括选择和/或开发一个或多个代码库块。所选择/开发的代码块通过NTL下载到各指定的脚本引擎,其中,所述块根据由特定触发命令指示的流动路径而被执行。在经由脚本引擎处理代码库块后,每个控制模块随后控制由任务指示的所需运动,定期地将其状态经由脚本引擎传送回控制的RTC。前述系统的各实施例将在本文中进一步详细阐述。结合附图,参考用于实施本专利技术的最佳模式的下列详本文档来自技高网...
具有可扩展的编程环境的机器人任务指挥器

【技术保护点】
一种系统,包括:机器人,具有控制模块,其中,所述控制模块构造成响应于所接收的任务序列控制所述机器人的运动;以及机器人任务指挥器(RTC),通过网络传输层(NTL)与所述控制模块网络通信,并具有:至少一个脚本引擎;处理器;有形的非短暂性存储器;以及图形用户界面(GUI),具有文本编辑器和文件浏览器,其中,所述GUI构造成提供访问所述文本编辑器的入口,并且经由所述文件浏览器,到达所述存储器中的代码库块的中央库,每个代码库块使用所述文本编辑器由解释性语言计算机编程代码构成,且每个代码库块具有给所需输入和输出数据形成指针的输入和输出块,并提供可视化程序设计语言(VPL)工具和所述文本编辑器;其中,所述系统构造成经由所述至少一个脚本引擎和处理器执行来自所述存储器的指令,从而打开所述VPL工具,通过使用所存储的代码库块中的至少一些来创建并存储用于所述机器人的任务序列,通过识别用于每个库代码块的所需输入和输出数据将数据分配给输入和输出连接,并通过NTL将任务序列传输到所述控制模块。

【技术特征摘要】
2013.03.14 US 13/803,0171.一种机器人系统,包括:机器人,具有控制模块,其中,所述控制模块构造成响应于所接收的任务序列控制所述机器人的运动;以及机器人任务指挥器RTC,通过网络传输层NTL与所述控制模块网络通信,并具有:至少一个脚本引擎;处理器;有形的非短暂性存储器;以及图形用户界面(GUI),具有文本编辑器和文件浏览器,其中,所述GUI构造成提供访问所述文本编辑器的入口,并且经由所述文件浏览器,到达所述存储器中的代码库块的中央库,每个代码库块使用所述文本编辑器由解释性语言计算机编程代码构成,且每个代码库块具有给所需输入和输出数据形成指针的输入和输出块,并GUI还提供可视化程序设计语言VPL工具;其中,所述系统构造成经由所述至少一个脚本引擎和处理器执行来自所述存储器的指令,从而打开所述VPL工具,通过使用所存储的代码库块中的至少一些来创建并存储用于所述机器人的任务序列,通过识别用于每个代码库块的所需输入和输出数据将数据分配给输入和输出连接,并通过NTL将任务序列传输到所述控制模块。2.如权利要求1所述的系统,其中,所述RTC在任务序列运行时经由所述GUI而显示机器人的状态及遥测数据的在线反馈,从而能够实时诊断任务序列的执行。3.如权利要求1所述的系统,其中,所述输入和输出连接仅是用于自定义由所述机器人执行的任务序列的插件。4.如权利要求1所述的系统,其中,所述机器人包括具有达6个自由度的第一机器人和具有至少42个自由度的第二机器人。5.如权利要求1所述的系统,其中,所述解释性语言是Python和Lua编程语言之一。6.如权利要求1所述的系统,其中,所述机器人包括具有解译器块的硬件元件...

【专利技术属性】
技术研发人员:SW哈特JD亚莫科斯基BJ怀特曼DP戴恩DR古丁
申请(专利权)人:通用汽车环球科技运作有限责任公司美国国家航空和宇宙航行局
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1