具有分层架构的实时设备控制系统及利用其的实时机器人控制系统的制作方法

文档序号:14641268发布日期:2018-06-08 20:19阅读:180来源:国知局
具有分层架构的实时设备控制系统及利用其的实时机器人控制系统的制作方法

本发明涉及实时设备控制系统及实时机器人系统。更加具体地,涉及可以准确地进行实时处理,易于开发及调试,且硬件方面稳定地具有分层架构的实时设备控制系统及利用其的实时机器人控制系统。



背景技术:

目前,韩国国内和国外很多机构正在积极开展对机器人的研究。机器人大致可分为硬件和软件,并由它们集成而形成一个系统。

构成机器人硬件的部件可包括用于移动机器人关节的驱动器和控制器、电池和电源控制器、通信模块、传感器、机器人的外骨骼、电路、电池等。根据各自所需的机器人的特性来组合这些部件,从而形成机器人硬件平台。

各个部件也根据设计目的在大小、外形、性能、制造商等方面均有所不同,最终被制成无数类型的机器人硬件平台。实际上,全世界存在很多种机器人。因此,调查通用机器人平台的性能和功能以及开发具有代表性的标准机器人平台的研究正在世界各地展开。

并且,如同存在开发如上所述的标准机器人平台的在硬件方面的研究,软件方面也进行着对可通用的标准机器人软件的研究。用于控制如属于机器人硬件的驱动控制器或传感器等机器人设备的软件、用于帮助轻松开发机器人动作的软件、通过确定任务之间的关系来帮助机器人操作的软件、用于提供导航或视觉解决方案的软件等存在多种软件种类,标准软件的开发也在与标准硬件的开发类似的目的下进行研究。

但是,在所述标准软件的开发过程中,实际情况为很难提供用于解决多名开发人员共同需求的事项的标准解决方案。

尤其,随着硬件方面变更事项的增多,不仅开发人员之间的协作变得困难,而且因由多人同时开发的功能或进程而可能发生重复处理的问题。由此,存在实时同步困难,硬件的稳定性或鲁棒性可能下降,开发时间也很长的问题。

并且,在硬件开发方面,为了维持与所述标准软件的兼容性,需要附加追加性的功能变更,因而存在驱动性能可能下降的问题。



技术实现要素:

技术问题

本发明用于解决如上所述的问题,本发明的目的在于,提供如下的具有分层架构的实时设备控制系统及利用其的实时机器人控制系统,即,在需要实时性的机器人控制系统中,既可使与同一硬件的控制及处理有关的多个独立进程共存,又可使与此相关的机器人的动作稳定地得到控制,并且可提供鲁棒性及扩展性。

技术手段

用于解决如上所述问题的本发明实施例的实时设备控制系统包括:第一层,包括一个以上的控制对象设备;第二层,位于所述第一层的上层,包括用于直接控制所述控制对象设备的设备控制模块;第三层,位于所述第二层的上层,包括与所述设备控制模块相连接的共享存储器;第四层,位于所述第三层的上层,包括利用所述共享存储器来执行独立进程的一个以上的代理程序;以及,第五层,位于所述第四层的上层,根据用户指令控制所述一个以上的代理程序。

并且,在用于解决如上所述问题的本发明实施例的系统中,实时机器人控制系统包括:一个以上的控制对象设备,与机器人的关节或传感器相对应;以及,控制系统,通过与所述一个以上的控制对象设备相连接来操作所述控制对象设备,所述控制系统包括:第一层,包括一个以上的控制对象设备;第二层,位于所述第一层的上层,包括用于直接控制所述控制对象设备的设备控制模块;第三层,位于所述第二层的上层,包括与所述设备控制模块相连接的共享存储器;第四层,位于所述第三层的上层,包括利用所述共享存储器来执行独立进程的一个以上的代理程序;以及第五层,位于所述第四层的上层,根据用户指令控制所述一个以上的代理程序,所述控制系统利用所述第一层至第五层中的相邻层之间的通信来对所述一个以上的控制对象设备进行操作。

另一方面,用于解决如上所述问题的方法可通过用于在计算机中运行所述方法的程序及记录有所述程序的记录介质来实现。

技术效果

根据本发明的实施例,提供具有相互独立进程的多个代理程序和用于对通过所述多个代理程序的动作而生成的参考值进行存储的共享存储器,并提供利用所述参考值来控制所述硬件设备的额外的设备控制模块,从而在需要实时性的机器人控制系统中,不仅可使对于同一硬件进行控制的多个独立进程共存,而且可使与此相关的机器人的动作稳定地得到控制。

根据与此相关的本发明的实施例,即使独立开发各个代理程序,也可通过共享存储器来合成及筛选参考值,从而可减少相互冲突的可能性,并可确保稳定的实时性。并且,当发生错误时,可容易对代理程序进行更换及实时调试等,从而可赋予协作便利性及扩展性。

并且,根据本发明的实施例,提供各个设备、设备控制模块、共享存储器及代理程序之间层化的架构,从而具有可通过受到控制的系统来维持稳定化且系统化的系统的效果。

附图说明

图1为简要示出本发明实施例的整体系统的概念图。

图2为用于说明本发明实施例的机器人控制系统的控制方法的流程图。

图3至图4为用于说明本发明实施例的共享存储器与系统之间的关系的图。

图5为用于说明本发明实施例的设备控制模块与代理程序之间的数据交换的图。

图6为用于说明本发明实施例的设备控制模块的框图。

图7为用于说明本发明另一实施例的机器人控制系统的控制工作的流程图。

图8为用于说明本发明实施例的层结构及工作环境的图。

具体实施方式

以下内容仅例示本发明的原理。因此,本发明技术领域的普通技术人员可发明出虽未在本说明书中明确说明或示出但体现本发明的原理并包含于本发明的概念和范围内的多种装置。并且,应当明确理解,本说明书中列出的所有条件术语及实施例原则上以理解本发明概念作为目的,而且并不局限于以如上所述的方式专门列出的实施例及状态。

并且,应当理解,不仅本发明的原理、观点及实施例,列举出特定实施例的所有详细说明包括这种事项的结构及功能性的等同技术方案。并且,这种等同技术方案除了包括当前所公知的等同技术方案之外,还包括将来开发的等同技术方案,即,包括与结构无关地执行相同功能的所有器件。

因此,应当理解,例如本说明书的框图表示对本发明的原理具体化的例示性电路的概念性观点。与此类似地,应当理解,所有流程图、状态转换图、伪代码等实际上可表示在可由计算机读取的介质上,并表示由计算机或处理器执行的多个进程,而不管计算机或处理器是否被明确示出。

包括处理器或以与此类似的概念来表示的功能块在内,在附图中示出的多个器件的功能可通过使用专用硬件以及针对适当的软件具有可运行软件的能力的硬件来提供。当通过使用处理器来提供时,所述功能可通过单个专用处理器、单个共享处理器或多个单独的处理器来提供,它们中的一部分可以共享。

并且,对处理器、控制器或以与此类似的概念来提出的术语的明确使用不应排他性地引用具有运行软件能力的硬件来进行解释,而应当理解为无限制且暗示性地包括数字信号处理器(DSP)硬件、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)及非易失性存储器。众所周知且惯用的其他硬件也可包括在内。

在本申请文件所请求保护范围中,表示为用于执行详细说明中所记载功能的实施方式的结构要素,包括例如执行所述功能的电路器件的组合,或执行包括固件/微代码等所有形式的软件功能的所有方法,并与用于运行所述软件的适当的电路相结合,以执行所述功能。应当理解,对于这种通过发明要求保护范围来定义的本发明而言,由于通过以各种方式列出的方案来提供的功能相结合且发明要求保护范围与所需方式相结合,因而可提供所述功能的任何方式也与从本说明书中掌握的方式等同。

