CN109605378A - 运动参数的处理方法、装置和系统及存储介质 - Google Patents

运动参数的处理方法、装置和系统及存储介质 Download PDF

Info

Publication number
CN109605378A
CN109605378A CN201910054732.1A CN201910054732A CN109605378A CN 109605378 A CN109605378 A CN 109605378A CN 201910054732 A CN201910054732 A CN 201910054732A CN 109605378 A CN109605378 A CN 109605378A
Authority
CN
China
Prior art keywords
kinematic parameter
interpolation
parameter
joint
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910054732.1A
Other languages
English (en)
Other versions
CN109605378B (zh
Inventor
丁建伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MGA Technology Shenzhen Co Ltd
Original Assignee
Megarobo Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Megarobo Technologies Co Ltd filed Critical Megarobo Technologies Co Ltd
Priority to CN201910054732.1A priority Critical patent/CN109605378B/zh
Publication of CN109605378A publication Critical patent/CN109605378A/zh
Application granted granted Critical
Publication of CN109605378B publication Critical patent/CN109605378B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture

Abstract

本发明实施例提供一种运动参数的处理方法、装置和系统及存储介质。方法包括:获取机器人的末端执行器的末端运动参数序列;对末端运动参数序列进行插值,以获得插值参数序列;以及将插值参数序列换算为机器人的至少一个关节的关节运动参数序列。上述方法只需用户设置少量的末端执行器的运动参数,通过插值方式获得更大数量的运动参数,这种方式可以大大地降低用户的工作复杂度,是对用户十分友好的运动控制方式,并且使得在保持用户低工作量的同时电机或机器人实现平稳运行成为可能。

Description

运动参数的处理方法、装置和系统及存储介质
技术领域
本发明涉及运动控制技术领域,更具体地涉及一种运动参数的处理方法、装置和系统及存储介质。
背景技术
在基于机器人(例如机械臂)等类似技术的运动控制系统中,待控制的设备(例如机器人或驱控器等)与机器人控制设备(例如上位机等)建立连接关系,用户可以通过机器人控制设备控制机器人运动。
典型地,用户可以通过编辑机器人的末端执行器的运动参数实现对机器人的运动控制。这种方式下,用户在机器人控制设备上设置的运动参数是否合适,会很大程度上影响电机(或说机器人)的运行平稳与否。
例如,对于同一个动作,运动参数如果设置得太少,那么电机运动的加减速可能会特别大,对电机、减速器等的冲击大,运动过程不平稳,容易出现卡顿、异响等现象;如果想要减小这些问题,就需要将运动参数设置的比较多,这对用户来说是很难完成的,费时费力且容易出错,同时对运动控制部件(例如驱控器)的通信和解算能力要求也特别高,是很难实现的。
因此,如何提供对用户来说简单易用,又可以使电机(或说机器人)平滑运行的运动控制方案,一直是困扰本领域技术人员的难题。
发明内容
考虑到上述问题而提出了本发明。本发明提供了一种运动参数的处理方法、装置和系统及存储介质。
根据本发明一方面,提供了一种运动参数的处理方法,包括:获取机器人的末端执行器的末端运动参数序列;对末端运动参数序列进行插值,以获得插值参数序列;以及将插值参数序列换算为机器人的至少一个关节的关节运动参数序列。
示例性地,方法还包括:接收用户输入的用于指示插值信息的第一插值指令,其中,第一插值信息包括插值方式、插值步长、加速段时间占比和减速段时间占比中的一项或多项;对末端运动参数序列进行插值,以获得插值参数序列包括:根据第一插值指令所指示的插值信息对末端运动参数序列进行插值,以获得插值参数序列。
示例性地,方法还包括:接收用户输入的用于开启插值功能的第二插值指令;其中,对末端运动参数序列进行插值,以获得插值参数序列的步骤响应于第二插值指令的接收而执行。
示例性地,末端运动参数序列中的每条运动参数包括插值数据,任一运动参数的插值数据用于指示是否在该运动参数与按照时间数据从小到大排序位于该运动参数之后的下一运动参数之间执行插值。
示例性地,在任一运动参数的插值数据为1时,指示在该运动参数与按照时间数据从小到大排序位于该运动参数之后的下一运动参数之间执行插值;在任一运动参数的插值数据为0时,指示不在该运动参数与按照时间数据从小到大排序位于该运动参数之后的下一运动参数之间执行插值。
示例性地,末端运动参数序列中的每条运动参数包括坐标数据、夹爪位移数据和时间数据。
示例性地,对末端运动参数序列进行插值采用以下插值方式中的一种或多种实现:梯形曲线插值、S型曲线插值、3次多项式曲线插值、5次多项式曲线插值、线性插值。
示例性地,方法还包括:对于至少一个关节中的目标关节,检测目标关节的关节运动参数序列内是否存在第一换向集合,每个第一换向集合包括使机器人的运动部件的运动方向换向的三条时间数据相邻的运动参数;以及如果检测到至少一个第一换向集合,则对于至少一个第一换向集合中的每一个,在该第一换向集合中插入至少一条第一换向运动参数,以获得新的关节运动参数序列,其中,至少一条第一换向运动参数用于指示运动部件在预设时间内通过换向时的回程间隙。
示例性地,至少一个第一换向集合中的每一个包括按时间数据从小到大排序的第一条运动参数(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:对于关节运动参数序列中按时间数据从小到大排序位于当前的有效运动参数之后的第x+i条运动参数,依次计算第x+i条运动参数的位置数据与当前的有效运动参数的位置数据之间的差值,直至找到终点运动参数,终点运动参数的位置数据与当前的有效运动参数的位置数据之间的差值大于预设阈值,其中,x为当前的有效运动参数在关节运动参数序列中的序号,i=1,2,3……m,m≤N1-x,N1是关节运动参数序列中的运动参数的总条数;步骤c:将当前的有效运动参数与终点运动参数之间的运动参数作为冗余运动参数删除,将终点运动参数作为当前的有效运动参数保留,并返回步骤b;步骤d:确定保留的所有有效运动参数为新的关节运动参数序列。
示例性地,方法还包括:对于至少一个关节中的目标关节,检测目标关节的关节运动参数序列内是否存在第二换向集合,每个第二换向集合包括速度数据反向的两条时间数据相邻的运动参数;以及如果检测到至少一个第二换向集合,则对于至少一个第二换向集合中的每一个,在该第二换向集合中插入至少一条第二换向运动参数,以获得新的关节运动参数序列,其中,第二换向运动参数中的速度数据等于0。
示例性地,方法还包括:将关节运动参数序列解算为机器人的运动部件的驱动参数,以驱动运动部件运动。
根据本发明另一方面,提供一种运动参数的处理装置,包括:获取模块,用于获取机器人的末端执行器的末端运动参数序列;插值模块,用于对末端运动参数序列进行插值,以获得插值参数序列;以及换算模块,用于将插值参数序列换算为机器人的至少一个关节的关节运动参数序列。
根据本发明另一方面,提供一种运动参数的处理系统,包括处理器和存储器,其中,存储器中存储有计算机程序指令,计算机程序指令被处理器运行时用于执行上述运动参数的处理方法。
根据本发明另一方面,提供一种存储介质,在存储介质上存储了程序指令,程序指令在运行时用于执行上述运动参数的处理方法。
根据本发明实施例的运动参数的处理方法、装置和系统及存储介质,只需用户设置少量的末端执行器的运动参数,通过插值方式获得更大数量的运动参数,这种方式可以大大地降低用户的工作复杂度,是对用户十分友好的运动控制方式,并且使得在保持用户低工作量的同时电机或机器人实现平稳运行成为可能。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1示出根据本发明一个实施例的运动控制系统的示意性框图;
图2示出根据本发明一个实施例的运动参数的处理方法的示意性流程图;
图3示出根据本发明一个实施例的用户编辑的运动轨迹文件的示意图;
图4a示出根据本发明一个实施例的线性插值所对应的速度-时间曲线示意图;
图4b示出根据本发明另一个实施例的线性插值所对应的速度-时间曲线示意图;
图4c示出根据本发明一个实施例的三次多项式插值所对应的速度-时间曲线示意图;
图4d示出根据本发明一个实施例的S型插值所对应的速度-时间曲线示意图;
图4e示出根据本发明另一个实施例的S型插值所对应的速度-时间曲线示意图;
图5示出根据本发明一个实施例的基于插值参数序列换算的关节运动参数序列的示意图;
图6示出根据本发明一个实施例的机器控制设备上的人机交互界面的示意图;
图7示出根据一个示例的机器人的示意图;
图8示出根据本发明一个实施例的运动控制流程的示意图;
图9示出根据本发明一个实施例的运动参数的处理装置的示意性框图;以及
图10示出了根据本发明一个实施例的运动参数的处理系统的示意性框图。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
为了解决上述运动参数的设置问题,本发明实施例提供一种运动参数的处理方法。该运动参数的处理方法可以对用户初始设置的运动参数自动进行插值,从而使得在保持用户低工作量的同时电机或说机器人实现平稳运行成为可能。根据本发明实施例的运动参数的处理方法可以应用于任意机器人或采用与机器人类似的工作方式的设备的控制领域。
根据本发明实施例的运动参数的处理方法可以应用于运动控制系统。本文描述的运动控制系统可以包括机器人控制设备和待控制的设备。机器人控制设备可以包括例如上位机、示教器等。待控制的设备可以包括例如机器人、用于驱动机器人运动的驱控器等。此外,本文描述的运动控制部件可以包括驱动器,运动部件可以包括电机。
本文描述的机器人可以是自动执行工作的机器装置。机器人可以包括机器人本体、末端执行器(或称为工具)。本体可以包括多个关节,例如基座、大臂、小臂、腕等。末端执行器例如是一个可以开合的夹爪/物体夹持部,也可以是其他操作工具。末端执行器由机器人控制设备控制按照相应路线运动并完成预定的动作。具体例如,末端执行器受机器人控制设备的操控,实现在三维的空间中运动,并且在指定的位置执行相关动作,例如抓取、释放或其他动作。
以电机配合减速器为例,电机配合减速器是机械臂(或称为机械手、多轴机器人、多关节机器人等)的主要运动执行部件,机械臂主要是根据预定的路线从一个初始位置夹取目标物体到目标位置,适用于诸多工业领域的机械自动化作业。
现在市场上的机械臂主要包括四轴机器人(具有四个关节)和六轴机器人(具有六个关节),它们均包括有基座、手臂和末端的物体夹持部,手臂上关节的多少决定了机器人的“轴”的数量,每一个关节都是由一个电机的转动来驱动、以实现关节的运动。
下面结合图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获取的运动参数是用于控制机器人的末端执行器运动的参数。如上所述,用户可以利用人机交互单元110编辑运动参数,并随后发送给机器人的运动控制部件(例如驱控器)130,运动控制部件130可以对接收到的运动参数进行插值和解算后控制运动部件140运动。
运动参数的内容可以根据运动部件(例如电机)的实际构成不同而有所不同。示例性地,运动参数可以包括位置数据、速度数据和时间数据中的一项或多项。所述位置数据可以是空间直角坐标系中的坐标数据,也可以是旋转角度或其他与位置相关的数据。位置数据是空间直角坐标系中的坐标数据的情况下,运动参数可以称为LVT参数。位置数据是旋转角度的情况下,运动参数可以称为PVT参数。
本文主要以LVT参数作为末端执行器的运动参数的示例,并以PVT参数作为关节的运动参数的示例进行说明。LVT参数可以包括空间直角坐标系中的坐标(可以称为X、Y、Z)和到达相应坐标点的时间(可以称为T)。PVT参数可以包括旋转角度(可以称为P)、旋转速度(可以称为V)、旋转时间(可以称为T)。
示例性地,末端运动参数序列中的每条运动参数可以包括坐标数据、夹爪位移数据和时间数据。
坐标数据是指末端执行器上的固定点的坐标,例如机械爪的某一中心点的坐标。任一运动参数的坐标数据用于指示末端执行器在该运动参数所指示的时间(即时间数据)应当到达的位置。任一运动参数的时间数据用于指示末端执行器上的固定点到达该运动参数所指示的位置(即坐标数据)的时间。夹爪位移数据是指末端执行器的两个夹爪横向移动的距离。夹爪位移数据是可选的。示例性而非限制性地,末端执行器可以具有能够开合,即能够在横向方向上发生位移的夹爪。在这种情况下,末端执行器可以具有夹爪位移数据。该夹爪位移数据在下文描述的示例中用END表示。
示例性地,末端运动参数序列中的每条运动参数可以包括插值数据,任一运动参数的插值数据用于指示是否在该运动参数与按照时间数据从小到大排序位于该运动参数之后的下一运动参数之间执行插值。
可选地,可以基于预设规则对末端运动参数序列进行插值。在一个示例中,预设规则可以包括在末端运动参数序列中的每两条时间数据相邻的运动参数之间均执行插值。在每两条相邻的运动参数之间执行插值时,所采用的插值方式和插值步长等插值信息可以基于用户输入的指令(即下述第一插值指令)确定,也可以采用默认设置。在另一个示例中,预设规则可以包括在坐标数据之间的差值超过预设差值的两个时间数据相邻的运动参数之间执行插值,在坐标数据之间的差值未超过预设差值的两个时间数据相邻的运动参数之间不执行插值。预设规则还可以是其他合适的规则,本文不一一列举。
可选地,如果运动参数不包括插值数据,即用户没有为末端运动参数序列中的运动参数指定是否插值的情况下,可以采用上述预设规则执行插值。如果运动参数包括插值数据,即用户为末端运动参数序列中的运动参数指定是否插值的情况下,可以优先基于插值数据执行插值。
通过插值数据,可以为每条运动参数分别指定是否插值,这样用户可以有较大的自由度来调控各个位置处的插值状态,这种插值方案能够获得更符合用户实际需求的插值结果。
示例性地,在任一运动参数的插值数据为1时,指示在该运动参数与按照时间数据从小到大排序位于该运动参数之后的下一运动参数之间执行插值;在任一运动参数的插值数据为0时,指示不在该运动参数与按照时间数据从小到大排序位于该运动参数之后的下一运动参数之间执行插值。
可选地,插值数据可以是二值化数据,例如,其可以取0或1。上述的插值数据为1指示插值,插值数据为0指示不插值的方案仅是示例,而非对本发明的限制。例如,可以在插值数据为0时指示不插值,插值数据为1时指示插值,即与上述方案以相反条件执行。
下面结合图3描述运动参数的示例。图3示出根据本发明一个实施例的用户编辑的运动轨迹文件的示意图。示例性地,用户可以按照某种预定格式编辑运动轨迹文件,运动轨迹文件中可以包括关于末端运动参数序列的信息。如图3所示,运动轨迹文件的后缀名为.asp,表明运动轨迹文件为动态服务器页面(Active Server Pages,asp)格式的文件。文件内容的前两行(L1和L2行)为标识,是固定的写法。最后三行(L3-L5行)为三条运动参数,它们组成末端运动参数序列。每条运动参数中的几个数值分别代表L2行的对应位置处的标识所指示的数据的取值。
在L2行中,X、Y、Z代表机器人的末端执行器的空间点坐标。Time代表时间。L3行的Time取值为0,代表例如第0秒(即初始时刻)末端执行器到达坐标(250,0,512)处;L4行的Time取值为1,代表例如第1秒末端执行器到达坐标(250,0,462)处;L5行的Time取值为2,代表例如第2秒末端执行器到达坐标(250,0,512)处。
END代表夹爪位移数据。L3、L4、L5行的END取值均为0,代表末端执行器的夹爪闭合,不产生位移。
mode代表两条运动参数之间是否需要进行轨迹规划(即插值),需要插值则将mode置为1,不需要则将mode置为0。例如,假设有A、B、C三个轨迹点,如果A、B两点间需要插值,B、C两点间不需要插值,则A点对应的运动参数中的mode置为1,B点对应的运动参数中的mode置为0,C点对应的运动参数作为最后一行运动参数,其中的mode置为0。例如,在图3中,L3行的mode取值为1,代表在L3行和L4行运动参数之间执行插值;L4行的mode取值为1,代表在L4行和L5行运动参数之间执行插值;L5行作为最后一行,mode为0。
在步骤S220,对末端运动参数序列进行插值,以获得插值参数序列。
如上所述,为了完成某个动作,用户可以在运动轨迹文件中编辑一组运动参数。随后,可以在这一组运动参数中进行插值。插值方式可以由用户设定或者采用默认方式,这将在下文描述。
示例性地,对末端运动参数序列进行插值(步骤S220)可以采用以下插值方式中的一种或多种实现:梯形曲线插值、S型曲线插值、3次多项式曲线插值、5次多项式曲线插值、线性插值。示例性地,可以向用户提供多种自动插值方式的选项,供用户自主选择,这样可以满足用户不同的需要。
下面简单描述几种示例性插值方式。
轨迹规划(即插值)可以示例性地按等步长在两点之间插入若干点,轨迹规划的作用是保证机器人的末端执行器在移动时保持直线运动。末端执行器在移动时可以分为三个阶段:加速段、匀速段、减速段,其中匀速段的持续时间可以为0(即只有加速段和减速段)。
(1)线性插值:也叫做梯形插值,使末端执行器在整个移动过程中的速度-时间曲线呈现为梯形。使用此模式可以设置加速段和减速段的时间占比。如果加速段的时间占比与减速段的时间占比之和等于1,则机器人的运动轨迹不存在匀速段。原则上不允许出现加速段的时间占比与减速段的时间占比之和大于1的情况。
图4a示出根据本发明一个实施例的线性插值所对应的速度-时间曲线示意图。在图4a中,示出的是加速段的时间占比与减速段的时间占比之和小于1的线性插值。
图4b示出根据本发明另一个实施例的线性插值所对应的速度-时间曲线示意图。在图4b中,示出的是加速段的时间占比与减速段的时间占比之和等于1的线性插值。
(2)三次多项式插值:使末端执行器在整个移动过程中的速度-时间曲线呈现为C型,此模式不存在匀速段。
图4c示出根据本发明一个实施例的三次多项式插值所对应的速度-时间曲线示意图。
(3)S型插值:使末端执行器在整个移动过程中的速度-时间曲线呈现为S型。S型插值和梯形插值类似,但是由于S型插值的加速度是连续的,因此可以使电机运转得更加顺畅。
图4d示出根据本发明一个实施例的S型插值所对应的速度-时间曲线示意图。在图4d中,示出的是加速段的时间占比与减速段的时间占比之和小于1的S型插值。
图4e示出根据本发明另一个实施例的S型插值所对应的速度-时间曲线示意图。在图4e中,示出的是加速段的时间占比与减速段的时间占比之和等于1的S型插值。
下面以采用梯形插值方式对图3所示的末端运动参数序列进行插值为例来描述本发明。
在L3和L4行运动参数之间进行插值的结果如下:
(250,0,512)->(250,0,462)=>(250,0,512)->(250,0,507)->(250,0,502)->(250,0,501.28)->(250,0,496.28)->(250,0,491.28)->(250,0,486.28)->(250,0,481.28)->(250,0,477.71)->(250,0,472.71)->(250,0,467.71)->(250,0,462)。
在L4和L5行运动参数之间进行插值的结果如下:
(250,0,462)->(250,0,512)=>(250,0,462)->(250,0,467.71)->(250,0,472.71)->(250,0,477.71)->(250,0,481.28)->(250,0,486.28)->(250,0,491.28)->(250,0,496.28)->(250,0,501.28)->(250,0,502)->(250,0,507)->(250,0,512)。
通过上述插值,可以基于末端运动参数序列中的少量运动参数获得较大量的运动参数,这些运动参数可以称为插值参数序列。实际应用中,可以根据需要进行插值,以获得使电机或说机器人运行的柔顺度满足要求的运动参数。
步骤S220可以利用机器人控制设备和/或运动控制部件执行。
在步骤S230,将插值参数序列换算为机器人的至少一个关节的关节运动参数序列。
图5示出根据本发明一个实施例的基于插值参数序列换算的关节运动参数序列的示意图。图5所示的关节运动参数序列是基于对图3所示的末端运动参数序列进行插值获得的插值参数序列换算获得的。
如图5所示,经过换算,可以获得基座关节、大臂关节、小臂关节、腕关节、机械手这五个关节各自的运动参数,每个关节具有25条运动参数,每个关节的运动参数可以包括该关节的转动角度和到达时刻。
步骤S230可以利用机器人控制设备和/或运动控制部件执行。
各关节的运动参数可以在运动控制部件中进行解算等操作。上文已经结合图1描述了运动控制部件130对关节的运动参数进行解算,并驱动运动部件运动的工作原理,此处不再赘述。
可选地,至少一个关节的关节运动参数序列可以存储到存储器和/或显示在机器人控制设备的人机交互界面上,所述存储器可以包括机器人控制设备的存储器和/或运动控制部件的缓存(例如图1所示的缓存1304)。
本发明实施例提供的运动控制方案可以简化用户的操作,用户只需要指定末端执行器在什么时刻到达什么位置即可,其无需了解专业知识,内部的轨迹规划(即插值)等操作可以由运动控制系统自动完成。这样用户可以很容易地学会对机器人进行运动控制。
根据本发明实施例的运动参数的处理方法,只需用户设置少量的末端执行器的运动参数,通过插值方式获得更大数量的运动参数,这种方式可以大大地降低用户的工作复杂度,是对用户十分友好的运动控制方式,并且使得在保持用户低工作量的同时电机或机器人实现平稳运行成为可能。
根据本发明实施例,方法200还可以包括:接收用户输入的用于指示插值信息的第一插值指令,其中,第一插值信息包括插值方式、插值步长、加速段时间占比和减速段时间占比中的一项或多项;对末端运动参数序列进行插值,以获得插值参数序列(步骤S220)可以包括:根据第一插值指令所指示的插值信息对末端运动参数序列进行插值,以获得插值参数序列。
图6示出根据本发明一个实施例的机器控制设备上的人机交互界面的示意图。首先,参见图6中的方框“②”标示出的位置,示出插值步长这一文本框,用户可以在文本框中输入数值,以指定插值步长。图6所示的示例中,插值步长设置为5,其单位可以是度、厘米、米等。
此外,参见图6中的方框“⑥”标示出的位置,用户可以利用鼠标点击方框“⑥”上方的“设置”按钮控件,随后可以弹出包含可设置内容的窗口。用户可以利用鼠标在“轨迹规划方式”这一列表框处选择一种插值方式,图6当前停留在“梯形”这一插值方式上。此外,用户还可以在“加速段时间占比”和“减速段时间占比”这两个文本框中分别输入数值,用于指示插值时的加速段和减速段时间占比。图6所示的示例中,加速段时间占比和减速段时间占比均设置为0.3。
上述插值步长、插值方式、加速段时间占比和减速段时间占比这些参数均可以理解为插值信息,用户可以通过选择或输入等方式对这些插值信息进行设置。随后,机器人控制设备和/或运动控制部件可以根据用户设置好的插值信息进行插值。
用户未设置的插值信息可以采用默认设置。例如,如果用户未设置插值步长,则可以采用默认的3厘米作为插值步长。
上述工作方式可以使得用户能够根据需要设计插值信息,以方便用户及时、有针对性地对插值过程进行调整。
根据本发明实施例,方法200还可以包括:接收用户输入的用于开启插值功能的第二插值指令;其中,对末端运动参数序列进行插值,以获得插值参数序列的步骤(步骤S220)响应于第二插值指令的接收而执行。
继续参考图6,参见图6中的方框“②”标示出的位置,示出“是否插值”这一复选框控件,用户选中该复选框控件时,表示需要进行插值,反之表示不需要插值。也就是说,当用户选中复选框控件时,机器人控制设备可以接收到第二插值指令,在这种情况下机器人控制设备和/或运动控制部件可以执行插值。
示例性地,在将插值参数序列换算为至少一个关节的关节运动参数序列之后,针对这些关节运动参数序列,可以执行一些优化,例如回程间隙补偿、运动参数优化、反向速度参数插值等,下面将描述这些优化的实现方式。
在下文中,为方便描述,引入目标关节的概念。目标关节可以是机器人的任意一个关节。也就是说,可以针对机器人的任意一个关节执行回程间隙补偿、运动参数优化、反向速度参数插值等优化中的一种或多种。可选地,可以针对机器人的所有关节(即本文所述的至少一个关节)均执行回程间隙补偿、运动参数优化、反向速度参数插值等优化中的一种或多种,也可以仅针对机器人的部分关节执行回程间隙补偿、运动参数优化、反向速度参数插值等优化中的一种或多种。
示例性而非限制性地,任一关节可以对应有一条或多条运动参数。即,本文描述的关节运动参数序列可以包括至少一条运动参数。
根据本发明实施例,方法200还可以包括:对于至少一个关节中的目标关节,检测目标关节的关节运动参数序列内是否存在第一换向集合,每个第一换向集合包括使机器人的运动部件的运动方向换向的三条时间数据相邻的运动参数;以及如果检测到至少一个第一换向集合,则对于至少一个第一换向集合中的每一个,在该第一换向集合中插入至少一条第一换向运动参数,以获得新的关节运动参数序列,其中,至少一条第一换向运动参数用于指示运动部件在预设时间内通过换向时的回程间隙。所述运动部件是与目标关节相对应的运动部件,其可以用于带动目标关节运动。
机器人的某个关节在一个完整的动作中可能会存在“换向”这一动作。下面结合图7描述换向动作。图7示出根据一个示例的机器人700的示意图。机器人700包括基座1、大臂2、小臂3等,其中大臂2由电机4和减速器5驱动。图7中的机器人700在抓取某个物体时,大臂2和小臂3首先要沿S1方向俯向下运动、去抓取物体,然后再沿S2方向向上抬起,最后运动到放置物体的位置,这个俯向下到向上抬起的过程可以称为一次换向过程。
上述换向过程可能存在以下问题:因机械结构存在间隙(减速器等的齿轮之间存在间隙),这个间隙(可称为回程间隙或反向间隙)会在反向运动时影响运动部件(例如电机)位移的精准度,导致机器人无法在设定的时间、以设定的速度到达设定的位置。
为了解决上述问题,本发明实施例提供一种回程间隙补偿方案,即在存在换向的位置插入运动参数(本文称为第一换向运动参数),通过插入的第一换向运动参数可以使得运动部件在预设时间(该预设时间可以根据需要设定,例如设定得尽量短)内通过回程间隙,这样有利于保证运动部件的位移精准度,也就有利于保证机器人在设定的时间、以设定的速度到达设定的位置。下面描述回程间隙补偿的一种示例性方案。
示例性地,检测目标关节的关节运动参数序列内是否存在第一换向集合可以包括:
对于关节运动参数序列中的任意三条时间数据相邻且按时间数据从小到大排序的第一条运动参数(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)这两种情况,则可以确定当前的集合存在换向,即当前的集合属于第一换向集合,如果上述两种情况不存在,则可以确定当前的集合中不存在换向,即当前的集合不属于第一换向集合。
示例性地,至少一个第一换向集合中的每一个包括按时间数据从小到大排序的第一条运动参数(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。
第一预设速度、第二预设速度、第一预设时间和第二预设时间的大小均可以根据需要设定,本发明不对此进行限制。示例性地,第一预设速度可以等于第二预设速度取反。示例性地,第一预设时间和第二预设时间可以相等。对于两个相反方向的回程间隙来说,这两个回程间隙在位移上大概率是一致的,因此,可以选择相反的速度和相等的时间来通过两个相反方向上的回程间隙。这种方案实现简单,易于控制。
第一预设时间和第二预设时间可以用微步数值表示。比较可取的是,第一预设时间和第二预设时间可以设定得较小,以使得运动部件能够尽快通过回程间隙。例如,第一预设时间可以小于第一时间阈值,第二预设时间可以小于第二时间阈值。第一时间阈值和第二时间阈值的大小均可以根据需要设定。
示例性而非限制性地,预设速度(包括第一预设速度和第二预设速度)和预设时间(包括第一预设时间和第二预设时间)可以是提前测试得到的数据,其可以内置在软件代码中,调试人员可以修改,而普通用户无权限修改。预设速度和预设时间的作用是使运动部件以期望的速度和时间(尽量设置为较快的速度、较短的时间)通过回程间隙,以使得机器人或说机器人的目标关节能够在设定的时间、以设定的速度到达设定的位置。
上述回程间隙补偿操作,即检测关节运动参数序列内是否存在第一换向集合的操作以及如果检测到至少一个第一换向集合,则对于至少一个第一换向集合中的每一个,在该第一换向集合中插入至少一条第一换向运动参数的操作,可以由机器人控制设备(例如上位机)执行,也可以由运动控制部件(例如驱控器)执行。本文描述的机器人控制设备可以与用户交互,接收用户输入的运动参数和其他指令。
需注意,通过插入第一换向运动参数获得新的关节运动参数序列,可以理解为对关节运动参数序列包含的运动参数进行更新。后续可以对新的关节运动参数序列进行解算等操作。
示例性地,上述回程间隙补偿功能可以在机器人控制设备的人机交互界面上作为选项示出,用户可以根据需要选择是否采用该功能。如果用户需要使用回程间隙补偿功能,则可以勾选该功能的选项,并输入上述预设速度和预设时间(或采用默认阈值)。
虽然在本文的描述中以插入一条第一换向运动参数为例进行说明,然而这并非对本发明的限制。例如,可以在每个第一换向集合中插入两条或多于两条第一换向运动参数,插入的所有第一换向运动参数使得运动部件在预设时间内通过换向时的回程间隙。
根据本发明实施例,对于使运动部件的运动方向换向的运动参数,在其中插入第一换向运动参数,以补偿回程间隙。该方法可以减小回程间隙对运动控制的影响,进而可以实现以下技术效果:
1:保证精度,使得将运动部件的位移精度控制在正负0.001°成为可能。
2:保证时间,在指定时间内能够到达目标位置。由于回程间隙的存在,使得运动部件到达目标位置的时间无法保证。添加换向运动参数使得运动部件在较短时间内走完回程间隙而不影响总时间成为可能。
3:保证协调性,机器人基于运动参数不停换向运行时会更协调。
根据本发明实施例,方法200还可以包括:对于至少一个关节中的目标关节,基于目标关节的关节运动参数序列中的运动参数的位置数据,检测并删除关节运动参数序列中的冗余运动参数,以获得新的关节运动参数序列。
用户初始编辑的或者经过系统进一步处理后的运动参数不够精简(例如数量过大),由于运动参数需要在运动控制系统内部进行传输(例如由机器人控制设备下载到运动控制部件)、解算等操作,这可能增加对运动控制系统的通信和解算能力的要求,也就增加运动控制系统的工作压力。
在获得关节运动参数序列之后,可以对关节运动参数序列进行一些优化。例如,如果两条运动参数之间的位置数据相差较小,则可以删除一条运动参数,以减少数据冗余。该优化功能可以在机器人控制设备的人机交互界面上作为选项示出,用户可以根据需要选择是否采用该优化功能。如果用户需要使用参数优化功能,则可以勾选优化功能的选项,并输入上述预设阈值(或采用默认阈值)。
根据本发明实施例,对于至少一个关节中的目标关节,基于目标关节的关节运动参数序列中的运动参数的位置数据,检测并删除关节运动参数序列中的冗余运动参数,以获得新的关节运动参数序列包括:步骤a:将关节运动参数序列中按时间数据从小到大排序的第一条运动参数作为当前的有效运动参数保留;步骤b:对于关节运动参数序列中按时间数据从小到大排序位于当前的有效运动参数之后的第x+i条运动参数,依次计算第x+i条运动参数的位置数据与当前的有效运动参数的位置数据之间的差值,直至找到终点运动参数,终点运动参数的位置数据与当前的有效运动参数的位置数据之间的差值大于预设阈值,其中,x为当前的有效运动参数在关节运动参数序列中的序号,i=1,2,3……m,m≤N1-x,N1是关节运动参数序列中的运动参数的总条数;步骤c:将当前的有效运动参数与终点运动参数之间的运动参数作为冗余运动参数删除,将终点运动参数作为当前的有效运动参数保留,并返回步骤b;步骤d:确定保留的所有有效运动参数为新的关节运动参数序列。
可以理解,第x+m条运动参数即为终点运动参数。
所述预设阈值的大小可以根据需要设定,本发明不对此进行限制。所述预设阈值可以由用户输入,也可以是默认阈值。示例性地,预设阈值可以是5度。
上述优化功能的作用是将关节运动参数序列中的PVT参数遍历。针对每条PVT参数,将该PVT参数中的位置数据与时间数据紧随其后的第一条PVT参数的位置数据相比,如果二者差值的绝对值小于预设阈值,则可以将时间数据在后的一条PVT参数从关节运动参数序列中删除,此时可以获得经过更新的关节运动参数序列。每次获得新的关节运动参数序列之后,可以重新执行上述优化,直至最后获得的关节运动参数序列中,所有两个时间数据相邻的运动参数之间的位置数据的差值均大于预设阈值。
以小臂关节举例,假设预设阈值设置为2度。可以首先将关节运动参数序列中的运动参数按照时间数据从小到大的顺序排列,然后,从第一条PVT参数和第二条PVT参数开始对比,如果这两条PVT参数的位置数据的差值的绝对值小于2度,则可以认为第二条PVT参数无效,将其删除。随后,再用第三条PVT参数的位置数据继续和第一条PVT参数的位置数据进行对比,差值的绝对值大于2度,则可以认为第三条PVT参数有效,将其保留。例如,可以将第一条PVT参数和第三条PVT参数存入有效PVT序列里。并且,可以将第三条PVT参数作为当前参与对比的PVT参数(即当前的有效运动参数),继续使用第四条PVT参数和第三条PVT参数进行对比,如果差值的绝对值小于2度,则认为第四条PVT参数无效,将其删除。随后,再使用第五条PVT参数继续和第三条PVT参数进行对比,如果差值的绝对值仍然小于2度,则认为第五条PVT参数无效,将其删除。随后,继续使用第六条PVT参数和第三条PVT参数进行对比,如果差值的绝对值大于2度,则可以认为第六条PVT参数有效,将其保留,并存入有效PVT序列。以此类推,可以将所有有效的PVT参数依次保存和/或依次输出至运动控制部件,这些被保存或输出的有效PVT参数即组成经更新的关节运动参数序列。
根据上述方法,可以根据运动参数的位置数据检测并删除冗余运动参数,这样可以对当前的运动参数进行精简,有利于减小运动控制系统的工作压力,进一步有利于缩短运动控制的响应时间。例如,该方法有利于减少运动参数从机器人控制设备到运动控制部件的下载时间,减小通信压力,还有利于减小运动控制部件对运动参数的解算压力。
根据本发明实施例,方法200还可以包括:对于至少一个关节中的目标关节,检测目标关节的关节运动参数序列内是否存在第二换向集合,每个第二换向集合包括速度数据反向的两条时间数据相邻的运动参数;以及如果检测到至少一个第二换向集合,则对于至少一个第二换向集合中的每一个,在该第二换向集合中插入至少一条第二换向运动参数,以获得新的关节运动参数序列,其中,第二换向运动参数中的速度数据等于0并且第二换向运动参数中的时间数据位于第二换向运动参数插入的第二换向集合中的两条运动参数的时间数据之间。
可以对各关节的PVT参数进行检测,判断是否存在前后两条PVT参数的速度方向是相反的,如果存在,则可以在这两条PVT参数之间插入一条速度为0的PVT参数。如果在运行时速度突然反向,机器人可能会出现突然卡顿、运动不协调等问题,因此可以在反向位置处添加一条速度为0的PVT参数,这样可以使电机先停止、再反向运动,从而可以优化电机的运行。
获取关节运动参数序列之后,可以对该序列内的运动参数进行检查,判断是否存在速度反向的情况。例如,可以按照时间数据的顺序将关节运动参数序列中的所有运动参数分别组合成为一个或多个集合,每个集合包括时间数据相邻的两条运动参数。可以理解的是,在本文中,不同的集合可以包含一部分相同的运动参数。例如,假设目标关节的关节运动参数序列包括五条运动参数S1、S2、S3、S4、S5,这五条运动参数按照时间数据从小到大排列。这五条运动参数可以共组合成四个集合,其中,S1、S2可以组成第一个集合,S2、S3可以组成第二个集合,S3、S4可以组成第三个集合,S4、S5可以组成第四个集合。可以对每个集合中的运动参数进行分析,判断是否存在速度反向的情况。在关节运动参数序列包括少于两条运动参数的情况下,可以理解为不存在速度反向。在关节运动参数序列包括至少两条运动参数的情况下,有可能存在速度反向。
比较可取的是,在机器控制设备和/或运动控制部件换算获得关节的运动参数时,即对所有的运动参数按照时间数据的顺序排序,这样可以直接按照排好的顺序遍历关节的运动参数,判断是否存在速度反向的情况。
下面描述插入的第二换向运动参数中的各种数据的计算方式。
例如,假设关节运动参数序列中存在两条PVT参数(P1,V1,T1)和(P2,V2,T2),如下:
P1:180V1:2T1:1.2;
P2:179V2:-1T2: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还可以包括:将关节运动参数序列解算为机器人的运动部件的驱动参数,以驱动运动部件运动。
上文已经结合图1描述了对关节的运动参数进行解算以及驱动运动部件运动的工作原理,此处不再赘述。
根据本发明实施例,将关节运动参数序列解算为运动部件的驱动参数可以在插值参数序列的条数达到预设条数的情况下开始执行。
预设条数可以是任意合适的数目,其可以根据需要设定,本发明不对此进行限制。示例性地,可以在关节运动参数序列中的PVT参数达到10条时,实时地利用当前已获得的运动参数控制电机运动。这种方式可以获得比较好的控制实时性。
下面结合图8描述采用上述运动参数的处理方法200的示例性的运动控制流程。图8示出根据本发明一个实施例的运动控制流程的示意图。如图8所示,在步骤S8010,流程开始。在步骤S8020,用户编辑轨迹文件,上文已经结合图3描述了轨迹文件的格式,此处不再赘述。可选地,在用户编辑轨迹文件时,可以选择坐标系。参见图6的方框“①”标示出的位置,选择了“本体空间坐标系”作为末端执行器的运动参数所基于的坐标系。在步骤S8030,用户设定插值信息。如上所述,用户可以在图6所示的方框“②”和“⑥”中设置插值步长、插值方式等信息。在步骤S8040,进行轨迹规划(即末端点插值)。这一步骤可以由机器人控制设备执行。例如,参见图6的方框“③”标示出的位置,示出“解析空间坐标”按钮控件。用户在设置好插值信息之后,可以点击该按钮控件,机器人控制设备可以导入用户编辑好的运动轨迹文件,并基于用户设置的插值信息开始插值。在步骤S8050,将插值参数序列换算为各关节的关节运动参数序列(即PVT参数)。可选地,可以将关节运动参数序列存储到存储器和/或显示在人机交互界面上(如图5所示)。在步骤S8060,进行PVT速度检查,即上文描述的在两条运动参数的速度数据反向时插入速度为0的运动参数(反向速度参数插值)这一优化操作。在步骤S8070,优化PVT参数(减少PVT参数条数),即上文描述的运动参数优化。在步骤S8080,进行反向间隙补偿,即上文描述的回程间隙补偿这一优化操作。在步骤S8090,将经过上述优化操作之后获得的新的PVT参数发送给机器人。可选地,步骤S8020~8090可以在机器人控制设备上执行,机器人控制设备可以将关节的PVT参数发送给运动控制部件(例如驱控器),以驱动机器人运动,因此这一过程也可以视为将PVT参数发送给机器人的过程。在步骤S8100,机器人运行。
根据本发明另一方面,提供一种运动参数的处理装置。图9示出根据本发明一个实施例的运动参数的处理装置900的示意性框图。
如图9所示,根据本发明实施例的运动参数的处理装置900包括获取模块910、插值模块920、和换算模块930。所述各个模块可分别执行上文中结合图1-8描述的运动参数的处理方法的各个步骤/功能。以下仅对该运动参数的处理装置900的各部件的主要功能进行描述,而省略以上已经描述过的细节内容。
获取模块910用于获取机器人的末端执行器的末端运动参数序列。
插值模块920用于对末端运动参数序列进行插值,以获得插值参数序列。
换算模块930用于将插值参数序列换算为机器人的至少一个关节的关节运动参数序列。
图10示出了根据本发明一个实施例的运动参数的处理系统1000的示意性框图。运动参数的处理系统1000包括存储装置(即存储器)1010以及处理器1020。
所述存储装置1010存储用于实现根据本发明实施例的运动参数的处理方法中的相应步骤的计算机程序指令。
所述处理器1020用于运行所述存储装置1010中存储的计算机程序指令,以执行根据本发明实施例的运动参数的处理方法的相应步骤。
在一个实施例中,计算机程序指令被处理器1010运行时用于执行以下步骤:获取机器人的末端执行器的末端运动参数序列;对末端运动参数序列进行插值,以获得插值参数序列;以及将插值参数序列换算为机器人的至少一个关节的关节运动参数序列。
图10所示的运动参数的处理系统1000可以采用与图1所示的运动控制系统100相同或相似的硬件结构和工作方式,可以参照上文关于运动控制系统100的描述理解运动参数的处理系统1000。
此外,根据本发明又一方面,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时使得所述计算机或处理器执行本发明实施例的上述运动参数的处理方法的相应步骤。所述存储介质例如可以包括平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。
本领域普通技术人员通过阅读上文关于运动参数的处理方法的相关描述,可以理解上述运动参数的处理装置、系统和存储介质的具体实现方案,为了简洁,在此不再赘述。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的运动参数的处理装置中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。

Claims (16)

1.一种运动参数的处理方法,包括:
获取机器人的末端执行器的末端运动参数序列;
对所述末端运动参数序列进行插值,以获得插值参数序列;以及
将所述插值参数序列换算为所述机器人的至少一个关节的关节运动参数序列。
2.如权利要求1所述的方法,其中,
所述方法还包括:
接收用户输入的用于指示插值信息的第一插值指令,其中,所述第一插值信息包括插值方式、插值步长、加速段时间占比和减速段时间占比中的一项或多项;
所述对所述末端运动参数序列进行插值,以获得插值参数序列包括:
根据所述第一插值指令所指示的插值信息对所述末端运动参数序列进行插值,以获得插值参数序列。
3.如权利要求1所述的方法,其中,所述方法还包括:
接收用户输入的用于开启插值功能的第二插值指令;
其中,所述对所述末端运动参数序列进行插值,以获得插值参数序列的步骤响应于所述第二插值指令的接收而执行。
4.如权利要求1所述的方法,其中,所述末端运动参数序列中的每条运动参数包括插值数据,任一运动参数的插值数据用于指示是否在该运动参数与按照时间数据从小到大排序位于该运动参数之后的下一运动参数之间执行插值。
5.如权利要求4所述的方法,其中,
在任一运动参数的插值数据为1时,指示在该运动参数与按照时间数据从小到大排序位于该运动参数之后的下一运动参数之间执行插值;
在任一运动参数的插值数据为0时,指示不在该运动参数与按照时间数据从小到大排序位于该运动参数之后的下一运动参数之间执行插值。
6.如权利要求1所述的方法,其中,所述末端运动参数序列中的每条运动参数包括坐标数据、夹爪位移数据和时间数据。
7.如权利要求1所述的方法,其中,所述对所述末端运动参数序列进行插值采用以下插值方式中的一种或多种实现:梯形曲线插值、S型曲线插值、3次多项式曲线插值、5次多项式曲线插值、线性插值。
8.如权利要求1至7任一项所述的方法,其中,所述方法还包括:
对于所述至少一个关节中的目标关节,检测所述目标关节的关节运动参数序列内是否存在第一换向集合,每个第一换向集合包括使所述机器人的运动部件的运动方向换向的三条时间数据相邻的运动参数;以及
如果检测到至少一个第一换向集合,则对于所述至少一个第一换向集合中的每一个,在该第一换向集合中插入至少一条第一换向运动参数,以获得新的关节运动参数序列,其中,所述至少一条第一换向运动参数用于指示所述运动部件在预设时间内通过换向时的回程间隙。
9.如权利要求8所述的方法,其中,所述至少一个第一换向集合中的每一个包括按时间数据从小到大排序的第一条运动参数(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为时间数据。
10.如权利要求1至7任一项所述的方法,其中,所述方法还包括:
对于所述至少一个关节中的目标关节,基于所述目标关节的关节运动参数序列中的运动参数的位置数据,检测并删除所述关节运动参数序列中的冗余运动参数,以获得新的关节运动参数序列。
11.如权利要求10所述的方法,其中,所述对于所述至少一个关节中的目标关节,基于所述目标关节的关节运动参数序列中的运动参数的位置数据,检测并删除所述关节运动参数序列中的冗余运动参数,以获得新的关节运动参数序列包括:
步骤a:将所述关节运动参数序列中按时间数据从小到大排序的第一条运动参数作为当前的有效运动参数保留;
步骤b:对于所述关节运动参数序列中按时间数据从小到大排序位于所述当前的有效运动参数之后的第x+i条运动参数,依次计算第x+i条运动参数的位置数据与所述当前的有效运动参数的位置数据之间的差值,直至找到终点运动参数,所述终点运动参数的位置数据与所述当前的有效运动参数的位置数据之间的差值大于预设阈值,其中,x为所述当前的有效运动参数在所述关节运动参数序列中的序号,i=1,2,3……m,m≤N1-x,N1是所述关节运动参数序列中的运动参数的总条数;
步骤c:将所述当前的有效运动参数与所述终点运动参数之间的运动参数作为冗余运动参数删除,将所述终点运动参数作为当前的有效运动参数保留,并返回所述步骤b;
步骤d:确定保留的所有有效运动参数为新的关节运动参数序列。
12.如权利要求1至7任一项所述的方法,其中,所述方法还包括:
对于所述至少一个关节中的目标关节,检测所述目标关节的关节运动参数序列内是否存在第二换向集合,每个第二换向集合包括速度数据反向的两条时间数据相邻的运动参数;以及
如果检测到至少一个第二换向集合,则对于所述至少一个第二换向集合中的每一个,在该第二换向集合中插入至少一条第二换向运动参数,以获得新的关节运动参数序列,其中,所述第二换向运动参数中的速度数据等于0并且所述第二换向运动参数中的时间数据位于所述第二换向运动参数插入的第二换向集合中的两条运动参数的时间数据之间。
13.如权利要求1至7任一项所述的方法,其中,所述方法还包括:
将所述关节运动参数序列解算为所述机器人的运动部件的驱动参数,以驱动所述运动部件运动。
14.一种运动参数的处理装置,包括:
获取模块,用于获取机器人的末端执行器的末端运动参数序列;
插值模块,用于对所述末端运动参数序列进行插值,以获得插值参数序列;以及
换算模块,用于将所述插值参数序列换算为所述机器人的至少一个关节的关节运动参数序列。
15.一种运动参数的处理系统,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行如权利要求1至13任一项所述的运动参数的处理方法。
16.一种存储介质,在所述存储介质上存储了程序指令,所述程序指令在运行时用于执行如权利要求1至13任一项所述的运动参数的处理方法。
CN201910054732.1A 2019-01-21 2019-01-21 运动参数的处理方法、装置和系统及存储介质 Active CN109605378B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910054732.1A CN109605378B (zh) 2019-01-21 2019-01-21 运动参数的处理方法、装置和系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910054732.1A CN109605378B (zh) 2019-01-21 2019-01-21 运动参数的处理方法、装置和系统及存储介质

Publications (2)

Publication Number Publication Date
CN109605378A true CN109605378A (zh) 2019-04-12
CN109605378B CN109605378B (zh) 2022-01-04

Family

ID=66018058

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910054732.1A Active CN109605378B (zh) 2019-01-21 2019-01-21 运动参数的处理方法、装置和系统及存储介质

Country Status (1)

Country Link
CN (1) CN109605378B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110480633A (zh) * 2019-08-02 2019-11-22 北京猎户星空科技有限公司 一种控制设备的方法、装置及存储介质
CN113093716A (zh) * 2019-12-19 2021-07-09 广州极飞科技股份有限公司 一种运动轨迹规划方法、装置、设备及存储介质
CN113942781A (zh) * 2021-10-15 2022-01-18 西门子工厂自动化工程有限公司 确定输送系统选型数据的方法和设备以及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129214A (ja) * 1993-11-08 1995-05-19 Fanuc Ltd ソフトウェアケージ機能を備えたロボット制御方法
CN103823467A (zh) * 2012-05-23 2014-05-28 浙江大学 具备运动规划功能的工业机器人示教规划器的控制方法
CN103868521A (zh) * 2014-02-20 2014-06-18 天津大学 基于激光雷达的四旋翼无人机自主定位及控制方法
CN104385282A (zh) * 2014-08-29 2015-03-04 暨南大学 一种视觉智能数控系统及其视觉计测方法
CN106814694A (zh) * 2017-02-14 2017-06-09 华南理工大学 一种高速高精度的参数曲线前瞻插补算法
CN106826829A (zh) * 2017-02-22 2017-06-13 武汉工程大学 一种可控误差的工业机器人光顺运动轨迹生成方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129214A (ja) * 1993-11-08 1995-05-19 Fanuc Ltd ソフトウェアケージ機能を備えたロボット制御方法
CN103823467A (zh) * 2012-05-23 2014-05-28 浙江大学 具备运动规划功能的工业机器人示教规划器的控制方法
CN103868521A (zh) * 2014-02-20 2014-06-18 天津大学 基于激光雷达的四旋翼无人机自主定位及控制方法
CN104385282A (zh) * 2014-08-29 2015-03-04 暨南大学 一种视觉智能数控系统及其视觉计测方法
CN106814694A (zh) * 2017-02-14 2017-06-09 华南理工大学 一种高速高精度的参数曲线前瞻插补算法
CN106826829A (zh) * 2017-02-22 2017-06-13 武汉工程大学 一种可控误差的工业机器人光顺运动轨迹生成方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110480633A (zh) * 2019-08-02 2019-11-22 北京猎户星空科技有限公司 一种控制设备的方法、装置及存储介质
CN113093716A (zh) * 2019-12-19 2021-07-09 广州极飞科技股份有限公司 一种运动轨迹规划方法、装置、设备及存储介质
CN113942781A (zh) * 2021-10-15 2022-01-18 西门子工厂自动化工程有限公司 确定输送系统选型数据的方法和设备以及计算机可读存储介质
CN113942781B (zh) * 2021-10-15 2023-12-01 西门子工厂自动化工程有限公司 确定输送系统选型数据的方法和设备以及计算机可读存储介质

Also Published As

Publication number Publication date
CN109605378B (zh) 2022-01-04

Similar Documents

Publication Publication Date Title
CN109551485A (zh) 运动控制方法、装置和系统及存储介质
US20220009100A1 (en) Software Interface for Authoring Robotic Manufacturing Process
CN103085072B (zh) 基于三维建模软件实现工业机器人离线编程的方法
US8260460B2 (en) Interactive robot control system and method of use
CN109605378A (zh) 运动参数的处理方法、装置和系统及存储介质
CN106041928B (zh) 一种基于工件模型的机器人作业任务生成方法
CN109986559A (zh) 参数编辑方法和系统、控制设备及存储介质
CN203449306U (zh) 一种主从式双工业机器人协调操作控制系统
Bazaz et al. Minimum time on-line joint trajectory generator based on low order spline method for industrial manipulators
CN108663993B (zh) 一种基于实时控制器的多轴伺服控制系统
CN109933008A (zh) 一种非实时系统和机器人控制器的双插补方法及装置
JPWO2019064916A1 (ja) ロボットシミュレータ
JP2021045797A (ja) シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
CN106970561B (zh) 运动控制系统
CN110000753B (zh) 用户交互方法、控制设备及存储介质
CN109807898B (zh) 运动控制方法、控制设备及存储介质
CN109910004B (zh) 用户交互方法、控制设备及存储介质
Dolgui et al. Manipulator motion planning for high-speed robotic laser cutting
CN110000775B (zh) 设备管理方法、控制设备及存储介质
JPWO2019064917A1 (ja) ロボットシミュレータ
CN109807896A (zh) 运动控制方法和系统、控制设备及存储介质
CN103552072B (zh) 一种基于嵌入式控制器的机器人控制方法和装置
CN109551484A (zh) 运动参数的处理方法、装置和系统及存储介质
Wojtynek et al. Assisted planning and setup of collaborative robot applications in modular production systems
CN106652258A (zh) 图书馆借还书控制系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20191216

Address after: No.1705, building 8, Qianhai preeminent Financial Center (phase I), unit 2, guiwan District, Nanshan street, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen City, Guangdong Province

Applicant after: Mga Technology (Shenzhen) Co., Ltd

Address before: 102208 1, unit 1, 1 hospital, lung Yuan middle street, Changping District, Beijing 1109

Applicant before: Beijing magnesium Robot Technology Co., Ltd.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: 518052 1705, building 8, Qianhai excellence Financial Center (phase I), unit 2, guiwan area, Nanshan street, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen City, Guangdong Province

Applicant after: Shenzhen mga Technology Co.,Ltd.

Address before: 1705, building 8, Qianhai excellence Financial Center (phase I), unit 2, guiwan area, Nanshan street, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong 518000

Applicant before: Mga Technology (Shenzhen) Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant