掌桥专利:专业的专利平台
掌桥专利
首页

一种机器人控制系统

文献发布时间:2023-06-19 19:28:50


一种机器人控制系统

技术领域

本发明涉及机器人控制技术领域,尤其是涉及一种机器人控制系统。

背景技术

近年来随着处理器性能不断提升、物理核数量的不断增加以及软PLC(Programmable Logic Controller,可编程逻辑控制器)技术的日趋成熟,软PLC集成方案逐渐成为当前工业机器人控制软件的应用主流,比如西门子公司的WinAC、亚控的KinACT、3S公司的Codesys等。软PLC集成方案在满足机器人控制的业务需求的同时,还提供了二次开发功能,这也使得各厂商得以进一步扩大业务范围,如汽车制造、3C电子电气、橡胶及塑料、食品、化工、铸造等各行各业。

机器人业务的不断发展以及业务的扩充等因素,使得机器人控制系统的软件业务逻辑越来越复杂。日益庞大的软件业务逻辑使实时业务和非实时业务耦合度越来越高。因此,提供能够较好解耦实时业务和非实时业务的机器人控制系统成为了亟待解决的问题。

发明内容

本发明实施方式的目的在于提供一种机器人控制系统,用以提供支持同时运行实时任务何非实时任务的机器人控制系统,避免不同类型任务之间的相互影响。

为了实现上述目的,本发明的实施方式提供了一种机器人控制系统,包括:虚拟容器模块、操作系统模块、IO模块以及机器人任务模块;其中,所述机器人任务模块包括机器人所需执行的实时任务和非实时任务;所述虚拟容器模块用于为所述实时任务和所述非实时任务提供资源;所述操作系统模块用于为所述实时任务提供实时操作系统,并为所述非实时任务提供非实时操作系统;所述IO模块用于实现所述实时操作系统与外界的通信、所述非实时系统与外界的通信以及所述实时操作系统和所述非实时操作系统之间的通信。

在本发明的实施方式中,机器人控制系统包括:虚拟容器模块、操作系统模块、IO模块以及机器人任务模块;其中,所述机器人任务模块包括机器人所需执行的实时任务和非实时任务;所述虚拟容器模块用于为所述实时任务和所述非实时任务提供资源;所述操作系统模块用于为所述实时任务提供实时操作系统,并为所述非实时任务提供非实时操作系统;所述IO模块用于实现所述实时操作系统与外界的通信、所述非实时系统与外界的通信以及所述实时操作系统和所述非实时操作系统之间的通信。本发明提供的机器人控制系统支持实时任务和非实时任务运行在同一控制设备中,且基于本发明提供的机器人控制系统,实时任务和非实时任务之间硬件隔离、系统隔离,因而彼此不会相互影响,从而能够确保整个机器人控制系统的高效性。

在一些实施例中,所述虚拟容器模块提供若干个虚拟容器,各所述虚拟容器分别为不同任务提供资源。

在一些实施例中,各所述虚拟容器所包括的硬件资源根据所述虚拟容器所对应的任务的硬件资源需求被预先设置。

在一些实施例中,所述虚拟容器模块基于半虚拟技术。

在一些实施例中,所述实时操作系统为实时Linux系统,所述非实时操作系统为通用Linux系统。

在一些实施例中,所述通用Linux操作系统的内核模块,根据应用场景被预先配置。

在一些实施例中,所述虚拟容器模块包括预先划分出的预设内存区域,所述实时操作系统和所述非实时操作系统共享所述预设内存区域,所述预设内存区域用于进行所述实时操作系统和所述非实时操作系统之间的通信。

在一些实施例中,所述预设内存区域被所述实时操作系统和所述非实时操作系统分别进行初始化操作。

在一些实施例中,所述实时操作系统和所述非实时操作系统通过预设中断信号实现同步。

在一些实施例中,所述实时操作系统的内核模块和所述非实时操作系统的内核模块被设置为不屏蔽所述预设中断信号。

附图说明

一个或多个实施方式通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施方式的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据本发明至少一实施方式中的机器人控制系统的结构示意图;

图2是根据本发明至少一实施方式中的虚拟容器模块的内部结构示意图;

图3是根据本发明至少一实施方式中的另一虚拟容器模块的内部结构示意图;

图4是根据本发明一实施方式中的硬件资源划分的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

本发明的一实施方式涉及一种机器人控制系统。

在本实施方式中,该机器人控制系统包括:虚拟容器模块、操作系统模块、IO模块以及机器人任务模块;其中,所述机器人任务模块包括机器人所需执行的实时任务和非实时任务;所述虚拟容器模块用于为所述实时任务和所述非实时任务提供资源;所述操作系统模块用于为所述实时任务提供实时操作系统,并为所述非实时任务提供非实时操作系统;所述IO模块用于实现所述实时操作系统与外界的通信、所述非实时系统与外界的通信以及所述实时操作系统和所述非实时操作系统之间的通信。

下面对本实施例中的机器人控制系统的实现细节进行具体的说明,以下内容仅为方便理解本方案的实现细节,并非实施本方案的必须。该机器人控制系统的结构示意图可以如图1所示。进一步可以包括如下各部分:

虚拟容器模块、操作系统模块、IO模块以及机器人任务模块;其中,所述机器人任务模块包括机器人所需执行的实时任务和非实时任务;所述虚拟容器模块用于为所述实时任务和所述非实时任务提供资源;所述操作系统模块用于为所述实时任务提供实时操作系统,并为所述非实时任务提供非实时操作系统;所述IO模块用于实现所述实时操作系统与外界的通信、所述非实时系统与外界的通信以及所述实时操作系统和所述非实时操作系统之间的通信。

如图1所示,操作系统模块可以包括为机器人所需执行的实时任务提供服务的实时操作系统,为机器人所需执行的非实时任务提供服务的非实时操作系统。此外,IO模块可以包括三个部分,其中第一IO模块用于实现实时操作系统与外界的通信,第二IO模块用于实现非实时操作系统与外界的通信,第三IO模块用于实现实时操作系统和非实时操作系统之间的通信。

此外,多核处理器上运行多操作系统涉及到虚拟容器的选择,为保证系统尤其实时系统的实时性,选择半虚拟技术。基于半虚拟技术的虚拟容器模块首先需要处理器提供硬件支持,其次在部署使用虚拟容器的过程当中需要增加操作系统的移植开发过程。但是客户机系统直接运行在物理资源上,没有额外的系统延时。

在一些实施例中,所述虚拟容器模块提供若干个虚拟容器,各所述虚拟容器分别为不同任务提供资源。此外,各所述虚拟容器所包括的硬件资源根据所述虚拟容器所对应的任务的硬件资源需求被预先设置。本实施方式提供的一种示例性地虚拟容器模块的内部结构示意图可以如图2所示。在本实施方式中,虚拟容器模块能够将硬件资源进行预先划分。对资源的划分具体可以根据机器人不同的应用场景,定制不同的系统物理配置,这样有利于提高硬件资源的利用率。譬如,对于高运算任务,可以配置多个处理器核(为高运算任务配置的虚拟容器可以参见图2中示出的容器1);对于高IO的服务器任务,可以配置大容量内存(为高IO任务配置的虚拟容器可以参见图2中示出的容器2);此外,对于高读写的存储任务,可以配置更多、更快的存储盘为高读写任务配置的虚拟容器可以参见图2中示出的容器3)。

基于本实施方式提供的虚拟容器模块,最终双操作系统分别占有各自的处理器核、内存区、外设等资源,各中资源在物理上相互隔离,能够保证双操作系统之间互不影响。

此外,值得说明的是,在单系统方案当中,所有硬件资源都是固定的。此时,虚拟容器模块的结构示意图可以如图3所示。如图3所示,虚拟容器模块在单操作系统的方案中实际上可以不再提供虚拟容器,硬件资源均固定为运行在该单操作系统上的各任务提供服务。

在一些实施例中,所述虚拟容器模块基于半虚拟技术。值得一提的是,基于半虚拟技术的虚拟容器模块可以选用虚拟机容器jailhouse。具体可以在虚拟机配置文件中对主从操作系统各自的物理资源进行划分。对硬件资源进行划分的示意图可以参考图4。

在一些实施例中,操作系统模块可以采用通用Linux系统加上实时linux系统方案。具体地,为所述实时任务提供实时Linux系统,为所述非实时任务提供Linux系统。

上述两个操作系统除了驱动使用各自被分配的硬件资源之外,还要符合各自需执行的任务的系统要求。对于非实时操作系统来说,主要被分配运行机器人软件业务当中的非实时任务。非实时任务对操作系统的时延要求比较低,但是接口要求丰富。非实时操作系统需要额外的串口以及USB接通信等,因此非实时操作系统的内核驱动源码丰富全面。此外,在一些实施例中,所述通用Linux操作系统的内核模块,可以根据应用场景被预先配置。也就是说,非实时操作系统的内核模块还可以随着不同的应用场景,进行不同的配置。然而,实时操作系统功能专一,主要用来运行机器人软件业务当中的实时任务,譬如软件PLC上实时运行核以及实时运行核上的实时任务。

本实施方式提供的操作系统模块为实时任务和非实时任务分别提供不同操作系统,能够实现任务的系统级隔离,避免了非核心任务的运行错误导致的严重软件系统错误,也能够避免众多系统调度过程中的意外的任务延时现象等。

此外,值得说明的是,非实时操作系统选用Linux操作系统,是由于Linux操作系统具有非常丰富的驱动开发接口,且拥有众多的社区支持,能够满足非实时操作系统的接口需求。实时操作系统选择Linux+Preempt的开源实时补丁,改实时方案可以达到100微妙以内的实时性能,能够满足机器人实时任务需求。

本实施方式中IO模块由系统间通信模块和双系统各自独立的外设组成。在本实施方式中,机器人软件系统为双系统软件,因此为了避免由于双操作系统而使得应用任务之间通讯效率存在障碍或瓶颈,需要增加片上系统间的通信通道。本实施方式提供的机器人控制系统通过共享内存的方式来进行双操作系统间的通信,通过信号机制实现双操作系统之间的同步。

在一些实施例中,所述虚拟容器模块包括预先划分出的预设内存区域,所述实时操作系统和所述非实时操作系统共享所述预设内存区域,所述预设内存区域用于进行所述实时操作系统和所述非实时操作系统之间的通信。在本例中,为了实现实时操作系统和所述非实时操作系统之间的通信,在虚拟容器模块中需要划分出一定内存区域,并对该内存区域的管理权限进行设置,以使得该内存区域能够被实时操作系统和非实时操作系统所共享。此外,在一些实施例中,所述预设内存区域被所述实时操作系统和所述非实时操作系统分别进行初始化操作。也就是说,实时操作系统和非实时操作系统均需要对该内存区域分别进行初始化,以保留该内存区域待使用且保证该内存区域不会被其他内核模块占用。

此外,在一些实施例中,所述实时操作系统和所述非实时操作系统通过预设中断信号实现同步。在本例中,为了实现实时操作系统和所述非实时操作系统之间的通信,虚拟容器模块中必须设计好中断控制器上中断信号用于实现非实时操作系统和实时操作系统之间的同步。需要说明的是,在一些实施例中,所述实时操作系统的内核模块和所述非实时操作系统的内核模块被设置为不屏蔽所述预设中断信号。此外,在设计好用于实现同步的中断信号后,实时操作系统和非实时操作系统各自需要修改内核模块,以使得该中断信号不会被屏蔽掉,能够最终到达内核模块。再者,为了实现实时操作系统和所述非实时操作系统之间的通信,还需要加载用户级应用模块来支持最终的应用开发。

值得说明的是,上述实现实时操作系统和非实时操作系统系统之间的通信的整个过程涉及到内存控制器、中断控制器、虚拟容器模块、双操作系统的内核模块、甚至最后的应用通信使用,对上述各部分的设置环环相扣,缺一不可。

此外,需要说明的是,IO模块中所包括的实时操作系统和非实时操作系统的外设模块为整个机器人软件系统提供了丰富的外设接口,方便系统内核和多样化软件业务开发。非实时系统可以通过调试串口、USB、以太网等提供外设接口;实时系统通过串口、以太网、spi等对外提供通信接口等。

下面对本发明提供的机器人控制系统所包括的机器人任务模块进行说明:机器人任务模块包括整个软件系统中所有的机器人相关软件任务,是整个机器人控制系统中的业务核心。机器人所需执行的任务可以简单分为运行在软PLC实时核上的实时任务以及延时要求较低的系统级非实时任务。例如HMI(Human Machine Interface,人机交互应用)的socket服务端以及客户端可以运行在示教器、外接的网络主机上等,通过提供示教编程接口,实现对机器人的指令下发、配置查询、位置监控以及错误上报等内容;焊机通信客户端通过以太网连接实现对焊机的控制等。

软PLC集成开发环境的运行实时核部署在实时系统上。软PLC实时核本身提供EtherCat、Profinet等工业通信总线。运行其上的实时任务实现运动学计算、动力学计算等算法内容,并周期性指令下发,最终通过工业通信总线与伺服驱动控制器通信,实现对多轴机器人的本地运动控制以及现场的众多IO控制。

由于系统隔离、硬件隔离,非实时任务的运行、调度不会影响实时任务,能够确保整个计算机控制系统的高效性。新建众多的非实时任务也不会放大运行上的隐形风险,保证了机器人软件业务的高可扩展性。实时任务运行在实时核上,非实时任务运行在非实时内核上,符合模块化开发的思想,降低了软件开发人员以及运维人员的工作难度。

在本发明的实施方式中,机器人控制系统包括:虚拟容器模块、操作系统模块、IO模块以及机器人任务模块;其中,所述机器人任务模块包括机器人所需执行的实时任务和非实时任务;所述虚拟容器模块用于为所述实时任务和所述非实时任务提供资源;所述操作系统模块用于为所述实时任务提供实时操作系统,并为所述非实时任务提供非实时操作系统;所述IO模块用于实现所述实时操作系统与外界的通信、所述非实时系统与外界的通信以及所述实时操作系统和所述非实时操作系统之间的通信。本发明提供的机器人控制系统支持实时任务和非实时任务运行在同一控制设备中,且基于本发明提供的机器人控制系统,实时任务和非实时任务之间硬件隔离、系统隔离,因而彼此不会相互影响,从而能够确保整个机器人控制系统的高效性。

本实施方式提供了一种双操作系统的机器人控制系统,在单处理器上同时支持运行实时系统和非实时系统,实现了对不同实时要求的机器人相关软件业务的分割,能够完全消除系统驱动级、应用级的不同类型任务的相互影响;通过对硬件资源的物理隔离,实现操作系统上硬件资源灵活定制。采用应用模块化软件开发思想,降低了系统软件开发与维护的难度。

本申请能够达到的有益效果主要有以下几点:

(1)本发明提供的机器人控制系统支持实时操作系统和非实时操作系统运行在同一台控制器上,同时支持在同一控制器上分别运行机器人软件的实时任务和非实时任务,能够消除非实时任务对实时任务的意外运行与延时风险,提高了系统安全性,同时降低了软件研发、运维难度。

(2)本发明提供的机器人控制系统支持各模块的物理分隔使用,可以根据双操作系统上机器人业务的不同的资源需求进行资源定制,在满足各业务资源需求的同时,能够极大提升控制器上各种物理资源的利用率。

(3)本发明提供的机器人控制系统支持双系统间的共享内存数据交互和信号通信,降低了跨板级甚至跨网络的通信成本,提高通信效率。

值得一提的是,本发明上述实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

上述实施例是提供给本领域普通技术人员来实现和使用本发明的,本领域普通技术人员可以在不脱离本申请的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该符合权利要求书所提到的创新性特征的最大范围。

技术分类

06120115926212