机器人及线程的调节方法、同步方法与流程

文档序号:25728813发布日期:2021-07-02 21:16阅读:102来源:国知局
机器人及线程的调节方法、同步方法与流程

本发明涉及智能机器人技术领域。更具体地说,本发明涉及一种机器人及线程的调节方法、同步方法。



背景技术:

随着科技的发展,机器人已经普及人们的生活。目前的机器人拥有多传感器组成的复杂操作系统,通常包含麦克风、摄像头、激光雷达、超声波、红外距离传感器、扬声器、肢体等。显然,在同一时刻机器人系统可能会收到麦克风传递的声音、摄像头检测到的人脸、激光雷达检测到的障碍物等机器人事件,由此,出现了机器人多线程处理机制。但是,目前传统技术中的机器人在多线程工作模式下,产生执行时间的时间差,导致多个线程中各个线程的执行时间不准确,引起多个线程之间不同步的不良现象。



技术实现要素:

本发明的一个目的是解决至少上述问题,并提供至少后面将说明的优点。

本发明还有一个目的是至少提供一种线程执行时间的调节方法,在该调节方法中,通过控制线程的执行时间来解决线程执行超时的问题。在前述基础上,本发明还提供了一种多线程的同步方法、机器人以及存储介质。

具体地,本发明通过如下技术方案实现:

<本发明的第一方面>

本发明的第一方面提供了一种线程执行时间的调节方法,包括:

在线程的至少一个内容的执行过程中,判断正在被处理的目标内容是否被执行完毕;

如果目标内容未被执行完毕,则比较所述线程的实际执行时间与已执行内容的预定执行时间;

当实际执行时间大于或等于预定执行时间时,结束对目标内容的执行。

在本发明第一方面中,所述线程执行时间的调节方法通过控制线程中每一个内容的执行时间,使得每一个内容能够在预定的执行时间内执行完毕,由此,将线程的整体执行时间控制在预定的整体执行时间范围内,从而解决了线程执行超时的问题,有效的提高了线程执行时间的精准度。

在一些技术方案中,所述线程执行时间的调节方法还包括:

如果目标内容被执行完毕,则所述线程进入等待状态。

通过上述技术方案,处于等待状态的线程为处理器减轻了任务执行的负担,从而降低了线程卡顿的概率。

在一些技术方案中,所述线程选自动作线程、表情线程和声音线程中的一种。

在一些技术方案中,所述至少一个内容中的每一个内容均被设置了对应的第一标志位,用于判断对应的内容是否被执行完毕。

通过上述技术方案,能够实时掌握线程中每一个内容的执行结果。

在一些技术方案中,所述实际执行时间为线程的初始执行时刻至当前执行时刻的时间段。

通过上述技术方案,能够准确的获得单个线程的实际执行时间。

在一些技术方案中,所述已执行内容包括目标内容和在目标内容之前被执行的内容。

在一些技术方案中,所述线程执行时间的调节方法采用晶振作为时钟源,以计算所述实际执行时间。

通过上述技术方案,能够产生精准的时钟频率,为线程的执行时间提供精准的时间参考。

<本发明的第二方面>

本发明的第二方面提供了一种多线程的同步方法,其中,

均按照第一方面所述的线程执行时间的调节方法对多线程中的每一个线程进行执行工作,使得每一个线程均能够在对应的预设执行时间内执行完毕。

在本发明第二方面中,所述多线程同步方法中每一个线程均能够在预设执行时间内执行完毕,使得多个线程各自的整体执行时间更加准确。由于线程执行时间的准确性,实现了多线程中线程之间的同步。

在一些技术方案中,所述多线程的同步方法还包括:

在任意一个线程被执行时,获取对应的第二标志位;

判断所述第二标志位的值是否为true,若是,则结束对应的线程。

通过上述技术方案,能够使得线程可以正常退出,有效的避免了因线程被强行终止而带来的不良后果。

<本发明的第三方面>