可通过附图和相关的以下详细说明来进一步明确理解所述目的、特征及优点,由此,可使本发明所属技术领域的普通技术人员容易实施本发明的技术思想。并且,在说明本发明的过程中,在判断为对于与本发明相关的公知技术的具体说明有可能不必要地混淆本发明主旨的情况下,将省略对其的详细说明。

以下,参照附图来对本发明的优选一实施例进行详细说明。

图1为简要示出本发明实施例的整体系统的概念图。

参照图1,本发明实施例的整体系统包括一个以上的设备100、设备控制模块200、共享存储器300、一个以上的代理程序400及用户系统500。

设备100可包括最终执行机器人控制系统的工作的一个以上驱动装置。驱动装置可包括硬件装置或软件装置。驱动装置可包括例如用于对关节马达的驱动进行控制的关节设备、包括传感器板的传感器设备或多个模拟装置中的至少一个。

并且,设备100根据从设备控制模块200接收的控制信号来得到控制,并可向所述设备控制模块200输出传感器数据等多种数据。并且,其中,被称之为设备100的术语并不局限于硬件,而是可用作包含用于驱动实际硬件设备的软件驱动器的概念。因此,各个设备100也可在物理及软件上与设备控制模块200相连接。

并且,各个设备100可与设备控制模块200形成通信网络。为了系统的稳定性,通信网络可形成利用控制器局域网(CAN,Controller Area Network)方式协议的系统网络。

例如,各个设备100可通过一个以上的控制器局域网(CAN)通信通道与设备控制模块200相连接,通过所述控制器局域网通信通道按照预定的控制周期来接收由控制器局域网帧数据形成的信息,或可向所述设备控制模块200输出信息。其中,所述信息可包含马达控制参考值、编码器值、控制器状态值、脉宽调制(PWM,Pulse Width Modulation)指令,传感器值或其他多种设定或输出值。

并且,设备控制模块200从在从所述多个代理程序400生成并存储于所述共享存储器的各个参考值中获得用于控制一个以上设备100的硬件控制数据,并且向通过所述硬件控制数据选择的所述一个以上的设备100传递基于所述参考值的控制信号。

设备控制模块200可以始终驻留在用于机器人控制系统的控制的操作系统上,并可在后台运行。

设备控制模块200可参照所述共享存储器300来唯一地与设备100进行直接通信,并可通过所述通信通道传递控制信号或接收传感器信号。

例如,设备控制模块200可向所述关节设备100传递用于控制关节设备100的参考值,或从传感器设备100接收必要的传感器信息。

并且,所述设备控制模块200可包括生成在所述操作系统上的实时线程(thread)。并且,所述线程与系统的动作生成工作周期同步,从而可实现实时处理。并且,设备控制模块200还可包括用于数据读取及转换等处理的非实时线程。

并且,所述多个代理程序400可通过具有相互独立进程的独立的软件模块来实现。例如,多个代理程序400可分别处理互不相同的动作,并执行用于输出与此相对应的参考值的进程。例如,各个代理程序400可包括动作代理程序、控制器代理程序、通信代理程序或行走(walking)代理程序、阻尼(damping)代理程序及其他多种代理程序。

如上所述的多个代理程序400在功能上其进程相互分离,因而不共享堆(heap)存储器、数据(data)存储器及静态(static)存储器,而是可通过生成各个线程来进行工作,可通过共享存储器300来分别提供用于相互共享的必要数据,由此可在无相互冲突下进行有机处理,并且易于软件开发及处理。

尤其,根据本发明的实施例,所述多个代理程序400根据相互独立的进程的工作,从所述共享存储器300接收传感器数据,根据本发明的实施例,各个代理程序400根据分别定义的进程来参照共享存储器300的硬件抽象化数据及用户定义数据,并可将以此为基础来生成的参考数据存储于共享存储器300的硬件抽象化数据中。

其中,用户定义数据可包含用于代理程序400之间的信息共享的共享数据及可由用户定义的用于其他系统驱动的多种数据。

