机械臂控制方法、控制设备和机器人与流程

文档序号:26479416发布日期:2021-08-31 17:36阅读:77来源:国知局
机械臂控制方法、控制设备和机器人与流程

本申请涉及控制技术领域,具体而言,涉及一种机械臂控制方法、控制设备和机器人。



背景技术:

随着控制技术的不断发展,其应用范围也越来越广。例如,为了提高生活的便利性或生产的高效性,基于控制技术的机器人得到了广泛的应用。

其中,机器人一般包括用于执行任务的机械臂和对该机械臂进行控制的控制设备。经发明人研究发现,控制设备在采用现有的控制技术对机械臂进行控制时,存在着控制效果差的问题。



技术实现要素:

有鉴于此,本申请的目的在于提供一种机械臂控制方法、控制设备和机器人,以改善现有的机械臂控制技术中存在的控制效果差的问题。

为实现上述目的,本申请实施例采用如下技术方案:

一种机械臂控制方法,包括:

基于目标位置生成第一位置指令,并基于该第一位置指令和比例积分微分算法对机械臂的动作进行控制,其中,所述比例积分微分算法中的积分值为固定值,且用于对所述机械臂的重力和该机械臂驱动的负载的重力进行补偿;

判断所述机械臂向所述目标位置运动的动作是否出现异常;

若所述机械臂的动作出现异常,则基于该机械臂当前的异常位置和所述第一位置指令生成第二位置指令。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,所述判断所述机械臂向所述目标位置运动的动作是否出现异常的步骤,包括:

判断所述机械臂是否运动至所述目标位置;

若未运动至所述目标位置,则判定所述机械臂的动作出现异常。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,所述判断所述机械臂是否运动至所述目标位置的步骤,包括:

在所述机械臂的动作停止之后,基于所述机械臂的当前位置生成位置回馈指令;

基于所述位置回馈指令和所述第一位置指令判断所述机械臂是否运动至所述目标位置。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,所述基于所述位置回馈指令和所述第一位置指令判断所述机械臂是否运动至所述目标位置的步骤,包括:

基于所述位置回馈指令和所述第一位置指令计算得到位置偏移量;

基于所述位置偏移量与预设偏移量的大小判断所述机械臂是否运动至所述目标位置。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,所述基于该机械臂当前的异常位置和所述第一位置指令生成第二位置指令的步骤,包括:

对得到的位置偏移量进行滤波处理,得到位置修正指令,其中,所述位置偏移量基于所述机械臂当前的异常位置和所述第一位置指令得到;

根据所述位置修正指令和所述第一位置指令生成第二位置指令。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,所述对得到的位置偏移量进行滤波处理,得到位置修正指令的步骤,包括:

基于预设的低频滤波公式对得到的位置偏移量进行低频滤波处理,得到位置修正指令,其中,所述低频滤波公式包括:

其中,pa为所述位置修正指令,pe为所述位置偏移量,s为低频滤波参数,且大于零。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,所述基于目标位置生成第一位置指令,并基于该第一位置指令和比例积分微分算法对机械臂的动作进行控制的步骤,包括:

基于目标位置生成第一位置指令,并基于该第一位置指令和预设的动力学计算模型计算得到驱动指令;

基于所述驱动指令和比例积分微分算法对机械臂的动作进行控制。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,所述机械臂包括依次连接的固定结构和至少一个运动结构,所述基于该第一位置指令和预设的动力学计算模型计算得到驱动指令的步骤,包括:

确定所述固定结构与所述运动结构之间的连接位置关系;

基于所述第一位置指令和预设的动力学计算模型,按照所述连接位置关系依次计算出各所述运动结构需要的驱动力矩,并基于该驱动力矩生成驱动指令。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,所述固定结构与所述运动结构通过连接结构连接,且在所述运动结构为多个时,相邻的两个运动结构通过一个连接结构连接,所述基于该驱动力矩生成驱动指令的步骤,包括:

基于各所述运动结构需要的驱动力矩,按照所述连接位置关系依次计算出相邻两个运动结构中前一运动结构对后一运动结构的作用力矩;

基于所述作用力矩计算出各所述连接结构需要的驱动力矩,并基于该驱动力矩生成驱动指令。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,在所述第二位置指令与所述异常位置满足预设关系时,所述方法还包括:

步骤a,基于所述目标位置生成位置校正指令;

步骤b,基于所述位置校正指令和所述比例积分微分算法对所述机械臂的动作进行控制。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,还包括:

步骤c,判断所述机械臂基于所述位置校正指令向所述目标位置运动的动作是否出现异常;

步骤d,若所述机械臂基于所述位置校正指令向所述目标位置运动的动作出现异常,则基于该机械臂当前的异常位置和所述位置校正指令生成新的第二位置指令,并在该新的第二位置指令与所述机械臂当前的异常位置满足预设关系时,再次执行步骤a。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,执行所述步骤a、所述步骤b和所述步骤c的次数为至少一次,直到所述机械臂基于所述位置校正指令向所述目标位置运动的动作未出现异常。

在本申请实施例较佳的选择中,在上述机械臂控制方法中,执行所述步骤a、所述步骤b和所述步骤c的次数为至少一次,直到该次数等于预设值,且每一次执行所述步骤c都判定,所述机械臂基于所述位置校正指令向所述目标位置运动的动作出现异常;或者

执行所述步骤a、所述步骤b和所述步骤c的次数为至少一次,直到该次数小于预设值,且最后一次执行所述步骤c时,判定所述机械臂基于所述位置校正指令向所述目标位置运动的动作未出现异常。

在上述基础上,本申请实施例还提供了一种控制设备,包括存储单元、处理单元和存储于该存储单元并能够在该处理单元上运行的计算机程序,且该计算机程序在所述处理单元上运行时,实现上述的机械臂控制方法。

在上述基础上,本申请实施例还提供了一种机器人,包括:

机械臂;

与所述机械臂连接的动力装置;

上述的控制设备,该控制设备与所述动力装置连接,用于通过控制该动力装置的输出,以对所述机械臂的动作进行控制。

本申请提供的机械臂控制方法、控制设备和机器人,在基于第一位置指令和比例积分微分算法对机械臂的动作进行控制时,若机械臂的动作出现异常,可以基于第一位置指令和异常位置生成第二位置指令。如此,一方面,由于可以基于第一位置指令和异常位置生成第二位置指令,使得出现异常时当前的位置指令可以得到校正,从而避免当前的位置指令和机械臂的实际位置出现较大误差的问题。另一方面,由于比例积分微分算法中的积分值为固定值,可以用于对机械臂的重力和该机械臂驱动的负载的重力进行补偿,使得机械臂可以在向目标位置运动的过程中,跟随负载的飘动而飘动,从而改善现有的机械臂控制技术中存在的控制效果差的问题,进而避免由于控制效果差而导致机械臂的动力装置容易受损的问题,能够有效地保障机器人安全的运行,具有较高的实用价值。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

图1为本申请实施例提供的机器人的结构框图。

图2为本申请实施例提供的机械臂基于运动产生的位置变化示意图。

图3为本申请实施例提供的机械臂控制方法包括的各步骤的流程示意图。

图4为图3中步骤s110包括的子步骤的流程示意图。

图5为本申请实施例提供的包括固定结构和运动结构的机械臂的结构示意图。

图6为本申请实施例提供的包括固定结构、运动结构和连接结构的机械臂的结构示意图。

图7为本申请实施例提供的位置指令中位置信息的变化示意图。

图8为本申请实施例提供的机械臂控制方法包括的其它步骤的流程示意图。

图9为本申请实施例提供的机械臂控制方法包括的其它步骤的流程示意图。

图标:10-机器人;100-控制设备;200-机械臂;210-固定结构;221-第一运动结构;222-第二运动结构;223-第三运动结构;224-第四运动结构;225-第五运动结构;226-第六运动结构;231-第一连接结构;232-第二连接结构;233-第三连接结构;234-第四连接结构;235-第五连接结构;236-第六连接结构;300-动力装置。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本申请的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

如图1所示,本申请实施例提供了一种机器人10,可以包括控制设备100、机械臂200和动力装置300。

其中,所述控制设备100可以通过控制所述动力装置300的输出,以对所述机械臂200的动作进行控制,使得该机械臂200执行相应的任务,如抓取负载等。

详细地,所述控制设备100可以与动力装置300的输入端连接,且该动力装置300的输出端与所述机械臂200连接,以基于该输出端的输出驱动该机械臂200产生动作,如图2所示,驱动所述机械臂200的末端从位置a运动至位置b。

可选地,所述机械臂200的具体构成不受限制,可以根据实际应用需求进行选择,例如,既可以包括4个转轴,也可以包括6个转轴。也就是说,所述机器人10既可以是4轴机器人,也可以是6轴机器人。

并且,所述动力装置300的具体类型也不受限制,可以根据实际应用需求进行选择,只要能够基于输入的不同,使得输出也不同即可。例如,在一种可以替代的示例中,所述动力装置300可以是一种伺服电机。

本申请实施例还提供一种控制设备100,可应用于上述的机器人10。其中,所述控制设备100可以包括存储单元、处理单元和存储于该存储单元并能够在该处理单元上运行的计算机程序。

详细地,所述存储单元和所述处理单元之间可以直接或间接地电性连接,以实现数据的传输或交互。例如,所述存储单元和所述处理单元相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述计算机程序在所述处理单元上运行时,可以实现本申请实施例提供的机械臂控制方法,从而对所述机械臂200的动作进行控制。

需要说明的是,所述控制设备100既可以包括一个控制器,也可以包括多个控制器。也就是说,所述处理单元既可以是一个,也可以是多个,从而构成一个控制器或多个控制器。

例如,在一种可以替代的示例中,所述控制设备100可以包括多个控制器,以分别执行所述机械臂控制方法包括的各步骤,如通过轨迹发生器生成位置指令、通过伺服控制器基于比例积分微分算法对所述机械臂200的动作进行控制。

结合图3,本申请实施例还提供一种可应用于上述控制设备100的机械臂控制方法。其中,所述机械臂控制方法有关的流程所定义的方法步骤可以由所述控制设备100实现。下面将对图3所示的具体流程进行详细阐述。

步骤s110,基于目标位置生成第一位置指令,并基于该第一位置指令和比例积分微分算法对机械臂200的动作进行控制。

在本实施例中,所述比例积分微分算法中的积分值为固定值,且用于对所述机械臂200的重力和该机械臂200驱动的负载的重力进行补偿。

如此,由于所述机械臂200和所述负载的重力已经被补偿,使得所述机械臂200和所述负载实际上是处于悬浮状态,因此,在基于所述第一位置指令控制所述机械臂200向所述目标位置运动的过程中,可以使得该机械臂200跟随所述负载的飘动而飘动。

步骤s120,判断所述机械臂200向所述目标位置运动的动作是否出现异常。

在本实施例中,考虑到所述机械臂200在向所述目标位置运动的过程中,可能会因为外力的原因(如其它障碍物的阻挡)使得该机械臂200不能有效地运动至所述目标位置。

因此,在执行步骤s110之后,可以对所述机械臂200的动作是否出现异常进行检测判断,并在基于检测的结果判定该机械臂200的动作出现异常时,可以执行步骤s130。

步骤s130,基于所述机械臂200当前的异常位置和所述第一位置指令生成第二位置指令。

在本实施例中,通过步骤s120判定所述机械臂200的动作出现异常时,可以基于该机械臂200当前的异常位置和所述第一位置指令生成第二位置指令,以实现对当前的位置指令(即所述第一位置指令)的校正。

基于上述方法,一方面,由于可以对出现异常时当前的位置指令进行校正,从而避免当前的位置指令和所述机械臂200的实际位置出现较大误差的问题,实现对该机械臂200的高精度控制,从而提高对该机械臂200的控制效果。另一方面,由于可以对所述机械臂200和所述负载的重力进行补偿,使得该机械臂200可以在向所述目标位置运动的过程中,跟随该负载的飘动而飘动,也可以实现对该机械臂200的高精度控制,从而提高对该机械臂200的控制效果。

对于步骤s110需要说明的是,在生成所述第一位置指令之后,基于该第一位置指令和比例积分微分算法对所述机械臂200的具体控制方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,可以直接将所述第一位置指令作为所述比例积分微分算法中的一个计算参数,从而基于计算得到的结果对所述机械臂200的动作进行控制。

又例如,在另一种可以替代的示例中,为了实现对所述机械臂200的高精度控制,在采用所述比例积分微分算法的基础上,还可以结合动力学计算模型进行相应的计算。在本实施例,结合图4,步骤s110可以包括步骤s111和步骤s113,以对所述机械臂200的动作进行控制。

步骤s111,基于目标位置生成第一位置指令,并基于该第一位置指令和预设的动力学计算模型计算得到驱动指令。

在本实施例中,首先,可以在确定所述目标位置之后,基于该目标位置生成相应的第一位置指令,然后,可以基于该第一位置指令和预设的动力学计算模型计算得到驱动指令。

也就是说,可以基于预设的动力学计算模型将所述第一位置指令转换为驱动指令,从而实现基于动力学计算模型的高精度控制。

步骤s113,基于所述驱动指令和比例积分微分算法对机械臂200的动作进行控制。

在本实施例中,通过步骤s111计算得到所述驱动指令之后,可以将该驱动指令作为所述比例积分微分算法中的一个计算参数,从而基于计算得到的结果对所述机械臂200的动作进行控制。

可选地,执行步骤s111计算所述驱动指令的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,考虑到所述机械臂200可以包括依次连接的固定结构210和至少一个运动结构(如图5所示,可以包括第一运动结构221、第二运动结构222、第三运动结构223、第四运动结构224、第五运动结构225和第六运动结构226),为了能够对每一个运动结构进行有效地控制,使得所述机械臂200最终可以运动至所述目标位置,步骤s111可以包括以下子步骤:

首先,可以确定所述固定结构210与所述运动结构之间的连接位置关系;其次,可以基于所述第一位置指令和预设的动力学计算模型,按照所述连接位置关系依次计算出各所述运动结构需要的驱动力矩,并基于该驱动力矩生成驱动指令。

其中,由于所述固定结构210与所述运动结构之间和相邻的运动结构之间一般会产生相互的作用力,因此,所述连接位置关系可以是基于,所述固定结构210与各所述运动结构之间力的传导方向确定,使得可以基于该连接位置关系计算出各所述运动结构需要的驱动力矩。

例如,在图5所示的机械臂200中,所述连接位置关系可以依次是固定结构210——第一运动结构221——第二运动结构222——第三运动结构223——第四运动结构224——第五运动结构225——第六运动结构226。

需要说明的是,在上述的步骤中,在计算得到各所述运动结构需要的驱动力矩之后,还需要基于该驱动力矩生成驱动指令。其中,生成所述驱动指令的具体方式不受限制。

例如,在一种可以替代的示例中,可以直接基于各所述运动结构需要的驱动力矩分别生成相应的驱动指令,以分别对各所述运动结构进行驱动。

又例如,在另一种可以替代的示例中,考虑到所述固定结构210与所述运动结构之间和相邻的运动结构之间可以通过连接结构连接(如图6所示,可以包括第一连接结构231、第二连接结构232、第三连接结构233、第四连接结构234、第五连接结构235和第六连接结构236),且所述运动结构基于所述连接结构的驱动而产生动作。因此,可以基于以下子步骤生成所述驱动指令:

首先,可以基于各所述运动结构需要的驱动力矩,按照所述连接位置关系依次计算出相邻两个运动结构中前一运动结构对后一运动结构的作用力矩;然后,可以基于所述作用力矩计算出各所述连接结构需要的驱动力矩,并基于该驱动力矩生成驱动指令。

其中,每一个所述运动结构需要的驱动力矩包括该运动结构由于运动而产生的惯性力矩和前一运动结构(所述第一运动结构221的前一运动结构为所述固定结构210)施加的作用力矩。

也就是说,在一种可以替代的示例中,在计算得到各所述运动结构需要的驱动力矩之后,可以基于力矩平衡的需求计算出相邻两个运动结构中前一运动结构对后一运动结构的作用力矩。

其中,所述作用力矩在驱动对应的运动结构进行运动的连接结构的轴方向的分量,实际上就是该连接结构需要的驱动力矩,因而,可以基于所述作用力矩计算得到各所述连接结构需要的驱动力矩,然后,基于该驱动力矩生成驱动指令。

例如,如图6所示的机械臂200中,针对相邻的第五运动结构225和第六运动结构226,可以基于力矩平衡的需求对所述第六运动结构226需要的驱动力矩和由于运动而产生的惯性力矩进行计算,得到所述第五运动结构225对所述第六运动结构226施加的作用力矩。最后,计算该作用力矩在所述第六连接结构236的轴方向的分量,从而得到该第六连接结构236需要的驱动力矩。

同理,针对相邻的第四运动结构224和第五运动结构225,可以基于力矩平衡的需求对所述第五运动结构225需要的驱动力矩和由于运动而产生的惯性力矩进行计算,得到所述第四运动结构224对所述第五运动结构225施加的作用力矩。最后,计算该作用力矩在所述第五连接结构235的轴方向的分量,从而得到该第五连接结构235需要的驱动力矩。

如此,在计算得到每一个连接结构的驱动力矩之后,可以基于每一个驱动力矩分别生成驱动指令,然后,结合比例积分微分算法对每一个连接结构进行控制,使得各连接结构驱动相应的运动结构进行运动,从而实现所述机械臂200向所述目标位置运动的目的。

可以理解的是,在上述示例中,步骤s110可以包括步骤s111和步骤s113,结合前述的示例可以知道,所述控制设备100在一些示例中,可以包括多个控制器,以分别执行所述机械臂控制方法包括的不同步骤。因此,在一种可以替代的示例中,若所述控制设备100包括轨迹发生器和伺服控制器,步骤s111可以由所述轨迹发生器执行,步骤s113可以由所述伺服控制器执行。

也就是说,所述轨迹发生器可以基于所述目标位置生成所述第一位置指令,并基于该第一位置指令和预设的动力学模型计算得到所述驱动指令。然后,所述轨迹发生器可以将所述驱动指令发送给所述伺服控制器。最后,所述伺服控制器可以将所述驱动指令作为所述比例积分微分算法的一个计算参数,进行计算。

其中,所述伺服控制器基于所述驱动指令进行计算的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,所述伺服控制器可以将所述驱动指令以前馈的方式加入至所述比例积分微分算法,从而进行计算。

对于步骤s120需要说明的是,判断所述机械臂200的动作是否出现异常的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,可以通过图像采集设备(如摄像机)检测在向所述目标位置运动的路径上是否存在障碍物,并在存在该障碍物时,判定所述机械臂200的动作出现异常。

又例如,在另一种可以替代的示例中,可以通过判断所述机械臂200是否运动至所述目标位置,以确定所述机械臂200的动作出现异常。

其中,若所述机械臂200未运动至所述目标位置,可以判定所述机械臂200的动作出现异常;反之,若所述机械臂200运动至所述目标位置,可以判定所述机械臂200的动作未出现异常。

需要说明的是,导致所述机械臂200未运动至所述目标位置的原因,包括但不限于,障碍物的阻挡、所述机械臂200驱动的负载的阻挡或所述控制设备与所述动力装置之间的控制误差等。

其中,判断所述机械臂200是否运动至所述目标位置的具体方式也不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,在所述机械臂200停止运动之后,可以直接通过图像采集设备(如摄像机)采集所述目标位置的图像,以确定所述机械臂200是否运动至所述目标位置。

又例如,在另一种可以替代的示例中,可以在所述机械臂200的动作停止之后,先基于所述机械臂200的当前位置生成位置回馈指令;然后,基于所述位置回馈指令和所述第一位置指令判断所述机械臂200是否运动至所述目标位置。

其中,所述第一位置指令中具有所述目标位置的位置信息,所述位置回馈指令中具有所述机械臂200动作停止之后的当前位置的位置信息,因此,可以基于所述位置回馈指令中的位置信息与所述第一位置指令中的位置信息判断所述机械臂200是否运动至所述目标位置。

例如,在一种可以替代的示例中,可以对所述位置回馈指令中的位置信息与所述第一位置指令中的位置信息是否相同进行判断。

其中,若所述位置回馈指令中的位置信息与所述第一位置指令中的位置信息相同,可以判定所述机械臂200有运动至所述目标位置;反之,若所述位置回馈指令中的位置信息与所述第一位置指令中的位置信息不同,可以判定所述机械臂200未运动至所述目标位置。

又例如,在另一种可以替代的示例中,可以先基于所述位置回馈指令和所述第一位置指令计算得到位置偏移量,即所述位置回馈指令中的位置信息与所述第一位置指令中的位置信息之间的误差值。然后,再基于所述位置偏移量(即所述误差值)与预设偏移量的大小判断所述机械臂200是否运动至所述目标位置。

其中,若所述位置偏移量(即所述误差值)小于所述预设偏移量,可以判定所述机械臂200有运动至所述目标位置;反之,若所述位置偏移量(即所述误差值)不小于所述偏移量,可以判定所述机械臂200未运动至所述目标位置。

可选地,所述预设偏移量的具体数值大小不受限制,可以根据实际应用需求进行选择,例如,可以基于对所述机械臂200的控制精度需求进行确定,或者,也可以基于每一次执行步骤s110使得所述机械臂200向所述目标位置运动时运动的距离进行确定。

详细地,在一种可以替代的示例中,若对所述机械臂200的控制精度需求较高,可以设置一个具有较小数值的预设偏移量;反之,若对所述机械臂200的控制精度需求不高,可以设置一个具有较大数值的预设偏移量。

同理,在另一种可以替代的示例中,若每一次执行步骤s110使得所述机械臂200向所述目标位置运动时运动的距离较大,可以设置一个较大数值的预设偏移量;反之,若每一次执行步骤s110使得所述机械臂200向所述目标位置运动时运动的距离较小,可以设置一个较小数值的预设偏移量。

对于步骤s130需要说明的是,基于所述机械臂200当前的异常位置和所述第一位置指令生成所述第二位置指令的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,可以在基于所述机械臂200当前的异常位置和所述第一位置指令计算得到位置偏移量之后,直接基于该位置偏移量和所述第一位置指令生成所述第二位置指令。

又例如,在另一种可以替代的示例中,可以在基于所述机械臂200当前的异常位置和所述第一位置指令计算得到位置偏移量之后,先对该位置偏移量进行滤波处理,得到位置修正指令;然后,再基于该位置修正指令生成所述第二位置指令。

其中,对所述位置偏移量进行滤波处理的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,为了避免位置指令出现突变的问题,可以基于预设的低频滤波公式对所述位置偏移量进行低频滤波处理。

也就是说,基于低频滤波处理得到的位置修正指令的值小于所述位置偏移量的值。其中,所述低频滤波公式可以包括:

需要说明的是,pa为所述位置修正指令,pe为所述位置偏移量,s为低频滤波参数。由于所述低频滤波参数大于零,使得所述位置修正指令的值小于所述位置偏移量。

其中,所述低频滤波参数的具体数值不受限制,可以根据实际应用需求进行选择,例如,可以基于对滤波效果的需求不同,设置不同大小的低频滤波参数。

也就是说,在需要具有较高的滤波效果,以有效避免位置指令突变时,可以设置一个具有较大数值的低频滤波参数;反之,在对滤波效果的需要不高时,可以设置一个具有较小数值的低频滤波参数。

并且,在上述的示例中,所述机械臂200当前的异常位置可以是指,该机械臂200的动作出现异常时,该机械臂200当前所在的位置。

如图7所示,在执行步骤s110之前,所述机械臂200的当前位置为位置a、目标位置为位置b,在执行步骤s110的过程中,由于所述机械臂200的动作出现异常,使得该机械臂200不能有效地从位置a运动至位置b,而仅运动至位于位置a与位置b之间的位置c,那么,该位置c就属于所述机械臂200当前的异常位置。

进一步地,考虑到在执行步骤s130时经过前述的滤波处理之后,使得所述第二位置指令中的位置信息和所述机械臂200当前的异常位置之间依旧会存在一定的误差,因而,为了消除该误差或使得该误差小于预设的误差阈值,可以多次执行步骤s130,使得最后一次执行步骤s130生成的第二位置指令与所述异常位置满足预设关系。

其中,在多次执行步骤s130时,前一次执行步骤s130生成的第二位置指令可以作为后一次执行步骤s130中的第一位置指令。

例如,结合图7所示的示例,由于所述机械臂200当前的异常位置为位置c,第一次执行步骤s130之后,由于经过滤波处理,使得生成的第二位置指令中的位置信息为位置b与位置c之间的一个位置,如位置d。

如此,在第二次执行步骤s130时,可以将位置d对应的第二位置指令作为第一位置指令,然后,基于该第一位置指令和所述机械臂200当前的异常位置再次生成第二位置指令,使得该第二位置指令中的位置信息为位置c与位置d之间的一个位置,如位置e。

基于上述的方法,在每一次执行步骤s130生成的第二位置指令中,位置信息会从位置b依次向位置c靠近,从而使得最后一次执行步骤s130生成的第二位置指令与所述异常位置满足预设关系。

进一步地,考虑到基于上述的方法步骤,可以使得最后一次生成的所述第二位置指令与所述异常位置之间满足预设关系,实现对位置指令的有效校正。如此,为了使得在位置指令得到校正之后,还可以继续控制所述机械臂200向所述目标位置运动,因而,结合图8,所述机械臂控制方法还可以包括步骤s140和步骤s150,详细的内容如下所述。

步骤s140,基于所述目标位置生成位置校正指令。

在本实施例中,在基于步骤s130使得所述第二位置指令与所述异常位置满足预设关系之后,还可以基于所述目标位置生成位置校正指令。

也就是说,所述位置校正指令中的位置信息为所述目标位置,如前述示例中的位置b,使得所述机械臂向位置b运动。

步骤s150,基于所述位置校正指令和所述比例积分微分算法对所述机械臂200的动作进行控制。

在本实施例中,通过步骤s140生成位置校正指令之后,可以基于该位置校正指令和所述比例积分微分算法对所述机械臂200的动作进行控制,使得所述机械臂200向所述目标位置的方向运动。

其中,基于所述位置校正指令和所述比例积分微分算法对所述机械臂200的动作进行控制的具体方式,可以参照前文对步骤s110的解释说明,在此不再一一赘述,仅需要将所述第一位置指令替换为所述位置校正指令。

进一步地,考虑到在执行步骤s150时,导致所述机械臂200的动作出现异常的原因可能并未消除,如障碍物依旧存在。因此,结合图9,所述机械臂控制方法还可以包括步骤s160和步骤s170,详细的内容如下所述。

步骤s160,判断所述机械臂200基于所述位置校正指令向所述目标位置运动的动作是否出现异常。

在本实施例中,判断所述机械臂200基于所述位置校正指令向所述目标位置运动的动作是否出现异常的具体方式,可以参照前文对步骤s120的解释说明,在此不再一一赘述,只需要将将所述第一位置指令替换为所述位置校正指令。

