一种机器人作业调度方法及装置与流程

文档序号:22041202发布日期:2020-08-28 18:08阅读:243来源:国知局
一种机器人作业调度方法及装置与流程

本发明涉及操作系统技术领域,尤其涉及一种机器人作业调度方法及装置。



背景技术:

在机器人操作系统中,通过对线程调度,实现对操作作业的执行。目前,在计算机资源有限的情况下,机器人操作系统的线程调度一旦发生资源竞争的现象,中央处理器(centralprocessingunit,缩写为cpu)就会按时间片来执行每一个作业。当到了一定的时间,cpu资源就会分配给下一个作业,以此来实现作业调度。

此时,机器人操作系统需要频繁进行作业调度,降低系统资源的利用率,但是作业并没有有效的完成。



技术实现要素:

本发明的目的在于提供一种机器人作业调度方法及装置,用于有效,快速的进行线程调度,完成操作作业。

为了实现上述目的,本发明提供如下技术方案:

本发明提供一种机器人作业调度方法,应用于机器人操作系统。该机器人作业调度方法包括:

根据当前线程控制机器人作业;

确定等待堆内大顶堆的堆顶元素包括一个线程的情况下,根据当前线程控制机器人作业后,根据线程控制机器人作业;大顶堆包括按照优先级排序的多个线程;

确定等待堆内大顶堆的堆顶元素包括多个线程的情况下,根据多个线程中时间戳最小的线程确定待运行线程,根据当前线程控制机器人作业后,根据待运行线程控制机器人作业。

与现有技术相比,本发明提供的机器人作业调度方法中,采集设备获取激励信号,终端设备创建线程。若终端设备处于空闲状态,此时终端设备直接执行上述根据激励信号创建的线程。若终端设备在根据之前的线程控制机器人作业,此时终端设备将线程更新到等待堆中,保证先将当前执行的线程执行完,再执行其等待堆中的线程。由于在当前线程执行过程中,会有一个或多个新的线程进入等待堆中。

将等待堆内的线程分别按照优先级和时间戳的大小进行排序。当等待堆内大顶堆的堆顶元素包括一个线程的情况下,根据线程控制机器人作业,上述等待堆内大顶堆包括按照优先级排序的多个线程。当在等待堆内大顶堆的堆顶元素包括多个线程的情况下,如果堆顶元素中的多个线程的优先级相同,选择时间戳最小的线程进行调度。由于是堆栈结构,从等待堆中只需取出堆顶元素就即可,无需再进行判断,在线程插入等待堆中并进行排序。采用上述处理方式,可以有效、快速的进行线程调度,完成操作作业,不需要机器人操作系统频繁的进行作业调度,节省了时间,并且提高了系统资源的利用率。

本发明还提供了一种机器人作业调度装置。该机器人作业调度装置包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现上述机器人作业调度方法。

与现有技术相比,本发明提供的机器人作业调度装置的有益效果与上述技术方案所述机器人作业调度方法的有益效果相同,此处不做赘述。

本发明还提供了一种芯片。该芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现上述机器人作业调度方法。

与现有技术相比,本发明提供的芯片的有益效果与上述技术方案所述机器人作业调度方法的有益效果相同,此处不做赘述。

本发明还提供了一种计算机存储介质。该计算机存储介质中存储有指令,当指令被运行时,执行上述机器人作业调度方法。

与现有技术相比,本发明提供的计算机存储介质的有益效果与上述技术方案所述机器人作业调度方法的有益效果相同,此处不做赘述。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1示出了本发明实施例提供的机器人操作系统的结构图;

图2示出本发明实施例提供的机器人作业调度方法的流程图;

图3示出本发明实施例提供的一种带有优先级的线程执行顺序图;

图4示出本发明实施例提供的线程调度方法的流程图;

图5示出本发明实施例提供的带有定时任务的线程调度执行顺序图;

图6示出本发明实施例提供的线程未产生资源竞争时执行顺序图;

图7示出本发明实施例提供的线程产生资源竞争时的执行顺序图;

图8示出了本发明实施例提供的机器人作业调度装置的结构框图;

图9示出了本发明实施例提供的机器人作业调度装置的一种集成模块示意图;

