发明内容
本发明实施例的目的在于提供一种机器人的控制方法、装置、控制器、存储介质和机器人,从而简化机器人控制器中控制机器人相关的应用程序部署的复杂程度,提高机器人的控制效率。
为解决上述技术问题,本发明的实施例提供了一种机器人的控制方法,应用于机器人控制器,方法包括:响应于机器人的服务请求,在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块;其中,机器人基础能力模块基于机器人的功能进行划分;通过目标机器人基础能力模块对机器人进行控制。
本发明的实施例还提供了一种机器人的控制装置,包括:确定模块,控制模块;确定模块用于响应于机器人的服务请求,在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块;其中,机器人基础能力模块基于机器人的功能进行划分;控制模块用于通过目标机器人基础能力模块对机器人进行控制。
本发明的实施方式还提供了一种机器人控制器,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行机器人的控制方法。
本发明的实施方式还提供了一种存储介质,存储有计算机程序,计算机程序被处理器执行时上述的机器人的控制方法。
本发明的实施方式还提供了一种机器人,包括:机器人本体和上述的机器人控制器。
本发明实施例相对于现有技术而言,在机器人控制器中部署有多个机器人基础能力模块,所部署的机器人基础能力模块是根据机器人的服务功能进行划分的,每个服务功能均可以通过一个或多个的机器人基础能力模块配合实现。在接收到机器人的服务请求时,只需调用相应的机器人基础能力模块,即可实现机器人的控制。由于在实现不同的机器人服务功能时可以调用相同的机器人基础能力模块,所以将机器人的服务功能划分为机器人基础能力模块,并对机器人基础能力模块进行调用可以简化机器人控制器中控制机器人相关的应用程序部署的复杂程度,使对机器人的控制更加容易实现,同时通过调用机器人基础能力模块实现对机器人的控制,调用过程简单,容易操作,提高了机器人的控制效率。
另外,响应于机器人的服务请求,在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块,包括:通过机器人基础能力客户端进程接收机器人的服务请求;响应于所述机器人的服务请求,通过机器人基础能力服务端进程在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块。
另外,机器人控制器部署有通用系统和安全系统;机器人基础能力客户端进程部署于安全系统中。通过机器人基础能力客户端进程响应机器人的服务请求,包括:通过部署于安全系统中的机器人基础能力客户端进程接收到机器人的服务请求,并验证服务请求的权限;在服务请求的权限验证通过之后,通过机器人基础能力客户端进程响应服务请求。将机器人基础能力客户端进程部署于安全系统中,在机器人基础能力客户端进程接收到机器人的相关指令时可以进行权限的鉴定,从而避免机器人被无权限的人士所操控,保证机器人控制的安全性。
另外,机器人基础能力服务端进程部署于安全系统中,通过机器人基础能力服务端进程在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块,包括:通过机器人基础能力客户端进程触发机器人基础能力服务端进程在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块;触发方式为进程间的通信方式。这样做可以在机器人基础能力服务端和机器人基础额能力客户端部署于同一系统时可以正常进行通信。
另外,机器人基础能力服务端进程部署于通用系统中,通过机器人基础能力服务端进程在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块,包括:通过机器人基础能力客户端进程触发机器人基础能力服务端进程在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块;触发方式为利用通信通道通信的方式。这样做可以在机器人基础能力服务端和机器人基础额能力客户端部署于不同系统时可以正常进行通信。
另外,在服务请求的权限验证通过之后,还包括:建立与云端服务器的通信连接;通过目标机器人基础能力模块对机器人进行控制,包括:通过目标机器人基础能力模块和接收的所述云端服务器的指令,对机器人进行控制。这样做可以连接云端服务器,通过云端服务器对机器人进行更为复杂的控制,从而使机器人应用的场景更加多样化。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。
以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施例涉及一种机器人的控制方法,应用于机器人控制器,方法包括:响应于机器人的服务请求,在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块;其中,机器人基础能力模块基于机器人的功能进行划分;通过目标机器人基础能力模块对机器人进行控制。下面对本实施例的机器人的控制方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
具体流程如图1所示,第一实施例涉及一种机器人的控制方法,包括:
步骤101,响应于机器人的服务请求,在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块。
具体地说,如图2所示,机器人控制器RCU用于连接机器人本体中的中央控制器CCU和机器人云端服务器,机器人云端服务器通过机器人控制器RCU与中央控制器CCU相通信,实现信息的传输。在机器人的控制器RCU中部署有机器人基础能力服务程序203,机器人应用程序管理器202和机器人应用程序201等,其中,可以在机器人基础能力服务程序203中部署多个机器人基础能力模块2033,实现机器人基础能力模块的部署,机器人基础能力模块的部署如图3所示,将机器人基础能力服务程序划分为机器人基础能力客户端进程2031、机器人基础能力服务端进程2032和N个不同的机器人基础能力模块2033,机器人基础能力客户端2031接收机器人的服务请求,响应于接收的机器人的服务请求,通知机器人基础能力服务端2032工作,机器人基础能力服务端2032在预先划分的多个机器人基础能力模块2033中确定至少一个机器人基础能力模块作为目标机器人基础能力模块,完成机器人基础能力服务程序203内部的信息传递。
在机器人控制器中所部署的机器人基础能力模块是根据机器人的服务功能进行划分的,每个服务功能均可以通过一个或多个的机器人基础能力模块配合实现,例如,在实现机器人巡逻功能时,可以调用的机器人基础能力模块可以包括,机器人左转能力模块、机器人右转能力模块、机器人前进能力模块和机器人图像采集能力模块等等,这些机器人基础能力模块是机器人实现巡逻服务功能的基础,也就是说通过上述机器人基础能力模块的相互配合,可以控制机器人进行巡逻。
在机器人控制器接收到机器人的服务请求时,基于机器人所请求的服务,在机器人控制器部署的多个机器人基础能力模块中确定所需的至少一个机器人基础能力模块,作为目标机器人基础能力模块被机器人控制器所调用。例如,在巡逻机器人需要监测右前方是否出现异常情况时,机器人控制器所调用的目标机器人基础能力模块可以是机器人右转能力模块和机器人前进能力模块,从而可以控制机器人准确行进至右前方的位置,保证机器人可以实现对预设位置的监测功能。
在实际应用中,为保证机器人控制过程的安全性,可以在机器人控制器中部署两个系统,如图2所示,分别为通用系统和安全系统,通用系统与安全系统可采用虚拟机或者容器的方式进行部署,且只有安全系统可以通信连接机器人云端服务器和机器人本体,而通用系统则无法直接接入云端服务器和机器人本体,保证了云端服务器的安全性的同时,使机器人控制器中部署的程序更加有条理,便于对机器人控制器中的程序进行管理。
在对机器人控制器中的服务程序进行部署的过程中,可以将多种类型的机器人在机器人控制器RCU上需要实现的共同的能力部分划分出来,作为机器人基础能力模块部署在安全系统中,例如,机器人的左转能力模块、右转能力模块、抬臂能力模块等等。将多种类型机器人在机器人控制器RCU上需要实现的独特的程序部分,作为机器人应用程序集成在机器人控制器RCU上部署的通用系统中,例如,机器人的音频采集能力模块、数据查询能力模块等等。将多种类型的机器人的共同能力模块部署于一个系统中,而针对多种类型的机器人的独特能力模块部署于另一个系统中,可以方便开发及测试人员快速查找到所需的能力模块,从而便于在机器人控制器控制一个新类型的机器人时对能力模块进行调整及部署。另一方面,将机器人基础能力服务程序部署于安全系统中,在部署于安全系统中的机器人基础能力程序接收到机器人的服务请求时,对服务请求的权限进行验证;在服务请求的权限验证通过之后,才响应服务请求,从而避免机器人被无权限的用户所操控,保证机器人控制的安全性。
另外,在服务请求的权限验证通过之后,机器人控制器还可以建立于机器人云端服务器之间的通信连接,在对机器人的服务请求进行处理时,可以利用机器人云端服务器为机器人控制提供复杂计算的能力,从而控制机器人进行更为复杂动作,使机器人适用于多样化的应用场景。
步骤102,通过目标机器人基础能力模块对机器人进行控制。
具体地说,在多个确定目标机器人基础能力模块之后,通过调用目标机器人基础能力模块对机器人进行控制,如图2所示,机器人应用程序201在接收到机器人的服务请求时,通知机器人基础能力服务程序203进行工作,机器人基础能力服务程序203在接收到通知之后,确定目标机器人基础能力模块,其中,机器人基础能力服务程序203确定目标机器人基础能力模块的过程如图3所示,机器人基础能力服务程序203通过机器人基础能力客户端进程2031通知机器人基础能力服务端进程2032,机器人基础能力服务端进程2032在N个机器人基础能力模块2033中确定至少一个目标机器人基础能力模块,在确定目标机器人基础能力模块之后,机器人应用程序201调用目标机器人基础能力模块实现对机器人进行控制,从而实现机器人的服务功能。
在实际应用中,可以将机器人基础能力服务程序划分的机器人基础能力客户端进程和机器人基础能力服务端进程分别部署不同的系统中,也可以均部署在安全系统中,在此对机器人基础能力服务端进程的部署位置不做限制。
在机器人基础能力服务端进程与机器人基础能力客户端进程分别部署在不同系统中时,如图4所示,机器人基础能力客户端进程部署于安全系统中,而机器人基础能力服务端进程和N个机器人基础能力模块均部署于通用系统中。在机器人需要提供服务时,机器人应用程序通知安全系统的机器人基础能力客户端进程,机器人基础能力客户端进程通过通用系统和安全系统之间建立的通信通道,将服务请求传递至部署于通用系统的机器人基础能力服务端进程,最后机器人基础能力服务端进程基于服务请求在N个机器人基础能力模块中确定至少一个目标机器人基础能力模块,并对确定的目标机器人基础能力模块进行调用。在完成调用之后,所调用的至少一个目标机器人基础能力模块配合机器人应用程序实现机器人服务功能。
在机器人基础能力服务端进程与机器人基础能力客户端进程均部署在同一个系统中时,如图5所示,机器人基础能力客户端进程部署于安全系统中,机器人基础能力服务端进程和N个机器人基础能力模块同样部署于安全系统中。在机器人需要提供服务时,机器人应用程序通知安全系统的机器人基础能力客户端进程,机器人基础能力客户端进程通过网络或者进程间通信(IPC)的方式进行通信,将机器人应用程序发起的服务请求传递至机器人基础能力服务端进程,最后机器人基础能力服务端进程基于服务请求在N个机器人基础能力模块中确定至少一个目标机器人基础能力模块,并对确定的目标机器人基础能力模块进行调用。在完成调用之后,所调用的至少一个目标机器人基础能力模块配合机器人应用程序实现机器人服务功能。
进一步说明的是,机器人基础能力服务端进程可以根据实际使用的场景,对N个机器人基础能力模块进行管理,可以控制机器人基础能力模块使能或者关闭。例如,在实际应用场景下机器人不会进行后退操作,则可以关闭控制机器人后退动作的机器人基础能力模块;同理,在实际应用场景下机器人需要进行后退操作时,机器人基础能力服务端进程控制机器人后退动作的机器人基础能力模块使能,保证了可能被调用的机器人基础能力模块处于开启状态,而在应用场景下不会调用的机器人基础能力模块处于关闭状态,节约了机器人基础能力模块处于开启状态中消耗的资源。
另外,如图5所示,在通用系统中可以部署有机器人应用程序管理器,机器人应用程序管理器用于对机器人应用程序进行管理,例如,对机器人应用程序进行修改,删除等操作。另外,机器人应用程序管理器也可以通过通用系统与安全系统之间建立的通信通道,与机器人基础能力客户端进程进行通信,从而实现对机器人基础能力模块的调用。
本发明实施例相对于现有技术而言,在机器人控制器中部署有多个机器人基础能力模块,所部署的机器人基础能力模块是根据机器人的服务功能进行划分的,每个服务功能均可以通过一个或多个的机器人基础能力模块配合实现。在接收到机器人的服务请求时,只需调用相应的机器人基础能力模块,即可实现机器人的控制。由于在实现不同的机器人服务功能时可以调用相同的机器人基础能力模块,所以可以简化机器人控制器中控制机器人相关的应用程序部署的复杂程度,使对机器人的控制更加容易实现,同时通过调用机器人基础能力模块实现对机器人的控制,调用过程简单,容易操作,提高了机器人的控制效率。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第二实施例涉及一种机器人的控制装置,如图6所示,包括:确定模块61,控制模块62;确定模块61用于响应于机器人的服务请求,在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块;其中,机器人基础能力模块基于机器人的功能进行划分;控制模块62用于通过目标机器人基础能力模块对机器人进行控制。
不难发现,本实施例为与第一实施方式相对应的系统实施例,本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。
本发明第三实施例涉及一种机器人的控制装置,第三实施例在第二实施例的基础上进行了改进,如图7所示,确定模块61还包括:响应模块611和选择模块612,响应模块611用于通过机器人基础能力客户端进程响应机器人的服务请求,并将服务请求传递至机器人基础能力服务端进程;选择模块612用于响应于所述机器人的服务请求,通过机器人基础能力服务端进程在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块。
另外,如果机器人基础能力客户端进程部署于安全系统中,机器人基础能力服务端进程部署于通用系统中;响应模块611用于通过机器人基础能力客户端进程响应机器人的服务请求,并通过通用系统和安全系统之间建立的通信通道,将服务请求传递至机器人基础能力服务端进程。
另外,如果机器人基础能力客户端进程和机器人基础能力服务端进程部署于安全系统中,响应模块611用于通过机器人基础能力客户端进程响应机器人的服务请求,并通过进程间通信的方式,将服务请求传递至机器人基础能力服务端进程。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本发明第四实施例涉及一种机器人控制器,如图8所示,包括至少一个处理器801;以及,与至少一个处理器801通信连接的存储器802;其中,存储器802存储有可被至少一个处理器801执行的指令,指令被至少一个处理器801执行,以使至少一个处理器801能够执行上述机器人的控制方法。
其中,存储器802和处理器801采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器801和存储器802的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器801。
处理器801负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器802可以被用于存储处理器801在执行操作时所使用的数据。
本发明第五实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明第六实施例涉及一种机器人,如图9所示,包括:机器人本体901和上述说明中的机器人控制器902。具体的说,机器人本体901发送机器人服务请求;机器人控制器902响应于机器人的服务请求,在预先划分的多个机器人基础能力模块中确定至少一个机器人基础能力模块作为目标机器人基础能力模块;其中,机器人基础能力模块基于机器人的功能进行划分;通过目标机器人基础能力模块对机器人本体901进行控制。根据本发明实施例的机器人控制器902可以执行上述机器人的控制方法。
本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。