其中,若判断出所述机械臂200基于所述位置校正指令向所述目标位置运动的动作未出现异常,表明导致所述机械臂200的动作出现异常的原因已经消除,因此,可以基于预设的运动规则确定新的目标位置,并控制所述机械臂200向该新的目标位置运动。反之,若判断出所述机械臂200基于所述位置校正指令向所述目标位置运动的动作出现异常,表明导致所述机械臂200的动作出现异常的原因未消除,因此,可以执行步骤s170。

步骤s170,基于所述机械臂200当前的异常位置和所述位置校正指令生成新的第二位置指令,并判断该新的第二位置指令与所述机械臂200当前的异常位置是否满足预设关系。

在本实施例中,基于所述机械臂200当前的异常位置和所述位置校正指令生成新的第二位置指令的具体方式,可以参照前文对步骤s130的解释说明,在此不再一一赘述,只需要将所述第一位置指令替换为所述位置校正指令。

其中,在执行步骤s170之后,若所述新的第二位置指令与所述机械臂200当前的异常位置满足预设关系,可以再次执行步骤s140和步骤s150,使得所述机械臂200再次向所述目标位置运动。

需要说明的是,执行上述的步骤s140、步骤s150和步骤s160的次数不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,为了保证在导致所述机械臂200的动作出现异常的原因消除之后,可以控制所述机械臂200及时地向所述目标位置运动,以保证任务能够被有效地执行,执行上述的步骤s140、步骤s150和步骤s160的次数为至少一次,直到所述机械臂200基于所述位置校正指令向所述目标位置运动的动作未出现异常。

也就是说,若导致述机械臂200的动作出现异常的原因未消除,上述的步骤s140、步骤s150和步骤s160会依次被不断地执行。

又例如,在另一种可以替代的示例中,为了节约资源和保证所述机械臂200使用的安全性,执行上述的步骤s140、步骤s150和步骤s160的次数可以不大于预设值。

也就是说,执行上述的步骤s140、步骤s150和步骤s160的次数为至少一次,直到该次数等于预设值,且每一次执行所述步骤c都判定,所述机械臂200基于所述位置校正指令向所述目标位置运动的动作出现异常。或者说,执行步骤s140、步骤s150和步骤s160的次数为至少一次,直到该次数小于预设值,且最后一次执行所述步骤c时,判定所述机械臂200基于所述位置校正指令向所述目标位置运动的动作未出现异常。

如此,若导致所述机械臂200的动作出现异常的原因未消除,执行上述的步骤s140、步骤s150和步骤s160的次数最多为所述预设值。即,不再执行上述的步骤s140、步骤s150和步骤s160的条件为,导致所述机械臂200的动作出现异常的原因消除,或执行的次数达到所述预设值。

其中,所述预设值的具体大小不受限制,可以根据实际应用需求进行选择,例如,可以综合考虑对任务执行的失效性和对资源浪费的容忍度等因素,以确定一个较为合理的数值。

综上所述,本申请提供的机械臂控制方法、控制设备和机器人,在基于第一位置指令和比例积分微分算法对机械臂200的动作进行控制时,若机械臂200的动作出现异常,可以基于第一位置指令和异常位置生成第二位置指令。如此,一方面,由于可以基于第一位置指令和异常位置生成第二位置指令,使得出现异常时当前的位置指令可以得到校正,从而避免当前的位置指令和机械臂200的实际位置出现较大误差的问题。另一方面,由于比例积分微分算法中的积分值为固定值,可以用于对机械臂200的重力和该机械臂200驱动的负载的重力进行补偿,使得机械臂200可以在向目标位置运动的过程中,跟随负载的飘动而飘动,从而改善现有的机械臂控制技术中存在的控制效果差的问题,进而避免由于控制效果差而导致驱动机械臂200的动力装置300容易受损的问题,能够有效地保障机器人10安全的运行,具有较高的实用价值。

在本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储单元(rom,read-onlymemory)、随机存取存储单元(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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