图10示出了本发明实施例提供的芯片的结构示意图。

附图标记:

11-操作系统,12-采集设备;

13-终端设备,20-装置;

21-处理单元,22-通信单元;

23-存储单元,30-设备;

31-处理器,32-通信接口;

33-通信线路,34-存储器;

35-处理器,40-芯片;

41-处理器,42-通信接口;

43-存储器,44-总线系统。

具体实施方式

为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一阈值和第二阈值仅仅是为了区分不同的阈值,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。

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

本发明中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b的结合,a和c的结合,b和c的结合,或a、b和c的结合,其中a,b,c可以是单个,也可以是多个。

在介绍本发明实施例之前首先对本发明实施例中涉及到的相关名词作如下释义:

线程:线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的作业。

堆:堆通常是一个可以被看做一棵完全二叉树的数组对象。按照堆的特点可以把堆分为大顶堆和小顶堆。

大顶堆:根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆,又称最大堆。大顶堆要求根结点的关键字既大于或等于左子树的关键字值,又大于或等于右子树的关键字值。

小顶堆:根结点的关键字是堆里所有结点关键字中最小者。小顶堆要求根结点的关键字既小于或等于左子树的关键字值,又小于或等于右子树的关键字值。

时间戳:一个能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。

时间片轮转调度算法:每个进程被分配一时间段,称作它的时间片,即该进程允许运行的时间。

本发明实施例提供的方法可以应用于机器人操作系统,但不仅限于此。图1示出了本发明实施例提供的机器人操作系统的结构图。如图1所示,该操作系统11包括采集设备12和终端设备13。采集设备12和终端设备13采用通信连接。

上述机器人操作系统不仅可以应用于机器人装置中,还可以应用于车辆设备或其他设备中。

例如,上述车辆可以为无人驾驶交通工具,也可以为有人驾驶的交通工具。交通工具可以为汽车,也可实现是其它车辆或采取其它车辆形式的装置,诸如轿车、卡车、摩托车、公交车、船、飞机、直升机、割草机、铲雪车、休旅车、游乐园车辆、农业设备、施工设备、有轨电车、高尔夫球车、火车和电车等。

上述采集设备可以采集图像信息、声音信息和压力信息等各种信息。所述采集设备可以为单目相机,彩色摄像机、音频采集器、压力传感器等各种采集设备。

上述终端设备可以为车载终端、手机、电脑、pda等各种终端设备。

随着人工智能时代的到来,机器人相关技术不断发展。机器人操作系统是一个使用c++开发的机器人软件平台,可以采用java语言进行编程,以控制机器人执行各种应用场景下的作业。采用基于java的机器人操作系统是因为它具有部分开源的源代码、内核小巧、可扩展性强、代码阅读性高、跨平台性等特点,适用于大部分基于java的嵌入式系统。

嵌入式系统作为计算机应用的一个崭新领域,以其简洁、高效等优点越来越多地受到人们的广泛关注,嵌入式系统的发展逐渐取代个人计算机(personalcomputer,缩写为pc)成为时代主流,无论从生活领域、工业控制领域、军事领域和航空航天领域都有很好的发展前景。在硬件技术、软件技术以及网络信息技术日益成熟的今天,嵌入式突出了强大的优势。

机器人操作系统在执行作业过程中,当有新的作业出现的时候,现有的机器人操作系统默认的是时间片轮转调度算法,该算法会产生频繁的线程上下文切换,增大实时系统的时间开销。而基于c++开发,对开发人员的编程开发能力提出了更高的要求。当机器人操作系统的作业调度是在计算机资源有限的情况下,一旦发生资源竞争,cpu就会对作业按时间片来执行每一个作业,当到了一定的时间,cpu资源就会分配给下一个作业,以此来实现作业调度,但是频繁的进行作业调度会耗费大量的系统资源,但是作业并没有有效的完成,浪费时间,降低系统资源的利用率。