并且,硬件抽象化数据可包含为了控制设备100而被抽象化的参考值、传感器数据,动作所有者变数及指令数据。并且,设备控制模块200可利用所述硬件抽象化数据和预先存储于硬件数据库250的硬件信息来生成各个设备100的控制信号。

由此,设备控制模块200可利用从所述共享存储器300提取的硬件抽象化数据来识别控制对象设备100,并生成对于多个控制对象设备100的控制信号来向控制对象设备100输出基于所述参考值的控制信号。

并且,为了确保稳定的实时性,各个代理程序400的处理周期有必要短于处理系统的动作信息的工作周期。由此,所述多个代理程序400从传感器数据生成参考值,所述设备控制模块200通过共享存储器300从参考值生成及输出控制信号,并且更新传感器数据所需的时间可包含在所述具有分层架构的实时设备控制系统的第一工作周期内。因此,所述一系列工作均可在所述第一工作周期内处理。

另一方面,用户系统500可提供用于对代理程序400及设备控制模块200进行控制及监控的用户界面。并且,用户系统500也可包括用于控制代理程序400的中间设备,可提供可与其他外部系统相连接的多种界面。

图2为用于说明本发明实施例的机器人控制系统的控制方法的流程图。

并且,图3至图4为用于说明本发明实施例的共享存储器与系统之间的关系的图。

并且,图5为用于说明本发明实施例的设备控制模块与代理程序之间的数据交换的图。

以下,参照所述图2至图5来对本发明的机器人控制系统及其控制方法进行更加具体的说明。

参照图2,在本发明实施例的机器人控制系统的控制方法中,首先执行具有相互独立进程的多个代理程序400的工作(步骤S101)。

并且,设备控制模块200从存储于共享存储器300的参考值获得硬件抽象化数据(步骤S103)。

并且,设备控制模块200通过硬件抽象化数据生成用于控制硬件的控制信号(步骤S107),并向一个以上的设备100传递所生成的控制信号(步骤S109)。

另一方面,设备控制模块200从与传感器相对应的多个设备100接收传感器数据(步骤S111),并将所述接收的传感器数据更新到共享存储器300(步骤S113)。

并且,所述一系列工作步骤在与机器人控制系统的实时工作周期相对应的第一周期内均可得到处理,从而可确保实时性。

为了如上所述的进程,图3所示,各个代理程序400和设备控制模块200可利用共享存储器300来执行数据交换及传递处理。

根据各个代理程序400的工作,共享存储器300中可存有与各个设备100相对应的多个参考值,设备控制模块200可通过获得参考值来用于输出控制信号。

如上所述的多个代理程序400和设备控制模块200能够以共享存储器300为中心来构成多代理程序系统。由此,在可由多名开发人员对执行独立行程的各个部分进行分离来开发,也可协作开发,因此对于机器人控制系统开发环境,可具有有利的结构。

若利用本发明实施例的代理程序400,则开发人员可从进程同时开发模型中确保独立的开发空间,并可通过利用共享存储器300来与其他代理程序400的计算结果物相互作用或收发数据。

另一方面,如图4所示,共享存储器300上可包含硬件抽象化数据及用户定义数据。

硬件抽象化数据可包含传感器数据、参考数据、动作所有者(motion own-er)数据及指令数据,设备控制模块200可以仅接近共享存储器300的所述硬件抽象化数据区域。

由此,设备控制模块200可通过接近共享存储器300的硬件抽象化数据区域来对从设备100接收的传感器数据进行更新,或者通过获得被更新的参考数据来生成针对设备100的控制信号。

其中,硬件抽象化数据可具有通过对与机器人设备控制相关的详细数据进行抽象化来转换的数据格式,设备控制模块200可将所述数据格式转换为实际硬件控制信号来向适当的多个设备100传递。

由此,代理程序400开发人员或用户即使不具备对硬件的深度了解也可容易进行控制。开发人员或用户将通过共享存储器300实现抽象化的硬件输入信息作为参考值来传递,设备控制模块200可从所述硬件抽象化数据生成用于控制设备100的低级控制信号。

并且,由于可能存在硬件的扩展性和硬件的变更及修改,因而设备控制模块200可利用前述的硬件数据库250来对生成所述控制信号所需的硬件信息进行管理。硬件信息可包含例如多个设备100的列表、关节马达信息(减速比、编码器脉冲、驱动器通道数量等)或通信规则等。

设备控制模块200可通过加载所述硬件数据库250来掌握驱动对象设备100的硬件信息,由此,可生成用于控制所述驱动对象设备100的最佳控制信号。并且,即使变更硬件或使用新结构的硬件,也可以仅通过修改硬件数据库250来适用,从而可提供耐于硬件变化,且可使硬件扩展的特性。

并且,硬件抽象化数据可包含参考数据、传感器数据、动作所有者数据及指令数据。

这里,所述参考数据可在各个代理程序400中根据计算结果而得到更新,设备控制模块200可包含用于控制各个设备100的当前步骤中的目标值。例如,参考数据可包含关节动作参考值及关节控制器参考值。

并且,传感器数据可包含由设备控制模块200从各个设备100接收的测定数据。其中,测定数据可包含例如关节设备的编码器值、包含感测数据的当前步骤中的状态信息。

另一方面,指令数据可包含用于在上层系统级别控制设备控制模块200及代理程序400的指令信息,可包含指令对象进程信息及参考值信息。

另一方面,不同共享存储器300的多个数据为由代理程序400读取的值,因而不存在混淆的可能性,但在参考数据的情况下,对于相同的关节设备100,由每个代理程序400所输出的多个值可能不同。为了消除与此相关的冲突可能性,共享存储器300可包含动作所有者(owner)信息。

并且,如图5所示,在图5中,对本发明实施例的设备控制模块200与代理程序400之间的数据交换过程中的动作所有者与参考数据之间的关系进行说明。

如图5所示,共享存储器300的硬件抽象化数据区域可包括可按每个代理程序400更新参考数据的不同代理程序400的存储器区域350。

由此,各个代理程序400可在自身的存储器空间区域更新由自身计算出的参考值。

其中,各个代理程序400可通过计算与各个设备100相对应的参考数据来进行更新。例如,在存在从J1~J31共31个关节设备100的情况下,每个代理程序400的存储器空间区域可包括与所述各个关节设备100相对应的参考数据区域。

与此同时,共享存储器300可包含与所述各个关节设备100相关的动作所有者变数。因此,各个动作所有者变数空间内可包含与关节设备100的数量相同数量的动作所有者变数。

并且,各个动作所有者变数可表示在预定的多个代理程序400中对所述关节设备100具有权限的一个代理程序。由此,设备控制模块200可对针对相应关节设备100的控制权从属于何种代理程序400进行判断。

并且,对于各个关节设备100的控制权根据动作所有者变数的变更而可以转移到其他代理程序400或设备控制模块200。

为此,设备控制模块200可从优先动作所有者变数中识别出具有对特定关节设备100的控制权的代理程序400。并且,设备控制模块200可通过收集识别出的代理程序400的参考数据,并结合所述收集到的参考数据来生成与综合构成的整体关节设备100有关的整体参考数据。

并且,设备控制模块200可利用整体参考数据来生成与各个设备100有关的控制信号,并适当地传递。

在观察是否存在错误之后,读取相应的关节参考值,由此综合形成仅一套的机器人所有关节的参考值,并向机器人设备传递所述参考值来进行驱动。

通过如上所述的数据交换方式,可由互不相同的代理程序400无冲突地控制机器人的各个关节。例如,在一个代理程序400通过与下身姿势稳定化有关的算法来控制多个下身关节,另一个代理程序400生成上身的特定任务动作,则两个代理程序400的结果被组合,从而可以执行机器人的全身任务。这使得可以根据机器人的多代理程序系统的特性进行有效控制。

