CN114310879A - 一种机器人控制方法、控制柜及系统 - Google Patents
一种机器人控制方法、控制柜及系统 Download PDFInfo
- Publication number
- CN114310879A CN114310879A CN202111591594.4A CN202111591594A CN114310879A CN 114310879 A CN114310879 A CN 114310879A CN 202111591594 A CN202111591594 A CN 202111591594A CN 114310879 A CN114310879 A CN 114310879A
- Authority
- CN
- China
- Prior art keywords
- target
- control
- motion
- instruction
- coroutine
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000013515 script Methods 0.000 claims abstract description 93
- 230000006870 function Effects 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 15
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Manipulator (AREA)
Abstract
本公开提供了一种机器人控制方法、控制柜及系统,其中,该方法包括:获取目标脚本;对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令;其中,所述协程用于执行目标机器人中与该协程对应的至少一种控制功能;按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制。
Description
技术领域
本公开涉及机器人技术领域,具体而言,涉及一种机器人控制方法、控制柜及系统。
背景技术
目前,使用控制器控制机器人成为各大主流机器人厂商的选择,其原理是通过控制器接收上位机发送的机器人控制指令,并按照接收到的机器人控制指令控制机器人的运行。
相关技术中,控制器的控制指令往往是解释器在对控制脚本进行解析后生成的,不同的控制功能分别使用不同的线程进行解析,从而导致了在进行机器人控制时需要使用多个解释器并行执行解析操作,占用的资源量较高。
发明内容
本公开实施例至少提供一种机器人控制方法、控制柜及系统。
第一方面,本公开实施例提供了一种机器人控制方法,包括:
获取目标脚本;
对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令;其中,所述协程用于执行目标机器人中与该协程对应的至少一种控制功能;
按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制。
一种可能的实施方式中,所述按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制,包括:
基于预设的协程执行顺序,依次执行各协程分别对应的至少一个控制指令中最先被解析的第一控制指令;
更新所述协程执行顺序,并基于更新后的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第二控制指令,以基于各协程分别对应的第二控制指令对所述目标机器人进行控制,所述第二控制指令的解析时间晚于所述第一控制指令。
一种可能的实施方式中,所述更新所述协程执行顺序,包括:
根据各协程分别对应的第一控制指令的执行耗时,对各协程由高到低进行排序,并根据排序结果对所述协程执行顺序进行更新。
一种可能的实施方式中,所述方法还包括:
在检测到任一所述控制指令的执行耗时超过预设时长的情况下,停止执行该控制指令,并生成与该控制指令对应的异常提示信息,以指示该控制指令在执行过程中出现异常情况。
一种可能的实施方式中,所述对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令,包括:
对所述目标脚本进行解析,确定目标协程对应的按解析时序排列的至少一个运动指令;
所述基于各协程分别对应的第一控制指令对所述目标机器人进行控制,包括:
在执行至所述目标协程时,将所述目标协程中的运动指令发送至所述目标机器人的控制器,以根据所述运动指令对所述目标机器人进行控制。
一种可能的实施方式中,所述对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令,包括:
确定所述目标脚本中用于控制目标机器人运动的目标运动信息,并基于所述目标运动信息生成至少一组目标运动指令;
所述将所述目标协程中的运动指令发送至所述目标机器人的控制器,以根据所述运动指令对所述目标机器人进行控制,包括:
按照所述目标脚本的脚本编写顺序,逐次将所述至少一组目标运动指令发送至所述目标机器人的控制器,以指示所述控制器基于所述至少一组目标运动指令对所述目标机器人进行控制。
一种可能的实施方式中,所述确定所述目标脚本中用于控制目标机器人运动的目标运动信息,并基于所述目标运动信息生成至少一组目标运动指令,包括:
对所述目标脚本进行解析,按照所述目标脚本的脚本编写顺序确定所述目标脚本对应的目标运动信息和非运动信息;
依照所述脚本编写顺序生成指令组;其中,所述指令组依次罗列与所述目标运动信息对应的目标运动指令组,以及与所述非运动信息对应的非运动指令组。
一种可能的实施方式中,所述方法还包括:
在检测到所述控制器执行一组目标运动指令完毕后,指示解释器执行所述非运动指令组中的非运动指令,并在检测到所述非运动指令组被执行完毕后,按照所述脚本编写顺序执行下一组目标运动指令。
一种可能的实施方式中,所述控制器按照接收到所述至少一组目标运动指令的接收顺序,逐一对所述至少一组目标运动指令进行统一规划,以按照统一规划后的运动指令对所述目标机器人进行控制。
一种可能的实施方式中,所述基于所述目标运动信息生成至少一组目标运动指令,包括:
调用与所述目标运动信息对应的指令接口函数,基于所述指令接口函数与所述目标运动信息,生成至少一组目标运动指令。
一种可能的实施方式中,在所述目标脚本需要调用多个指令接口函数的情况下,所述方法还包括:
在检测到所述控制器对应的运动指令执行队列中的运动指令个数不满足预设条件的情况下,依次调用各指令接口函数,生成与所述目标运动信息对应的多个目标运动指令,以在检测到所述运动指令执行队列中的运动指令个数满足所述预设条件的情况下,将所述多个目标运动指令依次添加至所述运动指令执行队列中。
第二方面,本公开实施例还提供一种机器人控制柜,用于对机械臂进行控制;所述机器人控制柜被配置为用于执行如上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第三方面,本公开实施例还提供一种机器人系统,包括:如上述第二方面所述的机器人控制柜和机械臂;所述机器人控制柜按照配置的控制方法控制所述机械臂。
第四方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第五方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的机器人控制方法、控制柜及系统,通过对目标脚本的解析,确定各协程分别对应的按解析时序排列的至少一个控制指令;按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制。这样,在控制目标机器人时,仅需要使用一个线程即可完成全部的控制功能,各控制功能对应的控制指令均由该线程对应的协程执行或者发送目标机器人对应的控制器,从而可以节约占用的资源量,提高目标机器人的控制效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种机器人控制方法的流程图;
图2示出了本公开实施例所提供的一种机器人控制方法中,生成至少一组目标运动指令的具体方法的流程图;
图3示出了本公开实施例所提供的一种机器人控制方法中,对目标机器人进行控制的具体方法的流程图;
图4示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,相关技术中,控制器的控制指令往往是解释器在对控制脚本进行解析后生成的,不同的控制功能分别使用不同的线程进行解析,从而导致了在进行机器人控制时需要使用多个解释器并行执行解析操作,占用的资源量较高。
基于上述研究,本公开提供了一种机器人控制方法、控制柜及系统,通过对目标脚本的解析,确定各协程分别对应的按解析时序排列的至少一个控制指令;按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制。这样,在控制目标机器人时,仅需要使用一个线程即可完成全部的控制功能,各控制功能对应的控制指令均由该线程对应的协程执行或者发送目标机器人对应的控制器,从而可以节约占用的资源量,提高目标机器人的控制效率。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种机器人控制方法进行详细介绍,本公开实施例所提供的机器人控制方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该机器人控制方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的机器人控制方法的流程图,所述方法包括S101~S103,其中:
S101:获取目标脚本。
S102:对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令;其中,所述协程用于执行目标机器人中与该协程对应的至少一种控制功能。
S103:按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制。
以下是对上述步骤的详细介绍。
针对S101和S102,所述目标脚本可以是用户在目标机器人对应的解释器中输入的,所述解释器用于解析用户输入的目标脚本,并与所述目标机器人的控制器建立通讯连接,从而可以作为所述控制器的上位机,将解析后生成的指令发送至所述目标机器人的控制器,实现对所述目标机器人的控制。其中,所述解释器可以是Lua解释器或者对所述Lua解释器进行优化后得到的解释器。
实际应用中,解释器往往需要解析不同开发人员针对不同需求所开发的脚本,而不同的脚本在运行过程中往往可能出现各种各样的错误,从而影响整个机器人系统的正常运作。
一种可能的实施方式中,在对所述目标脚本进行解析之前,还可以对所述目标脚本进行语法分析,在确定所述目标脚本语法无误的情况下,对所述目标脚本进行解析。
这里,在检测到所述目标脚本存在语法错误的情况下,可以生成第一提示信息,以指示所述目标脚本发生语法错误。
示例性的,所述第一提示信息可以为“语法错误,错误位置XXX,错误类型代码XXX”,以提示用户发生语法错误,并提示出发生错误的具体位置和错误类型。
这样,通过展示所述第一提示信息,可以提示用户发生了语法错误,从而可以确保机器人系统的正常运行。
另一种可能的实施方式中,在检测到所述目标脚本在解析过程中发生错误的情况下,还可以生成第二提示信息,以指示所述目标脚本发生解析错误。
这里,由于通过语法分析可能无法检测到目标脚本中的所有问题,因此在解析过程中发生其他错误的情况下,还可以生成并向用户展示第二提示信息,以提示用户所述目标脚本发生解析错误。
示例性的,所述第二提示信息可以为“速度设置超过最大速度阈值,请调小速度!”,以表示用户输入的目标脚本中所设置的速度超过最大速度阈值,从而无法正常生成与所述目标脚本对应的控制指令。此外,通过展示与所述解析错误类型对应的调整意见,使得用户可以快速的对所述目标脚本进行针对性的调整。
具体的,在对所述目标脚本进行解析后,可以得到各协程分别对应的按解析时序排列的至少一个控制指令,对应有控制指令的协程可以是同一解释器对应的线程中的协程,从而无需使用多个线程对目标脚本进行解析以及执行后续的控制指令,可以在一个线程中完成对目标脚本的解析以及机器人控制,相较于使用多个线程进行机器人控制,节约了计算资源。
其中,所述协程中的目标协程用于对所述目标机器人的运动进行控制,通过对所述目标脚本进行解析,可以确定目标协程对应的按解析时序排列的至少一个运动指令,从而可以根据所述至少一个运动指令对所述目标机器人的运动进行控制。
优选的,所述目标协程的数量可以为1,通过设置一个目标协程对所述目标机器人的运动进行控制,便于对所述目标机器人的运动进行集中管理和统一规划。
一种可能的实施方式中,在对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令时,可以确定所述目标脚本中用于控制目标机器人运动的目标运动信息,并基于所述目标运动信息生成至少一组目标运动指令。
实际应用中,在控制所述目标机器人时,除了要控制所述目标机器人的运动,还有其他可以控制的内容(比如控制目标机器人的I/O端口等),而这些控制内容与所述目标机器人的运动状态虽无直接关联,但也是机器人控制中的重要组成部分,与这些控制内容对应的信息可以称为非运动信息。
一种可能的实施方式中,如图2所示,可以通过以下步骤生成至少一组目标运动指令:
S201:对所述目标脚本进行解析,按照所述目标脚本的脚本编写顺序确定所述目标脚本对应的目标运动信息和非运动信息。
这里,所述目标运动信息即为控制所述目标机器人运动的控制信息,所述非运动信息即为控制所述目标机器人的信息中,除所述目标运动信息外的其他控制信息。
S202:依照所述脚本编写顺序生成指令组;其中,所述指令组依次罗列与所述目标运动信息对应的目标运动指令组,以及与所述非运动信息对应的非运动指令组。
具体的,在生成至少一组运动指令时,可以调用与所述目标运动信息对应的指令接口函数,基于所述指令接口函数与所述目标运动信息,生成至少一组目标运动指令。
其中,所述指令接口函数为预先封装的处理代码,可以根据所述目标运动信息中的运动参数数值,生成与所述目标运动信息对应的目标运动指令。
示例性的,可以根据所述目标运动信息“v=5”,确定需要调用的指令接口函数为命令速度生成接口,所述命令速度生成接口可以根据速度的数值5,生成对应的目标运动指令“速度5m/s”,以指示所述目标机器人按照命令速度5m/s进行运动。
进一步的,在检测到所述控制器对应的运动指令执行队列中的运动指令个数满足预设条件的情况下,依次调用各指令接口函数,生成与所述目标运动信息对应的多个目标运动指令,以在检测到所述运动指令执行队列中的运动指令个数满足所述预设条件的情况下,将所述多个目标运动指令依次添加至所述运动指令执行队列中。
这里,所述目标机器人的控制器可以依次执行所述运动指令执行队列中的运动指令,控制所述目标机器人的运动,而在所述运动指令执行队列中的运动指令较少或为空时(也即所述预设条件为运动指令的个数为0或者小于预设值),可以接收所述解释器解析后得到的目标运动指令,并将目标运动指令添加到所述运动指令执行队列中,以继续根据所述运动指令执行队列中的运动指令对所述目标机器人的运动进行控制。
实际应用中,若所述运动指令执行队列中的运动指令个数不满足预设条件,则在生成目标运动指令之后无法向所述运动指令执行队列发送运动指令,而若不设置相应的存储方式对目标运动指令进行存储,则可能会影响对所述目标脚本中后续运动信息的解析和指令生成,从而阻塞机器人的控制过程。
一种可能的实施方式中,在基于所述目标运动信息生成目标运动指令之后,还可以在检测到目标机器人的控制器对应的运动指令执行队列中的运动指令个数不满足预设条件的情况下,将所述目标运动指令添加至所述目标机器人的解释器对应的运动指令存储队列中,以基于所述运动指令存储队列中存储的运动指令进行运动规划。
这里,可以在检测到目标机器人的控制器对应的运动指令执行队列中的运动指令个数不满足预设条件的情况下,将所述目标运动指令添加至所述目标机器人的解释器对应的运动指令存储队列中,并调度所述解释器继续对所述目标脚本进行解析,避免单个运动指令无法执行或存储对后续的解析过程造成的影响,从而实现非阻塞式控制。
此外,在对所述目标脚本进行解析后,还可以确定出所述目标脚本中的控制参数,所述控制参数用于表征与所述目标机器人控制相关的参数。
具体的,在解析出所述控制参数后,还可以根据所述控制参数和所述目标机器人的运行状态,确定与所述目标机器人对应的运动状态展示信息,以通过展示所述运动状态信息,展示所述目标机器人的目标状态。
示例性的,以确定出所述目标脚本中的控制参数为速度为例,可以结合所述目标机器人当前的运行速度,在所述目标机器人对应的示教器上展示所述目标机器人的运行速度。
S103:按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制。
这里,所述第一控制指令可以为各协程分别对应的至少一个控制指令中,最先被解析的指令。
一种可能的实施方式中,如图3所示,可以通过以下步骤对所述目标机器人进行控制:
S301:基于预设的协程执行顺序,依次执行各协程分别对应的至少一个控制指令中最先被解析的第一控制指令。
这样,可以通过轮询的方式,依次执行各协程分别对应的至少一个控制指令中最先被解析的第一控制指令。
S302:更新所述协程执行顺序,并基于更新后的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第二控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制,所述第二控制指令的解析时间晚于所述第一控制指令。
这里,由于不同协程对应的第一控制指令的执行情况不同,因此可以根据各协程分别对应的第一控制指令的执行情况,对所述协程执行顺序进行更新,并根据更新后的协程执行顺序继续执行各协程分别对应的所述第二控制指令。
具体的,在更新所述协程执行顺序时,可以根据各协程分别对应的第一控制指令的执行耗时,对各协程由高到低进行排序,并根据排序结果对所述协程执行顺序进行更新。
示例性的,以预设的协程执行顺序为依次执行协程1~协程5,所述协程1~协程5分别对应的第一控制指令的执行耗时为0.1s、0.6s、0.3s、0.4s、0.5s为例,则根据所述协程1~协程5分别对应的第一控制指令的执行耗时,可以将协程执行顺序从协程1~协程5,更新为协程2-协程5-协程4-协程3-协程1,也即后续执行过程中优先执行,执行第一控制指令的执行耗时较长的协程。
实际应用中,由于控制指令的指令参数设置不合理等情况,可能会导致控制指令无法执行,进而影响所述目标机器人的控制。
一种可能的实施方式中,在检测到任一所述控制指令的执行耗时超过预设时长的情况下,停止执行该控制指令,并生成与该控制指令对应的异常提示信息,以指示该控制指令在执行过程中出现异常情况。
一种可能的实施方式中,在执行至所述目标协程时,可以将所述目标协程中的运动指令发送至所述目标机器人的控制器,以根据所述运动指令对所述目标机器人进行控制。
具体的,可以按照所述目标脚本的脚本编写顺序,逐次将所述至少一组目标运动指令发送至所述目标机器人的控制器,以指示所述控制器基于所述至少一组目标运动指令对所述目标机器人进行控制。
其中,在将所述至少一组目标运动指令发送至所述目标机器人的控制器时,可以将所述至少一组目标运动指令发送至所述目标机器人的控制器对应的所述运动指令执行队列中,以使所述控制器根据所述运动指令队列中的运动指令对所述目标机器人的运动进行统一规划。
一种可能的实施方式中,所述控制器可以按照接收到所述至少一组目标运动指令的接收顺序,逐一对所述至少一组目标运动指令进行统一规划,以按照统一规划后的运动指令对所述目标机器人进行控制。
进一步的,在检测到所述控制器执行一组目标运动指令完毕后,指示解释器执行所述非运动指令组中的非运动指令,并在检测到所述非运动指令组被执行完毕后,按照所述脚本编写顺序执行下一组目标运动指令。
本公开实施例提供的机器人控制方法,通过对目标脚本的解析,确定各协程分别对应的按解析时序排列的至少一个控制指令;按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制。这样,在控制目标机器人时,仅需要使用一个线程即可完成全部的控制功能,各控制功能对应的控制指令均由该线程对应的协程执行或者发送目标机器人对应的控制器,从而可以节约占用的资源量,提高目标机器人的控制效率。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与机器人控制方法对应的机器人控制柜,用于对机械臂进行控制;所述机器人控制柜被配置为用于执行本公开实施例提供的机器人控制方法中任一种可能的实施方式中的步骤。
基于同一发明构思,本公开实施例中还提供了与机器人控制方法对应的机器人系统,包括:如上述机器人控制柜和机械臂;所述机器人控制柜按照配置的控制方法控制所述机械臂。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图4所示,为本公开实施例提供的计算机设备400的结构示意图,包括处理器401、存储器402、和总线403。其中,存储器402用于存储执行指令,包括内存4021和外部存储器4022;这里的内存4021也称内存储器,用于暂时存放处理器401中的运算数据,以及与硬盘等外部存储器4022交换的数据,处理器401通过内存4021与外部存储器4022进行数据交换,当计算机设备400运行时,处理器401与存储器402之间通过总线403通信,使得处理器401在执行以下指令:
获取目标脚本;
对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令;其中,所述协程用于执行目标机器人中与该协程对应的至少一种控制功能;
按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制。
一种可能的实施方式中,所述处理器401的指令中,所述按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制,包括:
基于预设的协程执行顺序,依次执行各协程分别对应的至少一个控制指令中最先被解析的第一控制指令;
更新所述协程执行顺序,并基于更新后的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第二控制指令,所述第二控制指令的解析时间晚于所述第一控制指令。
一种可能的实施方式中,所述处理器401的指令中,所述更新所述协程执行顺序,包括:
根据各协程分别对应的第一控制指令的执行耗时,对各协程由高到低进行排序,并根据排序结果对所述协程执行顺序进行更新。
一种可能的实施方式中,所述处理器401的指令中,所述方法还包括:
在检测到任一所述控制指令的执行耗时超过预设时长的情况下,停止执行该控制指令,并生成与该控制指令对应的异常提示信息,以指示该控制指令在执行过程中出现异常情况。
一种可能的实施方式中,所述处理器401的指令中,所述对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令,包括:
对所述目标脚本进行解析,确定目标协程对应的按解析时序排列的至少一个运动指令;
所述基于各协程分别对应的第一控制指令对所述目标机器人进行控制,包括:
在执行至所述目标协程时,将所述目标协程中的运动指令发送至所述目标机器人的控制器,以根据所述运动指令对所述目标机器人进行控制。
一种可能的实施方式中,所述处理器401的指令中,所述对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令,包括:
确定所述目标脚本中用于控制目标机器人运动的目标运动信息,并基于所述目标运动信息生成至少一组目标运动指令;
所述将所述目标协程中的运动指令发送至所述目标机器人的控制器,以根据所述运动指令对所述目标机器人进行控制,包括:
按照所述目标脚本的脚本编写顺序,逐次将所述至少一组目标运动指令发送至所述目标机器人的控制器,以指示所述控制器基于所述至少一组目标运动指令对所述目标机器人进行控制。
一种可能的实施方式中,所述处理器401的指令中,所述确定所述目标脚本中用于控制目标机器人运动的目标运动信息,并基于所述目标运动信息生成至少一组目标运动指令,包括:
对所述目标脚本进行解析,按照所述目标脚本的脚本编写顺序确定所述目标脚本对应的目标运动信息和非运动信息;
依照所述脚本编写顺序生成指令组;其中,所述指令组依次罗列与所述目标运动信息对应的目标运动指令组,以及与所述非运动信息对应的非运动指令组。
一种可能的实施方式中,所述处理器401的指令中,所述方法还包括:
在检测到所述控制器执行一组目标运动指令完毕后,指示解释器执行所述非运动指令组中的非运动指令,并在检测到所述非运动指令组被执行完毕后,按照所述脚本编写顺序执行下一组目标运动指令。
一种可能的实施方式中,所述处理器401的指令中,所述控制器按照接收到所述至少一组目标运动指令的接收顺序,逐一对所述至少一组目标运动指令进行统一规划,以按照统一规划后的运动指令对所述目标机器人进行控制。
一种可能的实施方式中,所述处理器401的指令中,所述基于所述目标运动信息生成至少一组目标运动指令,包括:
调用与所述目标运动信息对应的指令接口函数,基于所述指令接口函数与所述目标运动信息,生成至少一组目标运动指令。
一种可能的实施方式中,所述处理器401的指令中,在所述目标脚本需要调用多个指令接口函数的情况下,所述方法还包括:
在检测到所述控制器对应的运动指令执行队列中的运动指令个数不满足预设条件的情况下,依次调用各指令接口函数,生成与所述目标运动信息对应的多个目标运动指令,以在检测到所述运动指令执行队列中的运动指令个数满足所述预设条件的情况下,将所述多个目标运动指令依次添加至所述运动指令执行队列中。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的机器人控制方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的机器人控制方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (13)
1.一种机器人控制方法,其特征在于,包括:
获取目标脚本;
对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令;其中,所述协程用于执行目标机器人中与该协程对应的至少一种控制功能;
按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制。
2.根据权利要求1所述的方法,其特征在于,所述按照预设的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第一控制指令,以基于各协程分别对应的第一控制指令对所述目标机器人进行控制,包括:
基于预设的协程执行顺序,依次执行各协程分别对应的至少一个控制指令中最先被解析的第一控制指令;
更新所述协程执行顺序,并基于更新后的协程执行顺序依次执行各协程分别对应的按解析时序排列的至少一个控制指令中的第二控制指令,以基于各协程分别对应的第二控制指令对所述目标机器人进行控制,所述第二控制指令的解析时间晚于所述第一控制指令。
3.根据权利要求2所述的方法,其特征在于,所述更新所述协程执行顺序,包括:
根据各协程分别对应的第一控制指令的执行耗时,对各协程由高到低进行排序,并根据排序结果对所述协程执行顺序进行更新。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在检测到任一所述控制指令的执行耗时超过预设时长的情况下,停止执行该控制指令,并生成与该控制指令对应的异常提示信息,以指示该控制指令在执行过程中出现异常情况。
5.根据权利要求1所述的方法,其特征在于,所述对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令,包括:
对所述目标脚本进行解析,确定目标协程对应的按解析时序排列的至少一个运动指令;
所述基于各协程分别对应的第一控制指令对所述目标机器人进行控制,包括:
在执行至所述目标协程时,将所述目标协程中的运动指令发送至所述目标机器人的控制器,以根据所述运动指令对所述目标机器人进行控制。
6.根据权利要求5所述的方法,其特征在于,所述对所述目标脚本进行解析,确定各协程分别对应的按解析时序排列的至少一个控制指令,包括:
确定所述目标脚本中用于控制目标机器人运动的目标运动信息,并基于所述目标运动信息生成至少一组目标运动指令;
所述将所述目标协程中的运动指令发送至所述目标机器人的控制器,以根据所述运动指令对所述目标机器人进行控制,包括:
按照所述目标脚本的脚本编写顺序,逐次将所述至少一组目标运动指令发送至所述目标机器人的控制器,以指示所述控制器基于所述至少一组目标运动指令对所述目标机器人进行控制。
7.根据权利要求6所述的方法,其特征在于,所述确定所述目标脚本中用于控制目标机器人运动的目标运动信息,并基于所述目标运动信息生成至少一组目标运动指令,包括:
对所述目标脚本进行解析,按照所述目标脚本的脚本编写顺序确定所述目标脚本对应的目标运动信息和非运动信息;
依照所述脚本编写顺序生成指令组;其中,所述指令组依次罗列与所述目标运动信息对应的目标运动指令组,以及与所述非运动信息对应的非运动指令组。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在检测到所述控制器执行一组目标运动指令完毕后,指示解释器执行所述非运动指令组中的非运动指令,并在检测到所述非运动指令组被执行完毕后,按照所述脚本编写顺序执行下一组目标运动指令。
9.根据权利要求6所述的方法,其特征在于,所述控制器按照接收到所述至少一组目标运动指令的接收顺序,逐一对所述至少一组目标运动指令进行统一规划,以按照统一规划后的运动指令对所述目标机器人进行控制。
10.根据权利要求6或7所述的方法,其特征在于,所述基于所述目标运动信息生成至少一组目标运动指令,包括:
调用与所述目标运动信息对应的指令接口函数,基于所述指令接口函数与所述目标运动信息,生成至少一组目标运动指令。
11.根据权利要求10所述的方法,其特征在于,在所述目标脚本需要调用多个指令接口函数的情况下,所述方法还包括:
在检测到所述控制器对应的运动指令执行队列中的运动指令个数不满足预设条件的情况下,依次调用各指令接口函数,生成与所述目标运动信息对应的多个目标运动指令,以在检测到所述运动指令执行队列中的运动指令个数满足所述预设条件的情况下,将所述多个目标运动指令依次添加至所述运动指令执行队列中。
12.一种机器人控制柜,其特征在于,用于对机械臂进行控制;所述机器人控制柜被配置为执行如权利要求1~11任一项所述的机器人控制方法。
13.一种机器人系统,其特征在于,包括权利要求12所述的机器人控制柜和机械臂;所述机器人控制柜按照配置的控制方法控制所述机械臂。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111591594.4A CN114310879A (zh) | 2021-12-23 | 2021-12-23 | 一种机器人控制方法、控制柜及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111591594.4A CN114310879A (zh) | 2021-12-23 | 2021-12-23 | 一种机器人控制方法、控制柜及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114310879A true CN114310879A (zh) | 2022-04-12 |
Family
ID=81055272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111591594.4A Pending CN114310879A (zh) | 2021-12-23 | 2021-12-23 | 一种机器人控制方法、控制柜及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114310879A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115756800A (zh) * | 2022-11-28 | 2023-03-07 | 中电金信软件有限公司 | 一种任务调度方法及任务调度装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107765612A (zh) * | 2017-12-07 | 2018-03-06 | 南京诚思机器人科技有限公司 | 一种机器人的运动控制方法、机器人及系统 |
CN109454641A (zh) * | 2018-12-25 | 2019-03-12 | 哈工大机器人(合肥)国际创新研究院 | 一种运动控制器多任务分工及数据交互方法 |
CN109807896A (zh) * | 2019-02-28 | 2019-05-28 | 北京镁伽机器人科技有限公司 | 运动控制方法和系统、控制设备及存储介质 |
CN110599874A (zh) * | 2018-09-05 | 2019-12-20 | 南京科青信息科技有限公司 | 机器人控制器的编程方法、装置、计算机设备和存储介质 |
WO2020077631A1 (zh) * | 2018-10-19 | 2020-04-23 | 深圳配天智能技术研究院有限公司 | 控制机器人的方法、服务器、存储介质及云服务平台 |
CN111168668A (zh) * | 2019-12-26 | 2020-05-19 | 深圳市优必选科技股份有限公司 | 一种机器人的控制方法及机器人 |
-
2021
- 2021-12-23 CN CN202111591594.4A patent/CN114310879A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107765612A (zh) * | 2017-12-07 | 2018-03-06 | 南京诚思机器人科技有限公司 | 一种机器人的运动控制方法、机器人及系统 |
CN110599874A (zh) * | 2018-09-05 | 2019-12-20 | 南京科青信息科技有限公司 | 机器人控制器的编程方法、装置、计算机设备和存储介质 |
WO2020077631A1 (zh) * | 2018-10-19 | 2020-04-23 | 深圳配天智能技术研究院有限公司 | 控制机器人的方法、服务器、存储介质及云服务平台 |
CN109454641A (zh) * | 2018-12-25 | 2019-03-12 | 哈工大机器人(合肥)国际创新研究院 | 一种运动控制器多任务分工及数据交互方法 |
CN109807896A (zh) * | 2019-02-28 | 2019-05-28 | 北京镁伽机器人科技有限公司 | 运动控制方法和系统、控制设备及存储介质 |
CN111168668A (zh) * | 2019-12-26 | 2020-05-19 | 深圳市优必选科技股份有限公司 | 一种机器人的控制方法及机器人 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115756800A (zh) * | 2022-11-28 | 2023-03-07 | 中电金信软件有限公司 | 一种任务调度方法及任务调度装置 |
CN115756800B (zh) * | 2022-11-28 | 2024-04-09 | 中电金信软件有限公司 | 一种任务调度方法及任务调度装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9772879B2 (en) | System and method for isolating I/O execution via compiler and OS support | |
JP2017520853A (ja) | 仮想上位機器に基づく数値制御システム | |
US20140189708A1 (en) | Terminal and method for executing application in same | |
CN105378668B (zh) | 多处理器系统中的操作系统管理的中断引导 | |
CN103544103A (zh) | 一种软件性能测试模拟并发方法及系统 | |
CN108984179B (zh) | 一种Linux下编译处理方法及装置 | |
US20240100697A1 (en) | Multi-Thread Controller for Parallel Robot | |
CN109117141A (zh) | 简化编程的方法、装置、电子设备、计算机可读存储介质 | |
CN103201719A (zh) | 虚拟化计算环境中的设备仿真 | |
EP2733613B1 (en) | Controller and program | |
CN112276943A (zh) | 机器人示教控制方法、示教控制系统、计算机设备和介质 | |
CN112416323A (zh) | 控制代码的生成方法、运行方法、装置、设备及存储介质 | |
CN114310879A (zh) | 一种机器人控制方法、控制柜及系统 | |
CN109947624A (zh) | 状态监控方法及装置 | |
CN113033806B (zh) | 用于分布式计算集群调度的深度强化学习模型训练方法、装置及调度方法 | |
CN111475137A (zh) | 一种软件开发需求预测的方法、系统及设备 | |
US10983772B2 (en) | Method, apparatus and program for generating application program | |
CN110114732A (zh) | 可编程控制器、管理装置和控制系统 | |
CN115981962B (zh) | 线程池监控方法、装置、电子设备及存储介质 | |
CN112214416A (zh) | 调试小程序的方法、装置、电子设备和存储介质 | |
CN104699535A (zh) | 一种信息处理方法及电子设备 | |
CN113535341A (zh) | Linux下CPU核间中断通信的实现方法及装置 | |
CN115543534A (zh) | 训练任务的管理方法、装置、电子设备及存储介质 | |
CN110497406B (zh) | 一种设备分组的方法、装置、设备及介质 | |
US11907053B2 (en) | Failure handling apparatus and system, rule list generation method, and non-transitory computer-readable medium |
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 | ||
CB02 | Change of applicant information |
Address after: Room 407, building 5, yard 98, lianshihu West Road, Mentougou District, Beijing 102300 Applicant after: AUBO (Beijing) Intelligent Technology Co.,Ltd. Address before: Room 407, building 5, yard 98, lianshihu West Road, Mentougou District, Beijing 102300 Applicant before: AUBO (BEIJING) ROBOTICS TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information |