Certains contenus de cette application ne sont pas disponibles pour le moment.
Si cette situation persiste, veuillez nous contacter àObservations et contact
1. (WO2018119745) PROCÉDÉ DE COMMANDE DE DÉPLACEMENT DE ROBOT ET APPAREIL ASSOCIÉ
Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12  

附图

0001   0002   0003   0004   0005   0006   0007   0008   0009  

说明书

发明名称 : 机器人运动控制方法及相关装置

技术领域

[0001]
本发明涉及运动控制领域,更具体地说,涉及机器人运动控制技术。

背景技术

[0002]
机器人的运动,是按照预先规划的轨迹进行的。规划的运动轨迹,可以分解为多段,见图1a,一段运动轨迹包含lc及ln两段,机器人需要从轨迹lc运动到轨迹ln上,轨迹lc可以称为前段轨迹,ln可以称为后段轨迹。
[0003]
两段轨迹的过渡方式可以是尖角转接,如图1a所示,机器人运动到轨迹lc的末端(点O处)后,速度降为0,然后再以一定的速度在轨迹ln上运动。该种过渡方式中,单段轨迹(lc或ln)上的初速度和末速度均为0,会大大降低机器人的工作效率,且频繁的加减速运动也会对电机及减速器的使用寿命产生影响。
[0004]
为了解决以上问题,可以在两端轨迹之间使用平滑转接方式。即在两段轨迹之间规划平滑曲线,机器人以平滑曲线方式从一段轨迹过渡到另一段轨迹时,速度不为0。目前规划平滑曲线的方法有矢量加减法及圆弧转接法。
[0005]
见图1b,矢量加减法是通过空间向量加法,使前段轨迹lc从拐点到交点O的插补点,与后段轨迹ln从拐点到交点O的插补点重合,被叠加后的插补点会组成空间的一段弧形,使轨迹平滑。但是,该种叠加的平滑轨迹是不确定的,会随着前后两段轨迹速度的变化而变化,精准度较低。
[0006]
见图1c,圆弧转接法中,确定前段轨迹lc的拐出点A及后段轨迹ln上的拐出点B,求经过拐出点及拐入点的前后两段轨迹的公切圆,该公切圆上由拐出点及拐入点组成的圆弧AB为平滑转接轨迹。但是,该种方式的应用范围较小,只有在两段轨迹需均为直线的情况下肯定适用。但机器人的运动轨迹除了包含直线与直线转接,还包含直线与圆弧转接、圆弧与圆弧转接。在后两种转接中,由于直线与圆弧、圆弧与圆弧不一定共面,因此,并不一定能找到公切圆,从而导致该方式并不能适用。
[0007]
因此,需要为机器人规划一种过渡的平滑轨迹,使机器人可以速度连续且加速度连续地通过该平滑轨迹。
[0008]
发明内容
[0009]
有鉴于此,本发明提供了一种机器人运动控制方法,用于控制机器人按照预先构建的关于路径的n(n为不小于4的整数)阶Bezier曲线表示的平滑轨迹进行运动。
[0010]
本申请提供如下技术方案:
[0011]
一方面,本申请提供了一种机器人运动控制方法,用于控制机器人按照预先构建的关于路径的n(n为不小4的整数)阶Bezier曲线表示的平滑轨迹进行运动,所述控制方法用于在多个控制周期中的每个控制周期内确定机器人需运动至的位置点,其中每个控制周期内包括以下步骤:
[0012]
确定从首个控制周期到当前控制周期的时长值;
[0013]
使用预先构建的关于时间的n阶Bezier曲线的表达式,求解所述时长值对应的Bezier参数的值;其中,所述关于时间的n阶Bezier曲线表示的是Bezier参数与时长之间的曲线关系;
[0014]
将所述Bezier参数的值代入所述关于路径的n阶Bezier曲线的表达式中,获得位置坐标值;其中,所述关于路径的n阶Bezier曲线表示的是Bezier参数与位置坐标之间的曲线关系;
[0015]
向驱动装置发送所述位置坐标值,以使所述驱动装置将所述机器人移动至所述位置坐标值表示的位置点。
[0016]
另一方面,本申请提供了一种机器人运动控制装置,该装置具有实现上述方法中机器人运动控制行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
[0017]
在一个可能的设计中,机器人运动控制装置的结构包括通信接口、处理器以及存储器,所述通信接口与驱动装置相连,所述存储器内存储有安装于所述机器人运动控制装置中的程序代码及数据,所述处理器用于调用所述存 储器中的程序代码及数据以确定机器人在多个控制周期中的每个控制周期内需运动至的位置点,具体执行上述方法。
[0018]
再一方面,本发明实施例提供了一种机器人,其包括上述的机器人运动控制装置,以及驱动所述机器人移动至所述位置坐标值表示的位置点的驱动装置。
[0019]
相较于现有技术,本申请使用关于路径的n阶(n为不小于4的整数)Bezier曲线作为机器人从前段轨迹运动至后段轨迹的平滑轨迹,并且使用关于时间的n阶Bezier曲线对运动速度进行规划,规划的速度用于确定每个控制周期内机器人需运动至的位置点,各个位置点组成上述平滑轨迹,本申请的控制精准度较高且应用范围较广,并且机器人在平滑轨迹上运动的速度及加速度均连续。

附图说明

[0020]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]
图1a为机器人运动轨迹的一种示意图;
[0022]
图1b为现有技术中矢量加减法进行路径规划的示意图;
[0023]
图1c为现有技术中圆弧转接法进行路径规划的示意图;
[0024]
图2为本申请提供的关于路径的四阶Bezier曲线的示意图;
[0025]
图3为本申请提供的控制机器人沿n阶Bezier曲线运动的示意图;
[0026]
图4为本申请提供的控制机器人运动控制方法的一个流程图;
[0027]
图5为本申请提供的控制机器人运动控制装置的一个结构示意图;
[0028]
图6为本申请提供的控制机器人运动控制装置的另一结构示意图;
[0029]
图7为本申请提供的控制机器人运动控制装置的硬件结构示意图。

