用于控制机器人运动的运动控制***、方法及机器人
技术领域
本发明涉及机器人的运动控制领域,更具体地涉及一种用于控制机器人运动的运动控制***、方法以及一种机器人。
背景技术
机器人的具体控制过程通常为:用户通过机器人控制设备(或称人机交互单元)输入运动参数给运动控制部件。运动控制部件对运动参数进行解算后得到实际的电机控制数据,从而基于电机控制数据控制机器人运动。
目前在机器人的运动控制领域,机器人每一次动作需要用户每次计算并输入对应的运动参数,然后进行解算,基于解算得到的电机控制数据控制电机运动。换言之,目前对机器人的控制是“即用即算”型。这种操控方式不仅耗时对工作效率有影响,而且对操作人员的专业知识要求较高,操作人员需要计算对应动作的运动参数,使得用户体验差。
为解决上述技术问题,有必要提出一种新的用于控制机器人运动的运动控制技术。
发明内容
考虑到上述问题而提出了本发明。本发明的实施例提供了一种用于控制机器人运动的运动控制***、方法以及一种机器人。
根据本发明一个方面,提供了一种用于控制机器人运动的运动控制***。该运动控制***包括:运动控制部件和第一存储器,
所述第一存储器包括多个存储区域,所述多个存储区域中的至少两个存储区域用于预存不同组的运动数据;
所述运动控制部件用于接收第一控制命令,基于所述多个存储区域中的、与所述第一控制命令对应的目标存储区域预存的运动数据控制所述机器人运动。
示例性地,所述运动控制部件是多个,所述运动控制***还包括主控部件,所述主控部件用于将所述运动控制部件连接到机器人控制设备,其中所述机器人控制设备用于控制所述运动控制***;
所述主控部件包括第二存储器,所述第二存储器用于存储协同控制信息,所述协同控制信息包括第二控制命令与所述第一存储器的存储区域的对应关系信息;
所述主控部件用于接收第二控制命令,根据所述第二控制命令查询所述协同控制信息以确定与所述第二控制命令对应的运动控制部件和目标存储区域,向所确定的运动控制部件发送所述第一控制命令,以由所述所确定的运动控制部件基于与所述第一控制命令对应的目标存储区域预存的运动数据控制所述机器人运动。
示例性地,所述第一存储器集成在所述主控部件内,所述不同组的运动数据是自所述机器人控制设备接收的不同动作的运动参数,所述第一控制命令包括所述与所述第一控制命令对应的目标存储区域预存的运动数据;
每个运动控制部件包括解算单元和驱控单元,
所述解算单元用于解算所述与所述第一控制命令对应的目标存储区域预存的运动数据,以生成对应的波表数据;
所述驱控单元用于根据所述对应的波表数据生成波形并基于所述波形驱控所述机器人运动。
示例性地,所述主控部件利用网关实现。
示例性地,所述运动控制部件还包括解算单元,所述第一存储器集成在所述运动控制部件内并连接所述解算单元;
所述解算单元用于解算自机器人控制设备接收的不同动作的运动参数,以生成所述不同组的运动数据;并根据自所述机器人控制设备接收的存储指令在所述第一存储器对应的存储区域中预存所述不同组的运动数据;
其中所述机器人控制设备用于控制所述运动控制***。
示例性地,所述运动控制部件还包括与所述第一存储器连接的驱控单元,所述驱控单元用于基于所述多个存储区域中的、与所述第一控制命令对应的目标存储区域预存的运动数据生成波形并基于所述波形驱控所述机器人运动。
示例性地,所述多个存储区域还包括至少一个缓存区域。
根据本发明另一方面,提供了一种机器人。该机器人包括上述运动控制***。
根据本发明再一方面,提供了一种用于控制机器人运动的运动控制方法。该运动控制方法用于运动控制***,所述运动控制***包括运动控制部件和第一存储器,其特征在于,
所述运动控制方法包括:
通过所述运动控制部件接收第一控制命令;
利用所述运动控制部件基于所述第一存储器中的、与所述第一控制命令对应的目标存储区域预存的运动数据控制所述机器人运动,其中,所述第一存储器包括多个存储区域,所述多个存储区域中的至少两个存储区域用于预存不同组的运动数据。
示例性地,所述运动控制部件是多个,所述运动控制***还包括主控部件,所述主控部件用于将所述运动控制部件连接到机器人控制设备,其中所述机器人控制设备用于控制所述运动控制***,
所述主控部件包括第二存储器,所述第二存储器用于存储协同控制信息,所述协同控制信息包括第二控制命令与所述第一存储器的存储区域的对应关系信息;
所述运动控制方法包括:
通过所述主控部件接收第二控制命令;
利用所述主控部件根据所述第二控制命令查询所述协同控制信息以确定与所述第二控制命令对应的运动控制部件和目标存储区域,向所确定的运动控制部件发送所述第一控制命令,以由所述所确定的运动控制部件基于所述第一存储器中的、与所述第一控制命令对应的目标存储区域预存的运动数据控制所述机器人运动。
示例性地,所述不同组的运动数据是自所述机器人控制设备接收的不同动作的运动参数;
所述基于所述第一存储器中的、与所述第一控制命令对应的目标存储区域预存的运动数据控制所述机器人运动包括:
解算所述与所述第一控制命令对应的目标存储区域预存的运动数据,以生成对应的波表数据;
根据所述对应的波表数据生成波形并基于所述波形驱控所述机器人运动。
示例性地,所述运动控制方法还包括:
解算自机器人控制设备接收的不同动作的运动参数,以生成所述不同组的运动数据;
根据自所述机器人控制设备接收的存储指令在所述第一存储器对应的存储区域中预存所述不同组的运动数据;
其中所述机器人控制设备用于控制所述运动控制***。
示例性地,所述基于所述第一存储器中的、与所述第一控制命令对应的目标存储区域预存的运动数据控制所述机器人运动包括:
基于所述与所述第一控制命令对应的目标存储区域预存的运动数据生成波形;以及
基于所述波形驱控所述机器人运动。
根据本发明实施例的用于控制机器人运动的运动控制***和方法,通过预存机器人需要执行的动作对应的运动数据,也即针对一个动作预存一组对应的运动数据,从而可以通过调用预存的运动数据控制机器人执行对应的动作。由此极大简化了机器人的操控方式,提高了工作效率和用户体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1示出了根据本发明一个实施例的机器人的示意性结构图;
图2示出了根据本发明一个实施例的用于控制机器人运动的运动控制***的示意性框图;
图3示出了根据本发明另一个实施例的用于控制机器人运动的运动控制***及机器人控制设备的示意性框图;
图4示出了根据本发明一个实施例的用于控制机器人运动的运动控制***及机器人控制设备的示意性框图;
图5示出了根据本发明再一个实施例的用于控制机器人运动的运动控制***及机器人控制设备的示意性框图;
图6示出了根据本发明又一个实施例的用于控制机器人运动的运动控制***及机器人控制设备的示意性框图;
图7示出了根据本发明一个实施例的用于控制机器人运动的运动控制方法的示意性流程图;
图8示出了根据本发明另一个实施例的用于控制机器人运动的运动控制方法的示意性流程图;以及
图9示出了根据本发明再一个实施例的用于控制机器人运动的运动控制方法的示意性流程图。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
机器人的运行一般通过控制电机配合运动执行部件(例如丝杠或减速器等)实现。以利用电机配合减速器进行运动控制的多关节机器人(或称为多关节机械手、多轴机器人、机械臂等)为例,通过控制电机配合减速器的运行,实现机器人根据预定的路线从一个初始位置夹取目标物体到目标位置。此类多关节机器人常用于诸多工业领域的机械自动化作业。
多关节机器人例如可以是四关节机器人(四轴机器人)、六关节机器人(六轴机器人)等。它们均包括有基座、手臂和末端执行器(例如物体夹持部)。手臂上关节的多少决定了机器人的“轴”的数量,每一个关节都是由一个电机的转动来驱动,以实现关节的运动。图1示出了根据本发明一个实施例的机器人100的示意性结构图。如图1所示,机器人100是一种四关节机器人,包括有底座110、大臂120、小臂130、电机140和减速器150。小臂130上还可以连接有腕(未示出),腕上可以有爪,以实现对物体的抓取等功能。在机器人100的各个关节上可以分别设置有运动部件(如电机和减速器)。例如在底座110的外壳内设置有一套电机和减速器(未示出),该减速器的输出轴连接底座110的上盖。底座110的上盖安装大臂120,大臂120的底部设置有另一套电机140和减速器150,减速器150的输出轴连接大臂120的本体。在大臂120的上部设置有另一套电机和减速器(未示出),该减速器的输出轴连接小臂130的本体。在小臂130的前端还可以设置有另一套电机和减速器(未示出),该减速器的输出轴连接腕的本体。腕上可以安装各种末端执行器,例如物体夹持部。底座110内的电机旋转运动可以带动底座110的上盖沿水平方向360度旋转运动、进而带动机器人100的大臂120、小臂130等沿水平方向360度旋转。电机140的旋转运动可以带动大臂120沿S1方向前俯向下运动、或沿S2方向后仰向上运动,进而带着小臂130等沿S1或S2方向运动。大臂120上部的电机旋转运动可以带动小臂130进行旋转运动,进而带着腕等旋转运动。小臂130的另一端的电机旋转运动可以带动腕进行旋转运动,进而带着末端执行器进行旋转运动。末端执行器上的电机还可以带动末端执行器进行夹取物体等操作。
用户可以通过机器人控制设备(如电脑、示教器等)实现对机器人的参数设定和控制。用户可以通过编辑每个关节的运动参数实现对机器人的运动控制,所述运动参数实际上是控制机器人的运动部件(如电机)的运动参数。用户编辑机器人的运动参数后,发送给机器人的运动控制部件(或称为驱控器等),运动控制部件对接收到的运动参数进行解算后控制运动部件运动。运动控制部件可以单独设置在机器人的外部、通过连接线与机器人上的各个运动部件(如电机)连接,也可以安装在机器人的本体外壳内。通过不同的运动参数控制机器人的每个运动部件按用户设定的运动路线运动,就可以实现对机器人的控制,使机器人完成用户设定的各种功能。
如背景技术所述,目前对机器人的控制是“即用即算”型,即机器人每一次动作需要用户每次计算并输入对应的运动参数,然后进行解算,基于解算得到的电机控制数据控制电机运动。运动参数例如可以是PVT参数,P(Position)表示运动的目的位置,例如可以是期望达到的旋转角度或期望达到的位移位置;V(Velocity)表示运动的速度,T(Time)表示运动到达目的位置的时刻。运动参数需要进行解算,转换为电机控制数据来控制机器人运动。电机控制数据例如可以是脉冲宽度调制(Pulse Width Modulation,简称PWM)波表数据。“即用即算”型操控不仅耗时对工作效率有影响,而且对操作人员的专业知识要求较高,操作人员需要计算对应动作的运动参数,使得用户体验差。为此,本发明提供了一种用于控制机器人运动的运动控制***。
下面将参考图2描述根据本发明实施例的用于控制机器人运动的运动控制***。图2示出了根据本发明一个实施例的用于控制机器人运动的运动控制***200的示意性框图。如图2所示,***200包括运动控制部件210和第一存储器220。
第一存储器220包括多个存储区域,多个存储区域中的至少两个存储区域用于预存不同组的运动数据。如图2所示,第一存储器220包括存储区域1、存储区域2、……、存储区域n共n个存储区域。不同组的运动数据对应需要机器人执行的不同动作,其中,每组运动数据对应一个动作。例如,需要机器人分别执行:动作A(向前移动10厘米)、动作B(左转90度)、动作C(向前移动20厘米)、动作D(右转135度)。表1示出了预存运动数据的存储区域与动作的对应关系。如表1所示,可以把动作A、动作B、动作C和动作D对应的运动数据作为不同组的运动数据分别预存到不同的存储区域。
表1预存运动数据表
预定义动作 |
对应的运动数据 |
存储区域标识 |
动作A |
运动数据1 |
存储区域1 |
动作B |
运动数据2 |
存储区域2 |
动作C |
运动数据3 |
存储区域3 |
动作D |
运动数据4 |
存储区域4 |
运动控制部件210用于接收第一控制命令,基于第一存储器220中的多个存储区域中的、与接收到的第一控制命令对应的目标存储区域预存的运动数据控制机器人运动。第一控制命令是触发机器人执行所需要的动作的命令。继续上述示例,例如接收到的第一控制命令指示需要执行动作B,对应的目标存储区域为存储区域2。运动控制部件210可以基于存储区域2预存的运动数据2控制机器人运动,即可使得机器人执行动作B。本领域技术人员可以理解,第一存储器220只要能实现通过存储区域划分以预存不同组的运动数据即可,第一存储器220与运动控制部件210之间的具体连接方式可以根据实际工程需要合理设计。换言之,第一存储器220可以是与运动控制部件210相对独立的外部存储器,也可以是集成于运动控制部件210内的内置存储器。图2示出了第一存储器220为独立于运动控制部件210的外部存储器的情况,但不应理解为对本发明的限制。第一存储器220中预存的不同组的运动数据可以是运动参数,例如PVT参数,运动控制部件210根据预存的运动参数解算得到电机控制数据来控制机器人运动。第一存储器220中预存的不同组的运动数据也可以是根据运动参数解算得到的电机控制数据,例如PWM波表数据,运动控制部件210根据预存的电机控制数据来控制机器人运动。
上述运动控制***通过预存需要机器人执行的动作对应的运动数据,也即针对一个动作预存一组对应的运动数据,从而可以通过调用预存的运动数据来控制机器人执行对应的动作。由此极大简化了机器人的操控方式,提高了工作效率和用户体验。
图3示出了根据本发明另一个实施例的用于控制机器人运动的运动控制***300及机器人控制设备300a的示意性框图。如图3所示,运动控制***300包括运动控制部件310和第一存储器320。其中,运动控制部件310还包括与第一存储器320连接的驱控单元312。驱控单元312用于基于第一存储器320中多个存储区域中的、与运动控制***300接收到的第一控制命令对应的目标存储区域预存的运动数据生成波形,并基于所生成的波形驱控机器人运动。机器人控制设备300a用于控制运动控制***300。第一存储器320中存储的运动数据可以是自机器人控制设备300a接收的电机控制数据,例如可以是PWM波表数据。驱控单元312可以基于PWM波表数据生成PWM波形来驱控机器人运动。由此,进一步提高了运动控制***的集成度,利用该运动控制***可以直接连接机器人的电机来驱控机器人运动。通过调用预存的运动数据来控制机器人执行对应的动作,极大简化了机器人的操控方式,提高了工作效率和用户体验。
图4示出了根据本发明一个实施例的用于控制机器人运动的运动控制***400及机器人控制设备400a的示意性框图。如图4所示,运动控制***400包括运动控制部件410和第一存储器420。其中,运动控制部件410还包括与第一存储器420连接的解算单元411、与解算单元411连接的驱控单元412。机器人控制设备400a用于控制运动控制***400。第一存储器420中存储的运动数据可以是自机器人控制设备400a接收的运动参数,例如可以是PVT运动参数。解算单元411用于对第一存储器420中多个存储区域中的、与运动控制***400接收到的第一控制命令对应的目标存储区域预存的运动数据进行解算,从而得到电机控制数据(如PWM波表数据)。驱控单元412基于自解算单元411接收的电机控制数据生成波形,并基于所生成的波形驱控机器人运动。由此,进一步提高了运动控制***的集成度,通过调用预存的运动数据来控制机器人执行对应的动作,极大简化了机器人的操控方式,提高了工作效率和用户体验。
图5示出了根据本发明再一个实施例的用于控制机器人运动的运动控制***500及机器人控制设备500a的示意性框图。机器人控制设备500a用于控制运动控制***500。如图5所示,运动控制***500包括运动控制部件510和第一存储器520。其中,运动控制部件510还包括解算单元511,第一存储器520集成在运动控制部件510内并连接解算单元511。解算单元511用于解算自机器人控制设备500a接收的不同动作的运动参数,以生成不同组的运动数据;并根据自机器人控制设备500a接收的存储指令在第一存储器520中对应的存储区域中预存解算得到的不同组的运动数据。
用户通过机器人控制设备500a把不同动作的运动参数以及相应的存储指令发送给运动控制***500。其中,不同动作的运动参数对应需要机器人执行的不同动作,相应的存储指令指示在第一存储器520中的存储位置。运动控制***500接收到不同动作的运动参数后,通过运动控制部件510中的解算单元511进行解算,得到对应不同动作的运动数据。根据相应的存储指令把解算得到的运动数据存储到第一存储器520中对应的存储位置。运动参数例如可以是PVT参数。运动参数需要进行解算,转换为电机控制数据来控制机器人运动。电机控制数据例如可以是PWM波表数据。例如,机器人控制设备500a把动作Z的运动参数以及“存储至存储区域3”的存储指令发送给运动控制***500。解算单元511对动作Z的运动参数进行解算后,把解算得到的运动数据存储到第一存储器520中的存储区域3。
上述运动控制***把第一存储器集成到运动控制部件内,提高了运动控制部件的集成度,同时简化了运动控制***的设计。通过调用预存的运动数据来控制机器人执行对应的动作,极大简化了机器人的操控方式,提高了工作效率和用户体验。
在一个实施例中,如图5所示,运动控制部件510还包括与第一存储器520连接的驱控单元512。驱控单元512用于基于第一存储器520中多个存储区域中的、与运动控制***500接收到的第一控制命令对应的目标存储区域预存的运动数据生成波形,并基于所生成的波形驱控机器人运动。第一存储器520中存储的运动数据是解算后的电机控制数据,例如PWM波表数据。驱控单元512基于PWM波表数据生成PWM波形来驱控机器人运动。由此,进一步提高了运动控制***的集成度,利用该运动控制***可以直接连接机器人的电机来驱控机器人运动。通过调用预存的运动数据来控制机器人执行对应的动作,极大简化了机器人的操控方式,提高了工作效率和用户体验。
图6示出了根据本发明又一个实施例的用于控制机器人运动的运动控制***600及机器人控制设备600a的示意性框图。如图6所示,运动控制***600包括多个运动控制部件610、第一存储器620和主控部件630。主控部件630用于将运动控制部件610连接到机器人控制设备600a。机器人控制设备600a用于控制运动控制***600。主控部件630包括第二存储器631。第二存储器631用于存储协同控制信息。该协同控制信息包括第二控制命令与第一存储器620的存储区域的对应关系信息。主控部件630用于接收第二控制命令,根据接收到的第二控制命令查询第二存储器631存储的协同控制信息,从而确定与接收到的第二控制命令对应的运动控制部件和目标存储区域,并向所确定的运动控制部件发送第一控制命令。从而由所确定的运动控制部件基于与第一控制命令对应的目标存储区域预存的运动数据控制机器人运动。
本领域普通技术人员可以理解,对于多关节机器人,控制机器人执行动作需要协同控制机器人的多个关节分别执行对应的分解动作。如图1所示的机器人100,控制机器人100执行动作需要协同控制机器人100的各关节(底座110、大臂120、小臂130、腕)分别执行对应的分解动作。以机器人100为例,表2示出了与机器人100执行的动作对应的各关节需要协同执行的分解动作,各关节的驱动电机基于对应的分解动作的运动数据来驱动各关节协同运动,从而驱动机器人100运动以实现需要执行的动作。
表2机器人100的动作分解
机器人100 |
底座110 |
大臂120 |
小臂130 |
腕(未示出) |
动作X |
分解动作X1 |
分解动作X2 |
分解动作X3 |
分解动作X4 |
动作Y |
分解动作Y1 |
分解动作Y2 |
分解动作Y3 |
分解动作Y4 |
...... |
...... |
...... |
...... |
...... |
各分解动作对应的运动数据预先存储在第一存储器620中。通过第二存储器631存储协同控制信息,该协同控制信息包括第二控制命令与第一存储器620的存储区域的对应关系信息。第二控制命令是触发机器人的各关节协同运动以执行所需要的动作的命令。主控部件630接收到第二控制命令后,根据第二控制命令索引读取第二存储器631中存储的协同控制信息,从而获得与该第二控制命令对应的协同控制信息。协同控制信息中指示了需要协同运动的关节,以及各关节需要执行的分解动作的运动数据在第一存储器620中的存储区域。
在一个实施例中,可以以第二控制命令为标识符索引读取第二存储器631中存储的协同控制信息。继续上述示例,表3示出了机器人100的协同控制信息表。
表3机器人100的协同控制信息表
例如,主控部件630接收到第二控制命令C1,首先根据第二控制命令C1从第二存储器631中索引读到对应的协同控制信息,如表3所示。从而确定机器人的此次运动需要底座110基于存储区域1预存的运动数据、大臂120基于存储区域11预存的运动数据、小臂130基于存储区域21预存的运动数据以及腕基于存储区域31预存的运动数据协同运动。然后,主控部件630向底座110、大臂120、小臂130以及腕分别发送第一控制命令。具体地,主控部件630向底座110发送的第一控制命令对应的目标存储区域为存储区域1,主控部件630向大臂120发送的第一控制命令对应的目标存储区域为存储区域11,主控部件630向小臂130发送的第一控制命令对应的目标存储区域为存储区域21,主控部件630向腕发送的第一控制命令对应的目标存储区域为存储区域31。最后,底座110、大臂120、小臂130以及腕根据从主控部件630接收到的第一控制命令,并基于与各自的第一控制命令对应的目标存储区域预存的运动数据协同运动,从而控制机器人100运动以执行与第二控制命令C1对应的动作。
可以理解,对于多关节机器人,控制机器人执行某一动作未必需要所有的关节都协同运动。换言之,多关节机器人可以只需要部分关节协同运动来执行的某些动作。如图1所示的机器人100,某些动作只需要大臂120、小臂130和腕协同运动,并不需要底座110运动。如表3所示,第二控制命令C3对应的协同控制信息中,底座110不需要参与协同运动。
在一个实施例中,第二控制命令包括了运动控制部件的名称以及与该运动控制部件对应的第一存储器620中的目标存储区域的信息。可以以第二控制命令为关键字索引包括该运动控制部件以及对应的目标存储区域信息的协同控制信息。表4示出了一个4关节机器人的协同控制信息表。
表4一个4关节机器人的协同控制信息表
例如,主控部件630接收到包括“关节1:存储区域11”的第二控制命令,首先以“关节1:存储区域11”为关键字从第二存储器631中索引读到对应的协同控制信息,如表4所示。从而确定机器人的此次运动需要关节1基于存储区域11预存的运动数据、关节2基于存储区域21预存的运动数据、关节3基于存储区域31预存的运动数据以及关节4基于存储区域41预存的运动数据协同运动。然后,主控部件630向关节1、关节2、关节3以及关节4分别发送第一控制命令。具体地,主控部件630向关节1发送的第一控制命令对应的目标存储区域为存储区域11,主控部件630向关节2发送的第一控制命令对应的目标存储区域为存储区域21,主控部件630向关节3发送的第一控制命令对应的目标存储区域为存储区域31,主控部件630向关节4发送的第一控制命令对应的目标存储区域为存储区域41。最后关节1、关节2、关节3以及关节4根据从主控部件630接收到的第一控制命令,并基于与各自的第一控制命令对应的目标存储区域预存的运动数据协同运动,从而控制该4关节机器人运动以执行与第二控制命令C1对应的动作。
如前所述,多关节机器人的运动并不必须所有关节都参与协同运动。如表4所示,该4关节机器人的第3条协同控制信息不需要关节1参与协同运动。
上述运动控制***通过预存需要协同控制的运动控制部件以及各自对应的运动数据的目标存储区域的对应关系信息,从而可以控制各运动控制部件基于预存的运动数据协同运动来执行多关节机器人需要执行的动作。由此极大简化了多关节机器人的操控方式,提高了工作效率和用户体验。
在一个实施例中,如图6所示,第一存储器620集成在主控部件630内。用于控制运动控制部件执行动作的不同组的运动数据是自机器人控制设备600a接收的不同动作的运动参数。自主控部件630向运动控制部件610发送的第一控制命令包括与该第一控制命令对应的目标存储区域预存的运动数据。具体地,主控部件630基于第二控制命令确定了需要协同控制的运动控制部件610以及各自对应的目标存储区域后,从第一存储器620中读取与各个运动控制部件610对应的目标存储区域的运动数据,并在发送第一控制命令时把读取到的运动数据发送给对应的运动控制部件610。如上述示例中,主控部件630可以把关节1对应的存储区域11中的运动数据读出,在给关节1发送第一控制命令时把读取到的运动数据发送给关节1。
如图6所示,每个运动控制部件610包括解算单元611和驱控单元612。为了简洁,图6中没有针对每个运动控制部件610示出解算单元611和驱控单元612。解算单元611用于解算运动控制部件610接收到的第一控制命令对应的目标存储区域预存的运动数据,以生成对应的波表数据。驱控单元612用于根据解算单元611生成的波表数据生成波形并基于该波形驱控机器人运动。由此,各个运动控制部件通过解算自主控部件发送的对应的运动数据,实现对机器人的驱控。
上述运动控制***把第一存储器集成到主控部件内,简化了运动控制部件的设计,提高了运动控制***的灵活性。通过控制各运动控制部件基于预存的运动数据协同运动来执行多关节机器人需要执行的动作,极大简化了多关节机器人的操控方式,提高了工作效率和用户体验。
示例性地,上述主控部件可以利用网关实现。网关在实现机器人控制设备与机器人的各运动控制部件之间的通信功能的同时,用作上述主控部件对机器人的各运动控制部件进行协同控制。由此,进一步简化了运动控制***的设计,同时降低了***成本。
示例性地,上述第一存储器中的多个存储区域中还包括至少一个缓存区域。换言之,第一存储器中除了用于预存运动数据的存储区域,还可以预留至少一个缓存区域。预留的缓存区域可以用于缓存运动控制过程中的临时数据。例如,对于需要机器人执行动作,如果该动作没有对应的预存运动数据,可以通过“即用即算”方式输入对应的运动参数进行控制。此时,预留的缓存区域可以用于缓存“即用即算”过程中的中间数据。由此,提升了运动控制***的灵活性和适用性。
根据本发明另一个方面,提供了一种机器人。该机器人包括上述运动控制***。
根据本发明另一方面,还提供了一种用于控制机器人运动的运动控制方法。图7示出了根据本发明一个实施例的用于控制机器人运动的运动控制方法700的示意性流程图。方法700用于运动控制***,该运动控制***包括运动控制部件和第一存储器。其中,第一存储器包括多个存储区域,该多个存储区域中的至少两个存储区域用于预存不同组的运动数据。如图7所示,方法700包括步骤S710和步骤S720。
步骤S710,通过运动控制部件接收第一控制命令。
步骤S720,利用运动控制部件基于第一存储器中的、与步骤S710接收的第一控制命令对应的目标存储区域预存的运动数据控制机器人运动。
根据本发明实施例的运动控制方法,通过预存需要机器人执行的动作对应的运动数据,也即针对一个动作预存一组对应的运动数据,从而可以通过调用预存的运动数据来控制机器人执行对应的动作。由此极大简化了机器人的操控方式,提高了工作效率和用户体验。
在一个实施例中,步骤S720还包括子步骤S721和子步骤S722。
子步骤S721,基于与步骤S710接收的第一控制命令对应的目标存储区域预存的运动数据生成波形。
子步骤S722,基于子步骤S721生成的波形驱控机器人运动。
由此,可以通过该运动控制***直接连接机器人的电机来驱控机器人运动,简化对机器人的操控,提高用户体验。
图8示出了根据本发明另一个实施例的用于控制机器人运动的运动控制方法的示意性流程图。方法800用于运动控制***,该运动控制***包括运动控制部件和第一存储器。其中,第一存储器包括多个存储区域,该多个存储区域中的至少两个存储区域用于预存不同组的运动数据。如图8所示,方法800包括步骤S810、步骤S820、步骤S830以及步骤S840。其中,步骤S830和步骤S840分别与步骤S610和步骤S620处理的过程以及实现的功能类似,为了简洁,不再赘述。
步骤S810,解算自机器人控制设备接收的不同动作的运动参数,以生成不同组的运动数据。其中,机器人控制设备用于控制该运动控制***。
步骤S820,根据自机器人控制设备接收的存储指令在第一存储器对应的存储区域中预存步骤S810生成的不同组的运动数据。
上述运动控制方法先解算需要机器人执行的动作对应的运动参数以得到易于执行的运动数据预存到对应的存储区域,从而进一步简化了机器人的操控方式,提高了机器人的工作效率和用户体验。
在一个实施例中,步骤S840还包括子步骤S841和子步骤S842。
子步骤S841,基于与步骤S830接收的第一控制命令对应的目标存储区域预存的运动数据生成波形。
子步骤S842,基于子步骤S841生成的波形驱控机器人运动。
由此,可以通过该运动控制***直接连接机器人的电机来驱控机器人运动,简化对机器人的操控,提高用户体验。
图9示出了根据本发明再一个实施例的用于控制机器人运动的运动控制方法900的示意性流程图。方法900用于运动控制***,该运动控制***包括多个运动控制部件、第一存储器和主控部件。第一存储器包括多个存储区域,该多个存储区域中的至少两个存储区域用于预存不同组的运动数据。主控部件用于将多个运动控制部件连接到机器人控制设备,其中机器人控制设备用于控制该运动控制***。主控部件包括第二存储器,该第二存储器用于存储协同控制信息,该协同控制信息包括第二控制命令与第一存储器的存储区域的对应关系信息。如图9所示,方法900包括步骤S910和步骤S920。
步骤S910,通过主控部件接收第二控制命令。
步骤S920,利用主控部件根据步骤S910接收到的第二控制命令查询第二存储器中的协同控制信息以确定与该第二控制命令对应的运动控制部件和目标存储区域。利用主控部件向所确定的运动控制部件发送第一控制命令,以由所确定的运动控制部件基于第一存储器中的、与第一控制命令对应的目标存储区域预存的运动数据控制所述机器人运动。
上述运动控制方法通过预存需要协同控制的运动控制部件以及各自对应的运动数据的目标存储区域的对应关系信息,从而可以控制各运动控制部件基于预存的运动数据协同运动来执行多关节机器人需要执行的动作。由此极大简化了多关节机器人的操控方式,提高了工作效率和用户体验。
在一个实施例中,第一存储器中预存的不同组的运动数据是自机器人控制设备接收的不同动作的运动参数。步骤S920还包括子步骤S921和子步骤S922。
子步骤S921,解算所述与第一控制命令对应的目标存储区域预存的运动数据,以生成对应的波表数据。
子步骤S922,根据子步骤S921解算的波表数据生成波形并基于该波形驱控机器人运动。
上述运动控制方法预存的运动数据是解算前的运动参数,需要预存储的数据量较小,可以有效降低第一存储器的容量需求,从而降低了***成本。
上述运动控制方法可以用于前述运动控制***。本领域普通技术人员通过前述关于运动控制***的描述,可以理解该运动控制方法的各个步骤的具体实现和技术效果。为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的视觉定位地图加载装置中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。