图6为用于说明本发明实施例的设备控制模块的框图。

参照图6,设备控制模块200包括动作选择器210、控制器信号累积部220、信号结合部230及信息处理器240。

根据本发明的实施例,与关节有关的参考数据可包含用于关节动作控制及细节控制的2种以上的参考值信号。由此,与各个关节设备100相对应的代理程序400可作为参考数据来生成所述2种以上的参考值信号来存储于共享存储器300。

并且,如图6所示,参考值信号可以命名为动作参考值和控制器参考值。动作参考值可包含向各个关节提供主导值的参考数据,控制器参考值可包含微观地加到动作参考值或从动作参考值减去的细节参考数据。但是,在本发明的实施例中,所述参考值并不局限于所述名称。

由此,可从共享存储器300向设备控制模块200输入动作参考值输出数据M1~Mm和控制器参考值M1~Mm。

并且,动作参考值可按一个关节设备100选择一个,但控制器参考值可以均被累积后得到加减。

为此,动作选择器210以所述动作所有者的变数信息为基础来从所述动作参考数据中选择与各个关节设备100相对应的动作参考数据,并可将此数据向信号结合部230输出。因此,可以为一个关节设备100选择一个动作参考数据。

并且,控制器信号累积部220可与所述动作所有者变数无关地通过累积控制器参考数据来向信号结合部230输出结果值。

并且,信号结合部230可通过对所述动作参考数据和所述控制器参考数据的累积结果值进行合成来按最终关节设备100生成参考数据,并输出至适当的目标关节设备100。

这里,信号结合部230可识别参考值的类型,并区分基于参考值类型的处理空间。为此,信号结合部230可包括类型识别部及空间处理部。

例如,参考数据除了关节动作之外还可具有任务处理等其他类型,由此,类型识别部可识别是所述任务类型还是关节类型,空间处理部可根据所述类型来提供互不相同的数据空间的处理。

像这样,通过分离动作参考值和控制器参考值,从而可在生成机器人动作的过程中可实现功能性分离。例如,若生成双足步行的动作,则在一个代理程序400通过生成基本步行模式来生成动作参考值,在另一个代理程序400设计阻尼控制器,并在又一个代理程序400通过设计防止振动的控制器来作为控制器参考值输出,从而可非常容易地进行设计及开发。

另一方面,信息处理器240可执行通过综合从传感器设备100或其他测定对象设备收集到的传感器数据来向共享存储器300输出的功能。

图7为用于说明本发明另一实施例的机器人控制系统的控制工作的流程图。

一般情况下,若在使用机器人的实际实验中发生问题,通常则需要重新开始驱动机器人。对于移动平台,机器人初始化过程简单,而像人形机等,难以在多关节系统或地面执行初始化,在需要利用起重机等来在空中进行初始化的情况下,整体的初始化过程非常繁琐且消耗很长时间。

因此,如图7所示,本发明实施例的设备控制模块200可无需这种对机器人进行初始化的过程而进行调试并重新测试机器人。

为此,首先执行系统初始化(步骤S201),之后具有各个相互独立进程的多个代理程序400进行工作(步骤S202)。

之后,在存在发生错误的特定代理程序的情况下(步骤S203),所述发生错误的代理程序的工作被中断,设备控制模块200或其他代理程序400以其他代理程序来变更所述动作所有者变数(步骤S205)。

由此,若用户在通过代理程序400测试动作算法的过程中发生问题,则能够以仅通过将动作所有者转移给其他代理程序400或设备控制模块200的方式对与被中断的代理程序400有关的代码进行修改。

并且,在通过对所编写的代码进行编译来完成调试的情况下(步骤S207),可重新将动作所有者变数切换为原来的代理程序400(步骤S209)。

像这样,开发人员在获得动作所有者变数之后可继续进行实验。这最终具有如下效果:加速开发,且在用户的立场上,可进一步利用其来持续观察机器人在其他特殊组合语言中的关节参考值,从而检测出发生冲突的现象。进而当发生冲突时,可通过切换动作所有者来安全地进行机器人实验。

图8为用于说明本发明实施例的机器人系统的工作环境的图。

根据本发明的实施例,为了广泛应用机器人软件,需要可使多种形态的机器人平台进行工作的软件,而并非为可以仅使一个机器人平台进行工作的软件,因此需要既可扩展又容易适应机器人硬件的变化,除了实际机器人平台之外,还有必要通过机器人模拟图等软件来得到控制。

由此,本发明实施例的机器人控制系统1000可构建可利用美国的机器人操作系统(ROS,Robot Operation System)或韩国的机器人服务开放平台(OPRoS,Open Platform for Robotics Services)等其他有用机器人中间设备的功能的通用系统。由此,可提供可将由云机器人体系上的软件提供的多种视觉解决方案或管理机器人任务的功能容易适用于本发明系统的环境。

为此,若机器人控制系统1000的各个代理程序400生成动作,则用于控制各个机器人设备100的设备控制模块200可随之进行工作来提供对整体系统的实时控制。并且,上的其他机器人软件可提示动作之间的连接或判断基准等或同时运用多个机器人。

可通过图9中所说明的机器人控制系统1000的分层架构来对此进行更加具体地说明。

图9为示出本发明实施例的机器人系统的分层架构设计的图。

如上所述,在其他普通外部进程中,为了通过生成与本发明实施例的多个代理程序接近或任意的代理程序,来提供可独立工作的环境,机器人控制系统1000可包括各个数据处理模块层(layer)化的结构。

并且,各个层化的结构可通过与所述机器人控制系统1000相连接,或搭载所述机器人控制系统1000,或在被设置的实时操作系统(RTOS)上以软件或硬件方式来实现。并且,为了使各个层之间的工作周期同步,实时操作系统可以将全局定时器中断(Timer Interupt)作为第四层及第二层来提供。

例如,第四层的各个多个代理程序可以实现为所述实时操作系统的进程,可根据包含于进程的线程动作来接近共享存储器,获得传感器数据,并存储参考数据。与此同步的第二层的设备控制模块可根据所述实时操作系统上的线程动作,可将设备的传感器数据存储于共享存储器,生成基于共享存储器的参考数据及动作所有者的设备控制信号来输出至各个设备。

像这样,可在实时操作系统上实现的本发明实施例的机器人控制系统1000可由如下的分层架构来构成,即,所述分层架构包括:第一层,包括机器人平台或模拟中所包含的一个以上的控制对象设备(关节(joint)或传感器(Sensor));第二层,位于所述第一层的上层,包括用于直接控制所述控制对象设备的设备控制模块;第三层,位于所述第二层的上层,包括与所述设备控制模块相连接的共享存储器;第四层,位于所述第三层的上层,包括利用所述共享存储器来执行独立进程的一个以上的代理程序;以及,第五层,位于所述第四层的上层,根据用户指令控制所述一个以上的代理程序。

这里,所述第一层至第五层以仅可使相邻的层之间进行通信的方式预定各个通信协议。各层可以仅通过上层或下层接近下一层,可通过以如上所述的方式得到控制的系统来维持系统的稳定化及系统化。

首先,第一层可包括各个设备。多个设备可包括作为实际控制对象的多个低级机器人设备,可包括例如驱动器的控制器、传感器板或多个机器人模拟设备。

并且,在第二层中,为了控制机器人,设备控制模块200可始终在后台驻留并运行。第二层可以为可直接对机器人系统的多个设备进行控制的唯一层。

例如,第二层的设备控制模块向机器人设备传递从共享存储器生成的关节的参考值,相反,可从设备获得传感器值。第二层可根据从实时操作体系(RTOS)生成的实时线程来进行工作,第二层的线程可具有与动作生成的控制周期同步的周期。在设备与模拟器连动的情况下,第二层的线程可与模拟器的时间同步来进行工作。第二层也可具有可读取并解释指令的非实时线程,非实时线程可在实时线程中剩余时间内通过接收其他指令来进行处理。

