CN113561170B - 机器人力矩补偿方法、机器人、设备及存储介质 - Google Patents
机器人力矩补偿方法、机器人、设备及存储介质 Download PDFInfo
- Publication number
- CN113561170B CN113561170B CN202010357362.1A CN202010357362A CN113561170B CN 113561170 B CN113561170 B CN 113561170B CN 202010357362 A CN202010357362 A CN 202010357362A CN 113561170 B CN113561170 B CN 113561170B
- Authority
- CN
- China
- Prior art keywords
- robot
- value
- zero drift
- moment
- current
- 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.)
- Active
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1633—Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
本申请公开了一种机器人力矩补偿方法、机器人、计算机设备及计算机可读存储介质。该方法包括:配置机器人零点漂移所对应的系统参数或系统函数,系统参数和系统函数用于触发力矩传感器获取外部力矩值;当接收目标指令时,获取当前时刻的零点漂移值,目标指令为修改系统参数或调用系统函数所触发的指令;获取当前时刻力矩传感器检测到的外部力矩值;将外部力矩值和零点漂移值的叠加值作为插补计算机器人指令位置对应的力矩值,其中,指令位置为机器人进行插补计算的位置点。通过上述方式,本申请能够实时的对机器人传感器的零点漂移进行补偿。
Description
技术领域
本申请涉及工业机器人领域,特别是涉及一种机器人力矩补偿方法、机器人、计算机设备及计算机可读存储介质。
背景技术
工业机器人是面向工业领域的多关节机械手或多自由度的机器装置,因机器人能靠自身动力和控制能力来实现各种功能,可以自动执行工作,在各个领域中的应用越来越广泛,已经成为了降低生产成本,提高生产效率和提升工业制造能力,实现智能制造的重要推动力。机器人的各项能力得到越来越广泛的重视,具有高精度的机器人成为机器人发展的一个重要的方向。
机器人的软浮动功能,即通过力控,使机器人具备一定的主动柔顺性,降低机器人在某个特定的方向下的刚度,从而对该方向下的外部作用力(或力矩)产生柔性响应;当前工业机器人实现软浮动的时候,外部作用力的采集和获取可以利用传感器获得的力矩数值来估算施加的外力值,然后通过当前机器人当前位置叠加外力带来的位置偏移值从而实现软浮动。
机器人的传感器在使用前需要进行校正,然而,现有技术中,一般只会在使用传感器前利用机器人控制器厂家提供的方法对传感器本身自带的误差进行人工校核消除一些测量误差。如果用户在使用中发现机器人应用中出现位置不准确等问题,需要对传感器进行校正时,只能关闭机器人,利用传感器厂家的软件进行零点校正,校正后才能再启动机器人系统继续使用,中断了机器人的实际作业过程,降低了效率。
发明内容
本申请提供一种机器人力矩补偿方法、机器人、计算机设备及计算机可读存储介质,可以实时的对机器人传感器的零点漂移进行补偿,不会中断机器人的正常作业,提高效率。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种机器人力矩补偿方法。该方法包括:配置机器人零点漂移所对应的系统参数或系统函数,系统参数和系统函数用于触发力矩传感器获取外部力矩值;当接收目标指令时,获取当前时刻的零点漂移值,目标指令为修改系统参数或调用系统函数所触发的指令;获取当前时刻力矩传感器检测到的外部力矩值;将外部力矩值和零点漂移值的叠加值作为插补计算机器人指令位置对应的力矩值,其中,指令位置为机器人进行插补计算的位置点。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种机器人。该机器人包括配置装置、传感装置和控制装置,其中,控制装置分别与配置装置、传感装置连接,配置装置用于配置机器人零点漂移所对应的系统参数或系统函数,系统参数和系统函数用于触发力矩传感器获取外部力矩值;传感装置用于获取当前时刻力矩传感器检测到的外部力矩值;控制装置用于当接收目标指令时,获取当前时刻的零点漂移值,目标指令为修改系统参数或调用系统函数所触发的指令;以及,将外部力矩值和零点漂移值的叠加值作为插补计算机器人指令位置对应的力矩值,其中,指令位置为机器人进行插补计算的位置点。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种计算机设备。该计算机设备包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序以实现上述一种机器人力矩补偿方法。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种计算机可读存储介质。计算机可读存储介质存储有计算机程序,计算机程序被执行以实现上述一种机器人力矩补偿方法。
本申请的有益效果是:对于现有技术而言,本申请通过配置机器人零点漂移所对应的系统参数或系统函数,使得用户可以自定义机器人系统的零点漂移系统参数或函数,当接收到修改系统参数或调用系统函数所触发的目标指令时,可获取当前时刻的零点漂移值及当前时刻力矩传感器检测到的外部力矩值,将外部力矩值和零点漂移值的叠加值作为插补计算机器人指令位置对应的力矩值,用户可以在任何时刻对机器人的传感器的零点漂移进行补偿,从而实现机器人在软浮动过程运动的较准确控制,且本申请在进行零点漂移补偿时,只需修改系统参数或调用系统函数进行补偿,不会中断机器人的正常作业,提高机器人的工作效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的机器人力矩补偿方法第一实施方式的流程示意图;
图2是本申请提供的图1中步骤S120的流程示意图;
图3是本申请提供的机器人力矩补偿方法第二实施方式的流程示意图;
图4是本申请提供的机器人力矩补偿方法第三实施方式的流程示意图;
图5是本申请提供的机器人力矩补偿方法第四实施方式的流程示意图;
图6是本申请提供的机器人的第一实施方式的的结构示意图;
图7是本申请提供的机器人的第二实施方式的的结构示意图;
图8是本申请提供的计算机设备的结构示意图;
图9是本申请提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
机器人在应用过程中,因传感器的精度不一样,采集到的力矩准确度不一样,会影响机器人最终的运动准确度。在传感器精度一样的情况下,还有可能因为零点漂移的问题导致位置不准确。传感器的测量存在零点漂移,该零点漂移值会随着温度、安装等外部因素的变化而变化。零点漂移值不是一个恒定的数值,导致系统运行一段时间之后传感器测量得到的力矩值和实际施加的外力值之间会有偏差,导致运动准确度受到影响。
在某些应用中可能会产生问题,比如装配时候,可能产生一些力的对抗导致装配工件表面出现一些划痕瑕疵。或者压铸取件时候,可能会因顶出力矩测量不准确导致脱模时候,机器人抓取工件移动的位置不准确,可能会产生一些干涉或者脱模不完全等问题。或者在较为狭小的空间下执行抓取装配等动作时,因预留的距离阈值都比较苛刻,则更易产生影响。
为了解决上述技术问题,本申请提供如下实施例。
本申请提供一种机器人力矩补偿方法,提供该方法的第一实施方式,请参阅图1,该方法包括如下步骤:
S110:配置机器人零点漂移所对应的系统参数或系统函数,系统参数和系统函数用于触发力矩传感器获取外部力矩值。
零点漂移是机器人本身的位置姿态下实际收到的力和力矩,如果该力和力矩数值和从传感器中读取的数值有偏差,那么该差值就是零点漂移值。
配置系统参数是机器人系统中配置的零点漂移系统参数,用户可以在系统参数界面修改并保存生效。例如可以配置机器人系统中零点漂移系统参数,将该系统参数定义为SOFT_FLOAT_CLEAR_ZERO,用户可以在机器人的HMI界面(Human Machine Interface,人机界面)上修改修改系统参数,如可将系统参数修改为是(True)或否(False)。
配置的系统函数可以用机器人控制程序支持的函数来代替,控制程序可以是机器人厂家提供编程语言,用户根据编程原则编写的程序,该程序可以实现控制机器人执行运动和其他IO(Input/Output,输入/输出)操作的程序。在一些应用场景中,系统函数也可以是提供给用户开放的函数,系统函数在程序执行时候可以调用机器人系统软件内部一些函数,从而控制机器人系统实现对零点漂移的补偿,如系统函数可以在需要对零点漂移进行补偿的时候调用函数Setfloatclearzero(),以实现对零点漂移的补偿。本申请配置的系统参数和系统函数用于触发力矩传感器获取外部力矩值,如当修改机器人系统中配置的零点漂移系统参数为是,或调用机器人系统定义的修正零点漂移的函数时,可触发力矩传感器获取外部力矩值。
S120:当接收目标指令时,获取当前时刻的零点漂移值,目标指令为修改系统参数或调用系统函数所触发的指令。
当前时刻,接收到修改机器人系统中配置的零点漂移系统参数为是,或调用机器人系统配置的系统函数所触发的目标指令时,获取当前时刻的零点漂移值。如在插补周期中,当接收到用户在机器人的HMI界面(Human Machine Interface,人机界面)上修改零点漂移系统参数SOFT_FLOAT_CLEAR_ZERO为True所触发的目标指令时,或者接收到用户调用机器人的系统函数所触发的目标指令时,机器人控制系统会自动调用软件和算法提供的接口函数,获取当前时刻的零点漂移值,更新此刻的零点漂移数值到机器人系统中保存。使得之后传感器获取的力矩值都是叠加了更新的零点漂移值之后的数值,力矩值更加接近外部施加给机器人的力矩。在插补周期插补器中计算机器人指令位置时得到的数值会更加准确。用户可以随时修改参数或调用函数,也可以根据机器人作业的现场情况间隔一定的时间对传感器进行零点漂移的补偿,使得用户可以实时的对机器人传感器进行零点漂移补偿,减少了对零点漂移进行补偿的时间,提高了生产效率。
S130:获取当前时刻力矩传感器检测到的外部力矩值。
获取当前时刻机器人的力矩传感器检测到的外部力矩值,力矩传感器是对各种旋转或非旋转机械部件上对扭转力矩感知的检测,因此,可以通过力矩传感器检测机器人的当前时刻的外部力矩值。在一些应用场景中,传感器也可以是其他测量力矩值的传感器,如单轴力传感器、单轴力矩传感器、手指传感器或六轴力觉传感器等。
S140:将外部力矩值和零点漂移值的叠加值作为插补计算机器人指令位置对应的力矩值。
获取当前时刻的零点漂移值,及通过力矩传感器获取当前时刻机器人的外部力矩值后,将获得的外部力矩值和零点漂移值的叠加值作为插补计算机器人指令位置对应的力矩值。其中,指令位置为机器人进行插补计算的位置点,机器人在加工或示教过程中,接收用户或系统的控制指令,该控制指令指示机器人运动的起点和终点,在轨迹规划过程中,机器人通常采用在已知运动的起点和终点之间进行插补的操作插入中间点,插入的中间点为插补点。在插补计算时,可根据控制指令插补计算当前轨迹的插补点位置,该插补点位置为指令位置。每次在计算外力引起的机器人位置变化时候都会将更新后的零点漂移值叠加到力矩传感器获取的力矩值上做补偿,插补计算得到的位置更加准确,减少因在传感器精度一样的情况下可能因为零点漂移的问题导致位置不准确,即使零点漂移值不是一个恒定的数值,会随着温度、安装等外部因素的变化而变化,本申请可以实时的对机器人传感器的零点漂移进行补偿,使得机器人最终的运动更加准确。
请参阅图2,上述步骤S120当接收目标指令时,获取当前时刻的零点漂移值,目标指令为修改系统参数或调用系统函数所触发的指令,可以包括如下步骤:
S121:接收修改系统参数或调用系统函数所触发的目标指令。
该步骤的具体实施过程可参考上述步骤S120中的实施过程,在此不再赘述。
S122:获取当前时刻力矩传感器检测到的第一外力数值。
当接收到用户修改系统函数为True或调用系统函数所触发的目标指令时,可以获取当前时刻力矩传感器检测的第一外力数值。具体的,机器人控制系统的内部软件执行回调函数,获取此刻的力矩传感器检测的第一外力数值,具体可参考下述的实例描述。
S123:根据机器人的当前位置计算机器人在当前位置下收到的第二外力数值。
通过插补计算得到机器人的当前位置,根据机器人的当前位置、机器人本体和负载的几何参数,利用动力学算法计算在当前状态下机器人在当前位置下末端实际收到的第二外力数值。
具体的,根据机器人当前位置计算当前传感器承受的第二外力数值。接收到用户在HMI界面(Human Machine Interface,人机界面)修改系统参数为True或调用系统函数所触发的目标指令时,可以通过插补计算得到机器人的当前位置,根据机器人的当前位置计算当前时刻传感器承受的第二外力数值。如根据当前机器人所处的位置和机器人本体以及负载等一些几何参数,利用动力学算法计算当前状态下传感器应该受到多大的外力数值才能达到此机器人的当前位置,计算得到的外力数值可以表示为第二外力数值,也即是当前状态下机器人在当前位置下末端实际收到的第二外力数值。动力学算法可以是机器人运动学算法,例如机器人在加工或示教过程中,接收用户或系统的控制指令,该控制指令指示机器人运动轨迹的起点和终点,机器人会在运动轨迹的起点和终点之间规划出其末端的轨迹,在插补周期中,插补计算得到机器人当前位置,可以通过机器人夹持工件的工件坐标系、工件尺寸,通过机器人的当前位置的机器人各关节的角度计算出机器人末端的第二外力数值。
S124:计算第一外力数值和第二外力数值的偏差,偏差为当前时刻的零点漂移值。
通过力矩传感器检测机器人当前时刻的第一外力数值,以及根据机器人当前位置计算机器人在当前位置下末端实际收到的第二外力数值。计算第一外力数值和第二外力数值的偏差,可以将该偏差数值记录为当前时刻的零点漂移值。若计算第一外力数值和第二外力数值偏差为零,则可以表示此刻的机器人传感器不存在零点漂移,可以将偏差零值记录为此刻的零点漂移值,即获取当前时间的零点漂移值。
对于上述步骤S120,以及步骤S121-124,本申请提供一实例进行具体描述。当接收到用户在HMI界面(Human Machine Interface,人机界面)修改系统参数SOFT_FLOAT_CLEAR_ZERO为True或调用系统函数所触发的目标目标指令时,机器人控制系统的内部软件执行回调函数,获取此刻的力矩传感器检测的第一外力数值,通过插补计算得到机器人的当前位置。如机器人控制系统调用算法函数getzerodrift(ex_force,cur_pos),该函数的作用是计算零点漂移,也即是计算第一外力和第二外力的偏差。其中,ex_force和cur_pos是在该函数中定义的参数,ex_force表示当前时刻力矩传感器获取的第一外力数值,cur_pos表示机器人当前位置。算法定义的函数会根据当前的机器人位置cur_pos计算此刻传感器承受的第二外力数值cal_force。如果第二外力数值cal_force和传感器获取的第一外力数值ex_force不一样,计算第二外力数值cal_force和传感器获取的第一外力数值ex_force的偏差,将该差值记为此刻的零点漂移值。在后续机器人插补计算插补位置点时,可以将插补计算得到的位置点叠加的此刻的零点漂移值对应的位置点数值。
该实施例中,在任何时候都可以接收修改系统参数或调用系统函数所触发的目标指令,可以根据用户需要在任何时刻都能重新对力矩传感器的零点漂移带来的误差进行校正补偿,得到更准确的位置点,实现软浮动过程运动的较准确控制,防止特殊应用场景下应用中可能导致问题的方法。例如装配时候,可能产生一些力的对抗导致装配工件表面出现一些划痕瑕疵,或者压铸取件时候,由于顶出力矩测量不准确导致脱模时候,机器人抓取工件移动的位置不准确,可能会产生一些干涉或者脱模不完全等。并且本申请在进行零点漂移补偿时,只需修改系统参数或调用系统函数进行补偿,不会中断机器人的正常作业,提高机器人的工作效率。
本申请提供一种机器人力矩补偿方法,提供该方法的第二实施方式,请参阅图3,该方法包括如下步骤:
S210:插补计算当前轨迹第n个插补点位置。
机器人的运动轨迹为其法兰中心或TCP(Tool Central Point,工具中心点)点的运动轨迹。计算机器人运动轨迹,可以得到插补周期。机器人在加工或示教过程中,接收用户或系统的控制指令,该控制指令指示机器人运动的起点和终点,机器人会在运动的起点和终点之间规划出其末端执行件的运动轨迹,在轨迹规划过程中,机器人通常采用在已知运动的起点和终点之间进行插补的操作插入中间点,插入的中间点可以称为插补点。例如在运动的起点和终点之间插入多个插补点,从而得到机器人的运动轨迹,其中,运动轨迹可以由多段轨迹组成,当前轨迹是以机器人当前位置为起点,以机器人接收到的控制指令中指定的下一轨迹点为终点的轨迹。后续轨迹是除当前轨迹外,以机器人接收到的控制指令中指定的任意相邻两个轨迹点确定的轨迹。
每个插补周期都会将机器人控制程序中的运动指令转换生成的轨迹进行插补,当机器人进行插补时,机器人准备在当前轨迹中的当前插补点后插入下一插补点时,可以先计算该下一插补点对应的位置,当在起点与终点之间插入多个插补点时,插补器可以计算当前轨迹中第n个插补点的位置。
S220:判断是否开启软浮动功能。
机器人的软浮动功能,即通过力控使机器人具备一定的主动柔顺性,降低机器人在某个特定的方向下的刚度,从而对该方向下的外部作用力(或力矩)产生柔性响应。机器人软浮动功能常见的应用可以是压铸取件、工件抓取或柔性装配等。当在预先定义下的柔性方向下施加外部作用力(或力矩),机器人将产生柔性位置偏差,位置偏差大小取决于外部作用力(或力矩)的大小,以及预定义的柔性参数。而在机器人柔性方向之外的方向,仍然维持原有的精确位置控制。可以给机器人的柔性设置方向,比如只定义在X方向实现柔性,那么当外力沿着其他方向时,是不能够操作机器人运动的。工业机器人实现软浮动功能时,外部作用力的采集和获取可以利用外部传感器获得的力矩数值来估算施加的外力值,然后通过当前机器人位置叠加外力带来的位置偏移值从而实现柔性响应。当开启软浮动功能时,传感器可以获取外力值。
若步骤S220判断为开启软浮动功能,则执行步骤S230,若S220判断为没有开启软浮动功能,则执行步骤S270。
S230:在每个插补周期中,以预定时间为周期检测是否接收到修改系统参数或调用系统函数所触发的目标指令。
在每个插补周期中,以预定时间为周期检测是否接收到目标指令,具体的,检测是否接收到修改系统参数或调用系统函数所触发的目标指令。例如每个插补周期中,以每1ms(millisecond,毫秒)为周期,检测是否接收到用户是否修改系统参数或调用函数所触发的目标指令。该预定时间可以根据用户需求进行设置,本申请对于预定时间不做限制。该步骤的具体过程具体可参考上述步骤S120中检测到用户修改系统参数或调用函数的过程,在此不再赘述。
若步骤S230判断为是,则执行步骤S240,否则,则执行步骤S270。
其中,S240:获取当前时刻的零点漂移值。
当接收到修改系统参数或调用系统函数所触发的目标指令时,获取当前时刻的零点漂移值,如接收到用户修改系统参数为True或调用系统函数所触发的目标指令时,可以获取当前时刻的零点漂移值,更新此刻的零点漂移值储存在机器人系统中。该步骤的具体过程具体可参考上述步骤S120的过程,在此不再赘述。
S250:获取当前时刻力矩传感器检测到的外部力矩值。
该步骤的具体过程具体可参考上述步骤S130的过程,在此不再赘述。
S260:将外部力矩值和零点漂移值的叠加值作为插补计算机器人指令位置对应的力矩值。
其中,指令位置为机器人进行插补计算的位置点,具体的,该指令位置为步骤S210中插补计算当前轨迹第n个插补点位置。获取当前时刻的零点漂移值,及通过力矩传感器获取当前时刻机器人的外部力矩值后,将获得的外部力矩值和零点漂移值的叠加值作为插补计算当前轨迹第n个插补点位置对应的力矩值。该步骤的具体过程具体可参考上述步骤S140的过程,在此不再赘述。
S270:通过逆运动学计算得到机器人到达指令位置时每个轴的位置。
机器人的运动学中,逆运动学是已知机器人末端的位置姿态,计算机器人对应位置的全部关节变量。在本申请中,获取当前时刻的力矩传感器检测的外部力矩值,通过得到的力矩值以及当前时刻机器人的当前位置,利用机器人逆运动学求解出到达指令位置时机器人每个轴需要转动的角度,也即是求解出机器人在指令位置每个轴的位置。在一些应用场景中,可将步骤S260中将外部力矩值和零点漂移值的叠加值作为插补计算机器人指令位置对应的力矩值,及当前时刻机器人的当前位置,利用机器人逆运动学求解出机器人在指令位置每个轴的位置。
S280:将机器人每个轴的位置下发至相应的伺服驱动进行驱动,以使得机器人到达指令位置。
将通过逆运动学计算得到机器人每个轴的位置下发至每个伺服驱动进行驱动,以使得机器人到达指令位置,也即是使得机器人每个轴到达指令位置。如通过伺服通讯卡将机器人每个轴的位置下发至每个伺服驱动进行驱动,其中,伺服通讯卡可以用来连接控制系统软件和伺服驱动以及外部IO设备的硬件,伺服通讯卡每个周期发出触发信号时候,控制系统软件将插补数据通过伺服通讯卡下发到伺服驱动中,控制电机轴转动到指定的指令位置,从而控制机器人本体运动。
该实施例中,机器人根据控制指令进行插补计算时,通过接收修改系统参数或调用系统函数所触发的目标指令,对力矩传感器的零点漂移带来的误差进行校正补偿,将获得的外部力矩值和零点漂移值的叠加值作为插补计算当前轨迹第n个插补点位置对应的力矩值,从而计算得到更准确的位置,实现软浮动过程运动的较准确控制。
本申请提供一种机器人力矩补偿方法,提供该方法的第三实施方式,请参阅图4,在上述步骤S230之前还包括如下步骤:
S221:将零点漂移值记录在机器人系统中。
可以在系统初始化的时候清除零点漂移,该过程只在初始化的时候进行一次,将零点漂移值记录在机器人系统中,该零点漂移值可以是零,也可以是当前传感器的零点漂移值。系统初始化是系统首次使用时,根据企业的实际情况进行参数设置,并录入基础档案与初始数据的过程。系统初始化在系统初次运行时一次性完成,但部分设置可以在系统使用后进行修改。系统初始化将对系统的后续运行产生重要影响。可以在系统初始化的时候将定义的机器人系统的系统参数或系统函数记录在机器人系统中,例如可以在系统初始化的时候将机器人系统中定义的零点漂移系统参数SOFT_FLOAT_CLEAR_ZERO记录在机器人系统中等。也可以将零点漂移值记录在机器人系统中。
本申请提供一种机器人力矩补偿方法,提供该方法的第四实施方式,请参阅图5,该方法包括如下步骤:
S310:开启控制系统。
本申请中,开启机器人控制系统,对机器人传感器零点漂移的补偿可以在机器人系统开启时进行。如果用户在使用中发现机器人应用中出现位置不准确等问题,需要对传感器的零点漂移进行补偿时,不需要关闭机器人控制系统,可以实时的对传感器的零点漂移进行补偿,不会中断机器人的实际作业过程,减少了对传感器的零点漂移进行校正的时间,提高了效率。
S320:判断轨迹队列中是否存在轨迹。
机器人在加工或示教过程中,接收用户或系统的控制指令,该控制指令指示机器人运动的起点和终点,机器人会在运动的起点和终点之间规划出其末端执行件的运动轨迹。可以有多个轨迹,多个轨迹形成轨迹队列,可以判断在轨迹队列中是否存在轨迹,以计算机器人运动轨迹,可以得到插补周期。
若步骤S320判断为轨迹队列中存在轨迹,则执行步骤S330,若S320判断为轨迹队列中没有轨迹,则继续执行步骤S320。
S330:将队列头轨迹作为当前轨迹。
若判断在轨迹队列中存在轨迹,选取其中队列头轨迹作为当前轨迹,也可以是队列轨迹中的第一个轨迹。可以对当前轨迹进行插补运算得到插补周期。
S340:插补计算当前轨迹第n个插补点位置。
在插补周期中,插补器可以计算当前轨迹中第n个插补点的位置。该步骤的具体过程具体可参考上述步骤S210的过程,在此不再赘述。
本申请提供一种机器人,提供第一实施方式,请参阅图6,该机器人400包括传感装置410、控制装置420和配置装置430。其中,控制装置420分别与传感装置410、配置装置430连接。配置装置430用于配置机器人400零点漂移所对应的系统参数或系统函数,系统参数和系统函数用于触发力矩传感器获取外部力矩值。传感装置410用于获取当前时刻力矩传感器检测到的外部力矩值。控制装置420用于当接收目标指令时,获取当前时刻的零点漂移值,目标指令为修改系统参数或调用系统函数所触发的指令;以及将外部力矩值和零点漂移值的叠加值作为插补计算机器人400指令位置对应的力矩值。在一些实施例中,控制装置420还可以实现上述机器人力矩补偿方法,具体过程具体可参考上述机器人力矩补偿方法的过程,在此不再赘述。
本申请提供一种机器人,提供第二实施方式,请参阅图7,该机器人400包括传感装置410、控制装置420、配置装置430和伺服驱动装置440。传感装置410用于检测机器人400的外部力矩值。也可以用以检测机器人400各关节的位置、速度和加速度等。即感知其本身的状态,可称为内部传感器,而外部传感器就是所谓的视觉、力觉、触觉、听觉、滑觉等传感器,他们可使机器人400感知工作环境和工作对象的状态。
配置装置430用于配置机器人零点漂移所对应的系统参数或系统函数,系统参数和系统函数用于触发力矩传感器获取外部力矩值。控制装置420分别与传感装置410、配置装置430、伺服驱动装置440连接,控制装置420用于当接收目标指令时,获取当前时刻的零点漂移值,目标指令为修改系统参数或调用系统函数所触发的指令;以及将外部力矩值和零点漂移值的叠加值作为插补计算机器人400指令位置对应的力矩值,其中,指令位置为机器人进行插补计算的位置点。
控制装置420接收到用户在界面上修改机器人400系统中定义的零点漂移系统参数为是所触发的指令时,传感装置410获取当前时刻力矩传感器检测到的外部力矩值,控制装置420通过插补计算得到当前时刻机器人400的当前位置,根据机器人400的当前位置、机器人400本体和负载的几何参数,利用动力学算法计算在当前状态下机器人400在当前位置下收到的第二外力数值;以及计算第一外力数值和第二外力数值的偏差,将偏差记为此刻的零点漂移值存储在机器人400系统中。
控制装置420可以用于处理各种感觉信息,执行控制软件,产生控制指令,一般由一台微型或小型计算机及相应的接口组成。控制装置420中可以有控制软件,可以包括运动轨迹算法和关节伺服控制算法与相应的动作程序,控制软件可以用任何语言来编制,机器人400控制软件可以由通用语言模块化而编制形成的专用工业语言,控制软件可以实现上述机器人力矩补偿方法。
伺服通讯卡将机器人400每个轴的位置下发至每个伺服驱动装置440进行驱动,伺服驱动装置440可以根据控制装置420的指令,按作业任务的要求驱动各关节运动。本实施例具体过程具体可参考上述机器人力矩补偿方法的过程,在此不再赘述。
对于上述实施方式,本申请提出了一种计算机设备,请参阅图8,该计算机设备500包括处理器510和存储器520,其中,处理器510和存储器520耦接,存储器520中存储有可以在处理器上运行的计算机程序,处理器510用于执行计算机程序以实现上述机器人力矩补偿方法。
在本实施例中,处理器510还可以称为CPU(Central Processing Unit,中央处理单元)。处理器510可能是一种集成电路芯片,具有信号的处理能力。处理器510还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器510也可以是任何常规的处理器等。
对于上述实施方式的方法,其可以计算机程序的形式存在,因而本申请提出一种计算机可读存储介质,请参阅图9,图9是本申请提供的计算机可读存储介质的结构示意图。本实施例计算机可读存储介质600中存储有计算机程序610,其可被执行以实现上述实施例中的方法。
本实施例计算机可读存储介质600可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等可以存储程序指令的介质,或者也可以为存储有该程序指令的服务器,该服务器可将存储的程序指令发送给其他设备运行,或者也可以自运行该存储的程序指令。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (8)
1.一种机器人力矩补偿方法,其特征在于,包括:
配置机器人零点漂移所对应的系统参数或系统函数,所述系统参数和所述系统函数用于触发力矩传感器获取外部力矩值;
当接收目标指令时,获取当前时刻的零点漂移值,并更新此刻的所述零点漂移值到机器人系统中保存,其中,所述目标指令为修改所述系统参数或调用所述系统函数所触发的指令;
获取所述当前时刻所述力矩传感器检测到的外部力矩值;
将所述外部力矩值和所述零点漂移值的叠加值作为插补计算所述机器人指令位置对应的力矩值,其中,所述指令位置为所述机器人进行插补计算的位置点;
其中,所述获取当前时刻的零点漂移值包括:获取当前时刻所述力矩传感器检测到的第一外力数值;通过插补计算得到所述机器人的当前位置,根据所述机器人的所述当前位置、机器人本体和负载的几何参数,利用动力学算法计算在当前状态下所述机器人在所述当前位置下收到的第二外力数值;以及,计算所述第一外力数值和所述第二外力数值的偏差,所述偏差为所述当前时刻的零点漂移值。
2.根据权利要求1所述的方法,其特征在于,
所述目标指令为修改所述系统参数或调用所述系统函数所触发的指令,包括:
所述目标指令为修改所述机器人系统中配置的零点漂移系统参数为是,或调用所述机器人系统配置的修正零点漂移的函数所触发的指令。
3.根据权利要求1所述的方法,其特征在于,
所述当接收目标指令时,获取当前时刻的零点漂移值,所述目标指令为修改所述系统参数或调用所述系统函数所触发的指令之前,包括:
在每个插补周期中,以预定时间为周期检测是否接收到修改所述系统参数或调用所述系统函数所触发的所述目标指令。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断是否开启软浮动功能;
若判断为开启所述软浮动功能,则进一步判断是否接收到所述目标指令。
5.根据权利要求1所述的方法,其特征在于,
所述将所述外部力矩值和所述零点漂移值的叠加值作为插补计算所述机器人指令位置对应的力矩值之后,所述方法还包括:
通过逆运动学计算得到所述机器人到达所述指令位置时每个轴的位置;
将所述机器人所述每个轴的位置下发至相应的伺服驱动进行驱动,以使得所述机器人到达所述指令位置。
6.一种机器人,其特征在于,所述机器人包括:
配置装置,用于配置机器人零点漂移所对应的系统参数或系统函数,所述系统参数和所述系统函数用于触发力矩传感器获取外部力矩值;
传感装置,用于获取当前时刻所述力矩传感器检测到的外部力矩值;
控制装置,所述控制装置分别与所述配置装置、所述传感装置连接,用于当接收目标指令时,获取所述当前时刻的零点漂移值,并更新此刻的所述零点漂移值到机器人系统中保存,其中,所述目标指令为修改系统参数或调用系统函数所触发的指令;以及,
将所述外部力矩值和所述零点漂移值的叠加值作为插补计算所述机器人指令位置对应的力矩值,其中,所述指令位置为所述机器人进行插补计算的位置点;
其中,所述获取当前时刻的零点漂移值包括:获取当前时刻所述力矩传感器检测到的第一外力数值;通过插补计算得到所述机器人的当前位置,根据所述机器人的所述当前位置、机器人本体和负载的几何参数,利用动力学算法计算在当前状态下所述机器人在所述当前位置下收到的第二外力数值;以及,计算所述第一外力数值和所述第二外力数值的偏差,所述偏差为所述当前时刻的零点漂移值。
7.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序以实现如权利要求1-5中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行以实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010357362.1A CN113561170B (zh) | 2020-04-29 | 2020-04-29 | 机器人力矩补偿方法、机器人、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010357362.1A CN113561170B (zh) | 2020-04-29 | 2020-04-29 | 机器人力矩补偿方法、机器人、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113561170A CN113561170A (zh) | 2021-10-29 |
CN113561170B true CN113561170B (zh) | 2023-01-24 |
Family
ID=78157749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010357362.1A Active CN113561170B (zh) | 2020-04-29 | 2020-04-29 | 机器人力矩补偿方法、机器人、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113561170B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5616288B2 (ja) * | 2011-05-25 | 2014-10-29 | 本田技研工業株式会社 | 移動体の制御装置 |
CN103913259B (zh) * | 2014-03-25 | 2016-02-24 | 哈尔滨工业大学 | 具有自动补偿的机器人末端六维力矩传感器采集系统及其零漂补偿方法和零点漂移获得方法 |
CN103878791B (zh) * | 2014-04-12 | 2016-03-09 | 福州大学 | 工业机器人无外部传感器的外力检测方法 |
CN105643641B (zh) * | 2014-11-11 | 2017-08-11 | 沈阳新松机器人自动化股份有限公司 | 力传感器标定装置、标定方法及力控制机器人 |
CN109531565B (zh) * | 2018-08-27 | 2023-11-03 | 苏州博众智能机器人有限公司 | 一种机械臂的控制方法、装置、服务机器人及存储介质 |
CN110142762B (zh) * | 2019-05-10 | 2022-02-01 | 武汉库柏特科技有限公司 | 一种机器人关节位置控制方法、装置和机器人 |
CN110605721A (zh) * | 2019-10-24 | 2019-12-24 | 苏州艾利特机器人有限公司 | 一种基于末端六维力传感器的机械臂拖动示教方法 |
CN110861090B (zh) * | 2019-12-03 | 2021-04-06 | 泉州华中科技大学智能制造研究院 | 一种力矩前馈控制系统及方法 |
-
2020
- 2020-04-29 CN CN202010357362.1A patent/CN113561170B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113561170A (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10486309B2 (en) | Robot controlling method, robot apparatus, program, recording medium, and method for manufacturing assembly component | |
US11298828B2 (en) | Calibration device, calibration method, and control device | |
JP4202365B2 (ja) | 力制御装置 | |
CN108326877B (zh) | 机器人控制设备、系统和控制方法及制品装配制造方法 | |
US11254004B2 (en) | System identification of industrial robot dynamics for safety-critical applications | |
CN114450131B (zh) | 机器人系统的无导数模型学习系统及设计 | |
CN110340909B (zh) | 使用电动机编码器和传感器来进行学习控制的机器人系统 | |
US10737384B2 (en) | Robot system | |
CN108748144B (zh) | 一种人机协作机械臂的碰撞识别方法 | |
US11141855B2 (en) | Robot system, method of controlling robot arm, recording medium, and method of manufacturing an article | |
CN113561170B (zh) | 机器人力矩补偿方法、机器人、设备及存储介质 | |
EP4241930A1 (en) | Robot control in working space | |
JP2786874B2 (ja) | 可動位置制御装置 | |
JP7098062B2 (ja) | ロボットの動作調整装置、動作制御システムおよびロボットシステム | |
CN106476008B (zh) | 机器人控制装置 | |
JP3308656B2 (ja) | サーボモータの制御方法 | |
JP2020179465A (ja) | 制御装置、制御方法、およびロボットシステム | |
JP2673028B2 (ja) | ロボットの位置決め検出方法 | |
JP7182952B2 (ja) | 制御方法、制御プログラム、記録媒体、制御装置、ロボットシステム、および物品の製造方法 | |
CN114367989B (zh) | 缺省的机械臂阻抗控制方法、装置、机械臂及存储介质 | |
CN116175594B (zh) | 一种机器人的机械臂控制方法、设备及机器人 | |
WO2024050729A1 (en) | Robot teleoperation system and method | |
US12103179B2 (en) | Method of controlling robot body, method of manufacturing product, robot apparatus, and recording medium | |
Cheng | Programming advanced control functions for enhanced intelligence of industrial robots | |
CN112105489A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |