CN116197919B - 机器人控制***及控制方法 - Google Patents
机器人控制***及控制方法 Download PDFInfo
- Publication number
- CN116197919B CN116197919B CN202310498460.0A CN202310498460A CN116197919B CN 116197919 B CN116197919 B CN 116197919B CN 202310498460 A CN202310498460 A CN 202310498460A CN 116197919 B CN116197919 B CN 116197919B
- Authority
- CN
- China
- Prior art keywords
- message
- module
- data
- real
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Numerical Control (AREA)
Abstract
本申请提供一种机器人控制***及控制方法,应用于多核处理器,多核处理器至少包括第一核处理器和第二核处理器,第一核处理器用于运行机器人控制***的非实时控制子***,并由非实时控制子***产生任务源数据,以及将任务源数据发送至第二核处理器,第二核处理器用于运行实时控制子***,并在接收任务源数据后,由实时控制子***生成消息数据包并执行基于消息机制的任务处理,由于消息数据传输时间的可预测,消息站处理模块执行时间的可预测,因此具有快速、无延迟,无外部中断中止当前操作的优点,提升了数据传输速度和频率,从而避免了机器人移动底盘的移动控制和/或机械臂动作控制的延迟。
Description
技术领域
本申请涉及机器人控制***技术领域,具体涉及一种机器人控制***及控制方法。
背景技术
移动操作复合机器人在控制器的作用下,实现底盘的移动控制以及机械臂的动作控制。
目前机器人控制器基于工控计算机平台上运行的机器人操作***以及运动控制单元,完成对移动底盘的移动控制和/或机械臂的动作控制。一般情况机器人操作***为非实时***,运动控制单元接收来自非实时***的控制指令完成对机器人的控制,但这种操作***的非实时特性,以及与运动控制单元之间进行数据交换极可能产生延迟现象,从而引起机器人动作响应慢、控制性能变差,给机器人的运行性能、运行安全带来不利影响。尤其在一些高精度、高速操作应用场景下,完全不能满足要求。
因此,需要一种基于工控计算机新的机器人控制方案。
发明内容
有鉴于此,本说明书实施例提供一种机器人控制***及控制方法,控制***采用以工控计算机和运动控制器为主要架构实现机器人的实时操作过程。
本说明书实施例提供以下技术方案:
本说明书实施例提供一种机器人控制***,应用于多核处理器,所述多核处理器至少包括第一核处理器和第二核处理器,所述机器人控制***包括实时控制子***和非实时控制子***;
其中,所述第一核处理器用于运行所述非实时控制子***,并由所述非实时控制子***产生任务源数据,以及将所述任务源数据发送至第二核处理器;
所述第二核处理器用于运行所述实时控制子***,并在接收所述任务源数据后,由所述实时控制子***生成消息数据包并执行基于消息机制的任务处理,其中所述实时控制子***包括任务控制模块、功能/任务模块、消息生成模块、实时调度器、调度定时器、消息收发模块、若干消息站处理模块,每个消息站处理模块包括入口和出口,首个消息站处理模块的入口和最后一个消息站处理模块的出口各自与消息收发模块连接,以及所述若干消息站处理模块依次串联连接,以形成环路;
所述实时控制子***生成消息数据包并执行基于消息机制的任务处理包括:
任务控制模块接收所述任务源数据后,将所述任务源数据向消息生成模块发送;
消息生成模块按预设的数据格式将所述任务源数据生成消息数据包,并在实时调度器和调度定时器的作用下,将消息数据包向消息收发模块传输;消息收发模块根据当前消息数据包操作状态,将消息数据包依次进行消息数据队列排序并入栈后自动向所述若干消息站处理模块分发消息数据包;
每个消息站处理模块用于从入口输入消息数据包,并判断消息数据包中是否具有预设的匹配消息数据,若否则不对消息数据包处理并将消息数据包从出口输出;若是则读取消息数据包中的数据并将待更新数据写入到该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出,或者若是则在确定调用功能/任务模块后将功能/任务模块产生的新数据写入该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出。
本说明书实施例还提供一种机器人控制方法,采用如上述任一项技术方案中的机器人控制***,所述机器人控制方法包括:
实时控制子***接收机器人各任务源数据;其中任务源数据包括非实时控制子***产生的数据;
按照预设的数据格式将所述任务源数据生成消息数据包,并将所述消息数据包按顺序持续分发;
消息数据包按顺序依次经过每个消息站处理模块,从每个消息站处理模块的入口输入消息数据包,并判断消息数据包中是否具有预设的匹配消息数据,若否则不对消息数据包处理并将消息数据包从出口输出;若是则读取消息数据包中的数据并将待更新数据写入到该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出,或者若是则在确定调用功能/任务模块后将功能/任务模块产生的新数据写入该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出;其中每个消息站处理模块包括入口和出口,首个消息站处理模块的入口和最后一个消息站处理模块的出口各自与消息收发模块连接,以及所述若干消息站处理模块依次串联连接,以形成环路。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:
控制***基于消息传输机制及任务处理机制实现消息数据包连续传输及处理,各消息站处理模块的执行时间为确定的等时间间隔,相互之间不存在延时。由于消息数据传输时间的可预测,消息站处理模块执行时间的可预测,因此本说明书实施例具有快速、无延时及时间传输的确定性,并且无外部任务中断处理等特点,结合多核CPU的功能划分为实时部分和非实时部分,实现了快速的数据传输、数据处理及实时控制功能,相对比现有技术中采用优先级消息中断处理机制,避免了机器人控制器控制机器人移动底盘的移动控制和/或机械臂动作控制的非实时性及延迟,保证了机器人实时运动部分的实时动作控制。
设计多核处理器,一部分被配置为运行非实时控制子***的非实时CPU,另一部分被配置为运行实时控制子***的实时CPU,多核处理器对应的工控PC与运动控制器之间采用PCIe总线的双端口RAM进行数据交互,控制***采用工控计算机和实时运动控制器为主要架构实现机器人的实时操作过程。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请中的一种机器人控制***整体架构图;
图2是本申请中的一种机器人控制过程中基于消息机制的实时任务处理示意图;
图3是本申请中的一种机器人控制过程中消息站处理模块及消息数据流的示意图;
图4是本申请中一种机器人控制方法的流程图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践。
现有技术基于工控计算机平台运行的机器人操作***以及机器人运动控制器来完成机器人移动底盘的移动控制和/或机械臂的动作控制。而工控计算机平台上运行的机器人操作***对数据处理或传输并非实时,引起机器人动作响应变慢、控制性能变差,严重时甚至影响机器人的正常执行,给机器人的运行性能、运行安全带来不利影响。
基于此,本说明书实施例提出了一种新的机器人控制方案:机器人控制***应用于多核处理器,多核处理器至少包括第一核处理器和第二核处理器,机器人控制***包括实时控制子***和非实时控制子***。其中第一核处理器用于运行非实时控制子***,并由非实时控制子***产生任务源数据,以及将所述任务源数据发送至第二核处理器。第二核处理器用于运行实时控制子***,并在接收任务源数据后,由实时控制子***生成消息数据包并执行基于消息机制的任务处理。
其中,实时控制子***包括任务控制模块、功能/任务模块、消息生成模块、实时调度器、调度定时器、消息收发模块,若干消息站处理模块,每个消息站处理模块包括入口和出口,首个消息站处理模块的入口和最后一个消息站处理模块的出口各自与消息收发模块连接,以及若干消息站处理模块依次串联连接,以形成环路。
实时控制子***生成消息数据包并执行基于消息机制的任务处理包括:任务控制模块接收所述任务源数据后,将任务源数据向消息生成模块发送;消息生成模块按预设的数据格式将任务源数据生成消息数据包,并在实时调度器和调度定时器的作用下,将消息数据包向消息收发模块传输。
消息收发模块根据当前消息数据包操作状态,将消息数据包依次进行消息数据队列排序并入栈后自动向若干消息站处理模块分发消息数据包。
每个消息站处理模块用于从入口输入消息数据包,并判断消息数据包中是否具有预设的匹配消息数据,若否则不对消息数据包处理并将消息数据包从出口输出;若是则读取消息数据包中的数据并将待更新数据写入到该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出,或者若是则在确定调用功能/任务模块后将功能/任务模块产生的新数据写入该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出。
一些实施例中机器人控制***应用的多核处理器如双核CPU。通过将一个CPU核配置为实时CPU,另一个CPU核配置为非实时CPU。非实时CPU运行非实时控制子***,并将产生的任务源数据发送至实时CPU ,实时CPU运行实时控制子***,接收任务源数据后,由实时控制子***生成消息数据包并执行消息机制的任务处理,消息数据包实时控制子***的所有消息站处理模块中传输的时间可预测,在具有预设匹配消息数据的消息站处理模块中进行处理的时间确定,从而将机器人任务源数据采用实时CPU进行快速处理,具有无延时及时间传输确定等优点,提升数据传输速度和频率,从而避免机器人运动控制器控制机器人移动底盘移动控制和/或机械臂动作控制的延迟。
以下结合附图,说明本申请各实施例提供的技术方案。
如图1所示,本说明书实施例的一种机器人控制***,应用于多核处理器,具体为多核处理器和嵌入式实时运动控制器相结合的机器人实时控制器架构。多核处理器上运行有基于Linux的机器人的操作***记为SAGE-OS。如图1示例2核CPU,其中一个CPU核被配置为非实时CPU,另一个CPU核被配置为实时CPU。非实时CPU上运行SAGE-OS的非实时控制子***,实时CPU中运行的是SAGE-OS的实时控制子***,从而将多核资源划分为实时和非实时功能。其中非实时控制子***之一的功能是产生任务源数据并发送至实时CPU。在实时CPU运行SAGE-OS中的任务控制模块收到来自非实时CPU的任务源数据后,会生成消息数据包并执行基于消息机制的任务处理。
其中非实时控制子***处理实时性要求不高的功能、算法,如传感器信号采集、机器人轨迹规划、碰撞检测及避障算法等;而实时控制子***处理与机器人实时控制相关度较高的算法和功能,如机器人行走实时控制、机械臂动作实时控制等控制功能。
在一些实施例中,多核处理器与机器人运动控制器采用PCIe总线的双端口RAM进行数据交互,双端口RAM实现工控计算机和实时运动控制器***之间无延迟的数据交互。机器人控制器包括ARM运动控制器为实时运动控制器,ARM运动控制器通过以太网通信或EtherCat通信与机器人相关末端设备进行通信、数据采集及执行控制。
本说明书实施例架构中,多核处理器与基于ARM核心的运动控制器之间采用PCIe总线的双端口RAM进行数据交互,双口RAM可实现工控计算机和实时运动控制器***之间快速无延迟数据交互的目的。ARM运动控制器通过以太网通信或EtherCat通信与相关末端设备进行通信,或采集数据或进行控制。
为了使SAGE-OS操作***中的关键功能模块或任务模块具有实时性的性能,以便提升整体机器人控制性能,在SAGE-OS中设计了基于消息机制的实时任务处理模式,可大幅提升相关功能模块和任务模块的执行实时性,达到消息数据传输无延迟,模块执行时间短的目的,从而适应高性能智能机器人控制器的要求。
如图2示例基于消息机制的实时任务处理模式,具体地,实时控制子***包括任务控制模块、消息生成模块、实时调度器、调度定时器、消息收发模块、若干消息站处理模块,每个消息站处理模块包括入口和出口,首个消息站处理模块的入口和最后一个消息站处理模块的出口各自与消息收发模块连接,以及所述若干消息站处理模块依次串联连接,以形成环路。
如图2所示,在实时CPU中,设置了SAGE-OS实时调度器,用以处理实时功能模块或任务模块。
图2中任务/供源指来自于非实时CPU中产生的任务源数据,该任务源数据被传输至SAGE-OS任务控制模块,随之,任务控制模块发送任务源数据到消息生成模块,消息生成模块根据预设的数据格式将任务源数据解析为消息数据包。之后,在SAGE-OS实时调度器和调度定时器作用下,消息生成模块将该消息数据包传输至消息收发模块,消息收发模块根据当前消息数据包操作状态,将消息数据包依次进行消息数据队列排序并入栈后自动分发消息数据包。消息数据包为完整的涉及到该任务或功能的数据集合。消息数据包在消息收发模块中被排列为消息队列栈进行连续顺序发送。
接收消息数据包的单元体被称为消息站处理模块,每一个消息站处理模块对应一个任务模块或功能模块。消息站处理模块有很多,均为SAGE-OS中设定的需要实时执行的基础任务模块或功能模块。这些模块通过各自的入口和出口子模块,被互相串接在一起,最末端的模块的出口又连接至消息收发模块,最终形成一个环路,目的是所有数据包最终返回消息收发模块并被传输至SAGE-OS任务控制模块。
如图2所示,***中配置了消息处理定时器以及定时分配管理器,在两者的定时管理控制下,从消息队列栈中持续发送消息数据包,经过各个消息站处理模块,进行处理(写入新数据到数据包进行数据更新)或者不进行处理(仅读取数据包数据不写入新数据不更新数据包),以下进一步说明。
每一个消息站处理模块具有一个入口,一个出口。当发送来的消息数据包进入入口时,会判断消息数据中是否具有预设的匹配消息数据(如消息站编号是否相同),如果没有,则不对该消息数据进行任何修改或操作,该消息数据被直接输出到消息站处理模块的出口。否则,会读取消息数据包中对应的数据,并把已经在缓存中的更新数据写入该消息数据包的相应位置,并将该操作过的数据放在出口模块中,继续传输至下一个消息站处理模块;或者调用相应的任务/功能模块,该模块生成的最新数据被写入消息数据包并由消息站出口发送。根据该原则,当前消息站处理模块匹配的数据被读取、或被进行了数据更新之后传输至下一个消息站处理模块时,必然不会被匹配,则快速被传输至下下一个消息站处理模块(直接从入口到出口,中间无任何延时和具体操作),实际上,后续的消息站处理模块都不会匹配该数据,因此,该消息数据以最快的速度无延迟的被传输并最终返回至消息收发模块。
在一些实施例中,实时定时器用于按顺序、等时间间隔将消息数据包由上一消息站处理模块传输至下一消息站处理模块。任务控制模块还用于将任务源数据对应的控制参数或指令发送至共享RAM,以便ARM运动控制器读取。
定时分配管理器将定时器作用于每一个消息站处理模块,以便顺序、等时间间隔触发消息数据向下一消息站处理模块传输。
如图2所示,当消息通过第N个消息站处理模块后,由其出口送出返回至消息收发模块;消息收发模块将该返回的数据包数据发送至SAGE-OS任务控制模块。而任务控制模块将相应的控制参数或指令发送至共享RAM,供ARM运动控制器读取。
以上消息传输机制及任务处理机制的有益之处是,消息数据串(数据包)传输连续进行,各消息站处理模块的执行时间为确定的等时间间隔,相互之间延时很小。这种消息数据传输方法,依靠定时器定时机制依次进行对消息站处理模块进行消息数据的读取、写入操作的处理模式,消息数据传输时间确定,消息站处理模块执行时间确定,消息数据传输及功能模块处理效率提高,整体处理有极强的时间确定性,区别于传统的机器人操作***的非实时特性(会随时被外部中断或高优先级的中断而中止当前操作,特别是对实时性要求较高的任务的突然中止操作,从而不确定性极大),提升了各功能模块、任务模块的实时性、可控性,保证了功能模块或任务模块之间执行的小时延,是SAGE-OS实时控制子***的实现基础。
在一些实施例中,实时调度器和调度定时器进行同步设置,消息数据包在消息站处理模块之间的传输与在消息站处理模块中的处理同步进行。
进一步,如图2中所示,调度定时器和消息处理定时器也可以进行同步设置(如虚线所示),使消息数据在消息站处理模块之间的传输和后续消息站处理模块的处理同步进行,好处是提升实时性节拍,该设置对于消息站处理模块较少的情况极为有利,可进一步提升***的实时性和内部实时数据传输的效率。
进一步,图2中所示,消息站处理模块与对应的任务/功能模块之间有虚线、实线的区别,说明如下。
本说明书实施例中,消息站处理模块是相应的任务/功能模块的数据交互接口;任务/功能模块可由对应的消息站处理模块实时调用,也可被非实时CPU调用,调用后产生的新数据会存放于消息站处理模块。
任务/功能模块是被实时CPU调用,还是被非实时CPU调用,取决于该模块的执行时间和实时程度的要求。
在SAGE-OS中,实时性要求高的模块被设计为实时CPU调用;而实时要求较低的被设置为非实时CPU调用;但所有模块产生的数据交互都是被实时统一调用的。
如图2中消息站2处理模块的实线,表示是被实时调用;而1和N的虚线表示被非实时调用。
而即使某模块被非实时调用,但一旦该模块被非实时CPU调用执行之后,其输出数据即刻被存放于消息站处理模块内等待匹配的消息数据包调用更新;而该处理模块的执行周期是实时确定的可预测的,因此其数据的延迟也几乎可忽略,或者说,其数据刷新频率远高于非实时调用模块的执行频率,因此数据延迟可忽略。
在一些实施例消息数据包对应预设的数据格式包括:消息站编号、目标消息站数据及起始消息站数据;每个消息站处理模块对应设置一任务/功能模块,任务/功能模块用于检查消息数据包中消息站编号是否与当前消息站处理模块的编号匹配,若匹配则读取消息包数据至目标消息站数据,并将待更新数据写入起始消息站数据。
如图3所示更清楚的说明消息传输及消息站处理模块的工作机制。消息数据进入消息数据栈,在消息栈发送定时器作用下依次发送。消息数据包基本单元数据格式组成为消息站编号,to消息站数据(即目标消息站数据),from消息站数据(即起始消息站数据)。当消息数据到达某消息站处理模块时,进入消息数据入口,对应的任务/功能模块会检查该消息数据是否和本站编号匹配,如果匹配,则任务/功能模块读取to消息站数据,并将该任务/功能模块产生的新数据写入该消息数据的“from消息站数据”内,之后,该被更新了的消息数据被传输至该消息站处理模块的消息数据出口并自动被传输至下一个消息站处理模块。由前述可知,该消息数据不会被后续的消息站处理模块匹配,则最终会传输至消息数据收发模块。
当相应的功能/任务模块读取了匹配的消息数据之后,会据此数据进行本功能/任务模块的参数设置,并决定是否要调用或执行该功能/任务模块。如果要调用该功能/任务模块,则在调用完毕之后将产生的数据写入from消息站数据,完成数据的更新,随之,该整体消息数据被继续传输。
在SAGE-OS***中,细分了功能/任务模块,并根据这些细分的功能/任务模块配置了相应的消息站处理模块,用以完成和消息数据的相互交互。在消息数据传输过程中,对应的消息站处理模块是否实时调用或执行相应的功能/任务模块,是由具体的任务或功能类型决定的,而该信息在前述的“任务/供源”中就确定了,即是由机器人控制器根据当前所要执行的具体任务决定的。
在一些实施例中,任务/功能模块不被对应的消息站处理模块实时调用或执行时,则被非实时控制子***调用执行,且产生的数据存储于非实时控制子***对应的缓存中。
由前述已知,即使某功能/任务模块不被对应的消息站处理模块所实时调用或执行,也会被SAGE-OS***内非实时CPU所调用执行,产生的数据会被存储于对应的缓存中,当消息站处理模块和某消息数据匹配时,会将该数据写入from消息站数据内,并传输至SAGE-OS任务控制模块。因为消息传输及消息站处理模块的工作机制具有快速、无延迟及时间确定性、无外部中断中止当前操作等特点,其数据传输速度和频率远高于非实时CPU执行功能/任务模块的频率,因此保证了即使某功能/任务模块是被非实时CPU所执行,但其产生的数据能够以最快的速度被取走,等效的提高了该功能/任务模块的实时性。
如图4所示,采用如上述的机器人控制***实现机器人控制方法可以包括步骤S410~步骤S430。具体地,步骤S410、实时控制子***接收机器人各任务源数据,其中任务源数据包括非实时控制子***产生的数据。步骤S420、按照预设的数据格式将任务源数据生成消息数据包,并将所述消息数据包按顺序持续分发。步骤S430、消息数据包按顺序依次经过每个消息站处理模块,从每个消息站处理模块的入口输入消息数据包,并判断消息数据包中是否具有预设的匹配消息数据,若否则不对消息数据包处理并将消息数据包从出口输出;若是则读取消息数据包中的数据并将待更新数据写入到该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出,或者若是则在确定调用功能/任务模块后将功能/任务模块产生的新数据写入该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出。其中每个消息站处理模块包括入口和出口,首个消息站处理模块的入口和最后一个消息站处理模块的出口各自与消息收发模块连接,以及所述若干消息站处理模块依次串联连接,以形成环路。
具体地,结合上述实施例的机器人控制***,如图2所示,机器人运行过程中产生任务源数据该任务源数据被传输至SAGE-OS任务控制模块,随之,任务控制模块发送任务源数据到消息生成模块,消息生成模块按照预设的数据格式将任务数据解析为消息数据包。如消息数据包预设格式包括消息站编号、目标消息站数据及起始消息站数据。消息生成模块将该消息数据包传输至消息收发模块,消息收发模块根据当前数据包操作状态,将消息数据包依次进行消息数据队列排序并入栈后自动分发消息数据包。
机器人控制***中设置多个消息站处理模块,从消息队列栈中持续发送的消息数据,会经过各消息站处理模块,进行处理(写入新数据到数据包进行数据更新)或者不进行处理(仅读取数据包数据不写入新数据不更新数据包)。
每一个消息站处理模块具有一个入口,一个出口。当发送来的消息数据包进入入口时,会判断消息数据中是否具有匹配(消息站编号是否相同)的消息数据,如果没有,则不对该消息数据进行任何修改或操作,该消息数据被直接输出到消息站处理模块的出口。否则,会读取消息数据中对应的数据,并把已经在缓存中的更新数据写入该消息数据包的相应位置,并将该操作过的数据由出口继续传输至下一个消息站处理模块。因此当前消息站处理模块匹配的数据被读取、或被进行了数据更新之后传输至下一个消息站处理模块时,必然不会被匹配,则快速被传输至下下一个消息站处理模块(直接从入口到出口,中间无任何延时和具体操作),实际上,后续的消息站处理模块都不会匹配该数据,因此,该数据以最快的速度无延迟的被传输返回消息收发模块。当消息通过第N个消息站处理模块后,由其出口送出返回至消息收发模块;消息收发模块将该返回的数据包数据发送至SAGE-OS任务控制模块。
其中首个消息站处理模块的入口和最后一个消息站处理模块的出口各自与消息收发模块连接,以及若干消息站处理模块依次串联连接,以形成环路。
相比于现有技术本说明书实施例的传输机制及任务处理机制,在若干消息站处理模块中消息数据传输的时间确定,且消息站处理模块处理数据的时间确定,提升处理的时间确定性,实现消息数据传输及数据处理地高效率,提升了各功能模块、任务模块的实时性、可控性。
若当前消息站处理模块匹配的数据被读取,或被进行数据更新之后传输至下一个消息站处理模块时,则不会被匹配,快速被传输至下下一个消息站处理模块(直接从入口到出口,中间无任何延时和具体操作),区别于传统机器人操作***中会随时被外部中断处理或被高优先级的任务中断而中止当前操作,提升了各功能模块的实时性、可控性,保证了功能模块或任务模块之间执行的小时延。从而保证了机器人实时运动部分的及时动作,避免了机器人控制器控制机器人移动底盘的移动控制和/或机械臂动作控制的延迟。
要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
本说明书中的各个实施例之间相同相似的部分互相参见即可,每个实施例侧重说明的都是与其他实施例的不同之处。尤其,对于后面说明的产品实施例而言,由于其与方法是对应的,描述比较简单,相关之处参见***实施例的部分说明即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种机器人控制***,其特征在于,应用于多核处理器,所述多核处理器至少包括第一核处理器和第二核处理器,所述机器人控制***包括实时控制子***和非实时控制子***;
其中,所述第一核处理器用于运行所述非实时控制子***,并由所述非实时控制子***产生任务源数据,以及将所述任务源数据发送至第二核处理器;
所述第二核处理器用于运行所述实时控制子***,并在接收所述任务源数据后,由所述实时控制子***生成消息数据包并执行基于消息机制的任务处理,其中所述实时控制子***包括任务控制模块、功能/任务模块、消息生成模块、实时调度器、调度定时器、消息收发模块、若干消息站处理模块,每个消息站处理模块包括入口和出口,首个消息站处理模块的入口和最后一个消息站处理模块的出口各自与消息收发模块连接,以及所述若干消息站处理模块依次串联连接,以形成环路;
所述实时控制子***生成消息数据包并执行基于消息机制的任务处理包括:
任务控制模块接收所述任务源数据后,将所述任务源数据向消息生成模块发送;
消息生成模块按预设的数据格式将所述任务源数据生成为消息数据包,并在实时调度器和调度定时器的作用下,将消息数据包向消息收发模块传输;
消息收发模块根据当前消息数据包操作状态,将消息数据包依次进行消息数据队列排序并入栈后自动向所述若干消息站处理模块分发消息数据包;每个消息站处理模块用于从入口输入消息数据包,并判断消息数据包中是否具有预设的匹配消息数据,若否则不对消息数据包处理并将消息数据包从出口输出;若是则读取消息数据包中的数据并将待更新数据写入到该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出,或者若是则在确定调用功能/任务模块后将功能/任务模块产生的新数据写入该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出。
2.根据权利要求1所述的机器人控制***,其特征在于,所述多核处理器与实时运动控制器采用PCIe总线的双端口RAM进行数据交互,
双端口RAM实现工控计算机和实时运动控制器***之间快速无延迟的数据交互。
3.根据权利要求2所述的机器人控制***,其特征在于,实时运动控制器包括ARM运动控制器,ARM运动控制器通过以太网通信或EtherCat通信与机器人相关末端设备进行通信、数据采集及执行控制。
4.根据权利要求1所述的机器人控制***,其特征在于,实时调度器和调度定时器进行同步设置,消息数据包在消息站处理模块之间的传输与在消息站处理模块中的处理同步进行。
5.根据权利要求1所述的机器人控制***,其特征在于,消息数据包对应预设的数据格式包括:消息站编号、目标消息站数据及起始消息站数据;
每个消息站处理模块对应设置一功能/任务模块,功能/任务模块用于检查消息数据包中消息站编号是否与当前消息站处理模块的编号匹配,若匹配则读取消息包数据至目标消息站数据,并将待更新数据写入起始消息站数据。
6.根据权利要求5所述的机器人控制***,其特征在于,功能/任务模块不被对应的消息站处理模块实时调用或执行时,则被非实时控制子***调用执行,且产生的数据存储于非实时控制子***对应的缓存中。
7.根据权利要求1所述的机器人控制***,其特征在于,实时定时器用于按顺序、等时间间隔将消息数据包由上一消息站处理模块传输至下一消息站处理模块。
8.根据权利要求2所述的机器人控制***,其特征在于,任务控制模块还用于将任务源数据对应的控制参数或指令发送至共享RAM,以便ARM运动控制器读取。
9.一种机器人控制方法,其特征在于,采用如权利要求1-8中任一项所述的机器人控制***,所述机器人控制方法包括:
实时控制子***接收机器人各任务源数据;其中任务源数据包括非实时控制子***产生的数据;
按照预设的数据格式将所述任务源数据生成消息数据包,并将所述消息数据包按顺序持续分发;
消息数据包按顺序依次经过每个消息站处理模块,从每个消息站处理模块的入口输入消息数据包,并判断消息数据包中是否具有预设的匹配消息数据,若否则不对消息数据包处理并将消息数据包从出口输出;若是则读取消息数据包中的数据并将待更新数据写入到该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出,或者若是则在确定调用功能/任务模块后将功能/任务模块产生的新数据写入该消息数据包的相应位置形成新消息数据包,以及将新消息数据包从出口输出;其中每个消息站处理模块包括入口和出口,首个消息站处理模块的入口和最后一个消息站处理模块的出口各自与消息收发模块连接,以及所述若干消息站处理模块依次串联连接,以形成环路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310498460.0A CN116197919B (zh) | 2023-05-06 | 2023-05-06 | 机器人控制***及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310498460.0A CN116197919B (zh) | 2023-05-06 | 2023-05-06 | 机器人控制***及控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116197919A CN116197919A (zh) | 2023-06-02 |
CN116197919B true CN116197919B (zh) | 2023-07-25 |
Family
ID=86509874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310498460.0A Active CN116197919B (zh) | 2023-05-06 | 2023-05-06 | 机器人控制***及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116197919B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117193169B (zh) * | 2023-09-12 | 2024-03-22 | 广州致远电子股份有限公司 | 运动控制方法、控制器、机电设备以及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
RU46870U1 (ru) * | 2005-03-21 | 2005-07-27 | Открытое акционерное общество "Научно-производственное объединение "Алмаз" имени академика А.А. Расплетина" | Устройство объективного контроля |
CN103942101A (zh) * | 2013-01-21 | 2014-07-23 | 中国科学院声学研究所 | 一种基于多核网络处理器的实时任务调度方法及*** |
CN104102494A (zh) * | 2014-07-31 | 2014-10-15 | 武汉邮电科学研究院 | 无线通信基站空口数据cipher加速方法 |
CN108694152A (zh) * | 2017-04-11 | 2018-10-23 | 上海福赛特机器人有限公司 | 多核间的通信***、基于该***的通信控制方法及服务器 |
CN112506152A (zh) * | 2020-12-02 | 2021-03-16 | 三一重型装备有限公司 | 一种采煤机及其控制器、控制方法 |
CN114879551A (zh) * | 2022-04-22 | 2022-08-09 | 锦图计算技术(深圳)有限公司 | 一种基于cpu硬隔离***设计方法的智能座舱域控制器 |
CN116032348A (zh) * | 2023-01-10 | 2023-04-28 | 南京熊猫汉达科技有限公司 | 一种卫星移动终端无线通信协议栈软件实现方法 |
CN116049498A (zh) * | 2022-12-30 | 2023-05-02 | 深圳市芯源网络科技有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8792499B2 (en) * | 2011-01-05 | 2014-07-29 | Alcatel Lucent | Apparatus and method for scheduling on an optical ring network |
US20220402123A1 (en) * | 2021-06-21 | 2022-12-22 | X Development Llc | State estimation for a robot execution system |
-
2023
- 2023-05-06 CN CN202310498460.0A patent/CN116197919B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
RU46870U1 (ru) * | 2005-03-21 | 2005-07-27 | Открытое акционерное общество "Научно-производственное объединение "Алмаз" имени академика А.А. Расплетина" | Устройство объективного контроля |
CN103942101A (zh) * | 2013-01-21 | 2014-07-23 | 中国科学院声学研究所 | 一种基于多核网络处理器的实时任务调度方法及*** |
CN104102494A (zh) * | 2014-07-31 | 2014-10-15 | 武汉邮电科学研究院 | 无线通信基站空口数据cipher加速方法 |
CN108694152A (zh) * | 2017-04-11 | 2018-10-23 | 上海福赛特机器人有限公司 | 多核间的通信***、基于该***的通信控制方法及服务器 |
CN112506152A (zh) * | 2020-12-02 | 2021-03-16 | 三一重型装备有限公司 | 一种采煤机及其控制器、控制方法 |
CN114879551A (zh) * | 2022-04-22 | 2022-08-09 | 锦图计算技术(深圳)有限公司 | 一种基于cpu硬隔离***设计方法的智能座舱域控制器 |
CN116049498A (zh) * | 2022-12-30 | 2023-05-02 | 深圳市芯源网络科技有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN116032348A (zh) * | 2023-01-10 | 2023-04-28 | 南京熊猫汉达科技有限公司 | 一种卫星移动终端无线通信协议栈软件实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116197919A (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3116166B1 (en) | Control system, control device, and control method | |
Ohlin et al. | TrueTime 1.5-reference manual | |
CN111034128B (zh) | 控制***以及控制装置 | |
CN116197919B (zh) | 机器人控制***及控制方法 | |
CN105227488A (zh) | 一种用于分布式计算机平台的网络流组调度方法 | |
CN108768876B (zh) | 一种面向机器学习框架的流量调度方法 | |
Cervin et al. | TrueTime 2.0–reference manual | |
US10524025B2 (en) | Communication system and method for scheduling communications within a time sensitive network | |
US10780583B2 (en) | System and method of controlling robot | |
CN113510720B (zh) | 一种实时分布式协作机器人控制*** | |
Hao et al. | Modeling and simulation of CAN network based on OPNET | |
WO2023115758A1 (zh) | 并联机器人的多线程控制器 | |
CN111612155B (zh) | 一种分布式机器学习***及适用于其的通信调度方法 | |
CN106959694A (zh) | 机器人直线运动控制方法和*** | |
CN108462653B (zh) | 基于tte的协议控制帧快速发送方法 | |
CN113965432B (zh) | 一种双通道can总线通信的控制*** | |
Liang et al. | Customizable and Robust Internet of Robots Based on Network Slicing and Digital Twin | |
CN113110141B (zh) | 一种控制方法、控制***及智能设备 | |
CN106956265B (zh) | 基于ros和orocos的机器人运动规划的执行方法和*** | |
CN115550173A (zh) | 一种基于wfbp和链路特性的动态计算通信调度方法 | |
CN114253604A (zh) | 基于ros2提高机器人计算性能的方法以及机器人 | |
Moreno et al. | Distributed implementation of discrete event control systems based on Petri nets | |
US11969890B2 (en) | Control method and control system using the same | |
Ashjaei et al. | Dynamic reconfiguration in hartes switched ethernet networks | |
CN118101493B (zh) | 智算中心网络架构的仿真寻优方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |