控制机器人的运动轨迹的方法和控制系统与流程

文档序号:23066574发布日期:2020-11-25 17:52阅读:756来源:国知局
控制机器人的运动轨迹的方法和控制系统与流程

本公开总体上涉及机器人的运动轨迹的控制。特别地,本公开提供了一种用于控制机器人的运动轨迹的方法和控制系统,其中预测与替代运动轨迹的执行有关的至少一个参数的值。



背景技术:

在对机器人进行编程时,用户通常必须使用不同的指令来定义位置之间的运动轨迹。为了创建时间最优程序,用户必须进行大量搜索。很多时候,用户希望时间最优运动轨迹,并且很少关心确切的路径。为了对时间最优运动轨迹进行编程,用户经常必须执行很多手动复杂测试。然而,某些用户没有足够的知识来执行这样的测试。而且,这样的测试是费时的。时间最优运动轨迹也可以通过样条搜索来找到。然而,样条搜索的计算量很大。如今,用户无法使用任何能够有效且轻松地找到时间最优运动轨迹的编程工具。

us6216058b1公开了一种系统,该系统提供了具有易于跟踪或连续加速度分布的轨迹生成,以用于单臂和多臂机器人操纵器的简单混合运动,诸如沿直线的伸展和缩回运动、或者沿圆弧的旋转运动,并且具有速度、加速度、跳动和跳动率约束。



技术实现要素:

本公开的一个目的是提供一种用于控制机器人的运动轨迹的方法,该方法提供对运动轨迹的有效和/或简单的控制。

本公开的另一目的是提供一种方法,该方法使得能够对机器人的运动轨迹进行有效和/或简单的编程。

本公开的又一目的是提供一种用于控制机器人的运动轨迹的方法,该方法生成最优或接近最优的运动轨迹的快速选择。

本公开的又一目的是提供一种用于控制机器人的运动轨迹的方法,该方法在计算上较不繁琐以便生成最优或接近最优的运动轨迹的选择。

本公开的又一目的是提供一种用于控制机器人的运动轨迹的方法,该方法在计算时间与最优运动轨迹之间取得平衡。

本公开的又一目的是提供一种用于控制机器人的运动轨迹的方法,该方法易于使用,例如,机器人程序员的所需要的技能更少。

本公开的又一目的是提供一种用于控制机器人的运动轨迹的方法,该方法易于实现。

本公开的又一目的是提供一种用于控制机器人的运动轨迹的方法,该方法组合地解决了多个或所有前述目的。

本公开的又一目的是提供一种用于控制机器人的运动轨迹的控制系统,该控制系统解决了一个、多个或所有前述目标。

根据一个方面,提供了一种用于控制机器人的运动轨迹的方法,该方法包括:在离线模式下,预测与替代运动轨迹的执行有关的至少一个参数的值,替代运动轨迹在机器人的第一位置与机器人的第二位置之间;在离线模式下,基于至少一个参数的预测值选择运动轨迹;以及由机器人执行所选择的运动轨迹。

根据本公开的方法使得能够标识和使用最优或接近最优的运动轨迹。更具体地,该方法通过使用机器人的两个位置和离线优化来选择和执行关于至少一个参数而言最优或接近最优的运动轨迹或路径。可以被认为是优化计划和执行的该方法易于被用户(例如,机器人编程器)使用,并且有效地提供一个或多个最优或接近最优的运动轨迹。

替代运动轨迹之中的每个运动轨迹可以由空间中的至少三个点(即,第一位置、第二位置和至少一个中间位置)限定。在通过一个或多个中间位置或点限定替代运动轨迹的情况下,机器人在所选择的运动轨迹的执行过程中移动通过所选择的运动轨迹的一个或多个中间位置。根据本公开,中间位置可以由偏移位置或偏移点构成。

根据本公开的运动轨迹可以是三维的。在至少一个参数由时间构成的情况下,最优运动轨迹可以被称为具有在最短时间内行进的潜力的笛卡尔空间中的点的集合。给定特定三维运动轨迹,存在现有方法可以沿着该特定运动轨迹找到时间最优运动,例如us6216058b1。然而,根据本公开的方法提供了在多个替代运动轨迹之中选择关于至少一个参数为最优的特定运动轨迹。因此,根据本公开的方法不限于特定运动轨迹。

在至少一个参数由用于执行替代运动轨迹的时间构成的情况下,该方法提供在第一位置与第二位置之间的时间最优运动轨迹的选择和执行。因此,基于第一位置和第二位置,该方法优化了第一位置与第二位置之间的循环时间,例如,借助于控制系统。尽管本公开主要将至少一个参数例示为时间,但是要强调的是,可以通过预测替代参数的值来采用该方法,诸如机器人的能耗和/或组件寿命。

在很多应用中,机器人在第一位置与第二位置之间的运动轨迹不需要采用任何特定形状(圆形、直线等)。通过“允许运动轨迹变化”,即,通过允许运动轨迹的各种不同形状范围,可以找到更好的(关于至少一个参数)运动轨迹。在该方法的一些实现中,通过找到运动轨迹的适当形状,在第一位置与第二位置之间的运动轨迹的循环时间有可能减少20%。

该方法的预测可以通过控制系统的离线编程工具(诸如示教器)来执行,以便选择关于至少一个参数最优的运动轨迹(诸如时间最优运动轨迹)。值的预测可以包括例如借助于仿真为每个替代运动轨迹生成虚拟测试用例并且确定每个测试用例的至少一个参数的值。

该选择也可以由离线编程工具执行,即,自动执行。替代地,编程工具可以向用户提出最优运动轨迹。然后,用户可以在执行运动轨迹之前接受或拒绝所提出的运动轨迹。

机器人的第一位置和第二位置可以分别替代地称为机器人的第一姿态和第二姿态、机器人的第一点和第二点、或者机器人的开始位置和终点位置。机器人的位置或姿态可以表示为机器人的工具中心点(tcp)的位置。当执行所选择的运动轨迹时,机器人可以连续地跟随运动轨迹,例如,使用tcp,而没有任何中间停止并且没有从运动轨迹的偏离。

该方法还可以包括在预测替代运动轨迹的值之前生成替代运动轨迹。以这种方式,该方法不需要预定义运动轨迹的初始填充。

该方法还可以包括接收指示机器人的第二位置的用户输入。用户输入可以由编程工具接收。根据一种变型,用户仅需提供指示机器人的第二位置的用户输入。在这种情况下,编程工具可以基于作为唯一的用户输入的第二位置来选择最优运动轨迹。

替代运动轨迹可以由参数曲线的不同常数来定义。使用一种类型的参数曲线来定义替代运动轨迹使得能够快速预测替代运动轨迹的至少一个参数的值,例如,每分钟可以通过控制系统执行更多操作。因此,根据本公开的方法可以基于参数化搜索策略,以便找到关于至少一个参数的最优运动轨迹。该方法可以可选地包括接收指示参数曲线的用户输入。

参数曲线可以是圆锥截面。圆锥部分可以由圆弧、椭圆弧、抛物线或双曲线构成。在每种情况下,参数曲线可以由参数曲线上的三个点(即,常数)定义,例如圆锥形截面的第一位置、第二位置和偏移点。如果参数曲线由偏移点定义,则机器人在执行所选择的运动轨迹时会经过所选择的运动轨迹的偏移点。偏移点可以替代地被称为最大点、曲线高度、中间点、中点或行进点。圆锥形部分可以关于第一位置和第二位置对称。也就是说,偏移点可以在第一位置与第二位置之间居中。

然而,根据本公开的参数曲线可以替代地由直线构成。直线也可以由第一位置、第二位置和偏移点定义。

替代地或附加地,替代运动轨迹可以由关节运动轨迹定义。如本文中使用的,关节运动轨迹是其中仅机器人的多个关节之一被驱动(例如,旋转或平移)的运动轨迹。

参数曲线的类型可以根据机器人的第一位置和/或第二位置来确定。例如,当机器人在第一和/或第二位置处于一种姿态时(例如,当一个或多个关节与校准位置成相对较大角度时),可以选择一种类型的参数曲线,而当机器人在第一位置和/或第二位置处于另一种姿态时(例如,当一个或多个关节与校准位置成相对较小角度时),可以选择另一种类型的参数曲线。

根据一个变型,可以预测小于500的值,诸如小于50,诸如小于30,诸如小于20的替代运动轨迹。