具体实施方式

[0030]
本发明可能使用的技术名词、简写或缩写如下:
[0031]
TCP点:工具坐标中心点;
[0032]
直线运动:机器人TCP点在笛卡尔空间内沿直线轨迹运动;
[0033]
圆弧运动:机器人TCP点在笛卡尔空间内沿圆弧轨迹运动;
[0034]
CP:连续运动,笛卡尔空间下的轨迹运动方式,包括直线运动和圆弧运动;
[0035]
PTP:点到点运动,关节空间下的轨迹运动方式;
[0036]
Bezier(贝塞尔)曲线,是由线段及节点组成的曲线,可以使用阶来表示不同形态的贝塞尔曲线。
[0037]
n阶Bezier曲线的公式为: 其中b i,n(t)为Bernstein基函数, P 0-P n可以称为Bezier曲线的特征点或控制点,特征点可以用来定义Bezier曲线,特征点组成的多边形称为特征多边形。t=0对应Beizer曲线的起始点P 0,t=1对应Beizer曲线的终止点P n
[0038]
根据以上n阶Bezier曲线的通用公式可知四阶Bezier曲线的公式,即将n=4代入公式得出四阶Bezier曲线的公式为:
[0039]
B(t)=P 0(1-t) 4+4P 1t(1-t) 3+6P 2t 2(1-t) 2+4P 3t 3(1-t)+P 4t 4, t∈[0,1]。
[0040]
同理,可以确定出五阶Bezier曲线的公式为:
[0041]
B(t)=P 0(1-t) 5+5P 1t(1-t) 4+10P 2t 2(1-t) 3+10P 3t 3(1-t) 2+5P 4t 4(1-t)+P 5t 5, t∈[0,1]。
[0042]
如图2所示的四阶Bezier曲线P 0P 4,其中,P 0、P 1、P 2、P 3及P 4五个点可定义该Bezier曲线。该曲线起始于P 0走向P 1,从P 1方向到P 2从P 2方向到P 3,并从P 3方向到P 4。需要说明的是,一般四阶Bezier曲线不经过P 1、P 2、P 3这三个点,该三个点只提供方向而已。
[0043]
对于五阶Bezier曲线而言,P 0、P 1、P 2、P 3、P 4及P 5六个点可定义该Bezier曲线。此六个点为五阶Bezier曲线的特征点。
[0044]
不论是四阶还是五阶及以上阶数的Bezier曲线,对Bezier曲线求导,便可获得Bezier曲线在始末点的切矢量为 则:
[0045]
当t=0时,B′(0)=n(P 1-P 0),B′(0)即为n阶Bezier曲线在起始点的切矢量;
[0046]
当t=1时,B′(1)=n(P n-P n-1),B′(1)即为n阶Bezier曲线在终止点的切矢量。
[0047]
其中,切矢量即切线方向,由上述切矢量可知,n阶Bezier曲线在起始点和终止点处的切线方向和特征多边形的第一条边及最后一条边走向一致。以图2所示四阶Bezier曲线为例,B′(0)=4(P 1-P 0),B′(1)=4(P 4-P 3),而图2的第一条边是P 1P 0,最后一条边是P 4P 3
[0048]
同理,对Bezier曲线求二阶导,便可获得Bezier曲线在始末点的二阶切矢量为 则:
[0049]
当t=0时,B″(0)=n(n-1)(P 2-2P 1+P 0),B″(0)即为n阶Bezier曲线在起始点的二阶切矢量;
[0050]
当t=1时B″(1)=n(n-1)(P n-2P n-1+P n-2),B″(1)即为n阶Bezier曲线在终止点的二阶切矢量;
[0051]
上述公式表明,二阶切矢量只与相邻的3个控制点有关。
[0052]
本申请使用Bezier曲线作为转接两段轨迹的平滑轨迹。机器人按照该平滑轨迹,从前段轨迹通过Bezier曲线过渡到后段轨迹上,且过渡运动中速度连续及加速度连续。
[0053]
本申请中,将四阶Bezier曲线作为平滑轨迹,当然,平滑轨迹还可以使用五阶或五阶以上的Bezier曲线。以下首先介绍n阶Bezier曲线的构建方式,其中,n为不小于4的整数。需要说明的是,此处的Bezier曲线可以称为关于路径的Bezier曲线,以便与下文关于时间的Bezier曲线区分。
[0054]
根据前段轨迹及后段轨迹确定n阶Bezier曲线的位置特征点,根据确定出的位置特征点,构建n阶Bezier曲线作为平滑轨迹。其中,位置特征点中包含起始点及终止点。
[0055]
可以理解的是,如图2所示,运动过程中,机器人在前段轨迹lc的末端及后段轨迹ln的初端会脱离原来的轨迹,因此,在前端轨迹lc的末端有拐出点A,在后段轨迹ln的初端有拐入点B。
[0056]
在构建关于路径的n阶Bezier曲线时,需要保证Bezier曲线的起始点与 前段轨迹的拐出点重合,Bezier曲线的终止点与后段轨迹的拐入点重合,且Bezier曲线在起始点的切矢量方向与前段轨迹在拐出点的切矢量方向相同、Bezier曲线在终止点的切矢量方向与后段轨迹在拐入点的切矢量方向相同。
[0057]
以上构建的关于路径的n(n为不小于4的整数)阶Bezier曲线可以作为转接前段轨迹及后段轨迹的平滑轨迹。
[0058]
本申请提供了一种机器人运动控制方法,该方法用于控制机器人按照上述关于路径的n(n为不小于4的整数)阶Bezier曲线表示的平滑轨迹进行运动。控制方法用于在多个控制周期(也可以称为插补周期)中的每个控制周期内确定机器人需运动至的位置点,如图3所示,n阶Bezier曲线表示的平滑轨迹上的各个小圆点,表示的是各个控制周期内机器人运动到的位置点。
[0059]
如图4所示,在每个控制周期执行以下步骤S41~S41。
[0060]
步骤S41:确定从首个控制周期到当前控制周期的时长值。
[0061]
其中,时长值为从首个控制周期到当前控制周期的时间长度,例如控制周期为1毫秒,当前控制周期为第81个控制周期,则从首个控制周期到当前控制周期的时长值为0.08s。
[0062]
步骤S42:使用关于时间的n阶Bezier曲线的表达式,求解时长值对应的Bezier参数的值,其中,n为不小于4的整数。
[0063]
其中,关于时间的n阶Bezier曲线的表达式为预先构建的,关于时间的n阶Bezier曲线表示的是Bezier参数与时长之间的关系,具体地,该关于时间的n(n为不小于四的整数)阶Bezier曲线的表达式为:
[0064]
[数0001]


[0065]
其中,b i,n(u)为Bernstein基函数,且
[0066]
以关于时间的四阶Bezier曲线为例,该曲线的表达式为:
[0067]
T(u)=T 0(1-u) 4+4T 1u(1-u) 3+6T 2u 2(1-u) 2+4T 3u 3(1-u)+T 4u 4
[0068]
其中,T(u)表示沿着所述关于路径的四阶Bezier曲线表示的平滑轨迹运动所需的时长,T 0、T 1、T 2、T 3及T 4为所述关于时间的四阶Bezier曲线的时间特征点,在已构建的上述表达式中,时间特征点T 0、T 1、T 2、T 3及T 4为已知值,关于如何确定四个时间特征点的值请见下文,此处并不赘述。
[0069]
将步骤S41确定的时长值作为T(u)代入已构建的上述表达式中,可求得时长值对应的Bezier参数u的值,Bezier参数可简称为参数。需要说明的是,求解到的Bezier参数u有四个,但u∈[0,1],因此将属于[0,1]范围内的值确定为Bezier参数u的值。
[0070]
步骤S43:将Bezier参数的值代入关于路径的n阶Bezier曲线的表达式中,获得位置坐标值。
[0071]
其中,关于路径的n阶Bezier曲线的表达式为预先构建的,关于路径的n阶Bezier曲线表示的是Bezier参数与位置坐标之间的关系,具体地,表达式为:
[0072]
[数0002]


[0073]
其中,b i,n(u)为Bernstein基函数,且
[0074]
以关于路径的四阶Bezier曲线为例,该曲线的表达式为:
[0075]
P(u)=P 0(1-u) 4+4P 1u(1-u) 3+6P 2u 2(1-u) 2+4P 3u 3(1-u)+P 4u 4
[0076]
其中,P(u)表示关于路径的四阶Bezier曲线中的位置坐标,P 0、P 1、P 2、P 3及P 4为关于路径的四阶Bezier曲线的位置特征点,在已构建的上述表达式中,P 0、P 1、P 2、P 3及P 4均为已知值。
[0077]
需要说明的是,关于路径的四阶Bezier曲线与关于时间的四阶Bezier曲线是具有关联关系的,两个表达式中的Bezier参数u为相同值。因此,将步骤S42中根据关于时间的四阶Bezier曲线求解到的Bezier参数u的值代入上述关于路径的四阶Bezier曲线的表达式,便可求解出P(u)。
[0078]
步骤S44:向驱动装置发送位置坐标值,以使驱动装置将机器人移动至位置坐标值表示的位置点。
[0079]
其中,机器人中设置驱动装置(如驱动控制器等),以控制机器人的移动旋转等动作。向驱动装置发送步骤S43求解到的位置坐标值P(u),驱动装置根据位置坐标值生成相应的移动命令,并向机械臂等运动部件发送该移动命令,以控制机器人移动至该位置坐标值所表示的位置点。如图3所示,若当前控制周期为首个控制周期,则控制机器人移动至第一个小圆点处,若当前控制周期为第二个控制周期,则控制机器人移动至第二个小圆点处,以此类推,在最后一个控制周期,控制机器人移动至平滑轨迹的终点。
[0080]
以上机器人运动控制方法中,使用关于路径的n阶Bezier曲线作为机器人从前段轨迹运动至后段轨迹的平滑轨迹,并且使用关于时间的n(n为不小于四的整数)阶Bezier曲线对运动速度进行规划,规划的速度用于确定每个控制周期内机器人需运动至的位置点,各个位置点组成上述平滑轨迹。
[0081]
在本申请中,机器人可以速度连续且加速度连续地从前段轨迹转接至后段轨迹,该转接轨迹为关于路径的n阶Bezier曲线,由于曲线的构建并不需要依赖机器人在前后两段轨迹上的速度,因此,可以避免矢量加减法构建的平滑轨迹精准度较低的问题。并且,该曲线并非确定前段轨迹与后段轨迹的公切圆,可以解决适用性较小的问题,本申请可以应用在各种形状的轨迹转接场景中,应用范围较广。
[0082]
构建平滑轨迹后,需要控制机器人按照该平滑轨迹运动。控制过程中包括速度规划过程,速度规划过程即确定机器人以怎样的速度通过该平滑轨迹。
[0083]
可以理解的是,速度与时间及路径是有关联关系的,规划的速度需要转化为路径上的位置点,控制机器人在一定时间内移动至该位置点,便可以体现出机器人是按照规划的速度运动。因此,以上图4所示的机器人运动控制方法中,为每个控制周期确定所需运动到的位置点,从整个运动过程来看,机器人是按照一定的速度运动的。
[0084]
速度的变化体现为加速度,在本申请中,需要保证机器人在按照平滑轨迹运动时,加速度也是连续的。目前对加速度规划的方案有S型速度规划及T型速度规划,该两种规划方案是根据已知路径长度及始末速度,对目标速度或目标时间进行速度规划,需要保证等差参数对应等差路径长度,因此,只能适用于直线或者圆弧。
[0085]
然而,本申请使用Bezier曲线作为平滑轨迹,Bezier曲线为参数曲线,路径长度无法精确计算,只能通过数值积分计算得出,且由于路径点稀疏密集程度不同,等差参数不一定对应等差路径长度,因此,现有的加速度规划方案并不能精确地对Bezier曲线进行加速度规划。
[0086]
对此,本申请针对关于路径的n(n为不小于四的整数)阶Bezier曲线,确定相对应的加速度规划方案,即在Bezier曲线坐标维度的基础上,增加时间维度。通过控制时间维度上的时间特征点,来控制机器人满足预先设置的始末 速度及始末加速度,这样,加速度规划的插补周期与Bezier曲线的参数一一对应,并且,Bezier曲线的每个点都是通过时间来控制速度及加速度变化,从而达到始末速度及加速度连续的目的。
[0087]
其中,增加时间维度的Bezier曲线可以为上述关于时间的n(n为不小于四的整数)阶Bezier曲线的表达式,即:
[0088]
[数0003]


[0089]
其中,b i,n(u)为Bernstein基函数,且
[0090]
可以理解的是,该表达式中Bezier参数u为变量,但需确定出时间控制点T i的值。确定出各个时间特征点后,代入上述表达式便可以构建出关于时间的n阶Bezier曲线。
[0091]
需要说明的是,关于时间的四阶Bezier曲线与关于时间的五阶及以上阶数的Bezier曲线的时间特征点的值确定方法不同,因此,以下单独对关于时间的四阶Bezier曲线中的时间特征点的确定方法进行介绍。
[0092]
可以理解的是,关于时间的四阶Bezier曲线中,时间特征点有五个,分别为T 0、T 1、T 2、T 3及T 4
[0093]
依据关于路径的四阶Bezier曲线的位置特征点(P 0、P 1、P 2、P 3及P 4)、预设的起始点的速度、预设的终止点的速度、预设的起始点的加速度及预设的终止点的加速度,确定所述关于时间的四阶Bezier曲线的时间特征点T 0、T 1、T 2、T 3及T 4
[0094]
具体地,可以将时间特征点T 0确定为0,且T 4=T f(总时长)。
[0095]
将位置特征点P 0、位置特征点P 1及速度υ s代入表达式 求解时间特征点T 1,其中,所述速度υ s为预先设置的机器人在所述平滑轨迹的起始点的速度,起始点即位置特征点P 0
[0096]
将位置特征点P 2、位置特征点P 1、位置特征点P 0、时间特征点T 1、加速度a s及角度α代入表达式l 1=cosα|P 0-P 2|及 中,求解时间特征点T 2, 其中,加速度a s为预先设置的机器人在平滑轨迹的起始点的加速度,起始点为位置特征点P 0,角度α为线段P 0P 1与线段P 0P 2之间的夹角,|P 0-P 2|为线段P 0P 2的长度。
[0097]
将位置特征点P 4、位置特征点P 3、位置特征点P 2、时间特征点T 2、速度υ f、加速度a f及角度β代入表达式l 2=cosβ|P 2-P 4|及 中,求解时间特征点T 4,其中,加速度a f为预先设置的机器人在平滑轨迹的终止点的加速度,速度υ f为预先设置的机器人在所述平滑轨迹的终止点的速度,终止点为位置特征点P 4,角度β为线段P 4P 3与线段P 4P 2之间的夹角,|P 2-P 4|为线段P 4P 2的长度。
[0098]
将位置特征点P 4、位置特征点P 3、速度υ f及时间特征点T 4代入表达式 中,求解时间特征点T 3
[0099]
以下说明各个时间特征点的表达式的获得方式。
[0100]
第一,关于表达式
[0101]
分别对关于路径的四阶Bezier曲线的表达式P(u)=P 0(1-u) 4+4P 1u(1-u) 3+6P 2u 2(1-u) 2+4P 3u 3(1-u)+P 4u 4在起始点P 0及终止点P 4处求导,获得P'(0)=-4P 0+4P 1及P'(1)=-4P 3+4P 4
[0102]
分别对关于时间的四阶Bezier曲线的表达式T(u)=T 0(1-u) 4+4T 1u(1-u) 3+6T 2u 2(1-u) 2+4T 3u 3(1-u)+T 4u 4在起始点P 0及终止点P 4处求导,获得T'(0)=-4T 0+4T 1及T'(1)=-4T 3+4T 4
[0103]
其中,u=0对应的是起始点P 0,u=1对应的是终止点P 4。根据一阶导可以看出,起止点处的一阶导与临近始末的两个位置特征点有关。
[0104]
根据P'(0)=-4P 0+4P 1及T'(0)=-4T 0+4T 1可以得出有关起始点处速度的以下表达式:
[0105]
[数0004]


[0106]
又由于设T 0=0,则可以得出: 其中P 1-P 0表示位置特征点P 0与P 1之间的距离,可以表示为|P 1-P 0|。
[0107]
第二,关于表达式
[0108]
分别对关于路径的四阶Bezier曲线的表达式P(u)=P 0(1-u) 4+4P 1u(1-u) 3+6P 2u 2(1-u) 2+4P 3u 3(1-u)+P 4u 4在起始点P 0及终止点P 4处求二阶导,获得P”(0)=12P 0-24P 1+12P 2及P”(1)=12P 2-24P 3+12P 4
[0109]
分别对关于时间的四阶Bezier曲线的表达式T(u)=T 0(1-u) 4+4T 1u(1-u) 3+6T 2u 2(1-u) 2+4T 3u 3(1-u)+T 4u 4在起始点P 0及终止点P 4处求导,获得T”(0)=12T 0-24T 1+12T 2及T”(1)=12T 2-24T 3+12T 4
[0110]
其中,u=0对应的是起始点P 0,u=1对应的是终止点P 4。并且,根据二阶导可以看出,起止点处的一阶导与临近始末的三个位置特征点有关。
[0111]
根据P”(0)=12P 0-24P 1+12P 2、T'(0)=-4T 0+4T 1、P'(0)=-4P 0+4P 1、T”(0)=12T 0-24T 1+12T 2可以得出有关起始点处加速度的以下表达式:
[0112]
[数0005]


