CN111745636B - 机器人控制方法及控制系统、存储介质及电子设备 - Google Patents

机器人控制方法及控制系统、存储介质及电子设备 Download PDF

Info

Publication number
CN111745636B
CN111745636B CN201910405871.4A CN201910405871A CN111745636B CN 111745636 B CN111745636 B CN 111745636B CN 201910405871 A CN201910405871 A CN 201910405871A CN 111745636 B CN111745636 B CN 111745636B
Authority
CN
China
Prior art keywords
task
action
thread
information
queue
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
Application number
CN201910405871.4A
Other languages
English (en)
Other versions
CN111745636A (zh
Inventor
童克冬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Qianshi Technology Co Ltd
Original Assignee
Beijing Jingdong Qianshi Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Qianshi Technology Co Ltd filed Critical Beijing Jingdong Qianshi Technology Co Ltd
Priority to CN201910405871.4A priority Critical patent/CN111745636B/zh
Publication of CN111745636A publication Critical patent/CN111745636A/zh
Application granted granted Critical
Publication of CN111745636B publication Critical patent/CN111745636B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

本公开涉及机器人技术领域,具体涉及一种机器人控制方法及控制系统、可读存储介质及电子设备,所述方法包括:任务接收线程将接收到任务信息加入接收队列;任务解析线程获取任务信息将其转换为待执行动作并加入任务队列中;动作配发线程获取待执行动作将待执行动作转换为动作参数加入动作信息队列中,并将动作信息队列存储至共享内存模块;动作执行线程获取动作参数,并根据动作参数控制机器人完成所述任务信息对应的任务。本公开的技术方案通过多个线程间的通信以及数据共享实现对机器人的控制,一方面避免了计算资源的浪费,提高了通信效率降低了连接失败的可能性,另一方面由于不需要总线进行连接,也降低了机器人控制系统的生产成本。

Description

机器人控制方法及控制系统、存储介质及电子设备
技术领域
本公开涉及机器人技术领域,具体而言,涉及一种机器人控制方法及控制系统、计算机可读存储介质及电子设备。
背景技术
随着人工成本的不断增加,机器人代替人工已经成为大量体力工作发展的必然趋势,因此很多高校和企业纷纷致力于机器人控制系统的研究。AGV(Automated GuidedVehicle)是一种自动导引运输车,它能够延规定的引导路径行驶,并对物体进行运输移动等操作。在对AGV进行控制时,主流的控制系统一般采用管理控制系统和运动控制系统分离的模式,通总线将两者连接来完成整个AGV的管理和控制工作,例如,可以通过CAN总线将管理控制系统和运动控制系统连接。然而,在实际控制的过程中管理控制系统和运动控制系统中均需要运行异常管理、日志管理、升级管理等相同的功能,因此管理、运动控制系统分离的模式导致了大量计算资源的浪费。同时,由于管理、运动控制系统需要总线进行连接,容易造成连接失败或者连接通信效率较低等问题。另外,连接总线的存在也会提高AGV控制系统的生产成本。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种机器人控制方法及控制系统、计算机可读存储介质及电子设备,进而至少在一定程度上克服因管理、运动控制系统分离设计导致的计算资源浪费、通信效率低、生产成本高等问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供了一种机器人控制方法,包括:任务接收线程接收到任务信息,将所述任务信息加入接收队列;任务解析线程从所述接收队列中获取任务信息,将所述任务信息转换为待执行动作并将所述待执行动作加入任务队列中;动作配发线程从所述任务队列中获取待执行动作,将所述待执行动作转换为动作参数加入动作信息队列中,并将所述动作信息队列存储至共享内存模块;动作执行线程从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务。
在本公开的一种示例性实施例中,基于前述方案,所述方法还包括:结果接收线程获取机器人完成所述任务时的运行数据及运行结果,并加入存储于所述共享内存模块的动作信息队列中;所述动作配发线程从所述共享内存模块中获取所述运行数据及运行结果,根据所述运行结果判断任务执行结果,并将所述执行结果和所述运行数据加入待发送信息队列;消息发送线程从所述待发送信息队列中获取所述执行结果返回任务发布中心,并获取运行数据返回数据中心。
在本公开的一种示例性实施例中,基于前述方案,所述将所述任务信息转换为待执行动作,包括:对所述任务信息进行解析得到完成任务的系列动作;对所述系列动作进行拆解,得到待执行动作。
在本公开的一种示例性实施例中,基于前述方案,在所述任务解析线程对所述任务信息进行解析得到完成任务的系列动作之前,所述方法还包括:所述任务解析线程对所述任务信息进行合法性检验。
在本公开的一种示例性实施例中,基于前述方案,所述根据所述动作参数控制机器人完成所述任务信息对应的任务,包括:将所述动作参数转换为模型数据;将模型数据作为入参输入参数计算模型进行计算,得到轴控指令;将所述轴控指令下发至各轴控模块,以使各轴控模块执行轴控指令;收集轴控模块执行轴控指令的运行数据,将其作为入参输入至参数计算模型以获取更新后的轴控指令,根据更新后的轴控指令控制各个轴控模块,直至完成所述任务信息对应的任务。
在本公开的一种示例性实施例中,基于前述方案,所述方法还包括:若所述任务接收线程、所述任务解析线程、所述动作配发线程以及所述动作执行线程中至少一个发生异常状况,则向异常处理模块发送异常信号,以使所述异常处理模块根据所述异常信号处理异常状况。
在本公开的一种示例性实施例中,基于前述方案,所述异常处理模块根据所述异常信号处理异常状况,包括:响应于接收到的异常信号,判断所述异常信号的种类;根据所述异常信号的种类获取对应的异常数据;根据所述异常数据对所述异常状况进行对应的处理。
在本公开的一种示例性实施例中,基于前述方案,所述方法还包括:响应于配置指令,系统配置模块根据配置指令中的配置参数对所述任务接收线程、所述任务解析线程、所述动作配发线程以及所述动作执行线程中至少一个线程的模式和/或参数进行配置。
根据本公开的第二方面,提供了一种机器人控制系统,包括系统管理模块、共享内存模块、运动控制模块;所述系统管理模块对接收到的任务信息进行转换生成对应的动作参数,并发送至所述共享内存模块进行存储;所述运动控制模块从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务。
在本公开的一种示例性实施例中,基于前述方案,所述系统管理模块包括任务接收线程、任务解析线程以及动作配发线程;所述任务接收线程接收到任务信息,将所述任务信息加入接收队列;所述任务解析线程从所述接收队列中获取任务信息,将所述任务信息转换为待执行动作并将所述待执行动作加入任务队列中;所述动作配发线程从所述任务队列中获取待执行动作,将所述待执行动作转换为动作参数并加入动作信息队列中,并将所述动作信息队列存储至共享内存模块。
在本公开的一种示例性实施例中,基于前述方案,所述共享内存模块接收并存储所述动作参数。
在本公开的一种示例性实施例中,基于前述方案,所述运动控制模块包括动作执行线程,所述动作执行线程从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务。
在本公开的一种示例性实施例中,基于前述方案,所述控制系统还包括异常处理模块;所述异常处理模块在获取到所述系统管理模块、所述共享内存模块以及所述运动控制模块中至少一个发生异常状况时发送的异常信号时,根据所述异常信号处理异常状况。
在本公开的一种示例性实施例中,基于前述方案,所述控制系统还包括系统配置模块;所述系统配置模块响应于配置指令,根据所述配置指令中的配置参数对所述系统管理模块、所述共享内存模块以及所述运动控制模块中至少一个的模式和/或参数进行配置。
根据本公开的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第一方面所述的机器人控制方法。
根据本公开实施例的第四方面,提供了一种电子设备,包括:
处理器;以及
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第一方面所述的机器人控制方法。
本公开实施例提供的技术方案可以包括以下有益效果:
本公开的一种实施例所提供的机器人控制方法中,任务接收线程接收到任务信息,将所述任务信息加入接收队列;任务解析线程从所述接收队列中获取任务信息,将所述任务信息转换为待执行动作并将所述待执行动作加入任务队列中;动作配发线程从所述任务队列中获取待执行动作,将所述待执行动作转换为动作参数并加入动作信息队列中,并将所述动作信息队列存储至共享内存模块;动作执行线程从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务。上述的机器人控制方法通过多个线程间的通信和共享内存模块完成对机器人的管理和控制,将机器人的管理控制系统和运动控制系统的功能一体化,使得可以对一体化的控制系统设置统一的异常管理、系统配置等功能模块,无需对管理系统和控制系统分别进行异常管理和配置,减少了计算资源的浪费;同时,由于在上述机器人控制方法中,管理控制系统和运动控制系统无需通过总线进行数据传输,而是通过线程通信和共享内存进行数据交互,因此提高了通信效率也降低了连接失败的可能性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出本公开示例性实施例中一种机器人控制方法的流程图;
图2示意性示出本公开示例性实施例中将所述任务信息转换为待执行动作方法的流程图;
图3示意性示出本公开示例性实施例中根据所述动作参数控制机器人完成所述任务信息对应的任务方法的流程图;
图4示意性示出本公开示例性实施例中反馈运行结果和运行数据方法的流程图;
图5示意性示出本公开示例性实施例中异常处理模块根据所述异常信号处理异常状况方法的流程图;
图6示出了本公开一个实施例中以AGV小车控制为例的控制方法的流程图;
图7示意性示出本公开示例性实施例中一种机器人控制系统的组成示意图;
图8示意性示出本公开另一种示例性实施例中机器人控制系统的组成示意图;
图9示意性示出本公开另一种示例性实施例中机器人控制系统的组成示意图;
图10示意性示出了适于用来实现本公开示例性实施例的电子设备的计算机系统的结构示意图;
图11示意性示出了根据本公开的一些实施例的计算机可读存储介质的示意图。
具体实施方式
现在将参照附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在本示例性实施例中,首先提供了一种机器人控制方法,可以应用于机器人的控制,例如,对于无人货舱中用于搬运货物的搬运机器人,或者用于执行焊接、切削等动作的用于生产的工业机器人等机器人的控制。所述机器人控制方法可以依赖机器人控制系统的终端实现,例如,可以由AGV小车控制系统终端呈现。参照图1中所示,上述的机器人控制方法可以包括以下步骤:
S11,任务接收线程接收到任务信息,将所述任务信息加入接收队列;
S12,任务解析线程从所述接收队列中获取任务信息,将所述任务信息转换为待执行动作并将所述待执行动作加入任务队列中;
S13,动作配发线程从所述任务队列中获取待执行动作,将所述待执行动作转换为动作参数并加入动作信息队列中,并将所述动作信息队列存储至共享内存模块;
S14,动作执行线程从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务。
根据本示例性实施例中所提供的机器人控制方法中,一方面,通过多个线程间的通信和共享内存模块完成对机器人的管理和控制,将机器人的管理控制系统和运动控制系统的功能一体化,使得可以对一体化的控制系统设置统一的异常管理、系统配置等功能模块,无需对管理系统和控制系统分别进行异常管理和配置,减少了计算资源的浪费;同时,由于在上述机器人控制方法中,管理控制系统和运动控制系统无需通过总线进行数据传输,而是通过线程通信和共享内存进行数据交互,因此提高了通信效率也降低了连接失败的可能性。
下面,将结合附图及实施例对本示例性实施例中的机器人控制方法的各个步骤进行更详细的说明。
在步骤S11中,任务接收线程接收到任务信息,将所述任务信息加入接收队列。
在本公开的一种示例实施例中,任务接收线程接收到任务发布中心下发的任务信息时,将任务信息加入到接收队列后,可以将接收到任务信息的消息加入待发送信息队列,以使消息发送线程可以将确认接收到该任务的信息返回至任务发布中心。通过设置确认接收消息的反馈,可以使得任务发布中心能够及时获知任务信息是否被接收,进而避免任务发布中心重复向机器人发送同一任务信息造成的资源浪费。
在步骤S12中,任务解析线程从所述接收队列中获取任务信息,将所述任务信息转换为待执行动作并将所述待执行动作加入任务队列中。
在本公开的一种示例实施例中,所述将所述任务信息转换为待执行动作,参照图2所示,包括步骤S121至步骤S122:
步骤S121,对所述任务信息进行解析得到完成任务的系列动作。
步骤S122,对所述系列动作进行拆解,得到待执行动作。
在本公开的一种示例实施例中,任务发布中心下发的任务信息需要通过系列动作完成,因此任务解析线程在获取到任务信息后,需要对任务信息进行解析,得到可以完成对应任务的系列动作。在得到系列动作后,需要将系列动作拆解,以使机器人能够一步一步完成整个系列动作。例如,AGV小车接收到将目标货物从A移动至B的任务信息,小车可能需要移动至A将目标货物放在小车上,再移动至B将货物放下等系列动作。为了使机器人能够执行,系列动作可以拆分为:移动至A、将目标货物抬起、将目标货物放在小车上,移动至B,将目标货物从小车上抬起,将目标货物放在B多个动作。
在本公开的一种示例实施例中,在任务解析线程对任务信息进行解析得到完成任务的系列动作之前,可以先对任务信息进行合法性检验。其中,所述合法性验证可以是验证任务信息是否任务发布中心下发的认证的任务信息,例如,可以通过任务发布中心在任务信息中添加合法标识,任务解析线程对任务信息上的合法标识进行验证的方式;所述合法性验证还可以是对任务信息是否分配至当前机器人进行验证,例如,任务发布中心可以在任务信息中添加机器人码,任务解析线程则根据机器人码判断任务信息是否属于当前机器人。通过对任务信息是否合法进行验证,防止不合法任务信息对应的任务被机器人执行或者任务信息下发至错误的机器人造成机器人的损伤或者其他损失。
在步骤S13中,动作配发线程从所述任务队列中获取待执行动作,将所述待执行动作转换为动作参数加入动作信息队列中,并将所述动作信息队列存储至共享内存模块。
在本公开的一种示例实施例中,动作配发线程从任务队列中获取到待执行动作,将待执行动作转换为对应的动作参数加入动作信息队列时,可以根据任务的优先级按照优先级顺序加入动作信息队列,以使机器人可以根据优先级执行对应的任务。同时,由于动作信息队列中的每一个动作均需要机器人分别执行,可能需要一定的时间。因此,将动作信息队列存储至共享内存模块,以使动作执行线程能够在需要时直接从存储于共享内存模块的动作信息队列中获取动作参数。
在步骤S14中,动作执行线程从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务。
在本公开的一种示例实施例中,根据所述动作参数控制机器人完成所述任务信息对应的任务,参照图3所示,包括步骤S141至步骤S144:
步骤S141,将所述动作参数转换为模型数据。
步骤S142,将模型数据作为入参输入参数计算模型进行计算,得到轴控指令。
步骤S143,将所述轴控指令下发至各轴控模块,以使各轴控模块执行轴控指令。
步骤S144,收集轴控模块执行轴控指令的运行数据,将其作为入参输入至参数计算模型以获取更新后的轴控指令,根据更新后的轴控指令控制各个轴控模块,直至完成所述任务信息对应的任务。
在本公开的一种示例实施例中,通过将任务参数转换为参数计算模型所需的模型参数并计算得出轴控指令,将轴控指令分别下发至各个轴控模块,以使轴控模块根据轴控指令进行运动;在轴控模块进行运动时,实时收集轴控模块的运行数据,并将运行数据反馈至参数计算模型中,进行进一步计算得到更新的轴控指令,最后根据更新后的轴控指令再一次控制各轴控模块进行运动,直至完成任务信息对应的任务。其中,所述参数计算模型包括导航参数计算模型、速度规划参数计算模型等多种参数计算模型。例如,在得到任务参数为行走时,可以根据速度规划参数计算模型计算出行走的加速、匀速、减速等各个阶段的速度以及各个阶段的时间,随后将指令下发至轴控模块进行执行,在执行过程中实时收集小车的位置、姿势等运行数据,并利用速度规划参数计算模型进一步计算出更合理的轴控指令控制各轴控模块执行。
在本公开的一种示例实施例中,为了方便管理机器人的状态,在机器人执行任务之后,参照图4所示,所述机器人控制方法还包括如下步骤S21至步骤S23:
步骤S21,结果接收线程获取机器人完成所述任务时的运行数据及运行结果,并加入存储于所述共享内存模块的动作信息队列中。
步骤S22,所述动作配发线程从所述共享内存模块中获取所述运行数据及运行结果,根据所述运行结果判断任务执行结果,并将所述执行结果和所述运行数据加入待发送信息队列。
步骤S23,消息发送线程从所述待发送信息队列中获取所述执行结果返回任务发布中心,并获取运行数据返回数据中心。
在本公开的一种示例实施例中,为了方便对机器人的管理以及对多个机器人任务的统筹,在机器人执行任务时,结果接收线程需要获取机器人各个轴控模块完成任务时的运行数据以及最终的运行结果,并且通过共享内存模块将运行数据和运行结果分享至动作配发线程;动作配发线程从共享内存模块中获取运行数据和运行结果,根据运行结果判断任务执行结果,将任务结果和运行数据加入待发送信息队列;消息发送线程在待发送消息队列中获取执行结果返回任务发布中心,以使任务发布中心进行进一步的调度,同时将运行数据返回数据中心以使数据中心对机器人的状态进行监督和管理。通过消息发布线程对执行结果和运行数据进行返回使得整个控制系统可以只用一套网络模块即可完成数据通信,节约了控制系统的生产成本,同时也能够输出统一时间的运行数据,方便后续对运行数据进行分析。
在本公开的一种示例实施例中,还可以通过异常处理模块对机器人控制过程中发生的异常状况进行处理。在所述任务接收线程、所述任务解析线程、所述动作配发线程以及所述动作执行线程中至少一个发生异常状况时,向异常处理模块发送异常信号,以使所述异常处理模块根据所述异常信号处理异常状况。参照图5所示,异常处理模块根据所述异常信号处理异常状况,包括如下步骤S31至步骤S33:
步骤S31,响应于接收到的异常信号,判断所述异常信号的种类。
步骤S32,根据所述异常信号的种类获取对应的异常数据。
步骤S33,根据所述异常数据对所述异常状况进行对应的处理。
在本公开的一种示例实施例中,异常处理模块在接收到异常信号后,判断异常信号的种类,根据异常信号的种类获取对应的异常数据,最后根据异常数据对异常状况进行处理。例如,异常处理模块接收到运动控制模块的异常信号,经判断确定异常信号为故障信号,此时获取故障出现的异常数据,根据异常数据判断轴控模块A发生故障,此时向任务中心发送故障信号,以使检修人员进行检修。异常处理模块的设置能够同时监控各个线程的异常状况,实现一个异常处理模块同时处理控制系统的异常状况,避免了因为管理控制系统和运动控制系统分离设计造成的计算资源浪费。
在本公开的一种示例实施例中,在对机器人进行控制之前还需要对各个线程的参数或者模式进行配置,因此,响应于配置指令,系统配置模块可以根据配置指令中的配置参数对所述任务接收线程、所述任务解析线程、所述动作配发线程以及所述动作执行线程中至少一个线程的模式和/或参数进行配置。通过系统配置模块能够直接控制多个线程,避免了分别为管理控制系统和运动控制系统设计系统配置模块,节约了计算资源,同时通过一个系统配置模块可以为多个线程进行配置也方便了对整个系统的配置。
以下结合图6,以AGV小车的控制为例,对本公开实施例的技术方案的实现细节进行详细阐述:
为了对整个控制方法中各个线程进行配置和异常管理,设置系统配置模块和异常管理模块。AGV小车的控制方法包括如下步骤:
步骤S601,任务接收线程将接收的任务信息进行合法验证后,加入接收队列;
步骤S602,任务解析线程从接收队列中获取任务信息,将任务信息转换为待执行动作并将所述待执行动作加入任务队列中;
步骤S603,动作配发线程将任务信息已经接收到的确认消息加入待发送消息队列以使消息发送线程向任务发布中心反馈;
步骤S604,动作配发线程从任务队列中获取待执行动作,将待执行动作转换为动作参数加入动作信息队列中,并通过共享内存模块共享至动作执行线程;
步骤S605,动作执行线程根据共享内存模块中动作信息队列中的动作参数控制AGV小车进行运动,结果接收线程接收AGV小车运动时的运行数据和运行结果并通过共享内存模块反馈至动作配发线程;
步骤S606,动作配发线程从共享内存模块中获取所述运行数据及运行结果,根据所述运行结果判断任务执行结果;
步骤S607,动作配发线程将执行结果和运行数据加入待发送信息队列,以使消息发送线程向任务发布中心和数据中心进行反馈。
基于上述机器人控制方法,对应的机器人的控制系统可以包括系统管理层、任务管理层、动作执行层以及硬件抽象层。系统管理层用于对控制系统内的软件和外设固件的版本进行检查升级,以及对系统的初始状态、就绪状态、运行状态以及挂起状态进行切换。任务管理层用于对任务信息进行合法性验证、解析、分配以及对任务进行实时监控收集任务数据;动作执行层则用于控制机器人各部件进行运动并且收集每个动作所产生的运行数据;硬件抽象层则对各个硬件单元进行结构化抽象,包括:伺服电机、网络通信设备、电池、安全传感器等;日志管理层则用于记录系统运行的运行数据以及异常数据等;异常管理层则用于对系统发生的各种异常进行处理。
其中,对任务信息进行合法性验证和解析、对任务进行分配、对消息进行返回等对实时性较低的任务可以通过任务解析线程、动作配发新城、消息发送线程来执行;而对于控制机器人各部件进行运动并且收集每个动作所产生的运行数据等对实时性要求较高的任务则可以通过动作执行线程和结果接收线程执行;对控制系统内的软件和外设固件的版本进行检查升级以及对系统发生的各种异常进行处理等任务则可以由系统配置模块和异常管理模块进行处理。
需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
此外,在本公开的示例性实施方式中,还提供了一种机器人控制系统。参照图7所示,所述机器人控制系统700包括:系统管理模块71,共享内存模块72和运动控制模块73。
其中,所述系统管理模块71可以用于对接收到的任务信息进行转换生成对应的动作参数,并发送至所述共享内存模块进行存储;所述共享内存模块72可以用于接收并存储所述动作参数;所述运动控制模块73可以用于从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务。
在本公开的一种示例性实施例中,基于前述方案,所述系统管理模块71包括:任务接收线程711、任务解析线程712和动作配发线程713。
其中,所述任务接收线程711可以用于接收到任务信息,将所述任务信息加入接收队列;任务解析线程712可以用于从所述接收队列中获取任务信息,将所述任务信息转换为待执行动作并将所述待执行动作加入任务队列中;动作配发线程713可以用于从所述任务队列中获取待执行动作,将所述待执行动作转换为动作参数并加入动作信息队列中,并将所述动作信息队列存储至共享内存模块。
在本公开的一种示例性实施例中,基于前述方案,所述任务解析线程712可以用于对所述任务信息进行解析得到完成任务的系列动作;对所述系列动作进行拆解,得到待执行动作。
在本公开的一种示例性实施例中,基于前述方案,所述任务解析线程712可以用于对所述任务信息进行合法性检验。
在本公开的一种示例性实施例中,基于前述方案,所述动作配发线程713还可以用于从所述共享内存模块中获取所述运行数据及运行结果,根据所述运行结果判断任务执行结果,并将所述执行结果和所述运行数据加入待发送信息队列。
在本公开的一种示例性实施例中,基于前述方案,所述系统管理模块71还可以包括:消息发送线程714。具体地,所述消息发送线程714可以用于从所述待发送信息队列中获取所述执行结果返回任务发布中心,并获取运行数据返回数据中心。
在本公开的一种示例性实施例中,基于前述方案,所述运动控制模块73包括:动作执行线程731,所述动作执行线程用于从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务。
在本公开的一种示例性实施例中,基于前述方案,所述动作执行线程731可以用于将所述任务参数转换为模型数据;将模型数据作为入参输入参数计算模型进行计算,得到轴控指令;将所述轴控指令下发至各轴控模块,以使各轴控模块执行轴控指令;收集轴控模块执行轴控指令的运行数据,将其作为入参输入至参数计算模型以获取更新后的轴控指令,根据更新后的轴控指令控制各个轴控模块,直至完成所述任务信息对应的任务。
在本公开的一种示例性实施例中,基于前述方案,所述运动控制模块73还可以包括:结果接收线程732。具体地,所述结果接收线程732可以用于获取机器人完成所述任务时的运行数据及运行结果,并加入存储于所述共享内存模块的动作信息队列中。
在本公开的另一种示例性实施例中,基于前述方案,所述机器人控制系统800还包括异常处理模块74,参照图8所示。异常处理模块74可以用于在获取到所述系统管理模块、所述共享内存模块以及所述运动控制模块中至少一个发生异常状况时发送的异常信号时,根据所述异常信号处理异常状况。
在本公开的另一种示例性实施例中,基于前述方案,所述机器人控制系统900还包括系统配置模块75,参照图9所示。系统配置模块75可以用于响应于配置指令,根据所述配置指令中的配置参数对所述系统管理模块、所述共享内存模块以及所述运动控制模块中至少一个的模式和/或参数进行配置。
由于本公开的示例实施例的机器人控制系统的各个功能模块与上述机器人控制方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的机器人控制方法的实施例。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述机器人控制方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
下面参照图10来描述根据本公开的这种实施例的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030、显示单元1040。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1010执行,使得所述处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。例如,所述处理单元1010可以执行如图1中所示的步骤S110:任务接收线程接收到任务信息,将所述任务信息加入接收队列;S120:任务解析线程从所述接收队列中获取任务信息,将所述任务信息转换为待执行动作并将所述待执行动作加入任务队列中;S130:动作配发线程从所述任务队列中获取待执行动作,将所述待执行动作转换为动作参数加入动作信息队列中,并将所述动作信息队列存储至共享内存模块;S140:动作执行线程从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务。
存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1021和/或高速缓存存储单元1022,还可以进一步包括只读存储单元(ROM)1023。
存储单元1020还可以包括具有一组(至少一个)程序模块1025的程序/实用工具1024,这样的程序模块1025包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1070(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
参照图11,描述了根据本公开的实施例的用于实现上述方法的程序产品1100,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (13)

1.一种机器人控制方法,其特征在于,包括:
任务接收线程接收到任务信息,将所述任务信息加入接收队列;
任务解析线程从所述接收队列中获取任务信息,将所述任务信息转换为待执行动作并将所述待执行动作加入任务队列中;
动作配发线程从所述任务队列中获取待执行动作,将所述待执行动作转换为动作参数加入动作信息队列中,并将所述动作信息队列存储至共享内存模块;
动作执行线程从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务;
结果接收线程获取机器人完成所述任务时的运行数据及运行结果,并加入存储于所述共享内存模块的动作信息队列中;
所述动作配发线程从所述共享内存模块中获取所述运行数据及运行结果,根据所述运行结果判断任务执行结果,并将所述执行结果和所述运行数据加入待发送信息队列;
消息发送线程从所述待发送信息队列中获取所述执行结果返回任务发布中心,并获取运行数据返回数据中心。
2.根据权利要求1所述的方法,其特征在于,所述将所述任务信息转换为待执行动作,包括:
对所述任务信息进行解析得到完成任务的系列动作;
对所述系列动作进行拆解,得到待执行动作。
3.根据权利要求2所述的方法,其特征在于,在所述任务解析线程对所述任务信息进行解析得到完成任务的系列动作之前,所述方法还包括:
所述任务解析线程对所述任务信息进行合法性检验。
4.根据权利要求1所述的方法,其特征在于,所述根据所述动作参数控制机器人完成所述任务信息对应的任务,包括:
将所述动作参数转换为模型数据;
将模型数据作为入参输入参数计算模型进行计算,得到轴控指令;
将所述轴控指令下发至各轴控模块,以使各轴控模块执行轴控指令;
收集轴控模块执行轴控指令的运行数据,将其作为入参输入至参数计算模型以获取更新后的轴控指令,根据更新后的轴控指令控制各个轴控模块,直至完成所述任务信息对应的任务。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述任务接收线程、所述任务解析线程、所述动作配发线程以及所述动作执行线程中至少一个发生异常状况,则向异常处理模块发送异常信号,以使所述异常处理模块根据所述异常信号处理异常状况。
6.根据权利要求5所述的方法,其特征在于,所述异常处理模块根据所述异常信号处理异常状况,包括:
响应于接收到的异常信号,判断所述异常信号的种类;
根据所述异常信号的种类获取对应的异常数据;
根据所述异常数据对所述异常状况进行对应的处理。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于配置指令,系统配置模块根据配置指令中的配置参数对所述任务接收线程、所述任务解析线程、所述动作配发线程以及所述动作执行线程中至少一个线程的模式和/或参数进行配置。
8.一种机器人控制系统,其特征在于,包括系统管理模块、共享内存模块、运动控制模块;
所述系统管理模块对接收到的任务信息进行转换生成对应的动作参数,并发送至所述共享内存模块进行存储;
所述运动控制模块从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务;
其中,所述系统管理模块包括任务接收线程、任务解析线程、动作配发线程以及消息发送线程;
所述运动控制模块包括动作执行线程,结果接收线程;
所述任务接收线程接收到任务信息,将所述任务信息加入接收队列;
所述任务解析线程从所述接收队列中获取任务信息,将所述任务信息转换为待执行动作并将所述待执行动作加入任务队列中;
所述动作配发线程从所述任务队列中获取待执行动作,将所述待执行动作转换为动作参数并加入动作信息队列中,并将所述动作信息队列存储至共享内存模块;
所述动作执行线程从所述共享内存模块中获取动作参数,并根据所述动作参数控制机器人完成所述任务信息对应的任务;
所述结果接收线程获取机器人完成所述任务时的运行数据及运行结果,并加入存储于所述共享内存模块的动作信息队列中;
所述动作配发线程从所述共享内存模块中获取所述运行数据及运行结果,根据所述运行结果判断任务执行结果,并将所述执行结果和所述运行数据加入待发送信息队列;
所述消息发送线程从所述待发送信息队列中获取所述执行结果返回任务发布中心,并获取运行数据返回数据中心。
9.根据权利要求8所述的控制系统,其特征在于,所述共享内存模块接收并存储所述动作参数。
10.根据权利要求8所述的控制系统,其特征在于,所述控制系统还包括异常处理模块;
所述异常处理模块在获取到所述系统管理模块、所述共享内存模块以及所述运动控制模块中至少一个发生异常状况时发送的异常信号时,根据所述异常信号处理异常状况。
11.根据权利要求8所述的控制系统,其特征在于,所述控制系统还包括系统配置模块;
所述系统配置模块响应于配置指令,根据所述配置指令中的配置参数对所述系统管理模块、所述共享内存模块以及所述运动控制模块中至少一个的模式和/或参数进行配置。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的机器人控制方法。
13.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的机器人控制方法。
CN201910405871.4A 2019-05-15 2019-05-15 机器人控制方法及控制系统、存储介质及电子设备 Active CN111745636B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910405871.4A CN111745636B (zh) 2019-05-15 2019-05-15 机器人控制方法及控制系统、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910405871.4A CN111745636B (zh) 2019-05-15 2019-05-15 机器人控制方法及控制系统、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111745636A CN111745636A (zh) 2020-10-09
CN111745636B true CN111745636B (zh) 2022-01-07

Family

ID=72672764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910405871.4A Active CN111745636B (zh) 2019-05-15 2019-05-15 机器人控制方法及控制系统、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111745636B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112659119A (zh) * 2020-12-02 2021-04-16 广东博智林机器人有限公司 机械臂的控制方法、装置、电子设备及存储介质
CN112990727A (zh) * 2021-03-26 2021-06-18 中国人民财产保险股份有限公司深圳市分公司 一种机器人任务执行控制方法、装置、系统及介质
CN114043478B (zh) * 2021-11-24 2023-07-07 深圳大学 机器人复杂操作技能表示方法、装置、智能终端和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984235A (zh) * 2014-05-27 2014-08-13 湖南大学 基于c/s结构的空间机械臂控制系统软件架构及构建方法
CN106610632A (zh) * 2015-10-26 2017-05-03 韩华泰科株式会社 机器人控制系统及方法
CN107957719A (zh) * 2016-10-18 2018-04-24 珠海格力智能装备有限公司 机器人及其异常监控方法和装置
CN108025436A (zh) * 2015-09-21 2018-05-11 株式会社虹之机器 实时控制系统、实时控制装置及系统控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012140655A2 (en) * 2011-04-12 2012-10-18 Baryakar Dan Robotic system controlled by multi participants, considering administrator's criteria

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984235A (zh) * 2014-05-27 2014-08-13 湖南大学 基于c/s结构的空间机械臂控制系统软件架构及构建方法
CN108025436A (zh) * 2015-09-21 2018-05-11 株式会社虹之机器 实时控制系统、实时控制装置及系统控制方法
CN108136578A (zh) * 2015-09-21 2018-06-08 株式会社虹之机器 具有分层架构的实时设备控制系统及利用其的实时机器人控制系统
CN106610632A (zh) * 2015-10-26 2017-05-03 韩华泰科株式会社 机器人控制系统及方法
CN107957719A (zh) * 2016-10-18 2018-04-24 珠海格力智能装备有限公司 机器人及其异常监控方法和装置

Also Published As

Publication number Publication date
CN111745636A (zh) 2020-10-09

Similar Documents

Publication Publication Date Title
CN111745636B (zh) 机器人控制方法及控制系统、存储介质及电子设备
CN104884929B (zh) 自动化的样品处理系统
Makris Cooperating robots for flexible manufacturing
CN105897509B (zh) 一种基于云计算的机器人软件运行及仿真系统
CN111898908B (zh) 一种基于多智体的生产线调度系统及方法
US11491653B2 (en) Method and apparatus for robotic machining
Mangler et al. centurio. work–Industry 4.0 integration assessment and evolution
Rossini et al. REPLICA: A Solution for Next Generation IoT and Digital Twin Based Fault Diagnosis and Predictive Maintenance.
CN111360813B (zh) 一种基于边缘云服务的多机器人控制器
EP3792186B1 (en) Internet connected auxiliary power unit airline maintenance system
Ryu et al. Dynamic restructuring process for self-reconfiguration in the fractal manufacturing system
CN110780651B (zh) Agv调度系统及方法
Mathews et al. Industrial applications of a modular software architecture for line-less assembly systems based on interoperable digital twins
CN115056234B (zh) 基于事件驱动和无限状态机的rpa控制器调度方法及系统
Baumgart et al. A Process to Support Safety Analysis for a System-of-Systems
Kruger et al. Implementation of an Erlang-based resource holon for a holonic manufacturing cell
KR20200125313A (ko) 스마트 공장을 위한 Edge AI 시스템 고가용성 확보 및 맞춤형 서비스
CN111399971A (zh) 一种网元状态解析方法、装置和存储介质
EP4286965A1 (en) Agv dispatching control system and method
CN111126911B (zh) 智能仓储管理中心控制系统和控制方法
JP2013107633A (ja) メッセージを送受信するための装置および方法
Karpagavalli Smart factory of Industry 4.0
Hollingsworth et al. Intelligent Flexible Manufacturing Cell
Makris et al. Flexible Cooperating Robots for Reconfigurable Shop Floor
KR20170034053A (ko) 제품의 생산 또는 분석과 연동하는 데이터 수집/처리 시스템, 및 이를 포함하는 제품 생산/분석 시스템

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210323

Address after: Room a1905, 19 / F, building 2, No. 18, Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Beijing Jingdong Qianshi Technology Co.,Ltd.

Address before: 101, 1st floor, building 2, yard 20, Suzhou street, Haidian District, Beijing 100080

Applicant before: Beijing Jingbangda Trading Co.,Ltd.

Effective date of registration: 20210323

Address after: 101, 1st floor, building 2, yard 20, Suzhou street, Haidian District, Beijing 100080

Applicant after: Beijing Jingbangda Trading Co.,Ltd.

Address before: 100086 8th Floor, 76 Zhichun Road, Haidian District, Beijing

Applicant before: BEIJING JINGDONG SHANGKE INFORMATION TECHNOLOGY Co.,Ltd.

Applicant before: BEIJING JINGDONG CENTURY TRADING Co.,Ltd.

GR01 Patent grant
GR01 Patent grant