发明内容
考虑到上述问题而提出了本发明。本发明提供了一种构建机器人的方法、一种机器人控制设备、一种构建机器人的系统及一种存储介质。
根据本发明一方面,提供了一种构建机器人的方法,包括:
接收目标驱控器的类型信息和标识符;
根据所接收的目标驱控器的类型信息和标识符识别所述目标驱控器;
在确认连接所述目标驱控器中的至少一个后,读取所连接的驱控器的配置信息;
确定所述所连接的驱控器驱动的机器人;以及
根据所述所连接的驱控器的配置信息与所述机器人的信息构建所述机器人。
示例性地,所述方法还包括:
发送查询所述目标驱控器的指令;
所述接收目标驱控器的类型信息和标识符包括:
自响应于所述指令的目标驱控器接收所述目标驱控器的类型信息和标识符。
示例性地,所述方法还包括:
接收通信模块选择信息;
所述发送查询所述目标驱控器的指令包括:
根据所述通信模块选择信息基于所选择的通信模块发送所述指令;
所述接收目标驱控器的类型信息和标识符包括:
根据所述通信模块选择信息基于所选择的通信模块接收所述目标驱控器的类型信息和标识符。
示例性地,所述方法还包括:
构建驱控器模型库;
所述根据所接收的目标驱控器的类型信息和标识符识别所述目标驱控器包括:
根据所述所接收的目标驱控器的类型信息查询所述驱控器模型库,以确定所述目标驱控器的类型。
示例性地,所述方法还包括:
构建机器人模型库;
所述确定所述所连接的驱控器驱动的机器人包括:
根据所接收的目标驱控器的类型信息查询所述机器人模型库,以确定所述机器人。
示例性地,所述确定所述所连接的驱控器驱动的机器人包括:
通过人机交互接口接收关于所述机器人的信息,以确定所述机器人。
示例性地,所述所连接的驱控器的配置信息包括所述所连接的驱控器的通道的标识符;所述机器人的信息包括所述机器人的关节名称;
所述根据所述所连接的驱控器的配置信息与所述机器人的信息构建所述机器人包括:
通过人机交互接口提供所述机器人的关节名称;
利用所述机器人的关节名称和所述所连接的驱控器的通道的标识符确定所述所连接的驱控器的通道与所述机器人的关节的对应关系;
将所述对应关系发送给所述驱控器。
根据本发明一方面,还提供了一种机器人控制设备,包括通信模块,用于与多个目标驱控器进行通信,所述机器人控制设备用于利用所述通信模块执行上述的构建机器人的方法。
示例性地,所述通信模块包括多个串行接口。
示例性地,所述串行接口包括控制器局域网络(Controller Area Network,简称CAN)接口。
根据本发明另一方面,还提供了一种构建机器人的系统,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行上述的构建机器人的方法。
根据本发明又一方面,还提供了一种存储介质,在所述存储介质上存储了程序指令,所述程序指令在运行时用于执行上述的构建机器人的方法。
根据本发明实施例的上述技术方案是基于机器人的驱控器的,由此使得能够利用一个机器人控制设备控制多种机器人。不仅避免了机器人控制设备的资源浪费,而且降低了机器人控制系统的成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
根据本发明实施例,提供了一种构建机器人方法。机器人是自动执行工作的机器装置,例如机械臂等。机器人的部件中能够旋转或移动的部位可以统称为关节。机器人可以包括多个关节,例如基座、大臂、小臂、腕等。又例如,机器人的末端执行器可以称为一个关节。机器人的每个关节的运动由电机来驱动,每个电机由驱控器来控制。对于驱控器所驱动的每个电机,在驱控器中存在与之一一对应的“通道(也称为轴)”。可以理解,机器人的关节与机器人的驱控器的轴也一一对应。
构建机器人的过程就是建立机器人的驱控器的轴与机器人的关节的对应关系的过程。由此,可以实现利用驱控器控制机器人的各个关节。通过构建机器人,可让用户简单、方便地控制机器人,使用户无须关心机器人复杂的控制原理、精确的参数控制的情况,简化了操作并提高了工作效率。
图1示出了根据本发明一个实施例的构建机器人方法100的示意性流程图。该构建机器人方法100可以由机器人控制设备执行,以由其控制机器人。如图1所示,构建机器人方法100包括如下步骤:
步骤S110,接收目标驱控器的类型信息和标识符。
驱控器有很多类型,例如单轴驱控器、四轴驱控器和十轴驱控器等。驱控器的类型不同,其驱动电机的数量可能不同。例如,驱控器A为单轴驱控器,即驱控器A可以驱动一个电机(即仅包括一轴);驱控器B是四轴驱控器,即驱控器B包括四个用于驱动电机的接口,可以驱动四个电机(即包括四个轴)。另外,一个机器人可以由一种或多种类型驱控器来驱动,也包括其中每种类型的驱控器可以有一个或多个。
可以理解,构建机器人时,可以首先接收用于驱控机器人的目标驱控器的类型信息和其标识符。该类型信息可以是驱控器的型号等。通过类型信息可以确定驱控器的类型,进而确定目标驱控器的轴数等驱控信息。标识符是用于区分驱控器的唯一标识,例如设备编码。通过标识符可以确定目标驱控器是哪一个特定驱控器。
接收目标驱控器的类型信息和标识符有多种方式。具体例如,可以通过人机交互接口来获取目标驱控器的类型信息和标识符。
步骤S120,根据所接收的目标驱控器的类型信息和标识符识别所述目标驱控器。
如前所述,目标驱控器的类型信息包括目标驱控器的轴数等驱控信息,标识符可以唯一标识目标驱控器。由此,根据目标驱控器的类型信息和标识符能够识别目标驱控器。
确认识别了目标驱控器才能够继续构建机器人,否则无法识别目标驱控器,也必然无法正确的构建机器人。
步骤S130,在确认连接所述目标驱控器中的至少一个后,读取所连接的驱控器的配置信息。
通过步骤S120识别目标驱控器后,然后连接目标驱控器中的至少一个,即建立机器人控制设备与目标驱控器之间的通信连接。在一个示例中,机器人控制设备可以在识别目标驱控器后,通过人机交互接口提供可操作控件,用于由用户操作以连接至少一个目标驱控器。响应于用户对可操作控件的操作,建立机器人控制设备与至少一个目标驱控器的连接。
确认连接后,读取所连接的驱控器的配置信息。所述配置信息用于与待构建的机器人的关节确定对应关系。可选地,所述配置信息包括驱控器的每个轴的标识符。
如前所述,一个机器人可以由多个驱控器驱动,所述驱控器类型可以不同。在这种情况下,机器人控制设备可以连接多个目标驱控器,并读取所连接的所有驱控器的配置信息,以用于与待构建的机器人的关节建立对应关系。
步骤S140,确定所连接的驱控器驱动的机器人。不同的驱控器能够驱控不同的机器人。在识别了驱控器之后,确定该驱控器驱动的机器人。
步骤S150,根据所连接的驱控器的配置信息与机器人的信息构建所述机器人。
基于步骤S130读取的驱控器的配置信息和步骤S140确定的机器人的信息,将机器人的关节与对应的驱控器的“通道”(也称为轴)进行一一匹配,即建立关节与驱控器的通道之间的对应关系,这样就完成了构建机器人的工作。最后,可以将上述建立的对应关系发送给机器人的驱控器,以顺利控制机器人。
本领域普通技术人员可以理解,虽然上述构建机器人方法100中按照特定顺序描述了其中的各个步骤,但是该顺序仅为示意,而非对本发明的限制。例如步骤S130和步骤S140可以颠倒顺序执行,也可以同时执行。
上述构建机器人方法是基于底层驱控器的。同时,基于上述方法构建的一个或多个机器人可以共用一个机器人控制设备,即通过所述该机器人控制设备能够控制多种机器人。不仅避免了机器人控制设备的资源浪费,而且降低了机器人控制系统的成本。
示例性地,在上述步骤S110接收目标驱控器的类型信息和标识符之前,该构建机器人的方法100还包括发送查询目标驱控器的指令。上述步骤S110包括:自响应于所述指令的目标驱控器接收所述目标驱控器的类型信息和标识符。
机器人控制设备可以发送查询目标驱控器的指令,例如通过广播的方式。一个或多个目标驱控器可以接收该指令。该目标驱控器响应于该指令,发送自己的类型信息和标识符。机器人控制设备可以接收目标驱控器所发送的类型信息和标识符。通过发送查询目标驱控器的指令并接收目标驱控器的响应消息的方式,能够自动获取目标驱控器的类型信息和标识符,无需用户手动操作,提高了用户体验。
示例性地,上述方法100还包括接收通信模块选择信息的步骤。该通信模块用于机器人控制设备与驱控器通信。上述发送查询目标驱控器的指令的步骤可以包括:根据所述通信模块选择信息基于所选择的通信模块发送所述指令;上述方法100中的步骤S110包括:根据所述通信模块选择信息基于所选择的通信模块接收所述目标驱控器的类型信息和标识符。
在一个示例中,利用人机交互接口,例如用户界面,来接收通信模块选择信息。图2示出了根据本发明一个实施例的用户界面的局部示意图。如图2所示,所述用户界面可以用于接收通信模块选择信息。该示例中,提供了两种通信模块选择,分别是CAN模块和串行接口。响应于用户在该用户界面的选择操作,例如点击其中一个通信模块,可以确定所选择的通信模块。在图2所示用户界面中,所选择的通信模块是CAN模块。在选择通信模块后,通过所述通信模块发送查询目标驱控器的指令,以搜索驱控器。驱控器对该指令做出响应,发送其自己的类型信息和标识符。机器人控制设备通过所选择的通信模块接收该目标驱控器的类型信息和标识符。在图2的用户界面中,搜索到了一个驱控器。该驱控器的型号为MRH-E-USB,该驱控器的标识符(示出为索引号)为0。
图2所示的用户界面的下侧存在一个“连接”按钮。响应于用户对该按钮的点击操作,可以建立机器人控制设备与目标驱控器的连接。
通过提供多种通信模块以建立与驱控器的连接,增强了与不同类型的机器人的兼容性,进一步提供了控制不同类型机器人的可能。
示例性地,上述方法100还包括:构建驱控器模型库。上述方法100中的步骤S120包括:根据所接收的目标驱控器类型信息查询所述驱控器模型库,以确定所述目标驱控器的类型。
可以理解,驱控器模型库包括多种驱控器的信息,例如其类型信息及其他详细信息。具体例如,驱控器模型库可以包括各个驱控器的型号、通道数量和其他信息。基于构建的驱控器模型库,可以根据接收的目标驱控器类型信息在驱控器模型库中查询该目标驱控器的信息,并确认所述目标驱控器的类型。例如,可以根据目标驱控器的型号M,查询驱控器模型库,确定该目标驱控器是四轴驱控器。
可选地,所述方法还包括更新该驱控器模型库。通过更新,驱控器模型库中的驱控器类型可以逐步增加,每个驱控器的相关信息也可以更新。
通过驱控器模型库,可以自动识别多种类型驱控器,不仅增强了机器人控制设备的兼容性,而且提高了构建机器人效率。此外,还减少了用户参与操作,提高了用户体验。
示例性地,上述方法100还包括:构建机器人模型库。上述步骤S140包括:根据所接收的目标驱控器的类型信息查询所述机器人模型库,以确定所述机器人。
机器人模型库包括多种机器人的详细信息,具体例如:机器人的型号、所包括的关节数量及其名称、能够驱动该机器人的驱控器的类型信息和其他信息。基于构建的机器人模型库,可以根据目标驱控器的类型信息在所述机器人模型库中查询到该目标驱控器能够驱动的机器人的信息,以确定待构建的机器人。例如,可以根据目标驱控器的型号N,查询机器人模型库,确定该目标驱控器能够驱动的机器人包括机器人R和机器人S。
可选地,所述方法还包括更新该机器人模型库。通过更新,机器人模型库中的机器人类型可以逐步增加,每个机器人的相关信息也可以更新。
通过机器人模型库,可以通过一个机器人控制设备自动构建并控制多种类型机器人,提高了构建机器人效率。此外,还减少了用户参与操作,提高了用户体验。
替代地,上述步骤S140确定所连接的驱控器驱动的机器人包括:通过人机交互接口接收关于所述机器人的信息,以确定所述机器人。
在一个示例中,有些用户对所连接的驱控器以及其驱动的机器人非常了解。可以通过人机交互接口自用户接收关于机器人的信息,以确定所述机器人。可以理解,通过人机交互接口接收关于机器人的信息可以包括机器人的型号、机器人的所有关节名称等信息。
在另一个示例中,一种驱控器可能能够驱动多种机器人。则根据目标驱控器的类型信息查询机器人模型库会查询到多种机器人。在此情况下,可以通过人机交互接口从所查询到的多种机器人中选择一个机器人作为待构建的机器人。
通过人机交互接口接收关于所述机器人的信息,兼容性强,准确度高,可以适用多种类型机器人的构建的情况。
示例性地,所连接的驱控器的配置信息包括:所连接的驱控器的通道的标识符。该标识符唯一地标识了驱控器的各个通道。如前所述,驱动机器人的驱控器有单通道的,还有多通道的。通过读取包括驱控器的通道的标识符的配置信息可以区分驱控器的不同通道。
上述方法100中的步骤S150根据所连接的驱控器的配置信息与机器人的信息构建机器人包括以下子步骤:
步骤1:通过人机交互接口提供所述机器人的关节名称。人机交互接口例如用户界面。上述方法100中,在步骤S130和S140之后,即机器人控制设备与目标驱控器建立了连接,并确定了驱控器驱动的机器人之后,可以提供人机交互接口给用户,例如显示该机器人的控制界面。通过人机交互接口提供机器人的关节名称给用户,使得用户明了机器人的各个关节。
步骤2:利用机器人的关节名称和所连接的驱控器的通道的标识符确定所连接的驱控器的通道与机器人的关节的对应关系。
图3示出了根据本发明另一个实施例的用户界面的局部示意图。如图3所示的用户界面是型号为MRX-T4的机器人的用户控制界面,其用于确定所连接的驱控器的通道与机器人的关节的对应关系。在该用户界面的左侧,提供了机器人的各个关节名称,例如:基座、大臂、小臂等。用户可以操作用户界面的右侧的可操作控件,以选择驱控器的期望通道。响应于用户的操作,确定驱控器的通道与机器人的关节的对应关系。具体例如,在该用户界面中,确定驱控器轴5与机器人的机械爪这个关节对应。这样,驱控器的驱动轴5带动电机运动时,相应的机械爪这个关节就会被带动并进行相应的运动。
可以理解,不同类型的机器人、机器人的型号以及机器人的关节名称和关节数量各有不同,但将驱控器的通道与机器人的关节建立对应关系的方法是一样的。
同样可以理解,如果机器人由多个驱控器驱动,在建立机器人的关节与驱控器的通道对应关系时,可以按照上述过程建立每个驱控器的每个通道与机器人关节的对应关系。
步骤3:将步骤2建立的对应关系发送给驱控器。
通过步骤2建立了驱控器的通道与机器人的关节的对应关系,可以将所述对应关系发送给相应的驱控器上,这样该驱控器就可以根据机器人控制设备的操作指令来通过相应通道驱动机器人对应的关节进行运动。
通过人机交互接口可以让用户可视化地构建机器人,构建过程更直观,方便了用户操作,提升了用户体验水平。
根据本发明的一方面,还提供了一种机器人控制设备。机器人控制设备包括通信模块,用于与多个目标驱控器进行通信,所述机器人控制设备用于利用所述通信模块执行上述的构建机器人的方法。
示例性地,机器人控制设备的通信模块包括多个串行接口。所述串行接口简称串口,也称串行通信接口。
示例性地,所述串行接口包括CAN接口。CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,是ISO国际标准化的串行通信协议。
根据本发明另一方面,还提供了一种的构建机器人的系统,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行上述的构建机器人的方法。
此外,根据本发明又一方面,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时使得所述计算机或处理器执行本发明实施例的构建机器人的方法的相应步骤。所述存储介质例如可以包括平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。
本领域普通技术人员通过阅读上文关于构建机器人的方法的相关描述,可以理解上述机器人控制设备、构建机器人的系统和存储介质的具体实现方案,为了简洁,在此不再赘述。
根据本发明实施例的上述技术方案是基于机器人的驱控器的,由此实现了一个机器人控制设备能够控制多种机器人。不仅避免了机器人控制设备的资源浪费,而且降低了机器人控制系统的成本。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的用于构建机器人的系统中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。