为了解决上述情况,本发明实施例提供一种机器人作业调度方法。该机器人作业调度方法应用于机器人操作系统。本发明实施例提供的方法中由采集设备执行的步骤,也可以由应用于采集设备中的芯片执行;由终端设备执行的步骤,也可以由应用于终端设备中的芯片执行。下述实施例以采集设备和终端设备分别作为执行主体为例。本发明实施例提供的机器人作业调度方法在没有资源竞争时,设定线程按照运行时段即设定的时间开始依次执行。图2示出本发明实施例提供的机器人作业调度方法的流程图,如图2所示,当应用于资源竞争时,该机器人作业调度方法包括:

步骤101:终端设备根据当前线程控制机器人作业。在这个过程中,如果外界给机器人的终端设备一个激励信号时,此时机器人的终端设备根据激励信号更新等待堆内的线程。机器人中的采集设备可以获取上述激励信号。终端设备根据上述激励信号创建线程,并且终端设备根据当前创建的线程控制机器人作业,以达到想要效果。

例如:当控制机器人播放某个歌曲时,外界可以通过语音的方式给机器人的终端设备一个播放激励信号,机器人的采集设备可以通过音频采集器感知到上述语音形式的播放激励信号。终端设备根据上述语音形式的播放激励信号创建一个线程,终端设备根据当前线程控制机器人作业,使机器人播放相应的歌曲。

步骤102:终端设备确定等待堆内大顶堆的堆顶元素包括一个线程的情况下,根据当前线程控制机器人作业后,根据线程控制机器人作业。大顶堆包括按照优先级排序的多个线程。

示例的,终端设备将创建的新线程放置到等待堆中,并对等待堆中的线程按照优先级从高到低的顺序排列,形成大顶堆。此时优先级高的线程作为优先级低的线程的父节点,优先级最高的线程置于等待堆的堆顶。当终端设备确定等待堆内大顶堆的堆顶元素包括一个线程的情况下,从堆顶开始执行,终端设备根据线程控制机器人作业。

步骤103:终端设备确定等待堆内大顶堆的堆顶元素包括多个线程的情况下,根据多个线程中时间戳最小的线程确定待运行线程,根据当前线程控制机器人作业后,根据待运行线程控制机器人作业。

示例的,当终端设备确定等待堆内大顶堆的堆顶元素包括多个线程的情况下,对等待堆内大顶堆的堆顶元素中优先级相同的多个线程按照时间戳从小到大的顺序排列,时间戳小的线程置于时间戳大的线程上方,时间戳最小的线程置于等待堆的堆顶。从堆顶开始执行,此时终端设备根据时间戳最小的线程控制机器人作业。

由上可知,本发明提供的机器人作业调度方法中,采集设备获取激励信号,终端设备创建线程。若终端设备处于空闲状态,此时终端设备直接执行上述根据激励信号创建的线程。若终端设备在根据之前的线程控制机器人作业,此时终端设备将线程更新到等待堆中,保证先将当前执行的线程执行完,再执行等待堆中的线程。采用上述处理方式可以有效,快速的进行线程调度,完成操作作业,不需要机器人操作系统频繁的进行作业调度,节省了时间,并且提高了系统资源的利用率。

由于在当前线程执行过程中,会有一个或多个新的线程进入等待堆中。将等待堆内的线程先按照以优先级为判断依据的大顶堆进行排序处理。若等待堆内大顶堆的堆顶元素包括多个线程,即上述多个线程的优先级相同,则按照时间戳的大小进行排序,选择时间戳最小的执行。由于采用堆的数据结构,在添加线程时,已经在堆中排好序,使后续进行线程调度时速度加快、效率提高,便于后续直接对堆顶元素进行操作,不需要与其他的节点进行比较,此时在调用线程时减少了系统资源的浪费。

由于本发明是基于java的高级编程语言的机器人操作系统,具有平台的可移植性好,代码可读性高,内核小,灵活性高等特点,同时还具备java封装、继承、多态的特点。并且开发人员能够更加快速的入门机器人操作系统,并基于java框架开发出想要实现的功能,到达敏捷开发的效果,同时具有一次编译,多处执行的优点。

当终端设备将创建的新线程放置到等待堆中后,由于此时终端设备根据当前线程控制机器人作业,所以在当前线程执行结束后,新的线程可能出现未超时的情况,也可能超时的情况。

在一种示例中,当等待堆中的线程带有优先级,并且线程超时。此时先将等待堆中的线程按照优先级的高低插入到合适的堆栈节点中。从等待堆的取出堆顶元素进行下一次的作业调度。如果等待堆中优先级相同,按照时间戳的大小排列线程,时间戳小的置于堆顶,此时从等待堆中取出堆顶的线程执行。

当终端设备直接从等待堆顶获取线程后,并重新将等待堆里的线程节点重新排序,排序规则为父节点的优先级大于子节点的优先级。如果优先级相同,则按照时间戳的大小进行排序,即父节点的时间戳小于子节点的时间戳。

可以理解的是,如果等待堆中的线程带有优先级,且各个线程的运行时段与创建顺序匹配,那么,等待堆内各个线程优先级不同,等待堆内所有线程的运行顺序与创建顺序匹配。

由于每个线程在创建的时候都有时间戳,根据时间戳可以确定等待堆内线程的创建时间,即可以确定线程的创建顺序。此时便于终端设备在不能根据优先级对线程进行操作时,可以利用对线程的创建顺序进行操作,提前对线程进行排序,加快线程调度时速度、提高效率。

在另一种示例中,当操作系统中有线程作业正在执行,之前创建的定时任务也要在此刻执行,则将定时任务放置到等待堆中。由于定时任务未按指定时间执行,所以放置在等待堆中的定时任务超时。

在又一种示例中,当终端设备创建的新线程的运行时间为指定时间时,由于终端设备此时正在执行线程,所以将新线程放置到等待堆中。由于新线程的运行时间为指定时间,所以即使终端设备将上述正在运行的线程执行结束后,也未到达新线程的执行时间,此时新线程未超时,新线程依旧按照设定好的时间运行。

图3示出本发明实施例提供的一种带有优先级的线程执行顺序图。如图3所示,在执行线程a的过程中,即此时线程a已经在执行,出现新的线程e。在等待线程a执行过程中,由于线程e来的时候没有马上被执行,所以线程e超时,线程e被放入等待堆中。当线程a执行结束之后,从等待堆中获取堆顶元素进行调度。因为等待堆中只有线程e,所以堆顶元素是线程e,执行线程e。图4示出本发明实施例提供的线程调度方法的流程图。如图4所示,在线程e执行的过程中,出现线程b,将线程b放到等待堆中,而在此过程中又出现了线程c,并且线程c的优先级大于线程b的优先级,所以根据大顶堆的排序规则,堆顶元素由线程b置换成线程c。当线程e执行完之后,取等待堆中的堆顶元素线程c进行调度,当线程c执行结束之后,执行线程b,此时等待堆中没有待执行的线程。在线程b执行完一段时间后出现线程d,由于等待堆中没有待执行的线程所以执行线程d。

在一种示例中,等待堆内的各个线程为运行时段预设的设定线程。终端设备根据当前线程控制机器人作业时,机器人作业调度方法还包括:采集设备采集激励信号,终端设备根据激励信号更新等待堆。

终端设备确定等待堆内大顶堆的堆顶元素包括一个线程的情况下,根据线程控制机器人作业包括:终端设备确定等待堆内大顶堆的堆顶元素包括一个线程的情况下,确定线程的运行时段存在可运行的设定线程,线程的优先级大于用于在当前时段运行的设定线程的优先级,根据线程控制机器人作业。否则,终端设备根据用于在当前时段运行的设定线程控制机器人作业。

示例的,将带有优先级并且还有定时设置的设定线程调度方法多种多样,下面以可能的实现方式示例描述。应理解,以下描述仅用于解释,不作为限定。当设定线程按照设定的时间开始执行过程中,采集设备获得激励信号,终端设备创建线程,将创建的线程更新到等待堆中,若此时堆顶元素包括一个线程,并且该线程的优先级高于用于在当前时段运行的设定线程的优先级。终端设备保证先将当前执行的设定线程完成,再执行其他的线程。此时终端设备将该优先级高的线程放置在等待堆中。

按照大顶堆的排序方式,将等待堆中上的至少一个线程按照优先级的高低进行排序。当终端设备从等待堆中获取堆顶元素执行,如果运行时间与设定线程的时间相冲突,则比较两个线程的优先级,优先级高的先执行。如果等待堆中的线程还未执行,且设定线程优先级高于等待堆中的线程的优先级,则先执行设定线程,其他情况都先执行等待堆中的线程。