本发明的第三方面提供了一种机器人,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现本发明第一方面所述的线程执行时间的调节方法以及本发明第二方面所述的多线程的同步方法。

<本发明的第四方面>

本发明的第四方面提供了一种存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如本发明第一方面所述的线程执行时间的调节方法以及本发明第二方面所述的多线程的同步方法。

本发明的有益效果至少包括:

本发明中,通过控制线程中每一个内容的执行时间,使得每一个内容能够在预定的执行时间内执行完毕,由此,将线程的整体执行时间控制在预定的整体执行时间范围内,从而解决了线程执行超时的问题。因此,本发明可以:1)避免了线程执行超时的现象,有效的提高了线程执行时间的精准度;2)有效的减轻了处理器执行任务的负担,降低了线程卡顿的概率;3)能够准确的获得单个线程的实际执行时间;4)能够实时掌握线程中每一个内容的执行结果;5)能够产生精准的时钟频率,为线程的执行时间提供精准的时间参考;6)实现了多线程中线程之间的同步;7)能够使得线程可以正常退出,有效的避免了因线程被强行终止而带来的不良后果。

本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图;

图1为本发明的线程执行时间的调节方法在一些实施例中的流程图;

图2为本发明的线程在一些实施例中的结构示意图;

图3为本发明的线程在另一些实施例中的结构示意图;

图4本发明的线程执行时间的调节方法在另一些实施例中的流程图;

图5本发明的机器人在一些实施例中的结构示意图;

图6本发明的机器人在一些实施例中的框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例的说明书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一标志位和第二标志位是用于区别不同的标志位,而不是用于描述标志位的特定顺序;第一预定执行时间和第二预定执行时间是用于区别不同的预定执行时间,而不是用于描述预定执行时间的特定顺序

在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

<线程执行时间的调节方法>

图1所示为本申请的线程执行时间的调节方法在一些实施例中的流程图,在图1中:

s101、在线程的至少一个内容的执行过程中,判断正在被处理的目标内容是否被执行完毕。

在本实施例中,所述线程可以选自动作线程、表情线程和声音线程中的一种。其中,所述动作线程包含至少一个动作信息,所述表情线程包含至少一个表情信息,所述声音线程包含至少一个声音信息。示例性的,本实施例中的动作信息可以是机器人将垂直的右手举起至与肩膀齐平的动作;表情信息可以是机器人显示一个笑脸或者一个指向右边的箭头的表情;声音信息可以是一个请向右转的声音。

应当理解的是,所述目标内容可以是上述示例性的动作信息(机器人将垂直的右手举起至与肩膀齐平的动作)中的一部分内容。

s102、如果目标内容未被执行完毕,则比较所述线程的实际执行时间与已执行内容的预定执行时间。

需要说明的是,所述实际执行时间为线程的初始执行时刻至当前执行时刻的时间段。

所述已执行内容包括目标内容和在目标内容之前被执行的内容。

示例性的,所述目标内容可以是动作线程中将机器人垂直的右手举起至从机器人身体往外移5度(5度的角度)的位置。

由于所述线程的实际执行时间与已执行内容的预定执行时间的比较有多种情况,因此,在本发明中,将示例性的从线程的开始到结束对所述实际执行时间和所述已执行内容的预定执行时间的比较进行说明。

首先,动作线程刚开始执行,则所述已执行内容的预定执行时间则仅为目标内容的预定执行时间,没有除目标内容以外的内容的预定执行时间,也就是说,若目标内容的预定执行时间为第一预定执行时间,则所述已执行内容的预定执行时间则是第一预定执行时间。若实际执行时间小于已执行内容的预定执行时间,则继续执行目标内容。在实际执行时间大于或等于已执行内容的预定执行时间之前,不断的计算实际执行时间,再将实际执行时间与已执行内容的预定执行时间进行比较。若实际执行时间大于或等于已执行内容的预定执行时间时,则结束执行目标内容,转而执行下一个内容,即下一个内容成为目标内容(正在执行的内容)。

值得一提的是,所述“若实际执行时间大于或等于已执行内容的预定执行时间时,结束执行目标内容”中包含三种情况。其中一种情况是在实际执行时间大于或等于已执行内容的预定执行时间时,目标内容刚好被执行完毕,可以顺理成章的执行下一个内容;另一种情况是在实际执行时间大于或等于已执行内容的预定执行时间时,目标内容没有被执行完毕,此时,结束目标内容转而执行下一个内容,而剩余的没有被执行的目标内容将在这个线程中不再执行;还有一种情况是在实际执行时间大于或等于已执行内容的预定执行时间时,目标内容早就被执行完毕了,则处理器一直处于等待状态,待实际执行时间大于或等于已执行内容的预定执行时间时,才开始进入下一个内容的执行。

其次,当动作线程开始执行下一个内容时,所述的下一个内容即成为目标内容,线程没有被执行的其中一个内容成为下一个内容。此时,所述目标内容的预定执行时间为第二预定执行时间,所述已执行内容的预定执行时间则为所述第一预定执行时间与第二预定执行时间之和。接着进行前述所述的比较实际执行时间与已执行内容的预定执行时间。

应当理解的是,已执行内容的预定执行时间由每一个目标内容和在目标内容之前被执行的内容的预定执行时间累加计算而得。

s103、当实际执行时间大于或等于预定执行时间时,结束对目标内容的执行。

需要说明的是,所述实际执行时间为线程的初始执行时刻至当前执行时刻的时间段。

所述预定执行时间为已执行内容的预定执行时间。

本实施例中,在执行目标内容时,若实际执行时间大于或等于预定执行时间,则结束对目标内容的执行,进行下一个内容的执行。可以理解的是,当实际执行时间大于或等于预定执行时间时,目标内容可能已经被执行完毕,亦可能还未被执行完毕。若目标内容未被执行完毕,则依然进入下一个内容的执行,不再继续执行此目标内容。

在本发明第一方面中,所述线程执行时间的调节方法通过控制线程中每一个内容的执行时间,使得每一个内容能够在预定的执行时间内执行完毕,由此,将线程的整体执行时间控制在预定的整体执行时间范围内,从而解决了线程执行超时的问题,有效的提高了线程执行时间的精准度。

为了进一步阐述本发明的原理,下面将结合图2-3所示内容对本发明做进一步的解释。

图2所示为本发明单个线程的结构示意图,其中,所述线程包括第一至n个内容。图3为将图2所示的每个内容按照时序进行处理。为便于理解,本实施例中采用按照时序依次进行处理的方式处理图2中的每一个内容。

以下将依次阐明从第一至n个内容的处理过程:

为了便于说明,如图3所示,本发明将已执行内容的预定执行时间用参数t进行表示,线程每个内容对应的预定执行时间分别用参数t1至tn表示,即第一个内容对应t1、第二个内容对应t2、第三个内容对应t3。

由于第一个内容没有在先内容,因此,已执行内容的预定执行时间t为t1。在图3中,第一个内容的实际执行时间超过第一个内容的预定执行时间t1,由此,当线程的实际执行时间大于或等于预定执行时间t时,结束对第一个内容的执行,开始执行第二个内容。第一个内容剩余的没有被执行的内容为第一个不执行内容,所述第一个不执行内容在此次线程的执行过程中,将不会被执行。

由于在第二个内容执行之前,执行了第一个内容,因此,已执行内容的预定执行时间t为t1加t2,即t为第一个内容和第二个内容各自的预定执行时间相加计算而成。在图3中,第二个内容的实际执行时间小于第二个内容的预定执行时间t2。因此,当第二个内容被执行完毕时,线程的实际执行时间小于预定执行时间t,此时,结束第二个内容的执行,且处理器处于等待状态,不执行任何线程的内容。在本实施例中,将这种第二个内容之后的等待时期描述为第一个等待时期。待线程的实际执行时间大于或等于预定执行时间t时,才开始执行第三个内容。

