具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
为了解决上述速度反向时引起机器人卡顿、动作不协调的问题,本发明实施例提供一种运动参数的处理方法。根据该运动参数的处理方法,可以在出现速度反向时插入一条速度等于0的换向运动参数,以优化机器人的运动部件的运行。根据本发明实施例的运动参数的处理方法可以应用于任意机器人或采用与机器人类似的工作方式的设备的控制领域。
根据本发明实施例的运动参数的处理方法可以应用于运动控制系统。本文描述的运动控制系统可以包括机器人控制设备和待控制的设备。机器人控制设备可以包括例如上位机、示教器等。待控制的设备可以包括例如机器人、用于驱动机器人运动的驱控器等。此外,本文描述的运动控制部件可以包括驱动器,运动部件可以包括电机。
本文描述的机器人可以是自动执行工作的机器装置。机器人可以包括机器人本体、末端执行器(或称为工具)。本体可以包括多个关节,例如基座、大臂、小臂、腕等。末端执行器例如是一个可以开合的夹爪/物体夹持部,也可以是其他操作工具。末端执行器由机器人控制设备控制按照相应路线运动并完成预定的动作。具体例如,末端执行器受机器人控制设备的操控,实现在三维的空间中运动,并且在指定的位置执行相关动作,例如抓取、释放或其他动作。
以电机配合减速器为例,电机配合减速器是机械臂(或称为机械手、多轴机器人、多关节机器人等)的主要运动执行部件,机械臂主要是根据预定的路线从一个初始位置夹取目标物体到目标位置,适用于诸多工业领域的机械自动化作业。
现在市场上的机械臂主要包括四轴机器人(具有四个关节)和六轴机器人(具有六个关节),它们均包括有基座、手臂和末端的物体夹持部,手臂上关节的多少决定了机器人的“轴”的数量,每一个关节都是由一个电机的转动来驱动、以实现关节的运动。
下面结合图1描述根据本发明实施例的运动控制系统,以帮助理解根据本发明实施例的运动参数的处理方法的示例性应用环境。图1示出根据本发明一个实施例的运动控制系统100的示意性框图。需注意,本发明实施例提供的运动参数的处理方法可以在其他与运动控制系统100相似的系统上实现,并不局限于图1所示的具体示例。
如图1所示,运动控制系统100可以包括人机交互单元(即机器人控制设备)110、控制器局域网络(CAN)数据线120、运动控制部件130和电机(即运动部件)140。运动控制部件130包括CAN数据收发单元1302、缓存1304、解算单元1306、波表1308、PWM波形发生器1310和电机驱动单元1312。
用户在使用运动控制部件(例如驱控器)130控制电机140时,可以通过人机交互单元110编辑运动参数。人机交互单元110经由CAN数据线120将用户编辑的运动参数发送给运动控制部件130,运动控制部件130对接收到的运动参数进行解算,得到波表数据,然后生成PWM波形,驱动电机运动。
具体地,运动控制部件130中的解算单元1306可以读取运动参数,然后将读取的运动参数利用解算公式进行插补解算等处理,将运动参数转换为波表数据,存储在波表1308中。
波表1308可以采用DDR存储器等实现,用于存储波表数据,可以根据设计需要设置波表1308的存储深度的大小。
PWM波形发生器1310用于根据波表1308中存储的波表数据生成对应的PWM波形数据。PWM波形有时也可以称为脉冲波形,具有高低电平两个状态,在运动控制领域可以通过调节PWM波形的占空比达到控制电机转速、电磁阀开关状态等目的。PWM波形发生器1310可以采用现有的各种PWM波形发生器实现,例如采用直接数字频率合成(DDS)信号发生技术实现的PWM波形发生器、采用数字计数技术实现的PWM波形发生器等。
因此,解算单元1306将用户设置的实际运动参数转换为产生PWM波形的波表数据,PWM波形发生器1310根据波表数据产生对应的PWM波形数据,再经过数模转换、放大滤波等处理后,发送给电机驱动单元1312来驱动电机140运动。
电机驱动单元1312用于根据PWM波形驱动电机140运动,可以利用各类电机驱动芯片实现。
下面,将结合图2描述根据本发明实施例的运动参数的处理方法。图2示出根据本发明一个实施例的运动参数的处理方法200的示意性流程图。如图2所示,运动参数的处理方法200包括步骤S210、S220、S230。
在步骤S210,获取目标关节的运动参数序列。
本文描述的运动参数序列可以包括至少一条运动参数。在运动参数序列包括少于两条运动参数的情况下,可以理解为不存在速度反向。在运动参数序列包括至少两条运动参数的情况下,有可能存在速度反向。
可选地,可以接收用户输入的末端执行器的运动参数,并且可以将接收到的末端执行器的运动参数换算为机器人的各个关节的运动参数。可选地,还可以直接接收用户输入的机器人的各个关节的运动参数。也就是说,用户既可以输入末端执行器的运动参数,再由机器人控制设备和/或运动控制部件换算为各个关节的运动参数,也可以输入机器人的各个关节的运动参数。
可选地,步骤S210所获取的运动参数序列中的运动参数可以是用户初始编辑的或者经过运动控制系统进一步处理(例如插值)后的运动参数。
目标关节可以是机器人的任意一个关节。对于机器人的任意一个关节,均可以执行本文描述的反向速度参数插值操作,即可以执行步骤S210-S230。
运动参数的内容可以根据运动部件(例如电机)的实际构成不同而有所不同。示例性地,运动参数可以包括位置数据、速度数据和时间数据中的一项或多项。所述位置数据可以是空间直角坐标系中的坐标数据,也可以是旋转角度或其他与位置相关的数据。位置数据是空间直角坐标系中的坐标数据的情况下,运动参数可以称为LVT参数。位置数据是旋转角度的情况下,运动参数可以称为PVT参数。
本文主要以PVT参数作为运动参数的示例进行说明,PVT参数可以包括旋转角度(可以称为P)、旋转速度(可以称为V)、旋转时间(可以称为T)。图3示出了根据本发明一个实施例的关节的运动参数的示例。为了完成某个动作,用户可以在人机交互单元110的人机交互界面上所显示的运动参数列表中编辑一组PVT参数,例如图3所示的示例中编辑了4条PVT参数S1、S2、S3、S4。第一条PVT参数可以由用户输入,也可以由系统预设好,该第一条PVT参数可以默认为(0,0,0)。第二条及以后的PVT参数可以由用户根据需求设置。
在步骤S220,检测运动参数序列内是否存在换向参数集合,每个换向参数集合包括速度数据反向的两条时间数据相邻的运动参数。
可以对各关节的PVT参数进行检测,判断是否存在前后两条PVT参数的速度方向是相反的,如果存在,则可以在这两条PVT参数之间插入一条速度为0的PVT参数。如上所述,如果在运行时速度突然反向,机器人可能会出现突然卡顿、运动不协调等问题,因此可以在反向位置处添加一条速度为0的PVT参数,这样可以使电机先停止、再反向运动,从而可以优化电机的运行。
获取运动参数序列之后,可以对该序列内的运动参数进行检查,判断是否存在速度反向的情况。例如,可以按照时间数据的顺序将运动参数序列中的所有运动参数分别组合成为一个或多个集合,每个集合包括时间数据相邻的两条运动参数。可以理解的是,在本文中,不同的集合可以包含一部分相同的运动参数。例如,假设目标关节的运动参数序列包括五条运动参数S1、S2、S3、S4、S5,这五条运动参数按照时间数据从小到大排列。这五条运动参数可以共组合成四个集合,其中,S1、S2可以组成第一个集合,S2、S3可以组成第二个集合,S3、S4可以组成第三个集合,S4、S5可以组成第四个集合。可以对每个集合中的运动参数进行分析,判断是否存在速度反向的情况。
比较可取的是,在机器控制设备和/或运动控制部件换算获得关节的运动参数时,即对所有的运动参数按照时间数据的顺序排序,这样可以直接按照排好的顺序遍历关节的运动参数,判断是否存在速度反向的情况。
在步骤S230,如果检测到至少一个换向参数集合,则对于至少一个换向参数集合中的每一个,在该换向参数集合中插入至少一条换向运动参数,以获得新的运动参数序列,其中,换向运动参数中的速度数据等于0并且换向运动参数中的时间数据位于该换向运动参数插入的换向参数集合中的两条运动参数的时间数据之间。
下面描述插入的换向运动参数中的各种数据的计算方式。
换向运动参数中的速度数据等于0是已经确定的,后面只需确定位置数据和时间数据。示例性地,换向运动参数中的位置数据和时间数据可以根据换向运动参数插入对应的换向参数集合时所采用的插值方式确定。
由于换向参数集合中的两条运动参数的位置数据和时间数据是已知的,在插值方式确定的情况下,可以基于插值方式确定换向运动参数中的位置数据和时间数据与换向参数集合中的两条运动参数的位置数据和时间数据之间的关系,并基于这一关系计算换向运动参数中的位置数据和时间数据。
示例性地,至少一个换向参数集合中的每一个包括按时间数据从小到大排序的第一条运动参数(P1,V1,T1)和第二条运动参数(P2,V2,T2),插入的换向运动参数为(P3,V3,T3),T3和P3按照以下公式计算:
T3=T2×sca+(1-sca)×T1;
P3=P1+0.5×sca×(T2-T1)×V1;
其中,P1、P2、P3为位置数据,V1、V2、V3为速度数据,T1、T2、T3为时间数据。
例如,假设运动参数序列中存在两条PVT参数(P1,V1,T1)和(P2,V2,T2),如下:
P1:180 V1:2 T1:1.2;
P2:179 V2:-1 T2:1.3。
由于第一条PVT参数和第二条PVT参数的速度相反,存在速度反向,因此可以插入第三条PVT参数(P3,V3,T3),这条PVT参数的速度V3=0。
在一个示例中,P3和T3可以按照速度变化比值来确定,例如,可以按照以下公式计算T3和P3:
T3=T2×sca+(1-sca)×T1;
P3=P1+0.5×sca×(T2-T1)×V1。
sca为速度变化比值。
将两条PVT参数(P1,V1,T1)和(P2,V2,T2)的数据代入上述公式,可以计算获得sca=2/3,T3=1.2667,P3=180.0667。如下表所示:
P1:180 |
V1:2 |
T1:1.2 |
P3:180.0667 |
V3:0 |
T3:1.2667 |
P2:179 |
V2:-1 |
T2:1.3 |
计算换向运动参数中的时间数据和位置数据的方式并不局限于本文描述的方式,它们可以采用其他合适的方式来计算。上述公式示出的是在线性插值的情况下时间数据和位置数据的计算方式。
根据本发明实施例的运动参数的处理方法,在出现速度反向时插入一条速度等于0的换向运动参数,这样可以使机器人的运动部件先停止、再反向运动,从而可以优化运动部件的运行。
根据本发明实施例,方法200还可以包括:接收用户输入的用于指示开启速度反向检测功能的优化指令;其中,检测运动参数序列内是否存在换向参数集合的步骤响应于优化指令的接收而执行。
速度反向检测功能对应着上述反向速度参数插值操作,开启该功能之后就可以开始执行上述步骤S220-S230。速度反向检测功能可以在机器人控制设备的人机交互界面上作为选项示出,用户可以根据需要选择是否采用该优化功能。如果用户需要使用速度反向检测功能,则可以勾选该功能所对应的选项。
根据本发明实施例,在该换向参数集合中插入至少一条换向运动参数采用以下插值方式中的一种或多种实现:梯形曲线插值、S型曲线插值、3次多项式曲线插值、5次多项式曲线插值、线性插值。示例性地,可以向用户提供多种自动插值方式的选项,供用户自主选择,这样可以满足用户不同的需要。
根据本发明实施例,获取目标关节的运动参数序列(步骤S210)可以包括:接收用户输入的机器人末端的运动参数序列;以及将机器人末端的运动参数序列换算为至少一个关节的运动参数序列,目标关节为至少一个关节之一。
根据本发明实施例,获取目标关节的运动参数序列(步骤S210)可以包括:接收用户输入的目标关节的运动参数序列。
如上文所述,用户既可以输入末端执行器(即机器人末端)的运动参数,再由机器人控制设备和/或运动控制部件换算为各个关节的运动参数,也可以输入机器人的各个关节的运动参数。因此,用户输入运动参数时有较大自由度,机器人控制设备(例如上位机)和/或运动控制部件(例如驱控器)可以在有需要时对用户输入的运动参数进行换算,以方便后续进行反向速度参数插值等处理。
虽然在本文的描述中以插入一条换向运动参数为例进行说明,然而这并非对本发明的限制。例如,可以在每个换向参数集合中插入两条或多于两条换向运动参数,每条换向运动参数满足以下条件:换向运动参数中的速度数据等于0并且换向运动参数中的时间数据位于换向运动参数插入的换向参数集合中的两条运动参数的时间数据之间。
根据本发明另一方面,提供一种运动参数的处理装置。图4示出根据本发明一个实施例的运动参数的处理装置400的示意性框图。
如图4所示,根据本发明实施例的运动参数的处理装置400包括获取模块410、检测模块420、和插入模块430。所述各个模块可分别执行上文中结合图1-3描述的运动参数的处理方法的各个步骤/功能。以下仅对该运动参数的处理装置400的各部件的主要功能进行描述,而省略以上已经描述过的细节内容。
获取模块410用于获取目标关节的运动参数序列。
插值模块420用于检测所述运动参数序列内是否存在换向参数集合,每个换向参数集合包括速度数据反向的两条时间数据相邻的运动参数。
解算模块430用于如果检测到至少一个换向参数集合,则对于所述至少一个换向参数集合中的每一个,在该换向参数集合中插入至少一条换向运动参数,以获得新的运动参数序列,其中,所述换向运动参数中的速度数据等于0并且所述换向运动参数中的时间数据位于所述换向运动参数插入的换向参数集合中的两条运动参数的时间数据之间。
图5示出了根据本发明一个实施例的运动参数的处理系统500的示意性框图。运动参数的处理系统500包括存储装置(即存储器)510以及处理器520。
所述存储装置510存储用于实现根据本发明实施例的运动参数的处理方法中的相应步骤的计算机程序指令。
所述处理器520用于运行所述存储装置510中存储的计算机程序指令,以执行根据本发明实施例的运动参数的处理方法的相应步骤。
在一个实施例中,计算机程序指令被处理器510运行时用于执行以下步骤:获取目标关节的运动参数序列;检测所述运动参数序列内是否存在换向参数集合,每个换向参数集合包括速度数据反向的两条时间数据相邻的运动参数;以及如果检测到至少一个换向参数集合,则对于所述至少一个换向参数集合中的每一个,在该换向参数集合中插入至少一条换向运动参数,以获得新的运动参数序列,其中,所述换向运动参数中的速度数据等于0并且所述换向运动参数中的时间数据位于所述换向运动参数插入的换向参数集合中的两条运动参数的时间数据之间。
图5所示的运动参数的处理系统500可以采用与图1所示的运动控制系统100相同或相似的硬件结构和工作方式,可以参照上文关于运动控制系统100的描述理解运动参数的处理系统500。
此外,根据本发明又一方面,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时使得所述计算机或处理器执行本发明实施例的上述运动参数的处理方法的相应步骤。所述存储介质例如可以包括平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。
本领域普通技术人员通过阅读上文关于运动参数的处理方法的相关描述,可以理解上述运动参数的处理装置、系统和存储介质的具体实现方案,为了简洁,在此不再赘述。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的运动参数的处理装置中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。