[0113]
又由于 从而求解出
[0114]
第三,关于表达式
[0115]
根据P”(1)=12P 2-24P 3+12P 4、T'(1)=-4T 3+4T 4、P'(1)=-4P 3+4P 4、T”(1)=12T 2-24T 3+12T 4可以得出有关终止点处加速度的以下表达式:
[0116]
[数0006]


[0117]
又由于 从而求解出
[0118]
第四,关于表达式
[0119]
根据P'(1)=-4P 3+4P 4、T'(1)=-4T 3+4T 4可以得出有关终止点处速度的以下表达式:
[0120]
[数0007]


[0121]
其中,P 4-P 3表示表示位置特征点P 4与P 3之间的距离,可以表示为|P 4-P 3|。
[0122]
将上述关于ν f的表达式变形后,便可以获得
[0123]
以上是关于时间特征点T 0、T 1、T 2、T 3及T 4的计算过程,根据计算出的时间特征点,便可以构建出关于时间的四阶Bezier曲线的表达式。进而,可以使用该表达式,执行上述图4中的插补过程,以确定机器人在每个插补周期内需要行进至的位置坐标点,实现机器人按照贝塞尔曲线进行平滑转接。
[0124]
以上说明了如何构建关于时间的四阶Bezier曲线及使用该曲线进行插补的过程。但若想要达到初始速度及加速度连续的目的,可以使用5次及以上的 Bezier曲线。使用5次及以上的Bezier曲线进行插补具有如下优点:
[0125]
1、可以控制平滑过渡的总时长。由于关于时间的四阶Bezier曲线有5个时间特征点,控制始末加速度需要控制边界的三个时间特征点,所有始末加速度的控制均会使用第三个时间特征点,导致没有自由度去改变总时长。但是,关于时间的五阶及以上的Bezier曲线至少有6个时间特征点,所以并没有任何一个时间特征点会复用,从而可以有改变总时长的自由度。
[0126]
2、可以控制平滑过渡的加减速。
[0127]
以下以5次Bezier曲线为例,说明关于时间的五阶Bezier曲线的构建过程,需要说明的是,五阶以上的Bezier曲线的构建过程与五阶类似,并不赘述。
[0128]
关于路径的五阶Bezier曲线的表达式为:
[0129]
P(u)=P 0(1-u) 5+5P 1u(1-u) 4+10P 2u 2(1-u) 3+10P 3u 3(1-u) 2+5P 4u 4(1-u)+P 5u 5
[0130]
其中,P(u)表示关于路径的四阶Bezier曲线中的位置坐标,P 0、P 1、P 2、P 3、P 4及P 5为关于路径的四阶Bezier曲线的位置特征点,在已构建的上述表达式中,P 0、P 1、P 2、P 3、P 4及P 5均为已知值。
[0131]
关于时间的五阶Bezier曲线的表达式为:
[0132]
T(u)=T 0(1-u) 5+5T 1u(1-u) 4+10T 2u 2(1-u) 3+10T 3u 3(1-u) 2+5T 4u 4(1-u)+T 5u 5
[0133]
其中,T 0、T 1、T 2、T 3、T 4及T 5为所述关于时间的五阶Bezier曲线的时间特征点,为了构建该关于时间的五阶Bezier曲线,需要求解该6个时间特征点的值。
[0134]
依据关于路径的五阶Bezier曲线的位置特征点(P 0、P 1、P 2、P 3、P 4及P 5)、预设的起始点的速度、预设的终止点的速度、预设的起始点的加速度及预设的终止点的加速度,确定所述关于时间的五阶Bezier曲线的时间特征点T 0、T 1、T 2、T 3、T 4及T 5
[0135]
具体地,可以将时间特征点T 0确定为0。
[0136]
将位置特征点P 0、位置特征点P 1及速度υ s代入表达式 求解时间特征点T 1,其中,所述速度υ s为预先设置的机器人在所述平滑轨迹的起始点的速度,起始点即位置特征点P 0
[0137]
将位置特征点P 2、位置特征点P 1、位置特征点P 0、时间特征点T 1、加速度 a s及角度α代入表达式l 1=cosα|P 0-P 2|及 中,求解时间特征点T 2,其中,加速度a s为预先设置的机器人在平滑轨迹的起始点的加速度,起始点为位置特征点P 0,角度α为线段P 0P 1与线段P 0P 2之间的夹角,|P 0-P 2|为线段P 0P 2的长度。
[0138]
将位置特征点P 3、位置特征点P 2、速度υ s、速度υ f及时间特征点T 2代入表达式 中,求解时间特征点T 3,其中,速度υ f为预先设置的机器人在所述平滑轨迹的终止点的速度,终止点为位置特征点P 5
[0139]
将位置特征点P 5、位置特征点P 4、位置特征点P 3、时间特征点T 3、速度υ f、加速度a f及角度β代入表达式l 2=cosβ|P 3-P 5|及 中,求解时间特征点T 5,其中,加速度a f为预先设置的机器人在平滑轨迹的终止点的加速度,角度β为线段P 5P 4与线段P 5P 3之间的夹角,|P 3-P 5|为线段P 5P 3的长度。
[0140]
将位置特征点P 5、位置特征点P 4、速度υ f及时间特征点T 5代入表达式 中,求解时间特征点T 4
[0141]
以下说明各个时间特征点的表达式的获得方式与四阶类似,此处并不赘述。
[0142]
需要说明的是,以上计算过程中的T 3的表达式为预设的,即为了使速度平稳而预设的一种计算方式。但是T 3可以不受约束,即不使用上述表达式。当然,可以根据想要达到的运动情况,来设置T 3的表达式。
[0143]
另外,计算T 3的方式还可以是预先设置T f的值,即T f的值为已知值。这 样,根据上述 可以确定出T 3的值。
[0144]
以上是关于时间特征点T 0、T 1、T 2、T 3、T 4及T 5的计算过程,根据计算出的时间特征点,便可以构建出关于时间的五阶Bezier曲线的表达式。进而,可以使用该表达式,执行图4所示的插补过程,以确定机器人在每个插补周期内需要行进至的位置坐标点,实现机器人按照贝塞尔曲线进行平滑转接。
[0145]
见图5,其示出了本申请提供的机器人运动控制装置的结构。
[0146]
机器人运动控制装置应用于机器人中,具体可为机器人的控制器或处理器,用于控制机器人按照预先构建的关于路径的三阶Bezier曲线表示的平滑轨迹进行运动,所述控制装置在每个控制周期内确定机器人需运动至的位置点。
[0147]
其中,如图5所示,所述控制装置具体包括:
[0148]
时长值确定单元51,用于确定从首个控制周期到当前控制周期的时长值;
[0149]
参数值确定单元52,用于使用预先构建的关于时间的n阶Bezier曲线的表达式,求解所述时长值对应的Bezier参数的值;其中,所述关于时间的n阶Bezier曲线表示的是Bezier参数与时长之间的曲线关系;
[0150]
坐标值确定单元53,用于将所述Bezier参数的值代入所述关于路径的n阶Bezier曲线的表达式中,获得位置坐标值;其中,所述关于路径的n阶Bezier曲线表示的是Bezier参数与位置坐标之间的曲线关系;
[0151]
移动至坐标值单元54,用于向驱动装置发送所述位置坐标值,以使所述驱动装置将所述机器人移动至所述位置坐标值表示的位置点。
[0152]
另外,见图6,其示出了本申请提供的机器人运动控制装置的另一种结构。该控制装置在上述图5所示的控制装置的基础上,还可以包括:时间曲线构建单元55及路径曲线构建单元56。需要说明的是,图6中的部件51~54可以参见上述说明,此处并不赘述。
[0153]
时间曲线构建单元55,用于构建关于路径的n阶Bezier曲线;
[0154]
路径曲线构建单元56,用于构建关于路径的n阶Bezier曲线,所述关于路径的三阶Bezier曲线作为机器人从前段轨迹运动到后段轨迹的平滑轨迹。
[0155]
时间曲线构建单元及路径曲线构建单元可以执行以上控制方法中相关的步骤以具体构建时间Bezier曲线及路径Bezier曲线,参照上文说明,此处并不赘述。
[0156]
见图7,其示出了本申请提供的机器人运动控制装置的硬件结构示意图。如图7所示,该机器人运动控制装置可以包括:处理器1,通信接口2,存储器3以及通信总线4;其中处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信。
[0157]
存储器3,用于存放安装于该机器人运动控制装置中的程序代码以及数据。存储器3可以是高速RAM存储器,也可以是非易失性存储器(non-volatile memory),例如磁盘存储器。所述程序代码包括处理器的操作指令。
[0158]
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
[0159]
所述处理器1用于调用所述存储器3中的程序代码及数据以确定机器人在多个控制周期中的每个控制周期内需运动至的位置点,从而控制机器人按照预先构建的关于路径的n(n为不小4的整数)阶Bezier曲线表示的平滑轨迹进行运动。所述处理器1用于调用所述存储器3中的程序代码及数据以确定机器人在多个控制周期中的每个控制周期内需运动至的位置点,具体包括以下步骤:
[0160]
确定从首个控制周期到当前控制周期的时长值;
[0161]
使用预先构建的关于时间的n阶Bezier曲线的表达式,求解所述时长值对应的Bezier参数的值;其中,所述关于时间的n阶Bezier曲线表示的是Bezier参数与时长之间的曲线关系;
[0162]
将所述Bezier参数的值代入预先构建的关于路径的n阶Bezier曲线的表达式中,获得位置坐标值;其中,所述关于路径的n阶Bezier曲线表示的是Bezier参数与位置坐标之间的曲线关系;
[0163]
通过所述通信接口2向驱动装置发送所述位置坐标值,以使所述驱动装置将所述机器人移动至所述位置坐标值表示的位置点。
[0164]
所述通信接口2用于与驱动装置相连,从而向驱动装置发送位置坐标。所述通信接口2可以为通信模块的接口,如GSM模块的接口,PCI模块的接口等。
[0165]
本申请还提供了一种机器人,包括:机器人运动控制装置及驱动装置,其中:
[0166]
所述机器人运动控制装置,用于确定从首个控制周期到当前控制周期的时长值;使用预先构建的关于时间的n(n为不小于4的整数)阶Bezier曲线的表达式,求解所述时长值对应的Bezier参数的值;其中,所述关于时间的n阶Bezier曲线表示的是Bezier参数与时长之间的曲线关系;将所述Bezier参数的值代入预先构建的关于路径的n阶Bezier曲线的表达式中,获得位置坐标值;其中,所述关于路径的n阶Bezier曲线表示的是Bezier参数与位置坐标之间的曲线关系;向驱动装置发送所述位置坐标值;
[0167]
所述驱动装置,用于驱动所述机器人移动至所述位置坐标值表示的位置点。
[0168]
其中,机器人可以具体为机械臂。
[0169]
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
[0170]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在可读介质中或者作为可读介质上的一个或多个指令或代码进行传输。。
[0171]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

