CN112659119A - 机械臂的控制方法、装置、电子设备及存储介质 - Google Patents
机械臂的控制方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112659119A CN112659119A CN202011402393.0A CN202011402393A CN112659119A CN 112659119 A CN112659119 A CN 112659119A CN 202011402393 A CN202011402393 A CN 202011402393A CN 112659119 A CN112659119 A CN 112659119A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- processed
- real
- time
- 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 75
- 238000012545 processing Methods 0.000 claims abstract description 58
- 230000008569 process Effects 0.000 claims abstract description 35
- 238000004590 computer program Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Numerical Control (AREA)
Abstract
本申请公开了一种机械臂的控制方法及、装置、电子设备及存储介质,其中,方法包括:获取基于机械臂控制器的处理过程生成的多个待处理任务;根据预设的优先级对多个待处理任务进行分组,生成至少一个任务队列;调度至少一个任务队列的待处理任务,以根据每个待处理任务的优先级依序执行每个待处理任务。本申请实施例的机械臂的控制方法,解决了相关技术中机械臂在执行实时任务时,不能保证时延,从而大大影响控制精度的技术问题,实现了机械臂控制的实时化,降低了时延。
Description
技术领域
本申请涉及机械臂控制技术领域,特别涉及一种机械臂的控制方法及、装置、电子设备及存储介质。
背景技术
工业机器人、或者执行特定任务或危险任务的机器人一般会在结构环境下,按照特定的模式进行工作。随着技术的发展以及人类的日常生活的需求,机器人面临非结构化、复杂化等一系列问题的挑战。为了使机械臂能够模拟人类劳动,在日常生活中为人们服务,它应该具备更为灵活和智能的交互能力,对环境进行感知进而完成服务任务。
现有技术中,机械臂在执行一些实时任务时,由于时延不能保证,导致无法在限定的时间内对处理外部中断、响应高优先级事件,从而大大影响控制精度,亟待解决。
申请内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一目的在于提出一种机械臂的控制方法,解决了相关技术中机械臂在执行实时任务时,不能保证时延,从而大大影响控制精度的技术问题。
本发明的第二个目的在于提出一种机械臂的控制装置。
本发明的第三个目的在于提出一种电子设备。
本发明的第四个目的在于提出一种计算机可读存储介质。
为达到上述目的,本申请第一方面实施例提供一种机械臂的控制方法,包括以下步骤:
获取基于机械臂控制器的处理过程生成的多个待处理任务;
根据预设的优先级对所述多个待处理任务进行分组,生成至少一个任务队列;以及
调度所述至少一个任务队列的待处理任务,以根据每个待处理任务的优先级依序执行所述每个待处理任务。
可选地,所述调度所述至少一个任务队列的待处理任务,包括:
根据降序执行方式依次执行当前任务队列中优先级最高的待处理任务。
可选地,还包括:
在所述当前任务队列的所有任务执行完毕后,从其他处理线程所属的任务队列中窃取预设数量的任务至所述当前任务队列中。
可选地,在获取基于机械臂控制器的处理过程生成的所述多个待处理任务之前,还包括:
检测所述处理过程是否满足预设实时条件;
若满足所述预设实时条件,则采用Xenomai处理器执行当前任务,否则采用Linux处理器执行所述当前任务。
可选地,所述根据每个待处理任务的优先级依序执行所述每个待处理任务,进一步包括:
通过预设划分方式确定非实时任务处理器和实时任务处理器,并将实时的待处理任务迁移到所述实时任务处理器,且将非实时的待处理任务迁移到所述非实时任务处理器。
为达到上述目的,本申请第二方面实施例提供一种机械臂的控制装置,包括:
获取模块,用于获取基于机械臂控制器的处理过程生成的多个待处理任务;
生成模块,用于根据预设的优先级对所述多个待处理任务进行分组,生成至少一个任务队列;以及
控制模块,用于调度所述至少一个任务队列的待处理任务,以根据每个待处理任务的优先级依序执行所述每个待处理任务。
可选地,所述控制模块,包括:
执行单元,用于根据降序执行方式依次执行当前任务队列中优先级最高的待处理任务。
可选地,还包括:
窃取单元,用于在所述当前任务队列的所有任务执行完毕后,从其他处理线程所属的任务队列中窃取预设数量的任务至所述当前任务队列中。
可选地,在获取基于机械臂控制器的处理过程生成的所述多个待处理任务之前,所述获取模块,还用于:
检测所述处理过程是否满足预设实时条件;
若满足所述预设实时条件,则采用Xenomai处理器执行当前任务,否则采用Linux处理器执行所述当前任务。
可选地,所述生成模块,进一步用于:
通过预设划分方式确定非实时任务处理器和实时任务处理器,并将实时的待处理任务迁移到所述实时任务处理器,且将非实时的待处理任务迁移到所述非实时任务处理器。
为达到上述目的,本申请第三方面实施例提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行如上述实施例所述的机械臂的控制方法。
为达到上述目的,本申请第四方面实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述实施例所述的机械臂的控制方法。
由此,可以获取基于机械臂控制器的处理过程生成的多个待处理任务,并根据预设的优先级对多个待处理任务进行分组,生成至少一个任务队列,并调度至少一个任务队列的待处理任务,以根据每个待处理任务的优先级依序执行每个待处理任务,解决了相关技术中机械臂在执行实时任务时,不能保证时延,从而大大影响控制精度的技术问题,实现了机械臂控制的实时化,降低了时延,为更加精确的机械臂动作提供基础。。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本申请实施例提供的一种机械臂的控制方法的流程图;
图2为根据本申请一个实施例的机械臂控制器整体软件框架示意图;
图3为根据本申请一个实施例的实时任务、非实时任务与CPU(CentralProcessing Unit,中央处理器)核的绑定关系示意图;
图4为根据本申请一个实施例的实时任务线程框架示意图;
图5为根据本申请实施例的机械臂的控制装置的示例图;
图6为本申请实施例提供的电子设备的结构示意图
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参照附图描述根据本发明实施例提出的机械臂的控制方法及、装置、电子设备及存储介质,首先将参照附图描述根据本发明实施例提出的机械臂的控制方法。
具体而言,图1为本申请实施例所提供的一种机械臂的控制方法的流程示意图。
首先,介绍下本申请实施例的机械臂控制器整体软件框架。
可以理解的是,机械臂控制算法是整个控制器逻辑的核心,决定机械臂的运动精度及效率。如图2所示,图2为本申请实施例的机械臂控制器整体软件框架示意图,本申请实施例需要将机械臂运动控制算法运行于xenomai实时内核之上,从而可以保证在确定的截止时间前响应伺服电机,实时上报的电机状态信息,并根据当前的位置信息进行下一次的路径规划,计算出为了到达下一个目标点各个电机所需要的脉冲数。因为Can总线一次只能给一个电机发送指令,多电机的运动指令是需要串行发送的。那么对于不同电机发送指令的过程中是需要确保发送间隔是相同的,在非实时***下因为无法进行优先级抢占及中断抢占导致了控制器下发时间不确定性大,最终导致了机械臂整体在运动过程中出现抖动、路径变形等问题,甚至会导致机械臂本体碰撞损坏。此时,就显示出实时***的强大优势,实时内核可以保证各电机运动指令等间隔发送(最大波动在20us以内,平均波动在3us以内)。
对于现场的人机交互、网络远程传送机械臂状态、远程下发机械臂任务等实时性要求不高的功能模块,可以放到非实时内核上执行,从而可以重用之前的部分代码,减少开发周期和开发成本。其中,实时任务与非实时任务之间的数据交互过程可以通过XDDP(Xenomai域和Linux域之间的IPC(Inter-Process Communication,进程间通信))方式来实现。
如图1所示,该机械臂的控制方法包括以下步骤:
在步骤S101中,获取基于机械臂控制器的处理过程生成的多个待处理任务。
可以理解的是,机械臂控制器的处理过程中生成的多个待处理任务主要包括实时任务和非实时任务。其中,实时任务是指任务的结束时间有严格约束(Deadline),即任务执行必须在Deadline之前完成,例如机械臂控制核心算法则为实时任务;非实时任务则是指任务的结束时间没有严格约束,例如,人机交互、状态网络远传等实时性要求性不高的模块则为非实时任务。
可选地,在一些实施例中,在获取基于机械臂控制器的处理过程生成的多个待处理任务之前,还包括:检测处理过程是否满足预设实时条件;若满足预设实时条件,则采用Xenomai处理器执行当前任务,否则采用Linux处理器执行当前任务。
可以理解的是,本申请实施例可以使用开源软件linux和xenomai组建实时***,通过对当前处理过程进行检测,即判断该处理过程是否有严格的时间约束,如果当前处理过程的结束时间有严格约束,则为实时处理任务,采用Xenomai处理器执行当前任务,如果当前处理过程的结束时间没有严格约束,则是非实时处理任务,可以采用Linux处理器执行当前任务,从而既保证了对时延比较敏感的任务的实时性,同时又避免了额外的授权费用,而且实时性要求不高的模块可以方便的重用之前***上的代码,减少了开发时间成本和人力成本,提升了实时***的实时性。
在步骤S102中,根据预设的优先级对多个待处理任务进行分组,生成至少一个任务队列。
具体而言,以实时任务为例,本申请实施例可以将实时任务处理线程分为两类:一种是进行IO(Input/Output,输入/输出)读写处理线程,另外一种是任务处理线程。实时任务中可以只设置一个IO处理线程。任务处理线程的数量需要等于实时任务处理组中CPU核心个数,这样既不会造成CPU资源的浪费,也不会因为大量线程所需的线程上下文切换中无法抢占而造成延迟影响到实时性。每一个任务处理线程都包含固定任务队列和动态任务队列,并且固定任务队列与动态任务队列都可以由带优先级的多个队列组成。每个任务处理线程所拥有的固定任务队列是只能由本线程来进行处理,而动态任务队列是可以由别的线程来处理。任务处理线程需要调用用户态的任务调度器来获取一个当前需要执行的任务。另外,IO处理线程中可以有阻塞的读写处理操作,任务处理线程中所有待执行的任务中均不得调用阻塞接口的函数。
在步骤S103中,调度至少一个任务队列的待处理任务,以根据每个待处理任务的优先级依序执行每个待处理任务。
可以理解的是,由于线程切换过程中是需要保存线程上下文的,该过程中是不允许高线程优先级线程抢占CPU,而且也不能处理外设中断的。因此,本申请可以将机械臂运动控制过程分解为一系列运算量较为平均的小任务,并利用用户态的FIFO(First InputFirst Output,先入先出队列)任务调度器对任务进行调度,可以大幅度减少线程切换带来的时延。
可选地,在一些实施例中,根据每个待处理任务的优先级依序执行每个待处理任务,进一步包括:通过预设划分方式确定非实时任务处理器和实时任务处理器,并将实时的待处理任务迁移到所述实时任务处理器,且将非实时的待处理任务迁移到所述非实时任务处理器。
可以理解的是,本申请实施例可以通过cpuset将xenomai实时线程绑定到某些特定的CPU核心上,例如进行实时任务的CPU核心,并且***中所有的linux用户线程、所有用户态的服务都迁移到剩余的CPU核心上运行,以避免用户态线程切换导致CPU高速缓存失效和实时任务在核间迁移导致的时延,进一步提升关键线程的实时性。
实时任务和非实时任务可以根据CPU处理核心是需要综合处理器本身的特性(如处理器所拥有的CPU核总数、处理器运算性能)进行分配,以及根据实时任务、非实时任务本身对于算力的需求来决定。
举例而言,如图3所示,某处理器有4个CPU核心,因此,本申请实施例可以将非实时任务与前两个CPU核心绑定,实时任务与后两个CPU核心绑定。具体地,本申请实施例可以通过cpuset文件***将CPU0、CPU1设置为非实时任务处理组,并且关闭CPU负载动态平衡,开启CPU处理组间互斥模式,即实时任务与非实时任务之间的互斥,从而保证CPU处理组不会进行动态任务迁移;同理,可以将CPU2、CPU3设置为实时任务处理组,本申请实施例可以通过机械臂的控制器查询***中所有的linux用户线程、所有用户态的服务,并将它们都迁移到非实时任务处理组上执行。
在处理实时任务时,可以启动机械臂实时任务,并在任务启动过程中就将各个线程都绑定到实时处理任务组所包含的某个具体CPU核心上。并且在选择具体绑定到具体哪个CPU核心的过程中,尽量让任务组中各个CPU核心上绑定的线程所需要的算力保持均衡;在处理非实时任务时,与上述处理实时任务时的步骤类似,为避免冗余,在此不做详细赘述。
可选地,在一些实施例中,利用用户态的FIFO任务调度器调度至少一个任务队列的待处理任务,包括:根据降序执行方式依次执行当前任务队列中优先级最高的待处理任务。
可以理解的是,如图4所示,本申请实施例可以优先处理本线程所属的固定任务队列中高优先级的任务,并依据固定任务队列优先级依次执行,直到本线程所属的固定任务队列中所有的任务都处理完成;其次,取出本线程所属的动态任务队列中优先级最高的任务进行执行,直到本线程所属的动态队列中的任务都处理完毕,从而实现任务调度器调度。
由此,通过将整个控制器处理过程分割为一个个小的用时少的待处理任务,并按照优先级对任务进行分组,即通过用户态FIFO任务调度器来减少线程反复在内核态与用户态切换导致的延迟。
可选地,在一些实施例中,上述的机械臂的控制方法,还包括:在当前任务队列的所有任务执行完毕后,从其他处理线程所属的任务队列中窃取预设数量的任务至当前任务队列中。
可以理解的是,如图4所示,本申请实施例可以从其他任务处理线程中的动态任务队列中最高优先级的队列中窃取一半任务到本线程所属动态任务队列中,然后依据任务队列优先级依次执行,直到本线程所属的任务队列中所有的任务都处理完成,从而实现任务调度器调度。综上,本申请实施例可以将控制器中的实时任务的最大延迟可以做到20微秒以内,平均延迟可以达到3微秒以内,远低于非实时***毫秒级别的延迟,并且延迟数据与硬件本身的处理性能无关,低端的嵌入式处理器也可以达到,即只要原有的控制器可以运行linux***,就可以在不改变现有硬件的基础上,实现控制器***的实时化,为更加精确的机械臂动作提供基础,并可以复用部分原有的代码。通过实时任务独占特定的CPU核心,将机械臂控制过程分解为一个个小任务并通过用户态的FIFO调度器对任务进行调度,而不是采用多线程的方式仅依靠内核调度器,可以大幅的减少线程切换带来的时延。
根据本申请实施例提出的机械臂的控制方法,可以获取基于机械臂控制器的处理过程生成的多个待处理任务,并根据预设的优先级对多个待处理任务进行分组,生成至少一个任务队列,并利用用户态的FIFO任务调度器调度至少一个任务队列的待处理任务,以根据每个待处理任务的优先级依序执行每个待处理任务,解决了相关技术中机械臂在执行实时任务时,不能保证时延,从而大大影响控制精度的技术问题,实现了机械臂控制的实时化,降低了时延,为更加精确的机械臂动作提供基础,并且可以复用部分原有的代码,大大降低成本。
其次参照附图描述根据本申请实施例提出的机械臂的控制装置。
图5是本申请实施例的机械臂的控制装置的方框示意图。
如图5所示,该机械臂的控制装置10包括:获取模块100、生成模块200和控制模块300。
其中,获取模块100用于获取基于机械臂控制器的处理过程生成的多个待处理任务;
生成模块200用于根据预设的优先级对多个待处理任务进行分组,生成至少一个任务队列;以及
控制模块300用于利用用户态的FIFO任务调度器调度至少一个任务队列的待处理任务,以根据每个待处理任务的优先级依序执行每个待处理任务。
可选地,在一些实施例中,控制模块300包括:
执行单元,用于根据降序执行方式依次执行当前任务队列中优先级最高的待处理任务。
可选地,在一些实施例中,上述的机械臂的控制装置10,还包括:
窃取单元,用于在当前任务队列的所有任务执行完毕后,从其他处理线程所属的任务队列中窃取预设数量的任务至当前任务队列中。
可选地,在一些实施例中,在获取基于机械臂控制器的处理过程生成的所述多个待处理任务之前,所述获取模块100还用于:
检测所述处理过程是否满足预设实时条件;
若满足所述预设实时条件,则采用Xenomai处理器执行当前任务,否则采用Linux处理器执行所述当前任务。
可选地,在一些实施例中,所述生成模块200进一步用于:
通过预设划分方式确定非实时任务处理器和实时任务处理器,并将实时的待处理任务迁移到所述实时任务处理器,且将非实时的待处理任务迁移到所述非实时任务处理器。
需要说明的是,前述对机械臂的控制方法实施例的解释说明也适用于该实施例的机械臂的控制装置,此处不再赘述。
根据本申请实施例提出的机械臂的控制装置,可以获取基于机械臂控制器的处理过程生成的多个待处理任务,并根据预设的优先级对多个待处理任务进行分组,生成至少一个任务队列,并调度器调度至少一个任务队列的待处理任务,以根据每个待处理任务的优先级依序执行每个待处理任务,解决了相关技术中机械臂在执行实时任务时,不能保证时延,从而大大影响控制精度的技术问题,实现了机械臂控制的实时化,降低了时延,为更加精确的机械臂动作提供基础,并且可以复用部分原有的代码,大大降低成本。
图6为本申请实施例提供的电子设备的结构示意图。该电子设备可以包括:
存储器1201、处理器1202及存储在存储器1201上并可在处理器1202上运行的计算机程序。
处理器1202执行程序时实现上述实施例中提供的机械臂的控制方法。
进一步地,电子设备还包括:
通信接口1203,用于存储器1201和处理器1202之间的通信。
存储器1201,用于存放可在处理器1202上运行的计算机程序。
存储器1201可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器1201、处理器1202和通信接口1203独立实现,则通信接口1203、存储器1201和处理器1202可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(PeripheralComponent,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器1201、处理器1202及通信接口1203,集成在一块芯片上实现,则存储器1201、处理器1202及通信接口1203可以通过内部接口完成相互间的通信。
处理器1202可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的机械臂的控制方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或N个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“N个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更N个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或N个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,N个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种机械臂的控制方法,其特征在于,包括以下步骤:
获取基于机械臂控制器的处理过程生成的多个待处理任务;
根据预设的优先级对所述多个待处理任务进行分组,生成至少一个任务队列;以及
调度所述至少一个任务队列的待处理任务,以根据每个待处理任务的优先级依序执行所述每个待处理任务。
2.根据权利要求1所述的方法,其特征在于,所述调度所述至少一个任务队列的待处理任务,包括:
根据降序执行方式依次执行当前任务队列中优先级最高的待处理任务。
3.根据权利要求2所述的方法,其特征在于,还包括:
在所述当前任务队列的所有任务执行完毕后,从其他处理线程所属的任务队列中窃取预设数量的任务至所述当前任务队列中。
4.根据权利要求1所述的方法,其特征在于,在获取基于机械臂控制器的处理过程生成的所述多个待处理任务之前,还包括:
检测所述处理过程是否满足预设实时条件;
若满足所述预设实时条件,则采用Xenomai处理器执行当前任务,否则采用Linux处理器执行所述当前任务。
5.根据权利要求1所述的方法,其特征在于,所述根据每个待处理任务的优先级依序执行所述每个待处理任务,进一步包括:
通过预设划分方式确定非实时任务处理器和实时任务处理器,并将实时的待处理任务迁移到所述实时任务处理器,且将非实时的待处理任务迁移到所述非实时任务处理器。
6.一种机械臂的控制装置,其特征在于,包括:
获取模块,用于获取基于机械臂控制器的处理过程生成的多个待处理任务;
生成模块,用于根据预设的优先级对所述多个待处理任务进行分组,生成至少一个任务队列;以及
控制模块,用于调度所述至少一个任务队列的待处理任务,以根据每个待处理任务的优先级依序执行所述每个待处理任务。
7.根据权利要求6所述的装置,其特征在于,所述控制模块:
执行单元,用于根据降序执行方式依次执行当前任务队列中优先级最高的待处理任务。
8.根据权利要求7所述的装置,其特征在于,还包括:
窃取单元,用于在所述当前任务队列的所有任务执行完毕后,从其他处理线程所属的任务队列中窃取预设数量的任务至所述当前任务队列中。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-5任一项所述的机械臂的控制方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如权利要求1-5任一项所述的机械臂的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011402393.0A CN112659119A (zh) | 2020-12-02 | 2020-12-02 | 机械臂的控制方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011402393.0A CN112659119A (zh) | 2020-12-02 | 2020-12-02 | 机械臂的控制方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112659119A true CN112659119A (zh) | 2021-04-16 |
Family
ID=75402645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011402393.0A Pending CN112659119A (zh) | 2020-12-02 | 2020-12-02 | 机械臂的控制方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112659119A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114055470A (zh) * | 2021-11-19 | 2022-02-18 | 季华实验室 | 机械臂工作任务控制方法、装置、设备、***及存储介质 |
CN116394233A (zh) * | 2023-01-12 | 2023-07-07 | 江苏启威星装备科技有限公司 | 机械臂控制方法、存储介质及电子设备 |
CN117707721A (zh) * | 2023-08-25 | 2024-03-15 | 荣耀终端有限公司 | 任务提交方法、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0836553A (ja) * | 1994-07-21 | 1996-02-06 | Toshiba Corp | マルチプロセッサシステムおよび同システムにおけるタスクスケジューリング方法 |
US20050149608A1 (en) * | 2003-12-30 | 2005-07-07 | Intel Corporation | Adaptive queue scheduling |
CN101849382A (zh) * | 2007-11-05 | 2010-09-29 | 库卡罗伯特有限公司 | 计算***及管理该为控制工业机器人设置的计算***的可用资源的方法 |
CN106802826A (zh) * | 2016-12-23 | 2017-06-06 | ***股份有限公司 | 一种基于线程池的业务处理方法及装置 |
CN106941516A (zh) * | 2017-02-09 | 2017-07-11 | 北京东土科技股份有限公司 | 基于工业互联网操作***的异构现场设备控制管理*** |
CN109426555A (zh) * | 2017-08-31 | 2019-03-05 | 南京龙贞自控科技发展有限公司 | 一种家庭物品运送机器人的任务调度方法 |
CN109725995A (zh) * | 2018-06-15 | 2019-05-07 | 中国平安人寿保险股份有限公司 | 数据抽取任务执行方法、装置、设备及可读存储介质 |
CN111745636A (zh) * | 2019-05-15 | 2020-10-09 | 北京京东尚科信息技术有限公司 | 机器人控制方法及控制***、存储介质及电子设备 |
-
2020
- 2020-12-02 CN CN202011402393.0A patent/CN112659119A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0836553A (ja) * | 1994-07-21 | 1996-02-06 | Toshiba Corp | マルチプロセッサシステムおよび同システムにおけるタスクスケジューリング方法 |
US20050149608A1 (en) * | 2003-12-30 | 2005-07-07 | Intel Corporation | Adaptive queue scheduling |
CN101849382A (zh) * | 2007-11-05 | 2010-09-29 | 库卡罗伯特有限公司 | 计算***及管理该为控制工业机器人设置的计算***的可用资源的方法 |
CN106802826A (zh) * | 2016-12-23 | 2017-06-06 | ***股份有限公司 | 一种基于线程池的业务处理方法及装置 |
CN106941516A (zh) * | 2017-02-09 | 2017-07-11 | 北京东土科技股份有限公司 | 基于工业互联网操作***的异构现场设备控制管理*** |
CN109426555A (zh) * | 2017-08-31 | 2019-03-05 | 南京龙贞自控科技发展有限公司 | 一种家庭物品运送机器人的任务调度方法 |
CN109725995A (zh) * | 2018-06-15 | 2019-05-07 | 中国平安人寿保险股份有限公司 | 数据抽取任务执行方法、装置、设备及可读存储介质 |
CN111745636A (zh) * | 2019-05-15 | 2020-10-09 | 北京京东尚科信息技术有限公司 | 机器人控制方法及控制***、存储介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
李晓林: "《面向数据密集型应用的云计算》", 国防工业出版社 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114055470A (zh) * | 2021-11-19 | 2022-02-18 | 季华实验室 | 机械臂工作任务控制方法、装置、设备、***及存储介质 |
CN116394233A (zh) * | 2023-01-12 | 2023-07-07 | 江苏启威星装备科技有限公司 | 机械臂控制方法、存储介质及电子设备 |
CN116394233B (zh) * | 2023-01-12 | 2024-03-19 | 江苏启威星装备科技有限公司 | 机械臂控制方法、存储介质及电子设备 |
CN117707721A (zh) * | 2023-08-25 | 2024-03-15 | 荣耀终端有限公司 | 任务提交方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112659119A (zh) | 机械臂的控制方法、装置、电子设备及存储介质 | |
US7451447B1 (en) | Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls | |
Stankovic et al. | What is predictability for real-time systems? | |
US9632822B2 (en) | Multi-core device and multi-thread scheduling method thereof | |
US6473780B1 (en) | Scheduling of direct memory access | |
CN103778016A (zh) | 多线程处理器 | |
WO2005050435A2 (en) | Interrupt and trap handling in an embedded multi-threaded processor to avoid priority inversion and maintain real-time operation | |
CN102541642B (zh) | 一种增强实时性能的任务管理方法 | |
JP6214469B2 (ja) | 車両制御装置 | |
JP4241462B2 (ja) | 制御ユニットおよびマイクロコンピュータ | |
EP2278454A1 (en) | Method for correct-by-construction development of real-time-systems | |
JP2009048358A (ja) | 情報処理装置及びスケジューリング方法 | |
RU2239228C2 (ru) | Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами | |
Wellings et al. | Asynchronous event handling and real-time threads in the real-time specification for Java | |
Bakkers et al. | Transputer based control of mechatronic systems | |
JP2002099434A (ja) | 制御装置 | |
JP2020091540A (ja) | 情報処理装置 | |
CN117421129B (zh) | 一种基于异构存储集群的业务执行方法、装置及电子设备 | |
CN116700135B (zh) | 可编程逻辑控制器任务调度方式的测试方法及装置 | |
US20240143393A1 (en) | Task scheduling method and apparatus | |
Lenac et al. | Development of embedded devices in real-time autonomous robots | |
CN117234678A (zh) | 控制程序部分的流程的方法和装置、编程方法、编程装置 | |
ZHANG et al. | A Study on Embedded Operating Systems for Automotive Electronics | |
GB2500434A (en) | Scheduling actions based on the state of the resources needed to execute the actions | |
Keate | Software Design Considerations for Real-Time DSP Systems |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210416 |