本发明涉及机器人技术领域,特别是涉及一种机器人编程方法、装置及控制器。
背景技术:
机器人,又称自动控制机器,包括一切模拟人类行为或思想与模拟其他生物的机械。在现代工业中,机器人指能自动执行任务的人造机器装置,用以取代或协助人类工作。示教器又叫示教编程器,是机器人控制系统的核心部件,是一个用来注册和存储机械运动或处理记忆的设备,该设备是由电子系统或计算机系统执行的。
目前,一般的机器人编程通过在示教器编辑代码,再下载到机器人上运行,机器人的编程和调试严重依赖示教器,导致只能一人编程,一人调试,效率低,不利于快速开发。
发明人在实现本发明实施例的过程中,发现相关技术至少存在以下问题:现有的机器人编程过度依赖示教器,导致编程效率低,不利于快速开发。
技术实现要素:
本发明旨在提供一种机器人编程方法、装置及控制器,其解决了现有的机器人编程过度依赖示教器,导致编程效率低,不利于快速开发的技术问题,实现多人编程,提高开发效率。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种机器人编程方法,应用于机器人,所述机器人连接示教器以及至少一个终端,所述方法包括:
创建连接所述终端与机器人的通信管道,以使所述至少一个终端通过所述通信管道连接所述机器人;
接收所述至少一个终端发送的模块脚本代码,并整合所述模块脚本代码,生成脚本文件;
控制所述机器人执行所述脚本文件。
在一些实施例中,所述整合所述模块脚本代码,生成脚本文件,包括:
判断是否存在重复的模块脚本代码,若是,则删除所述重复的模块脚本代码。
在一些实施例中,所述至少一个终端互相通信连接,所述方法还包括:
获取所述至少一个终端的网络地址,并从所述至少一个终端中确定主终端以及从终端;
判断所述模块脚本代码是否成功生成脚本文件,若生成脚本文件失败,向所述主终端发送生成失败命令。
在一些实施例中,所述方法还包括:
将所述脚本文件发送到所述示教器,以使所述示教器基于所述脚本文件对所述机器人进行调试。
在一些实施例中,所述方法还包括:
接收所述示教器发送的调试命令;
根据所述示教器发送的调试命令,确定发生错误的模块脚本代码;
向所述主终端发送代码修改命令,以使所述主终端将所述代码修改命令发送到所述模块脚本代码对应的从终端。
第二方面,本发明实施例提供一种机器人编程装置,应用于机器人,所述机器人连接示教器以及至少一个终端,所述装置包括:
通信管道单元,用于创建连接所述终端与机器人的通信管道,以使所述至少一个终端通过所述通信管道连接所述机器人;
脚本文件单元,用于接收所述至少一个终端发送的模块脚本代码,并整合所述模块脚本代码,生成脚本文件;
执行单元,用于控制所述机器人执行所述脚本文件。
在一些实施例中,所述脚本文件单元具体用于:
判断是否存在重复的模块脚本代码,若是,则删除所述重复的模块脚本代码。
在一些实施例中,所述装置还包括:
示教器单元,用于将所述脚本文件发送到所述示教器,以使所述示教器基于所述脚本文件对所述机器人进行调试。
第三方面,本发明实施例提供一种控制器,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的机器人编程方法。
第四方面,本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使控制器能够执行如上所述的机器人编程方法。
本发明实施例的有益效果是:区别于现有技术的情况下,本发明实施例提供的一种机器人编程方法,应用于机器人,所述机器人连接示教器以及至少一个终端,所述方法包括:创建连接所述终端与机器人的通信管道,以使所述至少一个终端通过所述通信管道连接所述机器人;接收所述至少一个终端发送的模块脚本代码,并整合所述模块脚本代码,生成脚本文件;控制所述机器人执行所述脚本文件。通过上述方式,本发明实施例能够解决现有的机器人编程过度依赖示教器,导致编程效率低,不利于快速开发的技术问题,实现多人编程,提高开发效率。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种应用环境的示意图;
图2是本发明实施例提供的一种机器人编程方法的流程示意图;
图3是本发明实施例提供的一种机器人编程装置的结构示意图;
图4是本发明实施例提供的一种控制器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
请参阅图1,图1是本发明实施例提供的一种应用环境的示意图;
如图1所示,机器人连接示教器,并且所述机器人通过通信管道连接至少一个智能终端,所述智能终端通过所述通信管道向所述机器人发送脚本文件,以使所述机器人执行所述脚本文件。具体的,所述智能终端通过所述通信管道连接所述机器人的控制器,并通过所述通信管道向所述机器人的控制器发送脚本文件,以使所述机器人的控制器执行所述脚本文件,控制所述机器人的运动或操作。
在本发明的实施例中,智能终端可以是计算机、智能手机、掌上电脑(personaldigitalassistant,pda)、平板电脑、智能手表等能进行编程的电子设备。
具体地,下面以计算机为例对本发明实施例作具体阐述。
实施例一
请参阅图2,图2是本发明实施例提供的一种机器人编程方法的流程示意图;所述方法应用于机器人,所述机器人连接示教器以及至少一个终端,如图2所示,所述方法包括:
步骤s10:创建连接终端与机器人的通信管道,以使至少一个终端通过通信管道连接机器人;
具体的,所述通信管道用于所述机器人与所述终端之间的数据传输,每一通信管道用于唯一的终端与机器人之间的数据传输,具体的,每一通信管道用于唯一的终端与机器人的控制器之间的数据传输,所述方法还包括:对所述通信管道进行标识,所述通信管道的标识与所述终端相关联,例如:所述通信管道的标识与所述终端的id相关联,或者,所述通信管道的标识与所述终端的ip地址相关联,以及等等。其中,所述机器人的控制器接收所述终端的连接请求,根据所述连接请求,创建连接所述终端与机器人的通信管道,若所述终端为多个,所述机器人的控制器接收多个终端的连接请求,根据所述多个连接请求,创建连接所述多个终端与机器人的多个通信管道,每一所述通信管道对应唯一的终端,所述多个通信管道分别用于多个所述终端与机器人之间的数据通信。
步骤s20:接收至少一个终端发送的模块脚本代码,并整合模块脚本代码,生成脚本文件;
具体的,每一终端对应一模块,所述模块为脚本文件的一部分,所述脚本文件被分成若干个模块,每一模块对应一模块脚本代码,每一终端用于编辑一个或多个模块脚本代码,并且每一终端对应唯一的通信管道,每一终端分别通过其对应的通信管道向所述机器人的控制器发送所述模块脚本代码。可以理解的是,若只有一个终端连接所述机器人的控制器,则所述终端直接通过编辑全部的模块脚本代码,并直接在终端上生成脚本文件,并将所述脚本文件发送到所述机器人的控制器。
若所述机器人的控制器连接两个或两个以上的终端,则每一终端通过其对应的通信管道将其编写的模块脚本代码发送到所述机器人的控制器,所述控制器通过对所述多个终端发送的模块脚本代码进行整合,生成脚本文件。具体的,所述整合所述模块脚本代码,生成脚本文件,包括:判断是否存在重复的模块脚本代码,若是,则删除所述重复的模块脚本代码。其中,所述整合所述模块脚本代码,生成脚本文件,还包括:判断所述模块脚本代码能否成功整合生成脚本文件,若否,确定发生整合错误的模块脚本代码,根据所述发生整合错误的模块脚本代码,确定生成所述整合错误的模块脚本代码的终端,向所述终端发送代码错误指令,以使所述终端对所述整合错误的模块脚本代码进行调试,并将调试成功的模块脚本代码发送到所述机器人的控制器。
在本发明实施例中,所述方法还包括:机器人上电启动后,控制所述机器人启动支持共享服务,每一所述终端均通过共享协议连接所述机器人的控制器,具体的,连接所述机器人的网络地址,例如:ip地址。每一终端与所述机器人的通信管道形成共享路径,所述共享路径即为代码脚本文件路径,所述多个终端通过所述共享路径对所述机器人进行远程编程。
在本发明实施例中,所述多个终端的脚本编辑软件可以相同,也可以不同,用户可以选择在所述终端上安装不同的脚本编辑软件,从而编辑模块脚本代码,或者,编辑脚本文件,可以理解的是,所述多个终端的脚本语言可以相同,也可以不同,由于脚本编辑软件以及脚本语言的可选择性,可以实现编程效率更高,极大地提高了开发效率,并且,在不同终端上编程完成的模块脚本代码可以通过所述机器人的控制器进行整合,形成完整的脚本文件,有利于减少多个用户的调试,提高编程效率。在本发明实施例中,所述脚本语言为lua脚本语言,由于lua脚本语言为轻量级脚本语言,体积小,启动速度快,可拓展性强,并且在lua脚本语言编辑完成之后,直接进行打包,可以直接通过示教器启动运行,方便调试。
在本发明实施例中,所述至少一个终端互相通信连接,具体的,每一所述终端与所述机器人之间建立的通信管道之间互连,以实现每一所述终端之间实现通信连接,所述方法还包括:获取所述至少一个终端的网络地址,并从所述至少一个终端中确定主终端以及从终端;判断所述模块脚本代码是否成功生成脚本文件,若生成脚本文件失败,向所述主终端发送生成失败命令。具体的,所述从所述至少一个终端中确定主终端以及从终端,包括:所述多个终端之间建立通信连接,根据用户确定所述主终端,主终端确定之后,其余终端均为从终端,所述主终端在其发送的模块脚本代码上增加标识代码,所述标识代码用于表示该终端为主终端,所述机器人的控制器根据所述终端发送的模块脚本代码,确定所述模块脚本代码中是否包含标识代码,例如:标识位,若是,则所述机器人的控制器将所述终端确定为主终端,若所述机器人的控制器在接收到全部终端发送的模块脚本代码之后,在全部的模块脚本代码均没有识别到标识代码,则所述机器人自动将首次接收到的模块脚本代码对应的终端确定为主终端,将其余的终端确定为从终端。
当所述机器人的控制器确定多个终端中的主终端以及从终端之后,接收所述主终端和从终端发送的模块脚本代码,并判断所述模块脚本代码是否成功生成脚本文件,若生成脚本文件失败,所述机器人的控制器向所述主终端发送生成失败命令,所述生成失败命令包含所述发生错误的模块脚本代码,所述主终端根据所述发生错误的模块脚本代码,确定所述发生错误的模块脚本代码对应的从终端,并将所述生成失败命令发送到所述从终端。
在本发明实施例中,所述方法还包括:将所述脚本文件发送到所述示教器,以使所述示教器基于所述脚本文件对所述机器人进行调试。具体的,用户可以通过所述示教器对所述脚本文件进行调试,并通过所述示教器发送调试命令,所述机器人的控制器将接收所述示教器发送的调试命令,根据所述示教器发送的调试命令,确定发生错误的模块脚本代码,并向所述主终端发送代码修改命令,以使所述主终端将所述代码修改命令发送到所述模块脚本代码对应的从终端,以使所述从终端对所述模块脚本代码进行修改。可以理解的是,所述主终端保存有其余从终端的通信地址,或者,所述多个终端互相交换通信地址,所述通信地址为网络地址,例如:ip地址,所述主终端和从终端通过通信管道之间互相连接的方式,实现共享模块脚本代码,从而能够共同编写脚本代码。
步骤s30:控制机器人执行脚本文件。
具体的,所述控制器在接收到所述一个终端发送的脚本文件,或者,所述控制器在接收到多个终端发送的模块脚本代码后,对所述模块脚本代码进行整合,生成脚本文件,所述控制器控制所述机器人执行所述脚本文件,进而执行所述脚本文件对应的操作。
在本发明实施例中,通过提供一种机器人编程方法,应用于机器人,所述机器人连接示教器以及至少一个终端,所述方法包括:创建连接所述终端与机器人的通信管道,以使所述至少一个终端通过所述通信管道连接所述机器人;接收所述至少一个终端发送的模块脚本代码,并整合所述模块脚本代码,生成脚本文件;控制所述机器人执行所述脚本文件。通过上述方式,本发明实施例能够解决现有的机器人编程过度依赖示教器,导致编程效率低,不利于快速开发的技术问题,实现多人编程,提高开发效率。
实施例二
请参阅图3,图3为本发明实施例提供的一种机器人编程装置的结构示意图,该机器人编程装置可以应用于机器人,所述机器人连接示教器以及至少一个终端,如图3所示,该机器人编程装置100包括:
通信管道单元10,用于创建连接所述终端与机器人的通信管道,以使所述至少一个终端通过所述通信管道连接所述机器人;
脚本文件单元20,用于接收所述至少一个终端发送的模块脚本代码,并整合所述模块脚本代码,生成脚本文件;
执行单元30,用于控制所述机器人执行所述脚本文件。
在本发明实施例中,所述脚本文件单元20具体用于:判断是否存在重复的模块脚本代码,若是,则删除所述重复的模块脚本代码。
在本发明实施例中,所述机器人编程装置100还包括:
示教器单元40,用于将所述脚本文件发送到所述示教器,以使所述示教器基于所述脚本文件对所述机器人进行调试。
由于装置实施例和方法实施例是基于同一构思,在内容不互相冲突的前提下,装置实施例的内容可以引用方法实施例的,在此不赘述。
请参阅图4,图4是本发明实施例提供一种控制器的结构示意图;如图4所示,该控制器400包括一个或多个处理器401以及存储器402。其中,图4中以一个处理器401为例。
处理器401和存储器402可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的一种机器人编程方法对应的单元(例如,图3所述的各个单元)。处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行机器人编程方法的各种功能应用以及数据处理,即实现上述方法实施例机器人编程方法以及上述装置实施例的各个模块和单元的功能。
存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至处理器401。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述模块存储在所述存储器402中,当被所述一个或者多个处理器401执行时,执行上述任意方法实施例中的机器人编程方法,例如,执行以上描述的图2所示的各个步骤;也可实现图3所述的各个模块或单元的功能。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图4中的一个处理器401,可使得上述一个或多个处理器可执行上述任意方法实施例中的机器人编程方法,例如,执行上述任意方法实施例中的机器人编程方法,例如,执行以上描述的图2所示的各个步骤;也可实现图3所述的各个单元的功能。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用直至得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
在本发明实施例中,通过提供一种机器人编程装置,应用于机器人,所述机器人连接示教器以及至少一个终端,所述装置包括:通信管道单元,用于创建连接所述终端与机器人的通信管道,以使所述至少一个终端通过所述通信管道连接所述机器人;脚本文件单元,用于接收所述至少一个终端发送的模块脚本代码,并整合所述模块脚本代码,生成脚本文件;执行单元,用于控制所述机器人执行所述脚本文件。示教器单元,用于将所述脚本文件发送到所述示教器,以使所述示教器基于所述脚本文件对所述机器人进行调试。通过上述方式,本发明实施例能够解决现有的机器人编程过度依赖示教器,导致编程效率低,不利于快速开发的技术问题,实现多人编程,提高开发效率。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。