一种机械臂的控制方法、装置及服务器与流程
本发明涉及机器人技术领域,特别是涉及一种机械臂的控制方法、装置及服务器。
背景技术:
机器人,又称自动控制机器,包括一切模拟人类行为或思想与模拟其他生物的机械。在现代工业中,机器人指能自动执行任务的人造机器装置,用以取代或协助人类工作。而目前的工业机器人大多是通过机械臂来完成相应的指令或操作。
目前,在上位机控制下位机(机械臂)的系统中,往往是一个前端软件控制一个或者多个下位机,而如果是需要多个前端软件都可以控制多个下位机,则系统的复杂度较大,给开发者带来困难,增加了开发周期。
发明人在实现本发明实施例的过程中,发现相关技术至少存在以下问题:目前缺乏多个前端软件控制多个下位机的有效控制方式,导致机械臂的控制系统灵活性差。
技术实现要素:
本发明实施例旨在提供一种机械臂的控制方法、装置及系统,其解决了目前缺乏多个前端软件控制多个下位机的有效控制方式,导致机械臂的控制系统灵活性差的技术问题,提高了开发效率。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种机械臂的控制方法,所述方法包括:
获取至少一个前端软件发送的连接指令,与至少一个前端软件进行通讯连接;
为机械臂分配对应的机械臂插件;
接收所述前端软件发送的控制命令,基于所述控制命令,控制所述机械臂插件对应的机械臂。
在一些实施例中,所述方法还包括:
为所述机械臂插件配置统一的接口。
在一些实施例中,通过socket与每一前端软件进行通信。
在一些实施例中,在所述获取至少一个前端软件发送的连接指令,与至少一个前端软件进行通讯连接的步骤之前,所述方法还包括:
搜索可用的机械臂插件,并对所述可用的机械臂插件进行加载。
在一些实施例中,所述方法还包括:
获取所述机械臂返回的执行结果,将所述执行结果发送到对应的前端软件。
第二方面,本发明实施例提供一种机械臂的控制装置,应用于服务器,所述装置包括:
通讯连接单元,用于获取至少一个前端软件发送的连接指令,与至少一个前端软件进行通讯连接;
机械臂插件单元,用于为机械臂分配对应的机械臂插件;
机械臂控制单元,用于接收所述前端软件发送的控制命令,基于所述控制命令,控制所述机械臂插件对应的机械臂。
在一些实施例中,所述通讯连接单元具体为socket接口。
在一些实施例中,所述装置还包括:
加载单元,用于搜索可用的机械臂插件,并对所述可用的机械臂插件进行加载。
第三方面,本发明实施例提供一种服务器,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的机械臂的控制方法。
第四方面,本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使服务器能够执行如上所述的机械臂的控制方法。
本发明实施例的有益效果是:区别于现有技术的情况下,本发明实施例提供的一种机械臂的控制方法,所述方法包括:获取至少一个前端软件发送的连接指令,与至少一个前端软件进行通讯连接;为机械臂分配对应的机械臂插件;接收所述前端软件发送的控制命令,基于所述控制命令,控制所述机械臂插件对应的机械臂。通过上述方式,本发明实施例解决了目前缺乏多个前端软件控制多个下位机的有效控制方式,导致机械臂的控制系统灵活性差的技术问题,提高了开发效率。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的第一种应用环境的示意图;
图2是本发明实施例提供的一种机械臂的控制方法的概念图;
图3是本发明实施例提供的一种机械臂的控制方法的流程示意图;
图4是本发明实施例提供的第二种应用环境的示意图;
图5是本发明实施例提供的一种机械臂的控制装置的结构示意图;
图6是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明的实施例中,终端可以是智能手机、掌上电脑(personaldigitalassistant,pda)、平板电脑、个人计算机、智能手表等能接收并发送信号的电子设备,服务器可以是塔式服务器、机架式服务器、刀片式服务器、云服务器等能接收指令并发送指令的电子设备。
具体地,下面以终端为个人计算机,服务器为云服务器为例对本发明实施例作具体阐述。
请参阅图1,图1是本发明实施例提供的一种应用环境的示意图;
如图1所示,多个终端连接服务器,其中,所述服务器通过网络与多个控制器实现数据通信,所述控制器为机器人的控制器,每一所述控制器对应一机器人的机械臂,所述控制器用于控制所述机械臂的运动,在本发明实施例中,所述多个终端分别通信连接所述服务器,具体的,每一所述终端与所述服务器之间通过无线网络进行连接,例如:2g、3g、4g、5g网络,或者,每一所述终端与服务器之间通过蓝牙、局域网等网络进行通信连接,其中,每一所述终端安装有前端软件,所述前端软件用于与所述服务器进行交互,所述前端软件包括一用户界面,通过所述用户界面实现数据的接收与发送,例如:所述前端软件用于向所述服务器发送指令或信息,或者,所述前端软件用于接收所述服务器发送的指令或信息,并通过所述前端软件的用户界面将所述服务器发送的指令或信息呈现给用户。
可以理解的是,本发明实施例能够实现一个终端的前端软件对一个机械臂进行控制,也可以实现一个终端的前端软件对多个机械臂进行控制,具体的,所述终端的前端软件通过向所述服务器发送控制指令,所述服务器根据所述前端软件发送的控制指令,识别所述控制指令是否为控制多个机械臂的指令,若是,则根据所述控制指令的内容,向所述控制指令对应的多个机械臂的控制器发送相应的数据,进而由所述多个控制器分别控制其对应的机械臂,实现一个前端软件控制多个机械臂的操作。在本发明实施例中,所述终端可以为智能手机、掌上电脑(personaldigitalassistant,pda)、平板电脑、个人计算机、智能手表等能接收并发送信号的电子设备,优选地,所述终端为个人计算机。
本发明实施例的终端以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类电子设备包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
(2)移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类电子设备包括:pda、mid和umpc设备等,例如ipad。
(3)便携式娱乐设备:这类设备可以显示和播放视频内容,一般也具备移动上网特性。该类设备包括:视频播放器,掌上游戏机,以及智能玩具和便携式车载导航设备。
(4)其他具有视频播放功能和上网功能的电子设备。
请参阅图4,图4是本发明实施例提供的第二种应用环境的示意图;
如图4所示,上位机通过网络连接至少一个控制器,所述控制器为机器人的控制器,所述机器人还包括机械臂,所述控制器用于控制所述机械臂的运动。所述上位机包括至少一个前端软件和后台程序,所述前端软件用于与所述后台程序进行交互,所述前端软件包括一用户界面,通过所述用户界面实现数据的接收与发送,或者,所述前端软件用于接收所述后台程序发送的指令或信息,并通过所述前端软件的用户界面将所述后台程序发送的指令或信息呈现给用户。
可以理解的是,本发明实施例能够实现一个前端软件对一个机械臂进行控制,也可以实现一个前端软件对多个机械臂进行控制,具体的,所述前端软件通过向所述后台程序发送控制指令,所述后台程序根据所述前端软件发送的控制指令,识别所述控制指令是否为控制多个机械臂的指令,若是,则根据所述控制指令的内容,向所述控制指令对应的多个机械臂的控制器发送相应的数据,进而由所述多个控制器分别控制其对应的机械臂,实现一个前端软件控制多个机械臂的操作。
在上述两种应用环境中,服务器中运行的程序和后台程序也可以称为服务端,在该服务端运行机械臂的控制方法。
请再参阅图2,图2是本发明实施例提供的一种机械臂的控制方法的概念图;
如图2所示,多个前端软件通过socket与服务端进行通讯,其中,每一前端软件对应唯一的socket号,所述前端软件通过向服务端发送连接请求,所述前端软件的套接字发送其要连接的服务端的地址和端口号,当所述服务端接收到所述前端软件发送的连接请求,所述服务端将向所述前端软件发送服务端套接字的描述,当所述前端软件确认所述描述,则所述前端软件与所述服务端连接成功。例如:前端软件1向所述服务端发送连接请求,所述服务端接收到所述前端软件1发送的连接请求后,向所述前端软件1发送服务端的套接字的描述,当所述前端软件1确认所述服务端的套接字的描述后,则所述前端软件1与所述服务端连接成功,并且,所述服务端还可以继续接受其他前端软件发送的连接请求,例如:接受前端软件2发送的连接请求,依次类推,从而可以实现一个服务端与多个前端软件进行通信连接。
在本发明实施例中,所述前端软件与所述服务端连接成功后,所述服务端事先为每一机械臂分配对应的机械臂插件,同一类型的机械臂对应相同的插件。例如:机械臂m1对应机械臂插件1,机械臂m2对应机械臂插件2,机械臂m3对应机械臂插件3,每增加一个机械臂,则所述服务端自动为所述机械臂加载对应的机械臂插件,所述机械臂插件用于驱动所述机械臂,具体的,所述服务端包括一控制程序,所述控制程序通过统一的接口连接多个机械臂插件,所述机械臂插件通过向所述机械臂的控制器发送指令,进而驱动所述机械臂。
实施例一
请参阅图3,图3是本发明实施例提供的一种机械臂的控制方法的流程示意图;
如图3所示,所述方法包括:
步骤s10:获取至少一个前端软件发送的连接指令,与至少一个前端软件进行通讯连接;
具体的,所述终端上安装有前端软件,所述前端软件包括一用户界面,用户通过所述前端软件的用户界面向所述服务端发送连接指令,所述服务端接收到所述至少一个前端软件发送的连接指令后,与所述至少一个前端软件建立通讯连接。具体的,每一所述前端软件与所述服务端通过socket进行连接,其中,每一前端软件对应唯一的socket号,所述前端软件通过向服务端发送连接指令,所述前端软件的套接字发送其要连接的服务端的地址和端口号,当所述服务端接收到所述前端软件发送的连接指令,所述服务端将向所述前端软件发送服务端套接字的描述,当所述前端软件确认所述描述,则所述前端软件与所述服务端连接成功。例如:前端软件1向所述服务端发送连接指令,所述服务端接收到所述前端软件1发送的连接指令后,向所述前端软件1发送服务端的套接字的描述,当所述前端软件1确认所述服务端的套接字的描述后,则所述前端软件1与所述服务端连接成功,并且,所述服务端还可以继续接受其他前端软件发送的连接指令,例如:接受前端软件2发送的连接请求,依次类推,从而可以实现一个服务端与多个前端软件进行通信连接。
步骤s20:为机械臂分配对应的机械臂插件;
具体的,所述前端软件与服务端建立通信连接后,所述服务端为机械臂分配对应的机械臂插件,所述机械臂插件用于驱动与其对应的机械臂,从而能够实现前端软件向服务端发送控制指令,服务端通过控制所述机械臂插件进而控制所述机械臂。
在实际应用中,预先为每一类机械臂开发对应的机械臂插件,并且,为所有的机械臂插件配置统一的接口。对于不同类型的机械臂只需维护对应的机械臂插件,所述服务端通过该接口对所有的机械臂插件进行编辑,从而无需修改所述服务端,大大减少了模块间的耦合,从而提高了开发效率,提高了机械臂的控制效率。同时由于只需要对某一机械臂对应的机械臂插件进行维护,即可以维护该机械臂,实现降低了维护成本。
步骤s30:接收所述前端软件发送的控制命令,基于所述控制命令,控制所述机械臂插件对应的机械臂。
具体的,所述服务端接收所述前端软件发送的控制命令,并基于所述控制命令,对所述控制命令进行消息解析,从而判断控制哪一个或多个机械臂,通过控制所述机械臂对应的机械臂插件,进而控制对应的机械臂。
在本发明实施例中,在所述获取至少一个前端软件发送的连接指令,与至少一个前端软件进行通讯连接的步骤之前,所述方法还包括:搜索可用的机械臂插件,并对所述可用的机械臂插件进行加载。具体的,服务端搜索可用的机械臂插件,并对所述可用的机械臂插件进行加载,例如:通过动态库加载的方式,加载所述可用的机械臂插件,通过所述可用的机械臂插件控制对应的机械臂,并获取所述机械臂返回的执行结果,将所述执行结果发送到对应的前端软件,通过所述前端软件的用户界面呈现给用户。
具体的,在服务端开启时,所述服务端的控制程序搜索可用的机械臂插件,并进行动态库加载,然后为每一机械臂分配对应的机械臂插件,此时可以对该机械臂插件对应的机械臂发送控制命令,例如:所述前端软件通过网络发送连接请求给服务端并进行网络连接,当成功建立连接后,所述前端软件与所述服务端通过json-rpc跨语言远程调用协议进行通信,其传输的内容通过json的通讯格式,该远程调用可以使用http作为传输协议,也可以使用其他传输协议。所述服务端收到所述前端软件发送的消息后,解析json,得到相关信息并发送命令给机械臂,所述机械臂收到命令后开始执行动作,并将执行结果返回所述服务端,所述服务器接收到执行结果后,再通过网络连接返回给对应的前端软件,从而实现前端软件对机械臂的控制。在本发明实施例中,所述服务端可以为服务器。
在本发明实施例中,由于使用了插件式的服务端,在前端软件和机械臂(下位机)中起到了“承上启下”的作用,很好的解决了不同前端软件和不同机械臂(下位机)的适配问题,大大节约了开发周期。
在本发明实施例中,通过提供的一种机械臂的控制方法,应用于服务端,所述方法包括:获取至少一个前端软件发送的连接指令,与至少一个前端软件进行通讯连接;为机械臂分配对应的机械臂插件;接收所述前端软件发送的控制命令,基于所述控制命令,控制所述机械臂插件对应的机械臂。通过上述方式,本发明实施例解决了目前缺乏多个前端软件控制多个下位机的有效控制方式,导致机械臂的控制系统灵活性差的技术问题,提高了开发效率。
实施例二
请参阅图5,图5是本发明实施例提供的一种机械臂的控制装置的结构示意图;
如图5所示,该机械臂的控制装置100包括:
通讯连接单元10,用于获取至少一个前端软件发送的连接指令,与至少一个前端软件进行通讯连接;
机械臂插件单元20,用于为机械臂分配对应的机械臂插件;
机械臂控制单元30,用于接收所述前端软件发送的控制命令,基于所述控制命令,控制所述机械臂插件对应的机械臂。
在本发明实施例中,通讯连接单元10具体为socket接口。
在本发明实施例中,所述机械臂的控制装置100还包括:
加载单元40,用于搜索可用的机械臂插件,并对所述可用的机械臂插件进行加载。
由于装置实施例和方法实施例是基于同一构思,在内容不互相冲突的前提下,装置实施例的内容可以引用方法实施例的,在此不赘述。
在本发明实施例中,通过提供一种机械臂的控制装置,应用于服务器,所述装置包括:通讯连接单元,用于获取至少一个前端软件发送的连接指令,与至少一个前端软件进行通讯连接;机械臂插件单元,用于为机械臂分配对应的机械臂插件;机械臂控制单元,用于接收所述前端软件发送的控制命令,基于所述控制命令,控制所述机械臂插件对应的机械臂。加载单元,用于搜索可用的机械臂插件,并对所述可用的机械臂插件进行加载。通过上述方式,本发明实施例解决了目前缺乏多个前端软件控制多个下位机的有效控制方式,导致机械臂的控制系统灵活性差的技术问题,提高了开发效率。
请参阅图6,图6是本发明实施例提供的一种服务器的结构示意图;
其中,该服务器可以是塔式服务器、机架式服务器、刀片式服务器、云服务器等能接收指令并发送指令的电子设备。
如图6所示,该服务器60包括一个或多个处理器601以及存储器602。其中,图6中以一个处理器601为例。
处理器601和存储器602可以通过总线或者其他方式连接,图6中以通过总线连接为例。
存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的一种机械臂的控制方法对应的单元(例如,图5所述的各个单元)。处理器601通过运行存储在存储器602中的非易失性软件程序、指令以及模块,从而执行机械臂的控制方法的各种功能应用以及数据处理,即实现上述方法实施例机械臂的控制方法以及上述装置实施例的各个模块和单元的功能。
存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至处理器601。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述模块存储在所述存储器602中,当被所述一个或者多个处理器601执行时,执行上述任意方法实施例中的机械臂的控制方法,例如,执行以上描述的图3所示的各个步骤;也可实现图5所述的各个模块或单元的功能。
其中,本发明实施例的服务器60以多种形式存在,包括但不限于:
(1)塔式服务器
一般的塔式服务器机箱和我们常用的pc机箱差不多,而大型的塔式机箱就要粗大很多,总的来说外形尺寸没有固定标准。
(2)机架式服务器
机架式服务器是由于满足企业的密集部署,形成的以19英寸机架作为标准宽度的服务器类型,高度则从1u到数u。将服务器放置到机架上,并不仅仅有利于日常的维护及管理,也可能避免意想不到的故障。首先,放置服务器不占用过多空间。机架服务器整齐地排放在机架中,不会浪费空间。其次,连接线等也能够整齐地收放到机架里。电源线和lan线等全都能在机柜中布好线,可以减少堆积在地面上的连接线,从而防止脚踢掉电线等事故的发生。规定的尺寸是服务器的宽(48.26cm=19英寸)与高(4.445cm的倍数)。由于宽为19英寸,所以有时也将满足这一规定的机架称为“19英寸机架”。
(3)刀片式服务器
刀片服务器是一种hahd(highavailabilityhighdensity,高可用高密度)的低成本服务器平台,是专门为特殊应用行业和高密度计算机环境设计的,其中每一块“刀片”实际上就是一块系统母板,类似于一个个独立的服务器。在这种模式下,每一个母板运行自己的系统,服务于指定的不同用户群,相互之间没有关联。不过可以使用系统软件将这些母板集合成一个服务器集群。在集群模式下,所有的母板可以连接起来提供高速的网络环境,可以共享资源,为相同的用户群服务。
(4)云服务器
云服务器(elasticcomputeservice,ecs)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效,用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。云服务器的分布式存储用于将大量服务器整合为一台超级计算机,提供大量的数据存储和处理服务。分布式文件系统、分布式数据库允许访问共同存储资源,实现应用数据文件的io共享。虚拟机可以突破单个物理机的限制,动态的资源调整与分配消除服务器及存储设备的单点故障,实现高可用性。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图6中的一个处理器601,可使得上述一个或多个处理器可执行上述任意方法实施例中的机械臂的控制方法,例如,执行上述任意方法实施例中的机械臂的控制方法,例如,执行以上描述的图3所示的各个步骤;也可实现图5所述的各个单元的功能。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除