在第三个内容执行之前,执行了第一个内容和第二个内容,因此,已执行内容的预定执行时间t为t1加t2加t3,即t为第一个内容、第二个内容和第三个内容各自的预定执行时间相加计算而成。在图3中,第三个内容的实际执行时间等于第三个内容的预定执行时间t3。因此,当第三个内容被执行完毕时,线程的实际执行时间等于预定执行时间t,此时,结束第三个内容的执行,开始执行第四个内容。

本实施例按照上述第一个内容至第三个内容的执行方式依次执行第一至第n个内容,从而将线程的整体执行时间控制在预定的整体执行时间范围内,从而解决了线程执行超时的问题。

在一些实施例中,如图4所示,所述线程执行时间的调节方法还包括:

s104、如果目标内容被执行完毕,则所述线程进入等待状态。

需要说明的是,所述等待状态可以有两种等待状态,分别为0s等待状态和大于0s的等待状态。其中,0s等待状态为:如果目标内容被执行完毕,且实际执行时间等于预定执行时间时,则可以直接处理下一个内容;大于0s的等待状态为:如果目标内容被执行完毕,但是实际执行时间小于预定执行时间,则需要等待大于0s的时间,待实际执行时间大于或等于预定执行时间时,才处理下一个内容。

通过上述实施例,处于等待状态的线程为处理器减轻了任务执行的负担,从而降低了线程卡顿的概率。

在一些实施例中,所述至少一个内容的每一个内容均被设置了对应的第一标志位,用于判断对应的内容是否被执行完毕。

在本实施例中,所述第一标志位的值可以是true和false。其中,true为对应的内容已经被执行完毕;false为对应的内容未被执行完毕。所述第一标志位的值由本领域技术人员根据需要确定,并不能限制为前述示例性的true和false。

通过上述实施例,能够实时掌握线程中每一个内容的执行结果。

在一些实施例中,所述线程执行时间的调节方法采用晶振作为时钟源,以计算所述实际执行时间。

在本实施例中,所述晶振采用的是8mhz的晶振。

通过上述实施例,能够产生精准的时钟频率,为线程的执行时间提供精准的时间参考。

<多线程的同步方法>

本申请的多线程的同步方法在一些实施例中的实施例如下:

均按照第一方面所述的线程执行时间的调节方法对多线程中的每一个线程进行执行工作,使得每一个线程均能够在对应的预设执行时间内执行完毕。

在本实施例中,所述多线程同步方法中每一个线程均能够在预设执行时间内执行完毕,使得多个线程各自的整体执行时间更加准确。由于线程执行时间的准确性,实现了多线程中线程之间的同步。

在一些实施例中,所述多线程的同步方法还包括:

在任意一个线程被执行时,获取对应的第二标志位;

判断所述第二标志位的值是否为true,若是,则结束对应的线程。

在本实施例中,所述第二标志位的值可以是true和false。其中,true为对应的线程已经被执行完毕;false为对应的线程未被执行完毕。所述第二标志位的值由本领域技术人员根据需要确定,并不能限制为前述示例性的true和false

通过上述实施例,能够使得线程可以正常退出,有效的避免了因线程被强行终止而带来的不良后果。

<机器人>

如图5至图6所示,本发明的第三方面提供了一种机器人200,包括存储器201和处理器202,所述存储器201上存储有可在所述处理器202上运行的计算机程序,所述计算机程序被所述处理器202执行时实现本发明第一方面所述的线程执行时间的调节方法以及本发明第二方面所述的多线程的同步方法。

<存储介质>

本发明的第四方面提供了一种存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如本发明第一方面所述的线程执行时间的调节方法以及本发明第二方面所述的多线程的同步方法。

以上实施例仅用以说明本发明的技术方案,而非对其限制:尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1