具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
为了解决换向时的回程间隙导致位移精准度差的问题,本发明实施例提供一种运动参数的处理方法。根据该方法,在初始获取的运动参数序列中,在存在换向的位置***换向运动参数,以补偿回程间隙。通过***的换向运动参数可以使得运动部件在预设时间(该预设时间可以根据需要设定,例如设定得尽量短)内通过回程间隙,这样有利于保证运动部件的位移精准度,也就有利于保证机器人在设定的时间、以设定的速度到达设定的位置。根据本发明实施例的运动参数的处理方法可以应用于任意机器人或采用与机器人类似的工作方式的设备的控制领域。
根据本发明实施例的运动参数的处理方法可以应用于运动控制***。本文描述的运动控制***可以包括机器人控制设备和待控制的设备。机器人控制设备可以包括例如上位机、示教器等。待控制的设备可以包括例如机器人、用于驱动机器人运动的驱控器等。此外,本文描述的运动控制部件可以包括驱动器,运动部件可以包括电机。
本文描述的机器人可以是自动执行工作的机器装置。机器人可以包括机器人本体、末端执行器(或称为工具)。本体可以包括多个关节,例如基座、大臂、小臂、腕等。末端执行器例如是一个可以开合的夹爪/物体夹持部,也可以是其他操作工具。末端执行器由机器人控制设备控制按照相应路线运动并完成预定的动作。具体例如,末端执行器受机器人控制设备的操控,实现在三维的空间中运动,并且在指定的位置执行相关动作,例如抓取、释放或其他动作。
以电机配合减速器为例,电机配合减速器是机械臂(或称为机械手、多轴机器人、多关节机器人等)的主要运动执行部件,机械臂主要是根据预定的路线从一个初始位置夹取目标物体到目标位置,适用于诸多工业领域的机械自动化作业。
现在市场上的机械臂主要包括四轴机器人(具有四个关节)和六轴机器人(具有六个关节)等,它们均包括有基座、手臂等,还可以包括末端执行器,关节的多少决定了机器人的“轴”的数量,每一个关节都是由一个电机的转动来驱动、以实现关节的运动。
下面,将结合图2-6描述根据本发明实施例的运动参数的处理方法。图2示出根据本发明一个实施例的运动参数的处理方法200的示意性流程图。如图2所示,运动参数的处理方法200包括步骤S210、S220、S230。
在步骤S210,获取目标关节的运动参数序列。
本文描述的运动参数序列可以包括至少一条运动参数。在运动参数序列包括少于三条运动参数的情况下,可以理解为不存在换向。在运动参数序列包括至少三条运动参数的情况下,有可能存在换向。
可选地,可以接收用户输入的末端执行器的运动参数,并且可以将接收到的末端执行器的运动参数换算为机器人的各个关节的运动参数。可选地,还可以直接接收用户输入的机器人的各个关节的运动参数。也就是说,用户既可以输入末端执行器的运动参数,再由机器人控制设备和/或运动控制部件换算为各个关节的运动参数,也可以输入机器人的各个关节的运动参数。
可选地,步骤S210所获取的运动参数序列中的运动参数可以是用户初始编辑的或者经过运动控制***进一步处理(例如插值)后的运动参数。
目标关节可以是机器人的任意一个关节。对于机器人的任意一个关节,均可以执行本文描述的回程间隙补偿操作,即可以执行步骤S210-S230。
运动参数的内容可以根据运动部件(例如电机)的实际构成不同而有所不同。示例性地,运动参数可以包括位置数据、速度数据和时间数据中的一项或多项。所述位置数据可以是空间直角坐标系中的坐标数据,也可以是旋转角度或其他与位置相关的数据。位置数据是空间直角坐标系中的坐标数据的情况下,运动参数可以称为LVT参数。位置数据是旋转角度的情况下,运动参数可以称为PVT参数。
本文主要以PVT参数作为运动参数的示例进行说明,PVT参数可以包括旋转角度(可以称为P)、旋转速度(可以称为V)、旋转时间(可以称为T)。图3示出了根据本发明一个实施例的机器控制设备上的人机交互界面的示意图。为了完成某个动作,用户可以在交互界面的运动参数列表中编辑一组PVT参数,例如图3所示的示例中编辑了3条PVT参数A、B、C。第一条PVT参数可以由用户输入,也可以由***预设好,该第一条PVT参数可以默认为(0,0,0)。第二条及以后的PVT参数可以由用户根据需求设置。
在步骤S220,检测运动参数序列内是否存在换向参数集合,每个换向参数集合包括使运动部件的运动方向换向的三条时间数据相邻的运动参数。所述运动部件是与目标关节相对应的运动部件,其可以用于带动目标关节运动。
示例性地,检测运动参数序列内是否存在换向参数集合(步骤S220)可以包括:
对于运动参数序列中的任意三条时间数据相邻且按时间数据从小到大排序的第一条运动参数(P1,V1,T1)、第二条运动参数(P2,V2,T2)和第三条运动参数(P3,V3,T3),
如果存在P2-P1>0且P3-P2<0的第一种情况或者存在P2-P1<0且P3-P2>0的第二种情况,则确定这三条运动参数属于换向参数集合;
如果第一种情况和第二种情况均不存在,则确定这三条运动参数不属于换向参数集合。
获取目标关节的运动参数序列之后,可以对该序列内的运动参数进行检查,判断是否存在换向的情况。例如,可以按照时间数据的顺序将运动参数序列中的所有运动参数分别组合成为一个或多个集合,每个集合包括时间数据相邻的三条运动参数。可以理解的是,在本文中,不同的集合可以包含一部分相同的运动参数。例如,假设目标关节的运动参数序列包括五条运动参数S1、S2、S3、S4、S5,这五条运动参数按照时间数据从小到大排列。这五条运动参数可以共组合成三个集合,其中,S1、S2、S3可以组成第一个集合,S2、S3、S4可以组成第二个集合,S3、S4、S5可以组成第三个集合。可以对每个集合中的运动参数进行分析,判断是否存在换向的情况。
比较可取的是,在用户编辑运动参数或者机器控制设备接收到运动参数时,即对所有的运动参数按照时间数据的顺序排序,这样可以直接按照排好的顺序遍历运动参数,判断是否存在换向的情况。
为方便描述,下面将用每个集合包括三条PVT参数A(P1,V1,T1)、B(P2,V2,T2)、C(P3,V3,T3)为例进行说明,这三条PVT参数在时间上是相邻的,即T1、T2和T3是相邻的时间。
对于任意一个集合来说,如果出现A->B位移为正(即P2-P1>0)且B->C位移为负(即P3-P2<0),或者A->B位移为负(即P2-P1<0)且B->C位移为正(即P3-P2>0)这两种情况,则可以确定当前的集合存在换向,即当前的集合属于换向参数集合,如果上述两种情况不存在,则可以确定当前的集合中不存在换向,即当前的集合不属于换向参数集合。
参见图3,第一条PVT参数A的位置数据是0,第二条PVT参数B的位置数据是90度,第三条PVT参数C的位置数据回复到0。根据上述规则,可以判断出在B、C之间,运动部件存在换向运动。
在步骤S230,如果检测到至少一个换向参数集合,则对于至少一个换向参数集合中的每一个,在该换向参数集合中***至少一条换向运动参数,以获得新的运动参数序列,其中,至少一条换向运动参数用于指示运动部件在预设时间内通过换向时的回程间隙。
示例性地,至少一个换向参数集合中的每一个包括按时间数据从小到大排序的第一条运动参数(P1,V1,T1)、第二条运动参数(P2,V2,T2)和第三条运动参数(P3,V3,T3),***的换向运动参数为(P4,V4,T4),
如果P2-P1>0且P3-P2<0,则:
P4=P2-360°/编码器分辨率;
V4=第一预设速度;
T4=T2+第一预设时间;
如果P2-P1<0且P3-P2>0,则:
P4=P2+360°/编码器分辨率;
V4=第二预设速度;
T4=T2+第二预设时间;
其中,P1、P2、P3、P4为位置数据,V1、V2、V3、V4为速度数据,T1、T2、T3、T4为时间数据。
如上所述,对于任意一个集合来说,如果出现A->B位移为正(即P2-P1>0)且B->C位移为负(即P3-P2<0),或者A->B位移为负(即P2-P1<0)且B->C位移为正(即P3-P2>0)这两种情况,则可以确定当前的集合存在换向,即当前的集合属于换向参数集合。此时,可以在B和C中间***一条PVT参数D(P4,V4,T4)。使PVT参数列表由(A,B,C)->(A,B,D,C)。
示例性地,每个换向参数集合中***的换向运动参数的数目是一个。示例性地,换向运动参数的时间数据可以位于换向参数集合中按时间数据从小到大排序的第二条运动参数和第三条运动参数的时间数据之间,即,T2<T4<T3。
示例性地,D的算法可以如下:
如果A->B位移为正(即P2-P1>0)且B->C位移为负(即P3-P2<0),则:
P4=P2-360°/编码器分辨率;
V4=第一预设速度;
T4=T2+第一预设时间;
如果A->B位移为负(即P2-P1<0)且B->C(即P3-P2>0)位移为正:
P4=P2+360°/编码器分辨率;
V4=第二预设速度;
T4=T2+第二预设时间。
本领域技术人员可以理解运动部件的编码器分辨率的意义,本文不赘述。“360°/编码器分辨率”可以理解为运动部件运行一个微步的位移,也可以理解为回程间隙所对应的位移。P2和P4之间的距离对应回程间隙,因此,可以根据P2计算补偿两个相反方向上的回程间隙所需的P4。
第一预设速度、第二预设速度、第一预设时间和第二预设时间的大小均可以根据需要设定,本发明不对此进行限制。示例性地,第一预设速度可以等于第二预设速度取反。示例性地,第一预设时间和第二预设时间可以相等。对于两个相反方向的回程间隙来说,这两个回程间隙在位移上大概率是一致的,因此,可以选择相反的速度和相等的时间来通过两个相反方向上的回程间隙。这种方案实现简单,易于控制。
第一预设时间和第二预设时间可以用微步数值表示。比较可取的是,第一预设时间和第二预设时间可以设定得较小,以使得运动部件能够尽快通过回程间隙。例如,第一预设时间可以小于第一时间阈值,第二预设时间可以小于第二时间阈值。第一时间阈值和第二时间阈值的大小均可以根据需要设定。
示例性而非限制性地,预设速度(包括第一预设速度和第二预设速度)和预设时间(包括第一预设时间和第二预设时间)可以是提前测试得到的数据,其可以内置在软件代码中,调试人员可以修改,而普通用户无权限修改。预设速度和预设时间的作用是使运动部件以期望的速度和时间(尽量设置为较快的速度、较短的时间)通过回程间隙,以使得机器人或说机器人的目标关节能够在设定的时间、以设定的速度到达设定的位置。
上述回程间隙补偿操作,即步骤S210-S230可以由机器人控制设备(例如上位机)执行,也可以由运动控制部件(例如驱控器)执行。本文描述的机器人控制设备可以与用户交互,接收用户输入的运动参数和其他指令。
示例性地,上述回程间隙补偿功能可以在机器人控制设备的人机交互界面上作为选项示出,用户可以根据需要选择是否采用该功能。如果用户需要使用回程间隙补偿功能,则可以勾选该功能的选项,并输入上述预设速度和预设时间(或采用默认阈值)。参见图3,其中示出的“LVT补偿”即为用于选择回程间隙补偿功能的控件。
根据本发明实施例的运动参数的处理方法,对于使运动部件的运动方向换向的运动参数,在其中***换向运动参数,以补偿回程间隙。该方法可以减小回程间隙对运动控制的影响,进而可以实现以下技术效果:
1:保证精度,使得将运动部件的位移精度控制在正负0.001°成为可能。
2:保证时间,在指定时间内能够到达目标位置。由于回程间隙的存在,使得运动部件到达目标位置的时间无法保证。添加换向运动参数使得运动部件在较短时间内走完回程间隙而不影响总时间成为可能。
3:保证协调性,机器人基于运动参数不停换向运行时会更协调。
根据本发明实施例,方法100还可以包括:接收用户输入的以下指令中的一项或多项:用于指示第一预设速度的大小的第一速度指令、用于指示第二预设速度的大小的第二速度指令、用于指示第一预设时间的大小的第一时间指令、用于指示第二预设时间的大小的第二时间指令;以及根据用户输入的指令确定以下信息中的一项或多项:第一预设速度、第二预设速度、第一预设时间、第二预设时间。
如上所述,可选地,设置预设速度和预设时间的用户可以是调试人员。因此,本实施例中的用户可以是运动控制***的软件调试人员。当然,在需要时,设置预设速度和预设时间的用户也可以是其他人员,例如,使用运动控制***控制机器人的普通用户。
在第一预设速度等于第二预设速度取反的情况下,第一速度指令和第二速度指令可以是同一指令,即,用户只需在交互界面上输入或选择一个速度数据,就可以基于该速度数据确定第一预设速度和第二预设速度,而无需分别输入两个速度数据。在第一预设时间和第二预设时间相等的情况下,第一时间指令和第二时间指令可以是同一指令,即,用户只需在交互界面上输入或选择一个时间数据,就可以基于该时间数据确定第一预设时间和第二预设时间,而无需分别输入两个时间数据。
参见图3,在该交互界面右上方示出了“时间”和“速度”两个方框。时间方框里包含“反向间隙补偿微步值78”,速度方框里包含“反向间隙速度(微秒/微步)10”。在这两块区域中的横线上方的数值可以由用户输入,基于图3中用户输入的数据可以确定第一预设时间和第二预设时间为78微步(即78个微步对应的时间),第一预设速度为10微秒/微步,第二预设速度为-10微秒/微步。
在第一预设速度和第二预设速度各自独立的情况下,用户可以分别输入第一速度指令和第二速度指令,例如分别输入或选择两个速度数据,来确定第一预设速度和第二预设速度。在第一预设时间和第二预设时间各自独立的情况下,用户可以分别输入第一时间指令和第二时间指令,例如分别输入或选择两个时间数据,来确定第一预设时间和第二预设时间。
当然,除取反之外,第一预设速度和第二预设速度可以具有其他合适的关系,在这种情况下,用户可以输入同一个速度指令来设置第一预设速度和第二预设速度,也可以输入两个速度指令来分别设置第一预设速度和第二预设速度。类似地,除相等之外,第一预设时间和第二预设时间可以具有其他合适的关系,在这种情况下,用户可以输入同一个时间指令来设置第一预设时间和第二预设时间,也可以输入两个时间指令来分别设置第一预设时间和第二预设时间。
根据本发明实施例,获取目标关节的运动参数序列(步骤S210)可以包括:接收用户输入的机器人末端的运动参数序列;以及将机器人末端的运动参数序列换算为至少一个关节的运动参数序列,目标关节为至少一个关节之一。
根据本发明实施例,获取目标关节的运动参数序列(步骤S210)可以包括:接收用户输入的目标关节的运动参数序列。
如上文所述,用户既可以输入末端执行器(即机器人末端)的运动参数,再由机器人控制设备和/或运动控制部件换算为各个关节的运动参数,也可以输入机器人的各个关节的运动参数。因此,用户输入运动参数时有较大自由度,机器人控制设备(例如上位机)和/或运动控制部件(例如驱控器)可以在有需要时对用户输入的运动参数进行换算,以方便后续进行回程间隙补偿等处理。
图4示出用户编辑单个电机的PVT参数的示意图。图5示出用户编辑机器人的PVT参数的示意图。如果用户直接通过电机驱控器控制电机,编写的PVT参数如图4所示。如果用户控制机器人,机器人一般由多轴构成,编写的PVT参数如图5所示,这个时候就存在多个P(基座、大臂、小臂、腕、机械手(此处指末端执行器)等都有各自的P值),用户编辑机器人的PVT参数列表后,可以先换算为各个轴各自的PVT参数,然后针对每个轴的PVT参数分别检查是否存在换向的情况。
图6示出根据本发明一个实施例的运动参数的处理方法的示例性流程。如图6所示,首先用户可以经由机器人控制设备的人机交互界面编辑PVT参数(步骤S610)。随后,机器人控制设备可以检查用户编辑的PVT参数中是否存在换向的情况(步骤S620)。如果存在换向的情况,则可以在换向(即包含三条PVT参数的换向参数集合)处***一条PVT参数,该PVT参数可以按照上文描述的规则设置位置、速度和时间。经过检查之后,在所有换向的位置处都已经***PVT参数,当然,如果用户编辑的PVT参数不存在换向的情况,则可以无需***换向运动参数。总之,经过上述操作之后,最终可以获得一个新的运动参数序列,可以将该运动参数序列发送给驱控器(步骤S640),以利用该运动参数序列驱动电机运行。步骤S640可以实时执行,即针对部分PVT参数检查换向并在需要时***换向运动参数之后,将该部分PVT参数所对应的新的一组PVT参数实时发送给驱控器。步骤S640也可以在获得完整的新的PVT参数序列之后,将其发送给驱控器。驱控器可以将接收到的PVT参数序列解算为电机的驱动参数,驱动电机运动。
虽然在本文的描述中以***一条换向运动参数为例进行说明,然而这并非对本发明的限制。例如,可以在每个换向参数集合中***两条或多于两条换向运动参数,***的所有换向运动参数使得运动部件在预设时间内通过换向时的回程间隙。
根据本发明另一方面,提供一种运动参数的处理装置。图7示出根据本发明一个实施例的运动参数的处理装置700的示意性框图。
如图7所示,根据本发明实施例的运动参数的处理装置700包括获取模块710、检测模块720、和***模块730。所述各个模块可分别执行上文中结合图2-6描述的运动参数的处理方法的各个步骤/功能。以下仅对该运动参数的处理装置700的各部件的主要功能进行描述,而省略以上已经描述过的细节内容。
获取模块710用于获取目标关节的运动参数序列。
检测模块720用于检测运动参数序列内是否存在换向参数集合,每个换向参数集合包括使运动部件的运动方向换向的三条时间数据相邻的运动参数。
***模块730用于如果检测到至少一个换向参数集合,则对于至少一个换向参数集合中的每一个,在该换向参数集合中***至少一条换向运动参数,以获得新的运动参数序列。
图8示出了根据本发明一个实施例的运动参数的处理***800的示意性框图。运动参数的处理***800包括存储装置(即存储器)810以及处理器820。
所述存储装置810存储用于实现根据本发明实施例的运动参数的处理方法中的相应步骤的计算机程序指令。
所述处理器820用于运行所述存储装置810中存储的计算机程序指令,以执行根据本发明实施例的运动参数的处理方法的相应步骤。
在一个实施例中,计算机程序指令被处理器810运行时用于执行以下步骤:获取目标关节的运动参数序列;检测运动参数序列内是否存在换向参数集合,每个换向参数集合包括使运动部件的运动方向换向的三条时间数据相邻的运动参数;以及如果检测到至少一个换向参数集合,则对于至少一个换向参数集合中的每一个,在该换向参数集合中***至少一条换向运动参数,以获得新的运动参数序列,其中,至少一条换向运动参数用于指示运动部件在预设时间内通过换向时的回程间隙。
示例性地,本文所述的运动参数的处理***可以与上述运动控制***是同一***。
此外,根据本发明又一方面,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时使得所述计算机或处理器执行本发明实施例的上述运动参数的处理方法的相应步骤。所述存储介质例如可以包括平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。
本领域普通技术人员通过阅读上文关于运动参数的处理方法的相关描述,可以理解上述运动参数的处理装置、***和存储介质的具体实现方案,为了简洁,在此不再赘述。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的运动参数的处理装置中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。