图5示出本发明实施例提供的带有定时任务的线程调度执行顺序图。如图5所示,当等待堆内的各个线程为运行时段预设的设定线程时,如线程f和线程g为指定时间进行作业调度的两个线程。当没有发生资源竞争的时候,按照线程f的时间点执行线程f作业,到了线程g的时间点执行线程g作业。而线程f作业执行的一部分内容是设置下一次线程f和线程g作业时进行调度的时间,也就是将线程f和线程g放到等待堆中,当线程g执行完之后,继续执行上次线程f作业产生的定时作业线程f和线程g,而在线程f作业执行过程中来了优先级高于线程f和线程g的线程h,以及优先级高于线程h的线程l,将线程h和线程l都放置到等待堆中,从等待堆中取出堆顶元素,也就是优先级最高的线程l,此时优先级次高的线程h变成堆顶元素,等待下次的作业调度。此时线程的执行顺序为线程l、线程h、线程g,然后在执行新一轮的线程f和线程g的循环。

当然,等待堆内的各个线程为运行时段预设的设定线程。终端设备根据当前线程控制机器人作业时,机器人作业调度方法还包括:采集设备采集激励信号,终端设备根据激励信号更新等待堆。

终端设备根据多个线程中的时间戳最小的线程确定待运行线程后,根据待运行线程控制机器人作业前,机器人作业调度方法还包括:

终端设备确定待运行线程的优先级大于用于在当前时段运行的设定线程的优先级,根据待运行线程控制机器人作业。此时可以避免浪费作业调度时产生的系统资源浪费。

终端设备确定待运行线程的优先级小于用于在当前时段运行的设定线程的优先级,根据用于在当前时段运行的设定线程控制机器人作业。

示例的,当等待堆内大顶堆的堆顶元素包括多个线程的情况下,多个线程中有两个或两个以上的优先级相同时,先通过按照时间戳大小的方式确定线程的运行顺序,选择时间戳最小的线程作为待运行线程。之后比较待运行线程的优先级与用于在当前时段运行的设定线程的优先级,根据优先级高的线程控制机器人作业。

在一种可选的示例中,上述机器人作业调度方法还包括:

终端设备确定等待堆内的线程优先级相同的情况下,随机分配等待堆内每个线程的时间片,按照时间戳大小对等待堆内的线程排序,采用时间片轮转调度算法对线程进行调度,根据线程控制机器人作业。

示例的,等待堆内的线程优先级相同的情况下,线程调度方法多种多样,下面以两种实现方式示例描述。应理解,以下描述仅用于解释,不作为限定。

在未发生资源竞争的情况下,无论线程的优先级是否相同,此时判断线程的创建时间。线程的创建时间与其运行顺序相匹配。终端设备遵循先来先服务的原则,即根据线程的创建时间,按照先后次序进行线程调度。

图6示出本发明实施例提供的线程未发生资源竞争时执行顺序图。如图6所示,当线程a的创建时间大于线程b的创建时间,线程b的创建时间大于线程c的创建时间,线程c的创建时间大于线程d时间时,由于没有发生资源竞争,并且上述四个线程创建的时间不一样,上一个线程的结束时间与下一个线程的创建时间之间具有一定的时间差,相互之间不会影响,所以上述四个线程不存在被放入等待堆中的情况,此时无论上述四个线程的优先级是否相同,均按照四个线程的创建时间执行。按照创建时间,上述四个线程的执行顺序为线程a,线程b,线程c,线程d。应该理解,上述时间差的大小可以根据实际情况进行设定,不限于某一数值。

当产生资源竞争时,由于线程的优先级相同,按照先后次序进行时间片轮转调度算法对线程进行调度。

随机分配等待堆内每个线程的时间片,例如:线程a执行的时间为6ms、线程b执行的时间为3ms、线程c执行的时间为5ms、线程d执行的时间为7ms。应理解,上述每个线程的时间片不限于某一固定数值,可以根据实际情况进行设置。当线程用完分配给它的时间片后,它被移到队列的末尾。然后,再把终端设备分配给等待堆中堆顶的线程,让线程执行它所分配到的时间片的时间。以此类推,采用时间片轮转调度算法对线程进行调度,根据所述线程控制机器人作业。

示例的,当终端设备设定的执行顺序是线程a,线程b,线程c,线程d时。当线程a在规定的时间内没有执行完,cpu将被剥夺并分配给线程b。如果线程a在时间片结束前阻塞或结束,则cpu当即进行切换。

图7示出本发明实施例提供的线程产生资源竞争时的执行顺序图。如图7所示,在执行线程a的过程中,即此时线程a已经在执行,出现新的线程e。在等待线程a执行过程中,由于线程e来的时候没有马上被执行,所以线程e超时,放入等待堆中。当线程a执行结束之后,从等待堆中获取堆顶元素进行调度。因为等待堆中只有线程e,所以堆顶元素是线程e,执行线程e。在线程e执行的过程中,出现线程b,将线程b放到等待堆中,而在此过程中又出现了线程c,将线程c放到等待堆中,并且线程c的优先级与线程b的优先级相等。按照图4所示的线程调度方法,由于线程b的创建时间大于线程c的创建时间,所以根据小顶堆的排序规则,即时间戳的大小顺序排列,此时堆顶元素为线程b。当线程e执行完之后,取等待堆中的堆顶元素线程b作为作业进行调度,此时最终的运行顺序为线程a、线程e,线程b、线程c。

作为另一种可能的实现方式,采集设备还可以获取应急激励信号。终端设备根据应急激励信号创建应急线程。终端设备根据应急线程控制机器人进行应急操作。

当采集设备获取应急激励信号后,终端设备根据应急激励信号创建应急线程,通过创建的应急线程来完成当前这个紧急的作业。这样处理不仅减少了系统切换造成的时间浪费,提高了时间和系统资源的利用效率,提高了系统的稳定性和安全性,同时也保证了系统的并发性。

示例的,在机器人根据激励信号在运动的过程中,前方路面出现凹坑,外界给机器人一个停止运动的应急激励信号。此时机器人的采集设备获取该表示停止运动的应急激励信号。由于机器人内部设置有应急响应装置,当出现应急激励信号时,应急响应装置被触发,促使终端设备根据该应急激励信号创建相应的应急线程,并且该应急线程被创建之后会立即执行。即终端设备立即根据上述应急线程控制机器人停止运动,进而避免机器人掉入凹坑中损坏,保证了机器人的安全运行。

根据上述描述可知,线程池里面的线程可以分为两类,这里的线程池指的是当前正在执行的线程以及等待堆中的线程。上述两类线程,其中一类是处理常规任务的线程,具有固定的线程数量,这类线程在处理完一个任务后会找另外一个常规任务执行,如果没有常规任务就处于等待状态。另一类是处理应急任务的线程,执行完应急任务后,如果没有下个任务就直接注销。此时可以有效、快速的进行线程调度,完成作业,不需要机器人操作系统频繁的进行作业调度,节省了时间,并且提高了系统资源的利用率。

上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如采集设备和终端设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本发明实施例可以根据上述方法示例对采集设备和终端设备等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

上面结合图1至图7,对本发明实施例的方法进行了说明,下面对本发明实施例提供的执行上述机器人作业调度方法进行描述。本领域技术人员可以理解,方法和装置可以相互结合和引用,本发明实施例提供的机器人作业调度装置可以执行上述机器人作业调度方法中由采集设备和终端设备执行的步骤。

本发明实施例可以根据上述方法示例对采集设备和终端设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。应理解,雷达设备和图像采集设备为现有结构,此处不再描述。下面仅对终端设备从功能模块和集成单元的角度进行描述。

上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

在采用对应集成单元的情况下,图8示出了本发明实施例提供的机器人作业调度装置的结构框图。如图8所示,该装置20包括:通信单元22和处理单元21。其中,

如图8所示,通信单元22用于支持机器人作业调度装置执行上述实施例中由终端设备执行的步骤101~步骤103。处理单元21用于支持机器人作业调度装置执行上述实施例中由终端设备执行的101~步骤103。

在一些可能的实现方式中,上述机器人作业调度装置还可以包括存储单元23,用于存储基站的程序代码和数据。