权利要求书

[权利要求 1]
一种机器人运动控制方法,其特征在于,用于控制机器人按照预先构建的关于路径的n(n为不小4的整数)阶Bezier曲线表示的平滑轨迹进行运动,所述控制方法用于在多个控制周期中的每个控制周期内确定机器人需运动至的位置点,其中每个控制周期内包括以下步骤: 确定从首个控制周期到当前控制周期的时长值; 使用预先构建的关于时间的n阶Bezier曲线的表达式,求解所述时长值对应的Bezier参数的值;其中,所述关于时间的n阶Bezier曲线表示的是Bezier参数与时长之间的曲线关系; 将所述Bezier参数的值代入所述关于路径的n阶Bezier曲线的表达式中,获得位置坐标值;其中,所述关于路径的n阶Bezier曲线表示的是Bezier参数与位置坐标之间的曲线关系; 向驱动装置发送所述位置坐标值,以使所述驱动装置将所述机器人移动至所述位置坐标值表示的位置点。
[权利要求 2]
根据权利要求1所述的方法,其特征在于,构建所述关于时间的n阶Bezier曲线的方法包括: 依据关于路径的n阶Bezier曲线的位置特征点、预设的起始点的速度、预设的终止点的速度、预设的起始点的加速度以及预设的终止点的加速度,确定所述关于时间的n阶Bezier曲线的时间特征点; 依据所述时间特征点,构建的关于时间的n阶Bezier曲线的表达式。
[权利要求 3]
根据权利要求2所述的方法,其特征在于,在n为4的情况下,关于路径的四阶Bezier曲线的表达式为: P(u)=P 0(1-u) 4+4P 1u(1-u) 3+6P 2u 2(1-u) 2+4P 3u 3(1-u)+P 4u 4; 其中,u为Bezier参数且u∈[0,1],P(u)表示关于路径的四阶Bezier曲线中的位置坐标,P 0、P 1、P 2、P 3及P 4为关于路径的四阶Bezier曲线的位置特征点; 所述关于时间的四阶Bezier曲线的表达式为: T(u)=T 0(1-u) 4+4T 1u(1-u) 3+6T 2u 2(1-u) 2+4T 3u 3(1-u)+T 4u 4; 其中,u为Bezier参数且u∈[0,1],T(u)表示沿着所述关于路径的四阶Bezier曲线表示的平滑轨迹运动所需的时长;T 0、T 1、T 2、T 3及T 4为关于时间的四阶Bezier曲线的时间特征点。
[权利要求 4]
根据权利要求3所述的方法,其特征在于,依据关于路径的四阶Bezier曲线的位置特征点、预设的起始点的速度、预设的终止点的速度、预设的起始点的加速度以及预设的终止点的加速度,确定所述关于时间的四阶Bezier曲线的时间特征点T 0、T 1、T 2、T 3及T 4,包括: 确定时间特征点T 0为0; 将位置特征点P 0、位置特征点P 1及速度υ s代入表达式 求解时间特征点T 1,其中,所述速度υ s为预先设置的机器人在所述平滑轨迹的起始点的速度,起始点即位置特征点P 0; 将位置特征点P 2、位置特征点P 1、位置特征点P 0、时间特征点T 1、加速度a s及角度α代入表达式l 1=cosα|P 0-P 2|及 中,求解时间特征点T 2,其中,加速度a s为预先设置的机器人在平滑轨迹的起始点的加速度,起始点为位置特征点P 0,角度α为线段P 0P 1与线段P 0P 2之间的夹角,|P 0-P 2|为线段P 0P 2的长度; 将位置特征点P 4、位置特征点P 3、位置特征点P 2、时间特征点T 2、速度υ f、加速度a f及角度β代入表达式l 2=cosβ|P 2-P 4|及 中,求解时间特征点T 4,其中,加速度a f为预先设置的机器人在平滑轨迹的终止点的加速度,速度υ f为预先设置的机器人在所述平滑轨迹的终止点的速度,终止点为位置特征点P 4,角度β为线段P 4P 3与线段P 4P 2之间的夹角,|P 2-P 4|为线段P 4P 2的长度; 将位置特征点P 4、位置特征点P 3、速度υ f及时间特征点T 4代入表达式 中,求解时间特征点T 3
[权利要求 5]
根据权利要求2所述的方法,其特征在于,在n等于5的情况下,关于路径的五阶Bezier曲线的表达式为: P(u)=P 0(1-u) 5+5P 1u(1-u) 4+10P 2u 2(1-u) 3+10P 3u 3(1-u) 2+5P 4u 4(1-u)+P 5u 5; 其中,u为Bezier参数且u∈[0,1],P(u)表示关于路径的五阶Bezier曲线中的位置坐标,P 0、P 1、P 2、P 3、P 4及P 5为关于路径的五阶Bezier曲线的位置特征点; 所述关于时间的五阶Bezier曲线的表达式为: T(u)=T 0(1-u) 5+5T 1u(1-u) 4+10T 2u 2(1-u) 3+10T 3u 3(1-u) 2+5T 4u 4(1-u)+T 5u 5; 其中,u为Bezier参数且u∈[0,1],T(u)表示沿着所述关于路径的五阶Bezier曲线表示的平滑轨迹运动所需的时长;T 0、T 1、T 2、T 3、T 4及T 5为关于时间的五阶Bezier曲线的时间特征点。
[权利要求 6]
根据权利要求5所述的方法,其特征在于,确定所述关于时间的五阶Bezier曲线的时间特征点T 0、T 1及T 2,包括: 确定时间特征点T 0为0; 将位置特征点P 0、位置特征点P 1及速度υ s代入表达式 求解时间特征点T 1,其中,所述速度υ s为预先设置的机器人在所述平滑轨迹的起始点的速度,起始点即位置特征点P 0; 将位置特征点P 2、位置特征点P 1、位置特征点P 0、时间特征点T 1、加速度a s及角度α代入表达式l 1=cosα|P 0-P 2|及 中,求解时间特征点T 2,其中,加速度a s为预先设置的机器人在平滑轨迹的起始点的加速度,起始点为位置特征点P 0,角度α为线段P 0P 1与线段P 0P 2之间的夹角,|P 0-P 2|为线段P 0P 2 的长度。
[权利要求 7]
根据权利要求6所述的方法,其特征在于,确定所述关于时间的五阶Bezier曲线的时间特征点T 3、T 4及T 5,包括: 将位置特征点P 3、位置特征点P 2、速度υ s、速度υ f及时间特征点T 2代入表达式 中,求解时间特征点T 3,其中,速度υ f为预先设置的机器人在所述平滑轨迹的终止点的速度,终止点为位置特征点P 5; 将位置特征点P 5、位置特征点P 4、位置特征点P 3、时间特征点T 3、速度υ f、加速度a f及角度β代入表达式l 2=cosβ|P 3-P 5|及 中,求解时间特征点T 5,其中,加速度a f为预先设置的机器人在平滑轨迹的终止点的加速度,角度β为线段P 5P 4与线段P 5P 3之间的夹角,|P 3-P 5|为线段P 5P 3的长度; 将位置特征点P 5、位置特征点P 4、速度υ f及时间特征点T 5代入表达式 中,求解时间特征点T 4
[权利要求 8]
根据权利要求6所述的方法,其特征在于,确定所述关于时间的五阶Bezier曲线的时间特征点T 3、T 4及T 5,包括: 获得预先设置的T f,并根据T 5=T f确定时间特征点T 5; 将位置特征点P 5、位置特征点P 4、速度υ f及时间特征点T 5代入表达式 中,求解时间特征点T 4; 将位置特征点P 5、位置特征点P 4、位置特征点P 3、时间特征点T 3、速度υ f、 加速度a f及角度β代入表达式l 2=cosβ|P 3-P 5|及 中,求解时间特征点T 3
[权利要求 9]
根据权利要求1所述的方法,其特征在于,所述关于路径的n阶Bezier曲线作为机器人从前段轨迹运动到后段轨迹的平滑轨迹,构建所述关于路径的n阶Bezier曲线的方法包括: 根据所述前段轨迹及所述后段轨迹确定n阶Bezier曲线的位置特征点,根据所述位置特征点,构建关于路径的n阶Bezier曲线; 其中,所述位置特征点中包含起始点及终止点,所述前段轨迹具有拐出点,所述后段轨迹具有拐入点,且所述起始点与所述拐出点重合,所述终止点与所述拐入点重合,所述起始点的切矢量方向与所述拐出点的切矢量方向相同,所述终止点的切矢量方向与所述拐入点的切矢量方向相同。
[权利要求 10]
一种机器人运动控制装置,其特征在于,用于控制机器人按照预先构建的关于路径的n(n为不小4的整数)阶Bezier曲线表示的平滑轨迹进行运动,该控制装置用于在多个控制周期中的每个控制周期内确定机器人需运动至的位置点,该装置包括: 时长值确定单元,用于确定从首个控制周期到当前控制周期的时长值; 参数值确定单元,用于使用预先构建的关于时间的n阶Bezier曲线的表达式,求解所述时长值对应的Bezier参数的值;其中,所述关于时间的n阶Bezier曲线表示的是Bezier参数与时长之间的曲线关系; 坐标值确定单元,用于将所述Bezier参数的值代入所述关于路径的n阶Bezier曲线的表达式中,获得位置坐标值;其中,所述关于路径的n阶Bezier曲线表示的是Bezier参数与位置坐标之间的曲线关系; 移动至坐标值单元,用于向驱动装置发送所述位置坐标值,以使所述驱动装置将所述机器人移动至所述位置坐标值表示的位置点。
[权利要求 11]
一种机器人运动控制装置,其特征在于,包括通信接口、处理器以及存储器,所述通信接口与驱动装置相连,所述存储器内存储有安装于所述 机器人运动控制装置中的程序代码及数据,所述处理器用于调用所述存储器中的程序代码及数据以确定机器人在多个控制周期中的每个控制周期内需运动至的位置点,具体包括以下步骤: 确定从首个控制周期到当前控制周期的时长值; 使用预先构建的关于时间的n阶Bezier曲线的表达式,求解所述时长值对应的Bezier参数的值;其中,所述关于时间的n阶Bezier曲线表示的是Bezier参数与时长之间的曲线关系; 将所述Bezier参数的值代入预先构建的关于路径的n阶Bezier曲线的表达式中,获得位置坐标值;其中,所述关于路径的n阶Bezier曲线表示的是Bezier参数与位置坐标之间的曲线关系; 通过所述通信接口向驱动装置发送所述位置坐标值,以使所述驱动装置将所述机器人移动至所述位置坐标值表示的位置点。
[权利要求 12]
一种机器人,其特征在于,包括:机器人运动控制装置及驱动装置,其中: 所述机器人运动控制装置,用于确定从首个控制周期到当前控制周期的时长值;使用预先构建的关于时间的n(n为不小于4的整数)阶Bezier曲线的表达式,求解所述时长值对应的Bezier参数的值;其中,所述关于时间的n阶Bezier曲线表示的是Bezier参数与时长之间的曲线关系;将所述Bezier参数的值代入预先构建的关于路径的n阶Bezier曲线的表达式中,获得位置坐标值;其中,所述关于路径的n阶Bezier曲线表示的是Bezier参数与位置坐标之间的曲线关系;向驱动装置发送所述位置坐标值; 所述驱动装置,用于驱动所述机器人移动至所述位置坐标值表示的位置点。

附图

[ 图 0001]  
[ 图 0002]  
[ 图 0003]  
[ 图 0004]  
[ 图 0005]  
[ 图 0006]  
[ 图 0007]  
[ 图 0008]  
[ 图 0009]