替代运动轨迹可以从第一位置与第二位置之间的直线偏移小于第一位置与第二位置之间的距离的50%,诸如小于30%。在替代运动轨迹由圆锥曲线形式的参数曲线构成的情况下,偏移距离可以由第一位置与第二位置之间的直线与每个运动轨迹的偏移点之间的距离构成。

该方法还可以包括:在预测至少一个参数的值之前,接收指示至少一个参数的用户输入。

至少一个参数可以是机器人执行相应替代运动轨迹的时间。也就是说,至少一个参数可以由时间构成或包括时间。因此,该方法使用离线优化在两个定义的位置之间提供时间最优轨迹。

第一位置可以是机器人的当前位置。在这种情况下,用户可以例如仅输入第二位置,等待从第一位置到第二位置的运动轨迹被选择,执行并且存储在机器人程序中。然后,用户可以进入第三位置,等待从第二位置到第三位置的运动轨迹被选择,执行并且存储在机器人程序中。以这种方式,用户可以容易地创建包括多个运动轨迹的机器人程序,多个运动轨迹各自关于参数是最优的(例如,是时间最优的)。用户输入例如可以被输入到编程工具中以进行进一步处理。

值的预测可以包括预测与第一组替代运动轨迹的执行有关的至少一个参数的值,第一组替代运动轨迹在第一位置与第二位置之间,第一组中的运动轨迹具有相对较大的几何变化;基于与第一组的执行有关的值的预测,在第一位置与第二位置之间定义第二组替代运动轨迹,第二组中的运动轨迹具有相对较小的几何变化;以及预测与第二组替代运动轨迹的执行有关的至少一个参数的值。第二组的定义可以基于关于至少一个参数具有最优值(例如,最大值或最小值)的来自第一组的运动轨迹。这样,很可能以计算有效的方式找到最优或接近最优的运动轨迹。

值的预测是可以基于机器人的运动学模型和/或机器人的动力学模型来进行的。此外,针对至少一个参数的值的预测还可以考虑机器人的约束,诸如环境限制、最大关节扭矩、最大关节速度和/或最大关节加速度。机器人约束可以由用户预先定义或定义。

值的预测可以考虑与机器人的机器人工具相关联的工具参数。根据一个变型,该方法还包括接收用户输入,该用户输入指示与机器人的机器人工具有关的工具参数,例如,机器人工具的类型和/或机器人工具的重量。

值的预测可以考虑机器人的外部负载。根据一个变型,该方法还包括接收指示与机器人上的外部负载(例如,有效载荷或附加的臂负载)有关的参数的用户输入。替代地或附加地,对至少一个参数的值的预测可以包括神经网络的使用。机器学习技术从而可以被用来更快且更准确地预测至少一个参数的值。

根据另一方面,提供了一种用于控制机器人的运动轨迹的控制系统,该控制系统包括数据处理设备和在其上存储有计算机程序的存储器,该计算机程序包括程序代码,该程序代码在由数据处理设备执行时引起数据处理设备执行以下步骤:在离线模式下,预测与替代运动轨迹的执行有关的至少一个参数的值,替代运动轨迹在机器人的第一位置与机器人的第二位置之间;在离线模式下,基于至少一个参数的预测值选择运动轨迹;以及控制机器人执行所选择的运动轨迹。

控制系统可以包括编程工具,该编程工具可以选择关于至少一个参数最优的运动轨迹,诸如时间最优运动轨迹。编程工具可以包括根据本公开的用于值的预测和运动轨迹的选择的离线计划器或离线搜索算法。然后,可以将机器人程序上传到例如控制系统的机器人控制器,并且由机器人执行。

根据另一方面,提供了一种包括根据本公开的控制系统的机器人。根据本公开的机器人可以是各种各样的类型,例如具有至少三个自由度(诸如六个或七个自由度)的机器人。

附图说明

通过以下结合附图的实施例,本公开的其他细节、优点和方面将变得很清楚,在附图中:

图1:示意性地示出了机器人的一个示例和替代运动轨迹的俯视图;

图2:示出了指示图1中的每个替代运动轨迹的循环时间和偏移距离的图;

图3:示出了指示图2中的替代运动轨迹中的第一组替代运动轨迹的循环时间和偏移距离的图;

图4:示出了图3中的图和第一组替代运动轨迹的近似;以及

图5:示出了图4中的图、感兴趣区域的应用和第二组替代运动轨迹。

具体实施方式

在下文中,将描述用于控制机器人的运动轨迹的方法和控制系统,其中预测与替代运动轨迹的执行有关的至少一个参数的值。相同的附图标记将用于表示相同或相似的结构特征。

图1示意性地示出了机器人10的一个示例的俯视图以及机器人10的第一位置14与第二位置16之间的替代运动轨迹12a-12o。第一位置14由机器人10的当前位置或起始位置构成。第二位置16由机器人10的目标位置或终点位置构成。

一个或多个或全部运动轨迹12a-12o也用附图标记12表示。图1还表示用于参考目的的笛卡尔坐标系的水平x轴和水平y轴。然而,机器人10可以在空间中任意地定向。

机器人10可以例如由工业机器人构成。在图1中,机器人10被例示为scara机器人(选择性依从铰接式机器人手臂)。然而,本公开不限于这种类型的机器人10。图1中的机器人10包括第一臂18和第二臂20。第一臂18在第一关节处相对于基座(未示出)绕第一旋转轴线22可旋转。第二臂20在第二关节处相对于第一臂18绕第二旋转轴线24可旋转。

机器人10还包括由机器人工具26构成的末端执行器。机器人工具26可以借助于第三关节(未示出)竖直地(沿z轴)运动。因此,该非限制性示例的机器人10具有三个自由度。

在图1中,每个替代运动轨迹12由以圆弧为形式的参数曲线表示。每个运动轨迹12可以由圆弧上的三个点唯一地定义。在该示例中,每个运动轨迹12的这三个点是第一位置14、第二位置16和偏移点28(仅示出了运动轨迹12之一的偏移点28)。

机器人10还包括控制系统30。控制系统30包括数据处理设备32(例如,中央处理单元cpu)和存储器34。计算机程序存储在存储器34中。计算机程序包括程序代码,该程序代码在由数据处理设备32执行时使得数据处理设备32:在离线模式下,预测与交替运动轨迹12的执行有关的至少一个参数的值,交替运动轨迹12在机器人10的第一位置14与机器人10的第二位置16之间,在离线模式下,基于至少一个参数的预测值选择运动轨迹12,并且控制机器人10执行所选择的运动轨迹12。控制系统30可以还被配置为执行根据本公开的任何处理操作并且控制机器人10执行根据本公开的任何运动。控制系统30可以例如包括机器人控制器和编程工具,诸如示教器。在这种情况下,编程工具可以与机器人控制器物理分离。

编程工具可以包含机器人10的动力学模型和运动学模型。用户可以可选地将与机器人10有关的参数输入到编程工具。这样的参数的示例是机器人10的类型、与当前使用的机器人工具26有关的一个或多个参数、机器人工具26上的有效载荷、以及臂负载。

图2示出了指示图1中的每个替代运动轨迹12的循环时间和偏移距离36的图。运动轨迹12的偏移点28以10mm递增地变化。再次强调,该方法的至少一个参数可以由除时间以外的至少一个参数构成或包括这样的至少一个参数。本公开还可以应用于替代参数,例如能耗和部件寿命。

如图2所示,由第一位置14与第二位置16之间的直线构成的运动轨迹12h不是最快的运动轨迹12。相反,在该非限制性示例中从笔直运动轨迹12h偏移0.02m的运动轨迹12h是最快的,并且因此是时间最优的。

参考图1至图5,将描述用于控制机器人10的运动轨迹12的方法的一个示例。要优化的参数的类型可以可选地由用户输入,或者替代地,可以是预定义的。在该示例中,该方法旨在找到并且执行时间最优运动轨迹12。

用户可以将机器人10的期望的第二位置16输入到编程工具。除非另有说明,否则可以假定第一位置14是机器人10的当前位置。给定第一位置14、第二位置16和可选的其他条件(例如,机器人10的类型、机器人工具26的类型等),编程工具可以选择最合适的参数曲线和变化的范围。例如,当机器人10处于一种类型的位置时(例如,当一个或多个关节与校准位置成相对较大角度时),编程工具可以选择一种类型的参数曲线,并且当机器人10处于另一种类型的位置时(例如,当一个或多个关节与校准位置成相对较小角度时),编程工具可以选择另一种类型的参数曲线。因此,参数曲线根据第一位置14和/或第二位置16来确定。在这种情况下,圆弧形式的参数曲线根据图1来选择。

每个参数曲线由第一位置14、第二位置16和偏移点28定义的圆弧构成。由于第一位置14和第二位置16对于所有替代运动轨迹12相同,因此每个参数曲线可以由其偏移点28唯一地被定义。因此,在该特定情况下,可以将该问题重新表述为优化参数曲线的偏移点28的位置。

编程工具还可以通过设置“最外”运动轨迹12或通过为最外运动轨迹12a、12o定义最大偏移距离36来限定变化范围。最大偏移距离36可以例如被设置为小于第一位置14与第二位置16之间的距离的50%。

然后,编程工具可以在第一组中设置多个替代运动轨迹12以进行预测。在变化范围内,替代运动轨迹12可以被均等地分布,或者被基本上均等地分布。编程工具然后可以生成一组替代运动轨迹12。在该示例中,第一组的数目被设置为五个。在第一组替代运动轨迹12中,运动轨迹12可以具有相对较大的几何变化。如图3所示,生成运动轨迹12b、12d、12h、12l、12n。运动轨迹12b、12d、12h、12l、12n具有相对较大变化的偏移点28。

然后,编程工具在离线模式下预测第一组中的每个运动轨迹12的循环时间。用于预测的运动轨迹12可以被称为测试用例。循环时间的预测可以通过基于机器人10的运动学模型和动力学模型的仿真(例如,在中)来进行。仿真可以可选地考虑与机器人工具26相关联的工具参数,诸如其重量。图3中的图示出了第一组替代运动轨迹12的所预测的循环时间和偏移距离36。因此,在该示例中,参数由时间构成,并且值是每个运动轨迹12的所预测的循环时间。

图4示出了图3中的图以及第一组替代运动轨迹12的近似。在图4中,五个运动轨迹12b、12d、12h、12l、12n由抛物线38近似。然而,可以使用多种类型的曲线来近似多个运动轨迹12。

图5示出了图4中的图、感兴趣区域40的应用、和第二组替代运动轨迹12。感兴趣区域40被施加在抛物线38的最小值上。感兴趣区域40指示对运动轨迹12的选择,该运动轨迹12被估计为最有可能是时间最优的。因此,期望时间最优运动轨迹12被定位为接近抛物线曲线38的最小值。第二组包括在感兴趣区域40内具有相对较小几何变化的运动轨迹12。在该示例中,第二组还包括来自第一组的在第一组之中具有最优值的运动轨迹12d。

然后,预测三个另外的运动轨迹12e、12f、12g中的每个运动轨迹的时间。在已经为其预测时间的替代运动轨迹12(在这种情况下是运动轨迹12b、12d、12e、12f、12g、12h、12i、12n中)之中,编程工具选择循环时间最短的运动轨迹12f。这是找到时间最优运动轨迹12的一种计算有效的方式。因此,在本示例中,仅预测八个运动轨迹12的时间,而不是图2中预测15个运动轨迹12的时间,同时仍然能够找到时间最优运动轨迹12f。

由此生成使用离线优化的从第一位置14到第二位置16的时间最优运动轨迹12。编程工具可以向用户建议该最快运动轨迹12以供离线选择。

因此,用户可以仅进入第二位置16并且按下按钮(例如,在编程工具上)以获取从第一位置14到第二位置16的最快(或接近最快)运动轨迹12。最快(或接近最快)运动轨迹12的生成是快速的,因为预测了相对较少的替代运动轨迹12的循环时间。如上所述,当预测第一组和第二组替代运动轨迹12的循环时间时,该预测特别快。

然后,用户可以存储运动轨迹12。然后,可选地,在对另外的运动轨迹12进行编程之后,可以由机器人10执行运动轨迹12。例如,当机器人10被定位在第二位置16处时,可以针对从第二位置16到第三位置的第二运动轨迹再次执行该方法。

尽管已经参考示例性实施例描述了本公开,但是应当理解,本公开不限于上面已经描述的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1