其中,如图8所示,处理单元21可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理单元也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信单元可以是收发器、收发电路或通信接口等。存储单元可以是存储器。

如图8所示,以上通信单元22可以是该装置的一种通信接口,用于从其它装置接收信号。例如,当该装置20以芯片的方式实现时,该通信单元22是该芯片用于从其它芯片或装置接收信号或发送信号的通信接口。

当上述处理单元21为处理器,通信单元22为通信接口,存储单元23可以是存储器时,本发明实施例所涉及的机器人作业调度装置可以为图9所示的机器人作业调度装置。

如图9所示,本发明实施例提供一种机器人作业调度装置的一种集成模块示意图,该设备30包括处理器31以及与处理器31耦合的通信接口32。

如图9所示,通信接口32用于支持机器人作业调度装置执行上述实施例中由终端设备执行的101~步骤103。处理器31用于支持机器人作业调度装置执行上述实施例中由终端设备执行的101~步骤103。

如图9所示,上述处理器31可以是一个通用中央处理器(centralprocessingunit,cpu),微处理器,专用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本发明方案程序执行的集成电路。

如图9所示,上述通信接口32可以为一个或多个。通信接口可使用任何收发器一类的装置,用于与其他设备或通信网络通信。

如图9所示,上述终端设备还可以包括通信线路33。通信线路33可包括一通路,在上述组件之间传送信息。

如图9所示,该通信设备还可以包括存储器34。存储器34用于存储执行本发明方案的计算机执行指令,并由处理器31来控制执行。处理器31用于执行存储器34中存储的计算机执行指令,从而实现本发明下述实施例提供的机器人作业调度方法。

如图9所示,存储器34可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器34可以是独立存在,通过通信线路42与处理器31和处理器35相连接。存储器34也可以和处理器31和处理器35集成在一起。

可选的,本发明实施例中的计算机执行指令也可以称之为应用程序代码,本发明实施例对此不作具体限定。

在具体实现中,作为一种实施例,如图9所示,处理器31可以包括一个或多个cpu,如图4中的cpu0和cpu1。

在具体实现中,作为一种实施例,如图9所示,该机器人作业调度装置可以包括多个处理器,如图9中的处理器31和处理器35。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。

图10是本发明实施例提供的芯片的结构示意图。如图10所示,该芯片40包括一个或两个以上(包括两个)处理器41和通信接口42。

可选的,如图10所示,该芯片40还包括存储器43。存储器43可以包括只读存储器和随机存取存储器,并向处理器41提供操作指令和数据。存储器43的一部分还可以包括非易失性随机存取存储器(non-volatilerandomaccessmemory,nvram)。

在一些实施方式中,如图10所示,存储器43存储了如下的元素,执行模块或者数据结构,或者他们的子集,或者他们的扩展集。

在本发明实施例中,如图10所示,通过调用存储器存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。

如图10所示,处理器41控制本发明实施例中电子设备包括的处理器和电源中任一个的处理操作,处理器501还可以称为中央处理单元(centralprocessingunit,cpu)。

如图10所示,存储器43包括只读存储器和随机存取存储器,并向处理器53提供指令和数据。存储器43的一部分还可以包括nvram。例如应用中处理器41、通信接口42以及存储器43通过总线系统44耦合在一起,其中总线系统44除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图10中将各种总线都标为总线系统44。

如图10所示,上述本发明实施例揭示的方法可以应用于处理器41中,或者由处理器41实现。处理器41可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器41可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、asic、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器43,处理器41读取存储器中的信息,结合其硬件完成上述方法的步骤。

一种可能的实现方式中,如图10所示,通信接口42用于支持上述芯片40执行上述实施例中的终端设备的接收和发送的步骤。处理器41用于支持上述芯片40执行上述实施例中终端设备的处理的步骤。

一方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令被运行时,实现如图9和图10中处理器的功能。

一方面,提供一种芯片,该芯片应用于终端设备中,芯片包括至少一个处理器和通信接口,通信接口和至少一个处理器耦合,处理器用于运行指令,以实现上述实施例中由图9和图10中处理器执行的功能。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、终端、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digitalvideodisc,dvd);还可以是半导体介质,例如,固态硬盘(solidstatedrive,ssd)。

尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。

尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

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