可添加以及删除功能模块并支持与第三方产品的联动的管理装置以及方法
文献发布时间:2024-04-18 19:44:28
技术领域
本发明涉及一种用于对机器人等硬件进行管理的装置以及方法。
背景技术
如机器人以及自主移动机器人(AMR,Autonomous Mobile Robot)等硬件被广泛适用于各种领域。
但是,很多硬件只能通过制造企业所提供的有限的功能以及操作方法进行驱动。因此,各种硬件只能适用于有限的工作环境,而且必须由熟练的技术人员进行管理。
因此,各种硬件的普及也受到了阻碍。
在韩国公开专利公报第2015-0074375号中,公开了一种通过搭建可以为所识别出的不同机型的机器人提供统一用户界面的机器人平台环境,即使是在不了解不同机型的机器人的操作方法或指令的情况下,也可以通过统一用户界面利用通用的使用者指令对机器人进行控制的技术。
先行技术文献
专利文献
韩国公开专利公报第2015-0074375号
发明内容
技术问题
本发明的目的在于提供一种可以在用于对如机器人等硬件进行控制的控制器等中添加或删除各种功能模块,而且可以与不同制造企业的硬件进行联动的管理装置。
解决方案
本发明的管理装置,在配备用于对硬件进行控制的控制器时,可以包括:市场服务器,注册有向所述硬件赋予特定功能的功能模块;以及,管理器,用于从所述市场服务器下载所述功能模块。所述管理器,可以将所述功能模块安装到所述控制器,或删除安装到所述控制器的所述功能模块。
本发明的管理装置,可以包括:注册部,用于注册向硬件赋予特定功能的功能模块;以及,提供部,用于将预先注册的功能模块的模块信息提供到管理器。
所述提供部,可以将以平铺(tiled)菜单结构显示所述模块信息的显示菜单提供到所述管理器。
所述提供部,可以在选择构成所述平铺菜单的特定磁贴时,将配置在所选择的特定磁贴上的特定功能模块的功能分类结果以及详细信息中的至少一个追加提供到所述管理器。
此外,可以包括:收集部,用于对安装到所述管理器的第二扩展应用程序编程接口(API,Application Programming Interface)的信息进行收集。
此外,可以包括:检索部,用于从预先注册的多个功能模块中检索包括使用所述第二扩展应用程序编程接口(API)的第二动态链接库的第二功能模块。
所述提供部,可以将通过所述检索部检索到的所述第二功能模块的列表提供到所述管理器。
此外,可以包括:收集部,用于对安装到通过所述管理器进行管理的控制器的第一扩展应用程序编程接口(API,Application Programming Interface)的信息进行收集。
此外,可以包括:检索部,用于从预先注册的多个功能模块中检索包括使用所述第一扩展应用程序编程接口(API)的第一动态链接库的第一功能模块。
所述提供部,可以将通过所述检索部检索到的所述第一功能模块的列表提供到所述管理器。
此外,可以包括:评估部,利用以所述功能模块为对象的客户的评估分数、下载次数以及工程便利性中的至少一个为所述功能模块分配分数。
所述提供部,可以在提供到所述控制器的所述模块信息为多个时根据分配到各个功能模块的分数决定其优先顺序。
所述提供部,可以将按照所述优先顺序依次进行排序的多个所述模块信息提供到所述管理器。
此外,可以包括:收集部,用于对安装到所述管理器的特定功能模块的安装信息进行收集。
此外,可以包括:升级部,通过在所述安装信息与预先注册的功能模块的模块信息之间进行比较而对所述特定功能模块进行升级。
本发明的管理装置,可以包括:第一运行部,搭载有向硬件赋予特定功能的功能模块,通过运行所述功能模块而对所述硬件进行控制;以及,第一管理部,用于对搭载到所述第一运行部的功能模块中的可发生变动的可变模块进行管理。
搭载到所述第一运行部的功能模块,可以分为所述可变模块以及固定搭载到所述第一运行部的固定模块。
所述第一管理部,可以在维持所述固定模块不变的状态下添加或删除所述可变模块。
所述固定模块,可以包括:第一通信模块,用于与管理器或市场服务器进行通信;解析模块,用于对所述硬件的控制信息进行解析;以及,转换模块,用于将通过所述解析模块解析出来的控制信息转换成与所述硬件兼容的状态;中的至少一个。
所述可变模块,可以包括:控制模块,用于生成所述控制箱信息;以及,框架模块,用于对包括用户界面的画面模块与所述控制模块进行连接;中的至少一个。
此外,可以包括:第一通信模块,用于与管理器或市场服务器进行通信;解析模块,用于对所述硬件的控制信息进行解析;以及,转换模块,用于将通过所述解析模块解析出来的控制信息转换成与所述硬件兼容的状态。
所述第一管理部,可以在维持所述第一通信模块、所述解析模块以及所述转换模块不变的状态下向所述第一运行部添加其他功能模块或删除搭载到所述第一运行部的其他功能模块。
在所述第一运行部中,可以追加搭载第一操作系统(OS,Operating System)、机器人操作系统(OS,Operating System)以及向所述第一操作系统(OS)或所述机器人操作系统(OS)提供实时性的实时操作系统(RTOS,Real Time Operating System)中的至少一个。
此外,可以追加搭载相当于所述功能模块的运行环境的第一运行时(runtime)模块以及用于对所述功能模块与所述第一运行时模块进行连接的第一应用程序编程接口(API,Application Program Interface)中的至少一个。
在所述第一运行部中,可以搭载第一通信模块、解析模块、转换模块、控制模块、框架模块、第一运行时(runtime)模块、第一应用程序编程接口(API,Application ProgramInterface)、第一扩展应用程序编程接口(API)以及第一动态链接库。
所述第一管理部,可以将区别于所述控制模块以及所述框架模块的所述第一扩展应用程序编程接口(API)或所述第一动态链接库添加到所述第一运行部或从所述第一运行部删除。
所述第一通信模块,可以与管理器或市场服务器进行通信。
所述解析模块,可以对所述硬件的控制信息进行解析。
所述转换模块,可以将通过所述解析模块解析出来的控制信息转换成与所述硬件兼容的状态。
所述控制模块,可以生成所述控制信息。
所述框架模块,可以对包括用户界面的画面模块与所述控制模块进行连接。
所述第一运行时模块,可以提供所述功能模块的运行环境。
所述第一应用程序编程接口(API),可以对所述功能模块与所述第一运行时模块进行连接。
所述第一动态链接库,可以以供所述硬件的制造企业控制所述硬件为目的进行开发。
所述第一扩展应用程序编程接口(API),可以对所述第一动态链接库与所述第一运行时模块进行连接。
所述功能模块,可以包括画面模块、框架模块以及控制模块。
所述画面模块,可以包括用户界面。
所述控制模块,可以包括通过对所述硬件进行控制而使得所述硬件执行所述特定功能的控制信息。
所述框架模块,可以包括用于对所述画面模块与所述控制模块进行联动的信息。
所述第一管理部,可以将所述画面模块、所述框架模块以及所述控制模块中的所述框架模块以及所述控制模块搭载到所述第一运行部。
此外,可以包括:第一通信模块,用于与显示所述功能模块的用户界面的管理器进行通信。
所述第一通信模块,可以从所述管理器接收用于生成可使得所述硬件执行所述特定功能的所述硬件的控制信息的控制模块以及用于对所述控制模块与所述用户界面进行联动的框架模块。
所述第一管理部,可以将通过所述第一通信模块接收到的所述控制模块以及所述框架模块安装到所述第一运行部。
所述管理器,可以包括第二运行部以及第二管理部。
所述第二管理部,可以对包含于从市场服务器下载下来的功能模块中的画面模块、所述框架模块以及所述控制模块进行区分。
在所述第二运行部中,可以搭载与所述第一通信模块进行通信的第二通信模块以及通过所述第二管理部提取出来的所述画面模块。
所述第二管理部,可以通过所述第二通信模块将所述控制模块以及所述框架模块传送到所述第一管理部。
所述第一管理部,可以将从所述第二管理部传送过来的所述控制模块以及所述框架模块安装到所述第一运行部。
所述画面模块,可以将通过所述框架模块与所述控制模块进行联动的所述用户界面显示到所述管理器的显示部。
所述第一通信模块以及所述第二通信模块可以对所述用户界面与所述控制模块之间的联动信息进行收发。
所述第一通信模块以及所述第二通信模块可以一体形成。
所述第一运行部以及所述第二运行部可以一体形成。
所述第一管理部以及所述第二管理部可以一体形成。
本发明的管理装置,可以包括:第二管理部,用于获取向硬件赋予特定功能的功能模块;第二运行部,用于显示所述功能模块中呈现所述特定功能的用户界面;以及,显示部,用于显示所述用户界面。
在所述第二运行部中,可以搭载第二操作系统(OS,Operating System)、相当于所述功能模块的运行环境的第二运行时(runtime)模块以及用于对所述功能模块与所述第二运行时模块进行连接的第二应用程序编程接口(API,Application Program Interface)。
所述第二管理部,可以从所述功能模块提取出用于提供所述用户界面的画面模块。
所述第二管理部,可以在维持所述第二操作系统(OS)、所述第二运行时模块以及所述第二应用程序编程接口(API)不变的状态下将所述画面模块安装到所述第二运行部或从所述第二运行部删除。
所述第二管理部,可以将所述功能模块分为第一模块以及第二模块。
所述第二模块,可以包括:画面模块,包括所述用户界面;模拟模块,用于生成所述硬件的模拟环境;元模块,用于对所述画面模块与所述模拟模块进行连接;教学模块,用于生成所述硬件的教学(teaching)信息;以及,空间整合模块,用于提供增强现实;中的至少一个。
所述第一模块,可以包括:控制模块,用于处理通过对所述硬件进行控制而使得所述硬件执行所述特定功能的控制信息;以及,框架模块;包括用于对所述画面模块与所述控制模块进行联动的信息;中的至少一个。
所述第二管理部,可以将所述第一模块提供到所述硬件的控制器。
所述第二管理部,可以将所述第二模块安装到所述第二运行部或删除安装到所述第二运行部的所述第二模块。
所述第二管理部,可以从所述功能模块提取出包括所述用户界面的画面模块。
所述第二管理部,可以将所述画面模块安装到所述第二运行部。
所述第二运行部,可以通过运行利用所述第二管理部搭载的所述画面模块而将所述用户界面显示到所述显示部。
在所述第二运行部中,可以搭载用于与对所述硬件进行控制的控制器进行通信的第二通信模块。
所述第二通信模块,可以与所述控制器对所述硬件与所述用户界面之间的联动信息进行收发。
在所述功能模块包括画面模块、框架模块以及控制模块时,所述第二管理部,可以从所述功能模块提取出所述画面模块。
所述第二管理部,可以将从所述功能模块提取出来的所述画面模块安装到所述第二运行部。
所述第二管理部,可以从所述功能模块提取出所述框架模块以及所述控制模块。
所述第二管理部,可以将所述框架模块以及所述控制模块提供到对所述硬件进行控制的控制器。
在所述第二运行部中,可以搭载第二通信模块、画面模块、第二运行时(runtime)模块、第二应用程序编程接口(API,Application Program Interface)、第二扩展应用程序编程接口(API)以及第二动态链接库。
所述第二管理部,可以将区别于所述画面模块的所述第二扩展应用程序编程接口(API)或所述第二动态链接库添加到所述第二运行部或从所述第二运行部删除。
所述第二通信模块,可以与控制器或市场服务器进行通信。
当通过所述第二运行部运行所述画面模块时,可以将所述用户界面显示到显示部。
所述第二运行时模块,可以提供所述功能模块的运行环境。
所述第二应用程序编程接口(API),可以对所述功能模块与所述第二运行时模块进行连接。
所述第二动态链接库,可以以供所述硬件的制造企业控制所述硬件为目的进行开发。
所述第二扩展应用程序编程接口(API),可以对所述第二动态链接库与所述第二运行时模块进行连接。
本发明的管理装置,可以包括:管理器,用于显示硬件控制用的用户界面。
所述管理器,可以从通过市场服务器获取到的功能模块提取出画面模块以及控制模块。
所述管理器,可以在维持自身配备的第二应用程序编程接口(API)不变的状态下将所述画面模块搭载到所述第二应用程序编程接口(API)上。
所述管理器,可以将需要搭载到预先安装到所述硬件的控制器的第一应用程序编程接口(API)上的所述控制模块传送到所述控制器。
本发明的管理方法,可以包括:获取步骤,从市场服务器获取功能模块;提取步骤,提取出包含于所述功能模块中的画面模块以及控制模块;安装步骤,将所述画面模块搭载到预先安装的第二应用程序编程接口(API)上;以及,提供步骤,将需要搭载到预先安装到所述硬件的控制器的第一应用程序编程接口(API)上的所述控制模块传送到所述控制器。
发明效果
本发明的管理装置,可以在获取到向硬件赋予特定功能的功能模块时,对包含于功能模块中的画面模块、控制模块以及框架模块进行区分管理。
例如,管理装置可以将画面模块安装到使用者操作的管理器,并将控制模块以及框架模块安装到硬件的控制器。
在将画面模块安装到管理器时,可以在维持搭载到管理器的操作系统(OS)、应用程序编程接口(API)以及运行时模块等不变的状态下执行。在将控制模块以及框架模块安装到控制器时,可以在维持搭载到控制器的操作系统(OS)、应用程序编程接口(API)以及运行时模块等不变的状态下执行。
换言之,本发明的管理装置可以通过将功能模块的画面模块安装到管理器并将功能模块的控制模块以及框架模块安装到控制器而将特定功能模块安装到硬件的控制器以及管理器。或者,管理装置可以通过从管理器删除画面模块并从控制器删除控制模块以及框架模块而将特定功能模块从控制器以及管理器删除。
安装到控制器以及管理器的特定功能模块可以通过对机器人进行控制而使得硬件执行新功能。
通过本发明,在功能模块包括画面模块、控制模块以及框架模块的情况下,可以与功能模块的制造企业无关地向如机器人以及自主移动机器人(AMR)等的硬件赋予特定功能或从所述硬件删除特定功能。
通过本发明,在功能模块包括画面模块、控制模块以及模块框架的范围内,可以通过各种软件开发平台以及软件开发工具包(SDK,Software Development Kit)等开发出各种功能模块。
这意味着与硬件的制造企业、控制器的制造企业以及管理器的制造企业无关的各种外围设备企业以及软件企业也可以开发出向所述硬件赋予新功能的功能模块。
通过如上所述的功能模块的开发环境,可以快速地向硬件的用户提供多种多样的功能。此外,可以将集中在硬件制造企业的功能模块的开发负荷(load)分散到各种硬件制造企业、各种控制器制造企业、各种管理器制造企业以及各种软件企业。
通过本发明,可以提供硬件的不同功能上的问题由包括相应功能的功能模块的提供企业解决的环境。换言之,可以提供分别针对硬件的各个功能解决相关问题的环境,而不需要以整个硬件为对象解决相关问题。这意味着可以提供针对赋予到硬件上的不同功能独立解决相关问题的环境。
功能模块的提供企业可以排除硬件上的其他问题,只需要专注于改善自己所提供的功能模块的相关问题,因此还可以改善功能模块的稳定性。借此,硬件的客户可以稳定地使用以现有硬件作为对象新添加的特定功能。
附图说明
图1是对本发明的管理装置进行图示的概要图。
图2是对市场服务器进行图示的概要图。
图3是对显示到管理器的显示菜单进行图示的概要图。
图4是对控制器进行图示的概要图。
图5是对搭载到控制器的软件结构进行图示的概要图。
图6是对管理器进行图示的概要图。
图7是对搭载到管理器的软件结构进行图示的概要图。
图8是对通过显示部显示的用户界面的一实例进行图示的概要图。
图9是对本发明的管理装置的工作进行图示的概要图。
图10是对在适用本发明的管理装置的环境下,硬件的制造企业与功能模块的开发企业之间的业务范围进行图示的概要图。
图11是对比较实施例的工作进行图示的概要图。
图12是对比较实施例的环境下的硬件制造企业的业务范围进行图示的概要图。
图13是对比较实施例的软件结构进行图示的概要图。
图14是对本发明的管理方法进行图示的流程图。
图15是对安装功能模块的过程进行图示的流程图。
图16是对删除功能模块的过程进行图示的流程图。
图17是对适用本发明之实施例的计算装置进行图示的示意图。
符号说明
10:第一动态链接库,11:第一通信模块,12:第一运行时模块,13:解析模块,14:第一应用程序编程接口,15:转换模块,16:第一扩展应用程序编程接口,17:第一操作系统,18:机器人操作系统,19:实时操作系统,20:第二动态链接库,21:第二通信模块,22:第二运行时模块,24:第二应用程序编程接口,26:第二扩展应用程序编程接口,27:第二操作系统,90:硬件,100:管理装置,110:控制器,111:第一运行部,113:第一管理部,120:管理器,121:第二运行部,123:第二管理部,125:显示部,190:市场服务器,191:注册部,193:提供部,195:收集部,197:检索部,198:评估部,199:升级部。
具体实施方式
接下来,将参阅附图对本发明的实施例进行详细的说明,以便于具有本发明所属技术领域之一般知识的人员可以轻易地实施本发明。但是,本发明可以通过多种不同的形态实现,并不限定于在此进行说明的实施例。此外,为了可以更加明确地对本发明进行说明,附图中与说明无关的部分将被省略,而且在整个说明书中对于类似的部分分配了类似的附图编号。
在本说明书中,对于相同构成要素的重复说明将被省略。
此外,在本说明书中,当记载为某个构成要素与其他构成要素“连接”或“相连”时,虽然可以与所述其他构成要素直接连接或相连,但是应该理解为在两者之间可以有其他构成要素存在。与此相反,在本说明书中,当记载为某个构成要素与其他构成要素“直接连接”或“直接相连”时,应该理解为在两者之间没有其他构成要素存在。
此外,在本说明书中所使用的术语只是用于对特定的实施例进行说明,并不是为了对本发明做出限定。
此外,在本说明书中,除非上下文中有明确的相反含义,否则单数型语句还包含复数型含义。
此外,在本说明书中,如“包括”或“具有”等术语只是用于表明说明书中所记载的特征、数字、步骤、动作、构成要素、部件或所述之组合存在,并不应该理解为事先排除一个或多个其他的特征、数字、步骤、动作、构成要素、部件或所述之组合存在或被附加的可能性。
此外,在本说明书中,术语“和/或”包括多个所记载的项目的组合或多个所记载的项目中的某一个项目。在本说明书中,“A或B”可以包括“A”、“B”或“A以及B”。
此外,在本说明书中,与可能会导致本发明的要旨变得不清晰的公知功能或构成相关的详细说明将被省略。
图1是对本发明的管理装置100进行图示的概要图。
图1中所图示的管理装置100,可以包括控制器110、管理器120以及市场服务器190。
控制器110可以对硬件90进行控制。硬件90可以包括通过从控制器110提供的控制信息以及控制信号进行控制的机器人以及自主移动机器人(AMR,Autonomous MobileRobot)等。
控制器110可以由如控制程序等软件以及用于运行相应软件的处理装置结合而成。作为一实例,控制器110可以是以可运行的方式搭载有用于生成机器人的控制信息的控制程序的处理装置。
在市场服务器190中,可以注册用于向硬件90赋予特定功能的功能模块f(包括如控制模块f1以及框架模块f2等)。功能模块f可以决定硬件90的工作方式以及工作顺序中的至少一个。本说明书中所记载的“模块”可以是指用于执行特定功能的程序本身,也可以是指搭载有相应程序并通过相应程序的运行或运算而执行特定功能的处理器、运算器以及半导体芯片等。功能模块f,可以包括用于向通过软件进行控制的如机器人以及自主移动机器人(ARM)等的硬件(单元、电子设备)赋予特定功能的模块,也可以包括用于向用户提供便利功能的模块。
即使是相同的硬件90,根据对硬件90进行控制的控制器110,硬件90也可以执行不同的功能。
作为一实例,当通过控制器110提供用于对物件进行夹持或搬运的控制信息时,相当于硬件90的机器人可以执行对物件进行搬运的功能。当通过控制器110提供执行焊接所需要的信息时,机器人可以执行对物件进行焊接的功能。但是其前提在于,可以根据不同的功能在硬件层面上将安装在机器人上的如夹钳(gripper)以及机械手(manipulator)等末端执行器硬件替换成如焊接机等元件。
在市场服务器190中,可以注册通过对机器人进行控制而使得机器人执行物件搬运功能的功能模块。此外,在市场服务器190中,可以注册通过对机器人进行控制而使得机器人执行物件焊接功能的功能模块。
此时,功能模块f可以包括通过对机器人进行控制而使得如机器人等硬件90执行特定功能(例如搬运以及焊接等)的程序以及软件等。从另一方面上来讲,功能模块f可以生成硬件90执行特定功能时所需要的控制信息。
为了向机器人赋予特定功能,首先需要从市场服务器190下载用于使机器人执行相应功能的功能模块,并将所下载的功能模块安装到控制器110。为此,可以使用管理器120。构成所下载的功能模块的画面模块可以被安装到管理器。构成所下载的功能模块的框架模块以及控制模块可以被安装到控制器。通过控制模块,可以对硬件进行控制。
管理器120可以将功能模块安装到控制器110或删除安装到控制器110的功能模块。管理器120可以包括如个人电脑、台式电脑、智能手机、平板电脑(Tablet PC)以及硬件90专用的控制器等。
需要注意的是,虽然利用管理器120执行的如安装或删除功能模块等功能模块的管理看似比较简单,但是实际上却难以实现。
通常来讲,硬件90的制造企业可以向客户提供用于对硬件90进行控制的基础程序。但是,所述基础程序采用的是难以对功能模块进行分离的结构。换言之,在基础程序中显然包括用于执行功能模块f的功能的程序代码。但是,难以从基础程序删除功能模块或向基础程序添加新的功能模块。这是因为,制造企业通常所提供的基础程序采用的是没有可分离的功能模块本身的结构,例如特定功能被融合到整个基础程序上的结构。
因此,在现有硬件90的客户需要新功能的情况下,只能再次购买带有新功能的硬件90使用。或者,客户可以向硬件90的制造企业要求添加或升级新功能。
但是即使是在制造企业一方积极配合客户请求的情况下,也需要耗费大量的时间进行新功能的升级。这是因为为了添加新功能,除了功能相关代码之外,还需要对包括机器人操作系统(OS)以及运行时(runtime)等在内的整个基础程序进行修改或升级。在利用对机器人操作系统(OS)、运行时以及功能相关代码进行整合的基础程序对硬件进行控制的情况下,外部的其他企业并没有对相应硬件的功能进行扩展的方法。从另一方面上来讲,向没有焊接功能的机器人添加相应功能的工作,实际上只能由机器人的制造企业执行。
此外,当在功能升级的过程中对整个基础程序进行修改时,可能会因为新出现的各种漏洞而难以对软件进行错误控制。
其结果,实际上难以向硬件90添加与原有功能不同的其他特定功能。此外,实际上还难以为了添加新功能而删除原有功能。
为了向各种硬件90添加新功能,首先需要从基础程序分离出功能相关部分以及代码。为了达成相应目的,本发明的管理装置100提出一种全新结构的功能模块f。
作为一实例,本发明中所记载的功能模块f可以包括控制模块f1、框架模块f2以及画面模块f3中的至少一个。较佳地,功能模块f同时包括控制模块f1、框架模块f2以及画面模块f3为宜。控制模块f1、框架模块f2以及画面模块f3可以采用程序或软件的形态。
为了实现执行特定工作的硬件90的功能,控制模块f1可以通过对硬件90进行控制而使其执行所述工作。其结果,控制模块f1可以生成硬件90的控制信息或以硬件90为目标输出控制信息。
画面模块f3可以将硬件90的控制工作以视觉方式显示到显示部125。客户可以通过显示部125识别硬件90的工作以及硬件90的状态。或者,画面模块f3可以接收客户输入的控制值并传送到控制模块。
框架模块f2可以对控制模块f1与画面模块f3进行连接。
框架模块f2可以包括用于以分工协作的形态设计和实现与控制模块f1以及画面模块f3的功能对应的部分并借此达成重复使用目的的软件环境。换言之,控制模块以及画面模块可以利用相同的框架模块执行各自的功能。
控制模块f1与画面模块f3可以通过框架模块f2彼此联动。
作为一实例,当客户在显示部125中所显示的虚拟的三维空间上操作机器人时,实际的机器人根据所述操作做出对应的动作为宜。此时,需要将在显示部125上操作的机器人的动作转换成对实际的机器人做出动作所需要的各种控制值(如关节的角度变化以及角速度变化等)。所述转换,可以在框架模块上执行或在控制模块上执行。当在控制模块上执行所述转换时,框架模块可以起到将从画面模块传送过来的信息的格式转换成控制模块所要求的格式的作用。
与此同时,可以正常执行与其相反的工作为宜。即,在显示部125中所显示的虚拟的三维空间上,实时地显示出正在执行所设定的工作的机器人的动作为宜。为此,需要将实际机器人的动作转换成虚拟的三维空间上的坐标值等,而所述转换可以通过框架模块或控制模块执行。当在控制模块上执行所述转换时,框架模块可以起到将从控制模块传送过来的信息的格式转换成画面模块所要求的格式的作用。
实际上来讲,框架模块可以包括在画面模块以及控制模块中通用的如支持程序、编译器、解析程序(interpreter)库、代码库以及工具集等可用于解决方案开发的多种不同的组件。使用通用组件的画面模块以及控制模块可以对彼此兼容的信息进行收发。因此,可以将框架模块视为对画面模块与控制模块之间的不同类型的信息进行转换。
同时包括所述控制模块f1、框架模块f2以及画面模块f3的功能模块f,包括除了相当于运行环境的运行时(runtime)以及操作系统(OS,Operating System)等基本要素之外的用于向机器人赋予特定功能所需要的所有要素。赋予特定功能可以是指将达成特定功能所需要的控制信息提供到硬件90,或者是指将输出相应控制信息的功能模块f安装或搭载到如机器人、自主移动机器人(AMR)以及机械手等硬件的管理器或控制器。
通过本发明,可以达成可将功能模块从控制器110、管理器120的操作系统(OS)等基本要素分离的状态。因此,只要硬件90的制造企业提供硬件90的特性信息,则包括90的制造企业在内的不同企业都可以开发功能模块。
由不同企业开发的功能模块f可以被注册到市场服务器190。
客户可以通过管理器120的显示部125以及输入部访问市场服务器190,并从市场服务器190下载提供所需功能的功能模块。
显示部125可以包括用于以视觉方式显示出各种信息的各种显示装置。输入部可以包括用于接收客户的信息输入的如键盘、鼠标以及触摸屏等。
管理器120可以通过对功能模块进行分析而提取出画面模块、框架模块以及控制模块。
管理器120可以首先将所提取出来的画面模块f3自行安装到管理器120。借此,管理器120可以提供新下载的功能模块的监控环境。
此外,管理器120可以将所提取出来的框架模块f2以及控制模块f1传送到控制器110。当预先安装到控制器110的原有的框架模块以及原有的控制模块与新的框架模块f2以及新的控制模块f1发生冲突时,管理器120可以从控制器110删除原有的框架模块以及原有的控制模块,或请求控制器110执行所述删除工作。通常来讲,因为新添加的功能往往与硬件要素一一对应,因此与原有的功能发生冲突的可能性较高。因此,在安装新的功能模块时,对原有的功能模块进行删除处理为宜。需要注意的是,因为也可能有与硬件无关的功能,因此即使是新添加的功能也并不一定与硬件一一对应。
管理器120或控制器110可以将通过管理器120传送到控制器110的框架模块f2以及控制模块f1安装到控制器110。
通过如上所述的过程,可以搭建包括新功能的硬件的工作环境以及从新功能的角度对所述硬件90进行监控的工作环境。
此外,管理器120与控制器110可以一体形成。在如上所述的情况下,显示部125以及输入部也可以与硬件90的控制器110一体形成。
通过本发明的管理装置100,当新赋予的功能出现异常时,只需要修改功能模块中所包含的错误就可以解决所述问题。此外,各个企业并不需要开发包括与硬件90的控制相关的操作系统(OS)以及运行时等在内的所有类型的软件,只需要开发功能模块即可。因此,各个开发企业可以将全部资源投入到功能模块的开发,从而改善功能模块的品质以及错误发生率。
此外,通过以可从如控制器的操作系统(OS)、运行时以及应用程序编程接口(API)等基本要素分离的状态开发功能模块,不仅可以添加以及删除新功能,而且可以允许各种企业参与功能模块的开发。
但是,在从基本要素分离出来的功能模块中进行显示的信息的类型以及显示方式与在基本要素中进行处理的信息的类型以及显示方式可能会有所不同。为了解决如上所述的问题,在控制器110中可以追加搭载解析模块以及转换模块。
例如,解析模块可以从控制模块获取将多关节机器人的末端执行器向y轴方向移动10cm的控制信息。
解析模块可以计算出将末端执行器向y轴方向移动10cm时所需要的机器人臂的旋转角度以及旋转方向等。换言之,解析模块可以计算出执行所获取到的控制信息所需要的具体的机器人的工作信息。通过解析模块计算出的旋转角度以及动作等工作信息,可以被称之为解析模块“经过解析的控制信息”。经过解析的控制信息可以被提供到转换模块。
转换模块可以将经过解析的控制信息转换成各个制造企业的机器人(硬件)可接收的数据格式并提供到所述机器人。所述机器人可以根据从转换模块15接收到的数据旋转机器人臂,并借助于所述旋转将安装在机器人臂的端部的末端执行器向y轴方向移动10cm。
通过如上所述的解析模块以及转换模块,功能模块的开发企业并不需要掌握为了将末端执行器向y轴方向移动10cm而需要将机器人臂向哪个方向旋转多少度。各个企业只要开发出用于生成最终的控制信息,例如将末端执行器向y轴方向移动10cm的信息的控制模块和与其相关的框架模块以及画面模块即可。
接下来,将对市场服务器190、控制器110以及管理器120进行详细的说明。
图2是对市场服务器190进行图示的概要图。
因为市场服务器90执行对各个企业所开发出来的功能模块进行注册以及分发的管理功能,因此也可以被称之为“管理装置”。
市场服务器190可以包括注册部191、提供部193、收集部195、检索部197、评估部198以及升级部199。
注册部191可以注册向硬件90赋予特定功能的功能模块f。
作为一实例,注册部191可以确认登录到市场服务器190的企业是否属于具有功能模块f的注册权限的使用者。
在对企业的完整性进行验证之后,注册部191可以为企业提供向注册部191注册功能模块f的权限。
企业可以以硬件90的制造企业所公开的硬件90的特性信息、由所述制造企业提供的操作系统(OS)、运行时(runtime)模块以及应用程序编程接口(API,ApplicationProgram Interface)等为背景开发功能模块。或者,企业可以按照硬件90的制造企业所提供的指南开发功能模块。例如,企业可以开发包括控制模块f1、框架模块f2以及画面模块f3的功能模块f。
所述功能模块f可以通过注册部191进行注册并向硬件90的客户公开。
提供部193可以将预先注册的功能模块的模块信息提供到管理器120。
在注册部191中可以注册有多个功能模块。客户需要从注册到注册部191的多个功能模块中,取舍选择提供自己所需功能的功能模块。
提供部193可以将与功能模块的信息对应的模块信息提供到管理器120而不是将功能模块本身提供到管理器120,以便于客户进行取舍选择。
模块信息可以包括功能模块的识别信息、功能模块所支持的硬件90的识别信息、功能模块所提供的功能信息以及可适用功能模块的工作信息中的至少一个。
图3是对显示到管理器120的显示菜单进行图示的概要图。
提供部193可以以多种显示格式提供模块信息。
作为一实例,提供部193可以将以平铺(tiled)菜单结构显示模块信息的显示菜单tm提供到管理器120。管理器可以通过显示部125对显示菜单tm进行显示。
提供部193可以在选择构成所述平铺菜单的特定磁贴时,将配置在所选择的特定磁贴上的特定功能模块的功能分类结果(功能模块所提供的功能的信息分类)以及详细信息中的至少一个追加提供到管理器120。详细信息可以包括可适用功能模块的工作信息、功能模块的具体工作方法以及工作顺序等。
图3的显示菜单tm为客户的检索结果,显示出了7个功能模块。7个功能模块分别包括缩略图,而且在所述缩略图中可以包括如四边形等封闭曲线形状的磁贴。
当客户从通过显示菜单tm显示出来的7个磁贴即t1、t2、t3、t4、t5、t6以及t7中选择第一磁贴t1时,可以在显示菜单tm上显示出第一磁贴t1的详细信息。在显示菜单tm中,可以配备用于对与客户所选择的磁铁对应的功能模块的详细信息进行显示的详细菜单it。
收集部195可以对安装到管理器120的第二扩展应用程序编程接口26(API,APplication Programming Interface)的信息进行收集。
应用程序编程接口(API)是指在操作系统(OS)与应用程序之间的通信中使用的语言或消息格式。应用程序编程接口(API)可以为了在程序内运行而通过调用链接到特定例程的函数的方式实现。因此,一个应用程序编程接口(API)可以为了通过调用函数来执行所请求的工作而包括已存在或需要连接的多个程序模块或例程。
在扩展应用程序编程接口(API)中,可以添加在默认搭载的应用程序编程接口(API)中所不足的要素。扩展应用程序编程接口(API)可以由开发功能模块的企业或硬件90的制造企业进行开发。
检索部197可以从预先注册的多个功能模块中检索包括使用所述第二扩展应用程序编程接口26(API)的第二动态链接库20的第二功能模块。
动态链接库(Synamic Linking Library)作为操作系统自带的功能,可以是用于将软件的例程(为了使计算机运行特定功能而配备的一系列指令集)分成多个文件并存储在磁盘,从而只将所需要的部分载入到运行内存中进行使用的文件。
为了功能模块的正常工作,可能需要平台(应用程序编程接口(API)、运行时以及库)所提供的功能之外的其他功能。通过动态链接库以及扩展应用程序编程接口(API),可以提供功能模块所需要的软件功能。
例如,对于后续说明的转换模块15来讲,需要转换用动态链接库即机器人操作系统程序包(ROS package)。
转换用动态链接库可以使转换模块15通过扩展应用程序编程接口(API)将在解析模块13中解析的控制运算内容转换成其他公司的硬件90指令。借此,可以与制造企业无关地对各种硬件90进行控制。
提供部193可以将通过检索部197检索到的第二功能模块的列表提供到管理器120。
通过检索部197以及提供部193,可以对包括使用第二扩展应用程序编程接口26(API)的第二动态链接库20的第二功能模块进行检索,并将检索结果通过管理器120提供给客户。
通过本实施例,可以从多个功能模块中至少将可在管理器120上运行的功能列表提供给客户。
此时,筛选提供不仅可以在管理器120上运行,还可以在控制器110上运行的功能模块为宜。
为此,收集部195可以对安装到通过管理器120进行管理的控制器110的第一扩展应用程序编程接口(API,APplication Programming Interface)16的信息进行收集。所收集到的第一扩展应用程序编程接口16(API)的信息可以用于查找可利用第一扩展应用程序编程接口(API)运行的模块。
具体来讲,检索部197可以从预先注册的多个功能模块中检索包括使用所述第一扩展应用程序编程接口16(API)的第一动态链接库10的第一功能模块。
提供部193可以将通过检索部197检索到的第一功能模块的列表提供到管理器120。
通过检索部197以及提供部193,可以对包括使用第一扩展应用程序编程接口16(API)的第一动态链接库10的第一功能模块进行检索,并将检索结果通过管理器120提供给客户。第一功能模块可以相当于至少可在控制器110上运行的功能模块。
作为功能模块的构成要素,可以由安装到控制器110的控制模块和框架模块以及安装到管理器120的画面模块构成一组。因此,为了功能模块的正常工作,在大部分情况下需要同时满足第一功能模块以及第二功能模块的条件。换言之,功能模块同时包括第一动态链接库10以及第二动态链接库20为宜。
客户很难对注册到市场服务器190的多个功能模块的性能、可靠性、便利性以及错误(bug)等逐一进行试验。考虑到如上所述的实际情况,可以使用评估部198。
评估部198可以利用以所述功能模块为对象的客户的评估分数、下载次数以及工程便利性中的至少一个为功能模块分配分数。
提供部193可以在提供到控制器110的模块信息为多个时根据分配到各个功能模块的分数决定其优先顺序。
提供部193可以将按照优先顺序依次进行排序的多个模块信息提供到管理器120。
通过本实施例,客户可以接收其他客户的使用满意度较高的功能模块的排序信息。
收集部195可以对预先安装到管理器120的特定功能模块的安装信息进行收集。
此时,升级部199可以通过在安装信息与预先注册的功能模块的模块信息之间进行比较而对所述特定功能模块进行升级。
图4是对控制器110进行图示的概要图。
因为控制器110执行安装功能模块以及删除所安装的功能模块的功能,因此也可以被称之为对功能模块进行管理的“管理装置”。
控制器110可以包括第一运行部111以及第二管理部123。
在第一运行部111中可以搭载向硬件90赋予特定功能的功能模块。第一运行部111可以通过运行功能模块而对硬件90进行控制。第一运行部111可以包括用于搭载和运行功能模块的各种处理器。
第一管理部113可以对搭载到第一运行部111的功能模块中的可发生变动的可变模块进行管理。第一管理部113可以与第一运行部111分开形成。或者,第一管理部113可以相当于搭载到第一运行部111并运行的功能模块中的一个。
搭载到第一运行部111的功能模块,可以分为可变模块b1以及固定搭载到第一运行部111的固定模块a1。
第一管理部113可以在维持固定模块a1不变的状态下添加或删除可变模块b1。固定模块a1可以包括在将可变模块b1添加到控制器或从中删除时留在控制器上继续工作的模块。其中,需要注意的是,可以对固定模块a1进行升级。
此时,固定模块a1可以包括:第一通信模块11,用于与管理器120或市场服务器190进行通信;解析模块13,用于对在控制模块上生成的硬件90的控制信息进行解析;以及,转换模块15,用于将通过解析模块13解析出来的控制信息转换成与硬件兼容90的状态。
可变模块b1可以包括用于生成控制信息的控制模块f1以及框架模块f2中的至少一个。框架模块f2可以对包括如图3所示的显示菜单tm的用户界面的画面模块f3与控制模块f1进行连接或联动。
第一通信模块11可以与管理器120或市场服务器190进行通信。在第一运行部111中,可以配备与管理器120或市场服务器190以有线无线方式进行通信的通信装置。此时,第一通信模块11可以根据通信装置所要求的通信格式对各种信息进行转换或对通信装置进行控制。
第一通信模块11可以将从管理器120接收到的或从市场服务器190直接获取到的控制模块f1或框架模块f2传送到第一管理部113。此时,第一管理部113可以将控制模块f1或框架模块f2安装到第一运行部111。根据需要,第一管理部113可以删除在安装所述控制模块或框架模块之前预先安装的控制模块以及框架模块。
第一通信模块11可以将从管理器120接收到的控制指令传送到预先安装的控制模块。控制模块可以根据控制指令生成对硬件90进行控制的控制信息以及控制信号。所述控制信息可以被传送到在上述内容中进行说明解析模块13。
解析模块13可以对硬件90的控制信息进行解析或运算。在控制模块中生成的控制信息是由各个企业指定,因此可能会与硬件90的制造企业所要求的信息之间存在差异。例如,在控制模块中生成的控制信息可以是将机器人的末端执行器向所设定的方向移动所设定的距离。此时,为了将控制信息适用到实际的机器人,需要对用于完成所述工作的各个关节的动作做出定义。此时,将末端执行器向所设定的方向移动所设定的距离的控制信息,可以通过解析模块13解析成将安装有末端执行器的关节旋转所设定的角度的对机器人友好且实际的信息。
实际上来讲,解析模块13由设计硬件90的制造企业提供为宜。因此,解析模块13采用无法由企业进行变更的固定模块a1的级别为宜。
转换模块15可以将通过解析模块13解析出来的控制信息转换成与硬件90兼容的状态。例如,将安装有末端执行器的关节旋转所设定的角度的控制信息,可以根据各个制造企业的硬件90表示成不同的格式。
在向第一硬件90传送所述控制信息的情况下,需要将所述控制信息转换成第一硬件90所支持的第一格式。同理,在向第二硬件90传送所述控制信息的情况下,需要将所述控制信息转换成第二硬件90所支持的第二格式。如上所述的格式转换,可以由转换模块15执行。此时,转换模块15可以使用在上述内容中进行说明的“转换用动态链接库”。
其结果,转换模块15可以提供通过第三方程序对解析模块13的控制运算结果进行转换并对第三方的硬件90进行控制的环境。
通过解析模块13以及转换模块15,硬件90的制造企业之外的其他企业所开发的控制模块也可以正常地对所述硬件90进行控制。或者,可以提供即使是在将所述硬件90变更为其他制造企业的硬件的情况下也可以利用原有的控制信息对其他制造企业的硬件进行控制的环境。
第一管理部113可以在维持第一通信模块11、解析模块13以及转换模块15不变的状态下向第一运行部111添加其他功能模块或删除搭载到第一运行部111的其他功能模块。从另一方面上来讲,可以解释为第二管理部123并不具有删除包括第一通信模块11、解析模块13以及转换模块15的固定模块a1的权限。
图5是对搭载到控制器110的软件结构进行图示的概要图。
在第一运行部中111,可以追加搭载第一操作系统(OS,Operating System)17、机器人操作系统(OS,Operating System)以及向第一操作系统17(OS)或所述机器人操作系统(OS)提供实时性的实时操作系统(RTOS)19中的至少一个。
在第一运行部111中,可以追加搭载相当于功能模块的运行环境的第一运行时(rumtime)模块以及用于对功能模块与第一运行时模块12进行连接的第一应用程序编程接口(API,Application Program Interface)14中的至少一个。
所述第一操作系统17(OS)、机器人操作系统(OS)、实时操作系统(OS)、第一运行时模块12以及第一应用程序编程接口14可以相当于一种固定模块。
在第一运行部111中,可以搭载第一通信模块11、解析模块13、转换模块15、控制模块f1、框架模块f2、第一运行时模块12、第一应用程序编程接口14(API)、第一扩展应用程序编程接口16(API)以及第一动态链接库10。控制模块f1以及框架模块f2可以包括第一扩展应用程序编程接口16(API)以及第二动态链接库20,或与第一扩展应用程序编程接口16(API)以及第二动态链接库20分开形成。
第一管理部113可以将区别于控制模块f1以及框架模块f2的第一扩展应用程序编程接口16(API)或第一动态链接库10添加到第一运行部111或从第一运行部111删除。
第一运行时模块12可以提供功能模块f(具体来将为构成功能模块f的框架模块f2以及控制模块f1)的运行环境。第一应用程序编程接口14(API)可以对功能模块f(具体来将为构成功能模块f的框架模块f2以及控制模块f1)与第一运行时模块12进行连接或联动。
第一动态链接库10可以以供硬件90的制造企业控制硬件90为目的进行开发。第一扩展应用程序编程接口16(API)可以对第一动态链接库10与第一运行时模块12进行连接或联动。
在控制模块f1中,可以包括通过对硬件90进行控制而使得硬件90执行特定功能的控制信息。在框架模块f2中,可以包括用于对画面模块与控制模块进行联动的信息。此时,第一管理部113可以将画面模块f3、框架模块f2以及控制模块f1中的框架模块f2以及控制模块f1搭载到第一运行部111。
第一通信模块11可以从管理器120接收控制模块f1以及框架模块f2。第一管理部113可以将通过第一通信模块11接收到的控制模块f1以及框架模块f2安装到第一运行部111。
图6是对管理器120进行图示的概要图。图7是对搭载到管理器120的软件结构进行图示的概要图。
因为管理器120执行在对包含于功能模块中的具体模块进行区分和提取之后安装其中的一部分并将剩余的一部分传递到控制器110的管理功能,因此也可以被称之为“管理装置”。
管理器120可以包括第二运行部121、第二管理部123以及显示部125。
第二管理部123可以获取向硬件90赋予特定功能的功能模块f。
第二管理部123可以对包含于从市场服务器190下载下来的功能模块f中的画面模块f3、框架模块f2以及控制模块f1进行区分。
第二运行部121可以显示功能模块f中呈现特定功能的用户界面。
在第二运行部中,可以搭载与第一通信模块11进行通信的第二通信模块21以及通过第二管理部123提取出来的画面模块f3。管理器120可以通过预先搭载的第二通信模块21与控制器120进行通信。第二通信模块21可以与控制器110对硬件90与用户界面之间的联动信息进行收发。
第二管理部123可以通过第二通信模块21将控制模块f1以及框架模块f2传递到第一管理部113。
第一管理部113可以将从第二管理部123传送过来的控制模块f1以及框架模块f2安装到第一运行部111。
画面模块f3可以将通过框架模块f2与控制模块f1进行联动的用户界面显示到管理器120的显示部125。借此,可以在如显示屏等显示部125上显示用户界面(UI)。
第一通信模块11以及第二通信模块21可以对用户界面与控制模块f1之间的联动信息进行收发。
此外,第一通信模块11以及第二通信模块21可以一体形成。此外,第一运行部111以及第二运行部121可以一体形成。第一管理部113以及第二管理部123可以一体形成。
在第二运行部121中,可以搭载第二操作系统(OS,Operating System)27(例如,iOS、Windows以及MacOS等)、相当于功能模块f的运行环境的第二运行时(runtime)模块以及用于对功能模块f与第二运行时模块22进行连接的第二应用程序编程接口(API,Application Program Interface)24。
第二管理部123可以从功能模块f提取出提供用户界面的画面模块f3。
第二管理部123可以在维持第二操作系统27(OS)、第二运行时模块22以及第二应用程序编程接口24(API)的状态下,将画面模块f3安装到第二运行部121或从第二运行部121删除。此时,第二操作系统27(OS)、第二运行时模块22以及第二应用程序编程接口24可以相当于一种固定模块a2。与此相反,画面模块f3可以相当于可变模块b2。
第二管理部123可以将功能模块f分为第一模块以及第二模块。
第二模块,可以包括:画面模块f3,包括用户界面;模拟模块g1,用于生成硬件90的模拟环境;元模块g2,用于对画面模块f3与模拟模块g1进行连接;教学模块g3,用于生成硬件90的教学(teaching)信息;以及,空间整合模块g4,用于提供增强现实;中的至少一个。模拟模块g1、元模块g2、教学模块g3以及空间整合模块g4可以相当于可变模块b2。
第一模块,可以包括:控制模块f1,用于处理通过对硬件90进行控制而使得硬件90执行特定功能的控制信息;以及,框架模块f2;包括用于对画面模块f3与控制模块f1进行联动的信息;中的至少一个。
第二管理部123可以将第一模块提供到硬件90的控制器110。
第二管理部123可以将第二模块安装到第二运行部121或删除安装到第二运行部121的第二模块。换言之,第二管理部123可以将包含于功能模块中的要素分为需要提供到控制器110的第一模块以及需要安装到管理器120的第二模块。
再次对第二管理部123的工作进行说明,第二管理部123可以从功能模块f提取出包括用户界面的画面模块f3。
第二管理部123可以将画面模块f3安装到第二运行部121。
第二运行部121可以通过运行利用第二管理部123安装并搭载的画面模块f3而将用户界面(UI)显示到显示部125。
在第二运行部121中,可以搭载第二通信模块21、画面模块f3、第二运行时(runtime)模块、第二应用程序编程接口(API,Application Program Interface)24、第二扩展应用程序编程接口26(API)以及第二动态链接库20。画面模块f3可以包括第二扩展应用程序编程接口26(API)以及第二动态链接库20,或与第二扩展应用程序编程接口26(API)以及第二动态链接库20分开形成。
第二管理部123可以将区别于画面模块f3的第二扩展应用程序编程接口26(API)或第二动态链接库20添加到第二运行部121或从第二运行部121删除。
第二通信模块21可以与控制器110或市场服务器190以有线无线方式进行通信。
在通过第二运行部121运行画面模块f3时,可以将用户界面显示到显示部125。
第二运行时模块22可以提供功能模块f(具体来将为构成功能模块f的画面模块f3)的运行环境。运行时(runtime)模块可以是指为了对程序进行管理而由特定的编译器或虚拟机使用的基础代码的库或程序。
第二应用程序编程接口24(API)可以对功能模块f与第二运行时模块22进行连接。
第二动态链接库20可以是以供硬件90的制造企业控制硬件90为目的进行开发的程序。
第二扩展应用程序编程接口26(API)可以对第二动态链接库20与第二运行时模块22进行连接。
图8是对通过显示部125显示的用户界面的一实例进行图示的概要图。
作为一实例,图3中所显示的显示菜单tm可以是在选择名为“Jog+”的功能模块f时的画面。
所述Jog+模块可以提供客户利用弹出画面方便地移动机器人的微动功能。通过管理器120连接到市场服务器190的客户可以从市场服务器190所提供的平铺菜单中选择Jog+模块并进行安装。
在安装时,包含于Jog+模块中的画面模块可以在管理器120中通过第二管理部123安装到管理器120。可以将包含于Jog+模块中的框架模块以及控制模块通过第二通信模块21传送到控制器110,并通过控制器110的第一管理部113安装到控制器110。在完成安装之后,在相当于显示部125的显示菜单的用户界面上可以显示出名为“Jog+”的新图标。
当客户选择并运行通过管理器120的显示部125显示的“Jog+”时,可以将如图8所示的包括用于对机器人进行控制的菜单的用户界面(UI)显示到显示部125。
通过选择包含于所述用户界面(UI)中的“+”以及“-”等,可以对构成机器人的机器人臂(arm)的关节的角度进行调节。“+”等控制图标的选择信息可以通过第二通信模块21与安装到控制器110的框架模块f2以及控制模块f1进行联动。通过所述控制模块f1,可以生成以实际的机器人为目标的控制信息。所述控制信息可以在通过解析模块13进行解析并通过转换模块15进行转换之后提供到机器人。接收到通过转换模块15进行转换的控制信息的实际的机器人,可以按照所述控制信号进行移动。
图9是对本发明的管理装置100的工作进行图示的概要图。图10是对在适用本发明的管理装置100的环境下,硬件90的制造企业与功能模块的开发企业之间的业务范围进行图示的概要图。
如上所述的管理装置100,可以包括用于显示硬件90控制用的用户界面的管理器120。
管理器120可以从通过市场服务器190获取到的功能模块f提取出画面模块f3以及控制模块f1。
管理器120可以在维持自身配备的第二应用程序编程接口24(API)不变的状态下将画面模块f3搭载到所述第二应用程序编程接口24(API)。如上所述的第二应用程序编程接口24(API),可以相当于与功能模块的添加以及删除无关地维持固定状态的固定模块a。
管理器120可以将需要搭载到预先安装在硬件90的控制器110的第一应用程序编程接口14(API)上的控制模块f1传送到控制器110。
通过如上所述的管理器120,可以提供将包括控制模块f1、框架模块f2以及画面模块f3的功能模块f以管理器120或控制器110为对象进行添加或删除的环境。画面模块、框架模块以及控制模块可以相当于在赋予新功能时添加以及删除的可变模块b。
固定模块a可以分为安装到控制器110的a1以及安装到管理器120的a2。可变模块b可以分为安装到控制器110的b1以及安装到管理器120的b2。
当相当于机器人的制造企业的“Robotics”提供外围设备以及功能扩展开发环境(Platform&SDK)时,各种外围设备企业可以开发出向“Robotics”所制造的机器人赋予新功能的功能模块并进行验证。
“Robotics”可以对各个企业开发出的接口(Interface)功能即用户界面(UI)以及功能模块等进行重新验证,并核准验证结果没有问题的功能模块。此外,“Robotics”可以与提供所核准的功能模块的企业建立合作关系(注册伙伴关系(mate))。
各个企业可以处理如现场索赔(Field Claim)以及要求事项等现场问题。
如上所述的业务范围,可以认为是硬件90的制造企业将功能模块的开发、验证以及现场处理外包给了外围设备企业以及软件企业等。其结果,硬件90的制造企业可以更加专注于各种硬件90的开发。此外,各个企业可以专注于对自己所开发的功能模块进行改善以及升级,并不需要关心硬件90的开发。
图11是对比较实施例的工作进行图示的概要图。图12是对比较实施例的环境下的硬件90制造企业的业务范围进行图示的概要图。图13是对比较实施例的软件结构进行图示的概要图。
在比较实施例中,因为并没有与基础程序分离且包括画面模块、框架模块以及控制模块的功能模块本身,因此无法形成管理装置100。
在比较实施例中,因为没有包括画面模块、框架模块以及控制模块的功能模块的概念,因此在由硬件90的控制组件101上将会搭载由制造企业提供的在机器人操作系统(OS)、运行时模块以及应用程序编程接口(API)上融合特定功能的整体状态的基础程序。其结果,在添加新功能的情况下,需要执行对机器人操作系统(OS)、运行时模块乃至于应用程序编程接口(API)进行修改的工作。此外,配备有显示屏的管理组件102同样可以以如Windows等操作系统(OS)与Java虚拟机以及特定功能融合成一体的形态构成。
因此,因为无法向安装到机器人的基础程序中添加或删除功能部分,因此不了解与安全以及稳定性相关的基础程序的代码的其他企业无法进行功能模块的开发。其结果,需要由硬件90的制造企业全权负责新功能的添加,这意味着除了硬件90的开发之外,还需要将资源分散到新功能的开发。
换言之,相当于硬件90的制造企业的“Robotics”需要掌握各种外围设备以及功能要求事项,并对开发出符合所述外围设备/要求事项的功能的必要性进行检讨。此外,在已经认定开发必要性的情况下,还需要直接开发出接口/功能用户界面(UI)并对其进行验证。对于已经完成验证的功能模块,可以再次进行验证以及核准。此外,“Robotics”还需要亲自处理现场的各种问题。其结果,在比较实施例中,“Robotics”需要亲自执行与新功能的添加相关的前期调查、客户沟通、开发、验证以及完善等所有步骤。因此,“Robotics”为了添加新功能而需要耗费大量的资源,而且需要很长的时间添加新功能。此外,在添加功能的过程中需要对整个基础程序进行修改,因此偶尔发生错误的可能性也会随之增加。因此,需要耗费大量的时间对如上所述的错误进行检测和修复。
而从客户的角度上来讲,不仅需要承受为了添加新功能而等待很长时间的不便,还有可能因为添加新功能时所有发的各种错误而导致对“Robotics”的信赖度下降的问题。
比较实施例的基础程序由上层控制器(负责画面功能)以及下层控制器(负责框架以及控制功能)等两个软件进程构成。
基础程序分成由上层控制器(Linux用)即“上层控制器1”以及下层控制器构成的第一形态,或由上层控制器(微软所提供的Windows用)即“上层控制器2”以及下层控制器构成的第二形态提供给客户。
所述控制器作为Java应用程序(Java App)在Java虚拟机(JVM,Java VirtualMachine)上进行驱动,而下层控制器为了实时性而在实时操作系统(RTOS,Real TimeOperating System)19上进行驱动。控件库由静态库构成,以便于在构建下层控制器是包含在其中。
在比较实施例中,当对功能进行添加或变更时,可以分为只有上层控制器发生变更的情况(三角形)、只有下层控制器发生变更的情况(四边形)以及只有控件库发生变更的情况(圆形)。实际上,可能发生的变更包括所区分的各个情况的组合(2^3=8种)。目前是针对所有情况发布对上层控制器/下层控制器整体进行捆绑的软件版本。
只要基础程序中的某一行发生变更,就需要重新生成并发布整个软件,因此客户需要等待较长的时间且无法使用各种功能。
因为变更而导致的问题(错误等)也需要由制造企业亲自进行修改,从而导致如上所述的制造企业的负担增加以及客户使用不便的问题。
在比较实施例中,因为如源代码安全以及版本管理等方面的问题,并没有可以由外部企业开发并添加新功能的方法,只能由硬件90的制造企业亲自添加新功能。
图14是对本发明的管理方法进行图示的流程图。
图14中的管理方法可以通过图1中的管理装置100或图6中的管理器120执行。
管理方法可以包括获取步骤S510、提取步骤S520、安装步骤S530以及提供步骤S540。获取步骤S510、提取步骤S520、安装步骤S530以及提供步骤S540可以通过第二管理部123执行。
在获取步骤S510中,可以从市场服务器190获取功能模块f。
在提取步骤S520中,可以提取出包含于功能模块f中的画面模块f3以及控制模块f1。
在安装步骤S530中,可以将画面模块搭载到预先安装的第二应用程序编程接口24(API)。
在提供步骤S540中,可以将需要搭载到预先安装在硬件90的控制器110的第一应用程序编程接口14(API)上的控制模块传送到控制器110。
图15是对安装功能模块的过程进行图示的流程图。
通过管理装置,可以由多个企业开发功能模块并将所开发出的功能模块上传到市场服务器。上传到市场服务器的功能模块可以下载并搭载到由不同的机器人制造企业所制造的机器人。
在步骤S501中,各个企业可以利用制造企业所提供的例如DART-SDK等功能开发工具开发功能模块f。DART-SDK可以包括由应用程序编程接口(API)以及工具(tool)构成的功能模块开发套件。
在步骤S502中,企业可以将所开发出的功能模块f上传到相当于市场服务器190的“DART-Store”。
在步骤S511中,客户可以通过相当于管理器120的TP(图15中的“TP”代表管理器)访问DART-Store并从平铺菜单中检索功能模块f。
在步骤S512中,当客户从平铺菜单选择特定功能模块时,可以通过相当于第二管理部123的“管理模块”安装功能模块。
在步骤S521中,管理模块可以从功能模块提取出画面模块、功能模块以及框架模块。
在步骤S531中,管理模块可以将包含于功能模块中的画面模块安装到控制器110。管理模块可以将第一扩展应用程序编程接口16(API)以及第一动态链接库10追加安装到控制器110。管理模块可以将功能模块的信息、框架模块以及控制模块传送到相当于第二通信模块21的通信模块。
通信模块可以将功能模块的信息、框架模块以及控制模块传送到控制器110。
在步骤S541中,可以通过配备于控制器110的相当于第一通信模块11的通信模块(控制器110)接收功能模块的信息、框架模块以及控制模块。
在步骤S551中,相当于第一管理部113的“管理模块(控制器110)”可以判断从管理器120接收到的信息中是否包括框架模块以及控制模块。
当判断结果为包括框架模块以及控制模块时,在步骤S552中,管理模块(控制器110)可以将框架模块以及控制模块安装到控制器110。管理模块(控制器110)可以根据需要将第一扩展应用程序编程接口16(API)以及第一动态链接库10追加安装到控制器110。
接下来,在步骤S553中,管理模块(控制器110)可以对从管理器120接收到的功能模块的信息进行存储。
当判断步骤S551中的判断结果为从管理器120接收到的信息不包括框架模块以及控制模块时,在步骤S553中,可以直接对功能模块的信息进行存储。
在步骤S554中,在将框架模块以及控制模块安装到控制器110并将功能模块的信息存储到控制器110之后,管理模块(控制器110)可以将安装成功消息传送到通信模块(控制器110)。通信模块(控制器110)可以将安装成功消息传送到通信模块。
在步骤S555中,通信模块可以将安装成功消息传送到管理模块。管理模块可以通过管理器120的显示部125显示安装成功消息。
图16是对删除功能模块的过程进行图示的流程图。
在步骤S571中,可以通过相当于管理器120的TP显示出安装到控制器110的功能模块的平铺菜单并选择特定功能模块。
在步骤S572中,当从所选择的功能模块的相关菜单中选择“删除”时,相当于第二管理部123的管理模块可以向相当于第二通信模块21的通信模块请求所述功能模块的信息。功能模块的信息可以包括所述功能模块的识别信息。利用所述识别信息,可以识别或掌握安装到控制器110的功能模块。
在步骤S573中,可以通过通信模块将所述请求信息传送到相当于第一通信模块11的通信模块(控制器110)。
在步骤S574中,通过通信模块(控制器110)接收到请求信息的管理模块(控制器110)可以读取预先存储的功能模块的信息并传送到通信模块。
通信模块可以将功能模块的信息传递到管理模块。通过通信模块将功能模块的信息传送到管理模块,可以意味着所述功能模块被安装到控制器110的状态。在步骤S575中,管理模块可以从管理器120删除所述功能模块的画面模块。
在步骤S576中,管理模块可以将删除成功消息传送到通信模块(控制器110)。
在步骤S577中,当通信模块(控制器110)接收到删除成功消息时,可以将所接收到的删除成功消息传送到管理模块(控制器110)。
在步骤S578中,管理模块(控制器110)可以判断包括所删除的画面模块的功能模块或请求删除的功能模块中是否包括框架模块以及控制模块。
当判断结果为包括框架模块以及控制模块时,在步骤S579中,管理模块(控制器110)可以删除所述框架模块以及控制模块。管理模块(控制器110)可以根据需要删除第一扩展应用程序编程接口16(API)以及第一动态链接库10。
在步骤S580中,管理模块(控制器110)可以在删除框架模块以及控制模块之后删除预先存储的功能模块的信息(识别信息)。
在步骤S581中,管理模块(控制器110)可以将框架模块、控制模块以及识别信息的删除消息传送到通信模块(控制器110)。
在步骤S582中,通信模块(控制器110)可以将所述删除消息传送到通信模块,而通信模块可以将删除消息传送到管理模块。管理模块可以通过显示部125显示出功能模块的删除消息。
图17是对适用本发明之实施例的计算装置进行图示的示意图。图17中的计算装置TN100,可以是在本说明书中所记述的装置(例如管理装置100、市场服务器190、控制器110以及管理器120等)。
在图17的实施例中,计算装置TN100可以包括至少一个处理器TN110、收发信装置TN120以及存储器TN130。此外,计算装置TN100还可以包括存储装置TN140、输入接口装置TN150以及输出接口装置TN160等。包含于计算装置TN100中的构成要素可以通过总线(bus)TN170连接并彼此进行通信。
处理器TN110可以执行存储到存储器TN130以及存储装置TN140中的至少某一个的程序指令(program command)。处理器TN110可以是指中央处理装置(CPU:centralprocessing unit)、图形处理装置(GPU:graphics processing unit)或用于执行适用本发明之实施例的方法的专用处理器。处理器TN110可以实现与本发明的实施例相关的内容中所记述的步骤、功能以及方法等。处理器TN110可以对计算装置TN110的各个构成要素进行控制。
存储器TN130以及存储装置TN140可以分别对与处理器TN110的工作相关的各种信息进行存储。存储器TN130以及存储装置TN140可以分别由易失性存储介质以及非易失性存储介质中的至少一个构成。例如,存储器TN130可以由只读存储器(ROM:read only memory)以及随机访问存储器(RAM:random access memory)中的至少一个构成。
收发信装置TN120可以对有线信号或无线信号进行传送或接收。收发信装置TN120可以通过连接到网络而进行通信。
此外,本发明的实施例并不是只能通过上述说明的装置和/或方法实现,而是还可以通过用于实现与本发明之实施例的构成对应的功能的程序或存储有所述程序的存储介质实现,本发明所属技术领域的一般的技术人员可以通过所述实施例的记载轻易地实现本发明。
在上述内容中,对本发明的实施例进行了详细的说明,但是本发明的权利要求范围并不因此而受到限定,一般的技术人员利用在所附的权利要求书中定义的本发明之基本概念做出的各种变形以及改良形态也包含于本发明的权利要求范围之内。
- 一种无需可信第三方支持的云端数据安全删除系统与方法
- 一种无需可信第三方支持的云端数据安全删除系统与方法