无人机调度方法、装置、系统、电子设备及可读介质
技术领域
本公开总体涉及无人机控制领域,具体而言,涉及一种无人机调度方法、装置、系统、电子设备及可读介质。
背景技术
目前,无人机在警用、城市管理、农业、地质、气象、电力、抢险救灾、视频拍摄等行业得到广泛应用。
通常只能由一个客户端控制一台无人机,在一个客户端上同时控制多台无人机比较困难,而且一位无人机控制人员能够同时操作的客户端有限,因此需要多个控制人员才能实现对多个无人接进行控制,人力成本很高。另外,研发无人机的厂家众多,且每个公司的无人机也有多个版本。由于无人机的厂家和版本的不同,需要的控制无人机的客户端也是多种多样,控制人员要想控制不同的无人机就要操作不同的客户端,会增加控制人员的学习成本,同时也增大出错的几率。
因此,现有技术中的技术方案中一个人只能控制单台无人机满足不了运营商对多数量、多种类无人机同时进行控制的需求,还存在有待改进之处。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种无人机调度方法、装置、系统、电子设备及可读介质,解决上述技术问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提供一种无人机调度方法,包括:
获取用户的控制命令;
将所述控制命令拆分得到多个执行动作;
对所述多个执行动作根据无人机的识别信息分别编译成指令包;
按照所述识别信息将所述指令包发送给对应的无人机。
在本公开的一个实施例中,所述识别信息包括:编号、厂家和版本信息。
在本公开的一个实施例中,将所述控制命令拆分得到多个执行动作包括:
从所述控制命令中拆分得到所述编号和一键指令;
对所述一键指令再次进行拆分,得到所述多个执行动作,其中所述执行动作为无人机可执行的具体动作。
在本公开的一个实施例中,获取用户的控制命令之前,还包括:
利用对所述识别信息对无人机进行注册,生成注册文件。
在本公开的一个实施例中,对所述多个执行动作根据无人机的识别信息分别编译成指令包包括:
根据所述识别信息中的所述编号调用所述注册文件,得到对应的厂家和版本信息;
利用所述对应的厂家和版本信息的命令编码对所述多个执行动作进行编译,生成所述指令包。
在本公开的一个实施例中,按照所述识别信息将所述指令包发送给对应的无人机包括:
将所述指令包按照所述识别信息中的所述编号发送给对应的无人机。
在本公开的一个实施例中,生成注册文件之后,还包括:
将所述无人机按照所述编号和通信连接进行关联,并保存关联关系。
在本公开的一个实施例中,按照所述识别信息将所述指令包发送给对应的无人机包括:
按照所述识别信息中的所述编号与所述关联关系完成相应的通信连接;
通过所述通信连接将所述指令包发送给对应的无人机。
根据本公开的再一方面,提供一种无人机调度装置,包括:
命令获取模块,被配置为获取用户的控制命令;
命令拆分模块,被配置为将所述控制命令拆分得到多个执行动作;
动作编译模块,被配置为对所述多个执行动作根据无人机的识别信息分别编译成指令包;
指令发送模块,被配置为按照所述识别信息将所述指令包发送给对应的无人机。
根据本公开的再一方面,提供一种无人机调度系统,用于对多个无人机进行调度,包括:
注册模块,被配置为对无人机进行注册,生成注册文件,所述注册文件中包括无人机的识别信息;
控制模块,被配置为获取用户的控制命令,并将所述控制命令拆分得到多个执行动作;
消息处理模块,被配置为对所述多个执行动作根据所述识别信息分别编译成指令包;
网关,被配置为按照所述识别信息将所述指令包发送给对应的无人机。
根据本公开的又一方面,提供一种电子设备,包括处理器;存储器,存储用于所述处理器控制如上所述的方法步骤的指令。
根据本公开的另一方面,提供一种计算机可读介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上所述的方法步骤。
根据本公开实施例提供的无人机调度方法、装置、系统、电子设备及计算机可读介质,一方面,通过对控制命令进行拆分,并根据无人机本身的识别信息进行相对应的编译,以使针对不同无人机分人同一动作可以进行不同的编译,生成对无人机进行控制的指令包,从而可以实现对不同厂家、不同版本的无人机在同一客户端进行控制。另一方面,由于用户在客户端只需给出统一的控制命令,而不再需要针对不同厂家、不同版本的无人机进行学习和训练,可以降低操控人员的学习成本。本公开通过操作指令简单化,构建一个大数量、多种类的无人机的调度平台。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。
图1示出本公开一实施例中提供的一种无人机调度方法的流程图。
图2示出本公开一实施例中无人机注册操作的流程图。
图3示出本公开一实施例图1中步骤S120的流程图。
图4示出本公开一实施例图1中步骤S130的流程图。
图5示出本公开一实施例中提供的无人机调度系统的架构图。
图6示出本公开一实施例图5中系统的工作原理图。
图7示出本公开另一实施例提供的一种无人机调度装置的示意图。
图8示出本公开一实施例提供的适于用来实现本申请实施例的电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
在本公开的相关实施例中,无人机需要通过4G等网络建立TCP(TransmissionControl Protocol,传输控制协议)长连接,连到服务器。无人机通过自定义数据包的形式将飞行过程中产生的经纬度、高度、速度等数据上传到服务器中。如果控制单台无人机也是通过TCP的数据双向传输的机制,则需要将控制无人机的指令集通过数据包的形式下发到无人机中。
运营商很有可能将不同厂家生产的无人家或不同版本的无人机都纳入同一套调度系统中,实现飞行任务下达、无人机任务暂定、无人机返回等命令,是大规模无人机运营的需要。但是目前控制方案仅能控制单个无人机,无法满足运营商对大数量、多种类飞机同时运营及调度的需要。
图1示出本公开一实施例中提供的一种无人机调度方法的流程图,包括以下步骤:
如图1所示,在步骤S110中,获取用户的控制命令。
如图1所示,在步骤S120中,将所述控制命令拆分得到多个执行动作。
如图1所示,在步骤S130中,对所述多个执行动作根据无人机的识别信息分别编译成指令包。
如图1所示,在步骤S140中,按照所述识别信息将所述指令包发送给对应的无人机。
本公开实施例提供的无人机调度方法,通过对控制命令进行拆分,并根据无人机本身的识别信息进行相对应的编译,以使针对不同无人机分人同一动作可以进行不同的编译,生成对无人机进行控制的指令包,从而可以实现对不同厂家、不同版本的无人机在同一客户端进行控制。另一方面,由于用户在客户端只需给出统一的控制命令,而不再需要针对不同厂家、不同版本的无人机进行学习和训练,可以降低操控人员的学习成本。本公开通过操作指令简单化,构建一个大数量、多种类的无人机的调度平台。
需要说明的是,本公开提供的调度方法不仅仅适用于无人机,还可以适用于其他具有类似功能的飞行器,此处不再一一列举。
以下结合图1所示的流程图对本公开提供的无人机调度方法进行详细介绍,具体如下:
在步骤S 110中,获取用户的控制命令。
在本公开的一个实施例中,用户的控制命令中包括被控制无人机的数量以及这些被控制的无人机编号分别是多少,还包括用户的一键指令。其中一键指令是指对用户而言在控制无人机的客户端上只需简单操作就能发出控制指令,即该一键指令是面向用户的指令,但是该一键指令对于无人机本身而言是无法直接执行的,还需进一步拆分为具体的执行动作,才能被无人机执行,即拆分后的执行动作才是面向无人机的。
在本公开的一个实施例中,步骤S110获取用户的控制命令之前,还包括:
利用对所述识别信息对无人机进行注册,生成注册文件。
在本公开的一个实施例中,识别信息包括:编号、厂家和版本信息,其中编号为无人机在注册模块的唯一标识。在该步骤中将无人机的编号、厂家和版本信息在注册模块进行注册,生成注册文件。
在本公开的一个实施例中,上述注册模块可以是一个分布式的存储结构,如注册模块为ZOOKEEPER存储,无人机上线之后会将无人机的编号、厂家和版本信息等信息注册到ZOOKEEPER分布式服务节点。在本公开的其他实施例中,注册文件还可以是REDIS缓存,而不采用分布式存储,此处不做过多限定。
在本公开的一个实施例中,生成注册文件之后,还包括:
将所述无人机按照所述编号和通信连接进行关联,并保存关联关系。其中每个无人机与网关之间都需要建立一条通信连接,这里的通信连接可以是TCP长连接,无人机注册后将各个无人机与网关之间建立TCP长连接并保存,这样后续步骤中就可以直接根据无人机的编号选择关联的TCP长连接进行通信。
基于上述,图2示出无人机注册操作的流程图,图2中以ZOOKEEPER分布式存储为例,包括以下步骤:
如图2所示,在步骤S210中,获取无人机的识别信息,包括:编号、厂家和版本信息。
如图2所示,在步骤S220中,注册ZOOKEEPER节点,并将识别信息保存到ZOOKEEPER节点中。
如图2所示,在步骤S230中,将无人机的编号与TCP长连接进行关联并保存。
基于上述步骤S210~S230,每个无人机上线后都会在分布式注册模块中进行注册,将其编号、厂家和版本信息等信息注册到分布式节点中,可以在分布式节点之间取用。
在步骤S120中,将所述控制命令拆分得到多个执行动作。
在本公开的一个实施例中,图3示出步骤S120将所述控制命令拆分得到多个执行动作的流程图,具体包括以下步骤:
如图3所示,在步骤S310中,从所述控制命令中拆分得到所述编号和一键指令。
如图3所示,在步骤S320中,对所述一键指令再次进行拆分,得到所述多个执行动作。
其中所述执行动作为无人机可执行的具体动作,因此拆分后得到一组可以控制无人机的具体指令。在该步骤中将用户的控制命令拆分成无人机可执行的具体动作,同时也获取到无人机的编号。
在本公开的一个实施例中,一键指令可以为一键起飞,包括:起飞前数据检查、飞行航点的下发、开锁、开始执行任务一系列无人机的执行动作。因此经步骤S320后可以将一键起飞拆分成起飞前数据检查、飞行航点的下发、开锁、开始执行任务四个执行动作。一键指令还可以为一键巡航,包括:飞机自检、巡航任务下发、任务执行、巡航数据上传一系列无人机的执行动作。同理,经步骤S320中将一键巡航拆分成飞机自检、巡航任务下发、任务执行、巡航数据上传四个执行动作。
除此之外,还可以包括其他一键指令,同样也是拆分成多个具体的执行动作,此处不再一一列举。
以其中的一键起飞为例,目前对于不同厂家生产的不同版本的无人机而言,有的无人机具有一键起飞功能,有的无人机并不具有一键起飞功能,且具有一键起飞功能的无人机对于一键起飞的定义还存在差异,有的只是“半”一键起飞,因此对于用户控制这些不同的无人家带来很大困扰,容易造成误操作等。本公开通过在控制平台设定统一的一键起飞的控制命令,再由步骤S120拆分成无人机可执行的具体执行动作,可以简化用户的操作,降低用户的学习成本,还能降低操作出错的概率。
在步骤S130中,对所述多个执行动作根据无人机的识别信息分别编译成指令包。
在本公开的一个实施例中,图4示出步骤S130对所述多个执行动作根据无人机的识别信息分别编译成指令包的流程图,具体包括以下步骤:
如图4所示,在步骤S410中,根据所述识别信息中的所述编号调用所述注册文件,得到对应的厂家和版本信息。
如图4所示,在步骤S420中,利用所述对应的厂家和版本信息的命令编码对所述多个执行动作进行编译,生成所述指令包。
由于无人机具体的执行动作在行业内是有相关规定的,并且这些执行动作是通用的,只是针对不同无人机的同一个执行动作具有不同的命令编码,而最终发送给无人机的又是一个个指令包而不是具体的执行动作,因此需要将这些执行动作编译成不同的指令包才能够分别被对应的无人机执行。
在步骤S140中,按照所述识别信息将所述指令包发送给对应的无人机。
在本公开的一个实施例中,该步骤中具体是将所述指令包按照所述识别信息中的所述编号发送给对应的无人机,以便无人机根据该指令包完成相应的执行动作,实现对无人机的控制。
在本公开的一个实施例中,由于之前步骤中将所述无人机按照所述编号和通信连接进行关联,并保存关联关系。因此该步骤还可以进一步包括以下步骤:
首先,按照所述识别信息中的所述编号与所述关联关系完成相应的通信连接;其次,通过所述通信连接将所述指令包发送给对应的无人机。
由于注册后建立起每个无人机与TCP长连接关联,并保存关联关系,因此在该步骤中可以直接根据无人机的编号选择关联的TCP长连接进行通信,可以实现指令的快速传输,缩短控制的反应时间(即控制执行动作发出到无人机完成相应动作的时间)。
还需要说明的是,该步骤中每一个控制命令的下发都需要先判断飞机的当前状态、如果当前状态可以执行此命令才将该指定动作的指令包下发给无人机。
上述无人机调度方法依赖无人机控制系统来实现,图5示出无人机调度系统的架构图,如图5所示,该装置500中包括:注册模块510、控制模块520、消息处理模块530和网关540。
注册模块510被配置为对无人机进行注册,生成注册文件,所述注册文件中包括无人机的识别信息;控制模块520被配置为获取用户的控制命令,并将所述控制命令拆分得到多个执行动作;消息处理模块530被配置为对所述多个执行动作根据所述识别信息分别编译成指令包;网关540被配置为按照所述识别信息将所述指令包发送给对应的无人机。
如图5所示,注册模块510在无人机上线之后会将其编号、厂家和版本信息等信息注册到ZOOKEEPER中,分布式服务的各个节点都可以取用。控制模块520从用户获取控制命令,并负责将用户U1的控制命令拆分成无人机可以执行的具体动作,比如将一键起飞的控制命令拆分成包括:起飞前数据检查、飞行航点的下发、开锁、开始执行任务四个执行动作。消息处理模块530负责将解析命令后的执行动作编译形成指令包,以便可以下发给无人机J1。网关540负责维护无人机J1与服务器的通信连接。
基于上述,结合图1所示的无人机调度方法和图5所示的系统架构对本公开实施例中的无人机调度方法的步骤进行详细介绍,图6示出系统的工作原理图,如下:
如图6所示,在步骤S601中,控制模块接收用户的控制命令。
其中每个控制命令包括被控制无人机的数量、被控制的无人机编号和一键指令,而且这些可以被控制的无人机都是在注册模块中注册过的。无人机注册的过程参照图2所示的流程,此处不再重复。
如图6所示,在步骤S602中,控制模块将控制命令进行拆分,得到一组可以控制无人机的具体指令。
该步骤中控制模块将控制命令拆分成飞机可以执行的具体动作,比如一键起飞包括起飞前数据检查、飞行航点的下发、开锁、开始执行任务。
如图6所示,在步骤S603中,控制模块通过消息队列(Message Queue,简称MQ)将一组指令发送给消息处理模块。
如图6所示,在步骤S604中,消息模块根据无人机的厂家和版本信息将一组指令编译成对应的指令包。
接收到控制模块通过MQ推送的拆分的执行动作一组指令后,调用注册模块的注册文件,确定每个指令对应控制的无人机注册时录入的编号、厂家和版本信息,并根据不同的编号、厂家和版本信息编译不同的指令包。
如图6所示,在步骤S605中,消息处理模块将指令包通过MQ发送给网关。
如图6所示,在步骤S606中,根据无人机的编号选择关联的TCP长连接。
如图6所示,在步骤S607中,通过TCP长连接将指令包发送给对应的无人机。
网关接收到消息模块通过MQ推送的指令包后,根据无人机的编号选择与其对应的无人机进行传输,并将指令包推送至所对应的无人机,对无人机进行控制。
基于上述系统架构,一个飞机控制人员(即用户)只需要操作的一个客户端(可以是地面站,还可以是一个控制终端,如遥控器),可以操作不同厂商、不同版本的多架无人机,降低了工作人员的需求,降低人力成本,通过控制多台无人机能够满足对大数量、多种类无人机同时运营的需求。
综上所述,本公开实施例提供的无人机调度方法,通过对控制命令进行拆分,并根据无人机本身的识别信息进行相对应的编译,以使针对不同无人机分人同一动作可以进行不同的编译,生成对无人机进行控制的指令包,从而可以实现对不同厂家、不同版本的无人机在同一客户端进行控制。另一方面,由于用户在客户端只需给出统一的控制命令,而不再需要针对不同厂家、不同版本的无人机进行学习和训练,可以降低操控人员的学习成本。通过操作指令简单化,构建一个大数量、多种类的无人机的调度平台。
图7示出本公开另一实施例提供的一种无人机调度装置的示意图,如图7所示,该装置700中包括:命令获取模块710、命令拆分模块720、动作编译模块730和指令发送模块740。
命令获取模块710被配置为获取用户的控制命令;命令拆分模块720被配置为将所述控制命令拆分得到多个执行动作;动作编译模块730被配置为对所述多个执行动作根据无人机的识别信息分别编译成指令包;指令发送模块740被配置为按照所述识别信息将所述指令包发送给对应的无人机。
该装置中各个模块的功能参见上述方法实施例中的相关描述,此处不再赘述。
综上所述,本公开实施例提供的无人机调度装置,通过对控制命令进行拆分,并根据无人机本身的识别信息进行相对应的编译,以使针对不同无人机分人同一动作可以进行不同的编译,生成对无人机进行控制的指令包,从而可以实现对不同厂家、不同版本的无人机在同一客户端进行控制。另一方面,由于用户在客户端只需给出统一的控制命令,而不再需要针对不同厂家、不同版本的无人机进行学习和训练,可以降低操控人员的学习成本。通过操作指令简单化,构建一个大数量、多种类的无人机的调度平台。
另一方面,本公开还提供了一种电子设备,包括处理器和存储器,存储器存储用于上述处理器控制以下方法的操作指令:
获取用户的控制命令;将所述控制命令拆分得到多个执行动作;对所述多个执行动作根据无人机的识别信息分别编译成指令包;按照所述识别信息将所述指令包发送给对应的无人机。
下面参考图8,其示出了适于用来实现本申请实施例的电子设备的计算机系统800的结构示意图。图8示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分807加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括发送单元、获取单元、确定单元和第一处理单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,发送单元还可以被描述为“向所连接的服务端发送图片获取请求的单元”。
另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括以下方法步骤:
获取用户的控制命令;将所述控制命令拆分得到多个执行动作;对所述多个执行动作根据无人机的识别信息分别编译成指令包;按照所述识别信息将所述指令包发送给对应的无人机。
应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施方式。
以上具体地示出和描述了本公开的示例性实施方式。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。