由此,设备控制模块驻留在所述具有分层架构的实时设备控制系统的后台,可具有向所述第一层传递用于通过所述共享存储器获得的参考值来控制所述控制对象设备的控制信号的分层架构。

另一方面,第三层作为共享存储器层,可包括硬件的抽象数据部及用户定义数据部。如图9所示,硬件抽象化数据部可包含前述的硬件抽象化数据,硬件抽象化数据的种类有传感器数据、参考数据、动作所有者(motion owner)及指令信息。第二层的设备控制模块可以仅与第三层的共享存储器相连接。

另一方面,用户定义数据部可以暂时或永久存储在存在于第四层的多个代理程序进程之间共享的代理程序共享数据和基于用户定义的机器人驱动数据。

并且,第四层作为外部进程的用户为了仅生成自身的机器人动作等而驱动各个代理程序进程的层,多个代理程序进程如葡萄粒一般在层内相互独立运行,因而可特称为组合语言(AL)。各个多个代理程序彼此独立地通过从第三层的共享存储器读取传感器数据来生成动作,并将所生成的动作的关节参考值更新到共享存储器。

并且,第四层的多个代理程序进程还可对在动作所有者中何种组合语言对相应关节的参考值具有所有权进行设定。

并且,各个代理程序可通过实时操作体系(RTOS)生成极短周期的快速的实时线程,快速线程可将各个代理程序的动作生成线程利用在与前述第四层的设备控制模块的实时线程进行同步的过程中。例如,生成动作的线程可借助所述快速线程来实时与设备控制模块同步,在同步的同时重新开始(Resume)计算,可在经过一次参考值计算循环之后暂停(Suspend)。通过持续且反复进行所述工作,从而实现机器人控制系统1000的控制。

这里,并非所有代理程序直接生成机器人的动作,可存在在检测到冲突之后从其他代理程序接收动作所有者来使机器人保持稳定的代理程序,还可存在可进行帮助其他多个代理程序的辅助处理,也可实现为通信模块(comm.module)来与第五层收发信息并起到控制其他代理程序的作用的代理程序(图9中的代理程序N)。

另一方面,第五层可包括提供与所述多个代理程序相对应的控制及对机器人控制系统1000的监控功能的用户界面模块。

由此,第五层可包括为控制机器人而提供方便的多种进程。例如,第五层可包括容易下指令或用于监控的图形用户界面(GUI,Graphic User Interface)或用于存储数据的记录程序。

并且,所述第五层作为可使外部进程接近的区域,可提供使以往的机器人操作系统和机器人服务开放平台等机器人中间设备用于控制多个代理程序的一个以上的界面功能。

并且,存在上层的其他机器人控制系统,从而可通过第五层控制下层的机器人控制系统1000。因此,通过所述第五层,机器人控制系统1000可包括可无限扩展的结构,由此可提供可控制高级多代理程序(hyper multi-agent)系统的结构性的可能性。

另一方面,所述本发明的系统及方法可编写成用于在计算机中运行的程序并存储于计算机可读记录介质,计算机可读记录介质的例包括只读存储器(ROM)、随机存取存储器(RAM)、光盘只读存储器(CD-ROM)、磁带、软盘、光数据存储装置等,并且还包括以载波(例如,通过网络传输)形式实现的记录介质。

计算机可读记录介质可分散在通过网络来连接的计算机系统中,使得计算机可读代码以分散方式存储并运行。并且,用于实现所述方法的功能性(function)程序、代码和代码段可以由本发明所属技术领域的普通技术人员容易地推断。

并且,虽然以上示出并说明了本发明的优选实施例,但本发明并不局限于所述特定实施例,在不脱离发明要求保护范围中所要求的本发明主旨的范围内,本发明所属技术领域的普通技术人员可实施多种变形,并且这种所实施的变形不得从本发明的技术思想或前景中单独地进行理解。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1