末端力控编程#
功能简述#
用户选择使用末端力控编程功能,可以实现机器人在程序运行过程中加入力控功能,实现在机器人运动过程中机器人根据与外界交互力的信息进行调整,从而使得用户可以控制机器人在指定笛卡尔空间方向上与外界保持特定的交互力。
功能限制#
用户使用末端力控编程功能时,需要注意以下功能限制:
使用该功能需要正确配置并启用力传感器。
仅机器人末端及安装在在末端上的传感器、工具及负载与外界产生交互力会被感知,机器人其他部分与外界发生接触不会产生任何效果。
该功能不支持在线程编程中使用。
末端力控程序#
用户选择使用末端力控编程功能时,可以在机器人程序编程界面-高级程序中添加末端力控程序,如下图所示:
末端力控程序包括:
Force
ForceGuard
ForceSetZero
ForceWait
ForceMove
Force程序#
用户可以选择使用Force程序控制机器人在运动过程中在笛卡尔空间延坐标系指定方向与外界进行力交互,如下图所示:
用户使用Force程序,需要对力控参数进行配置。Force程序参数配置界面如下图所示:
力控方向开关
用户通过勾选力控方向开关可以启用/禁用对应笛卡尔空间坐标系中指定方向的力控。
以上力控方向都是基于力控参考坐标系所对应的方向,当用户选择力控参考坐标系为工具坐标系时,力控方向则会沿着Force程序中所配置的工具坐标系进行力控制,当用户选择力控参考坐标系为工件坐标系时,力控方向则会沿着Force程序中所配置的工件坐标系进行控制。
力控方向参考力
用户启用力控方向后,通过配置参考力参数控制机器人末端在指定方向上与外界产生并保持目标力,单位为N与Nm。当用户配置了非0目标力且机器人末端与外界未达到目标交互力时,机器人末端会沿着对应的力控方向持续产生移动,直到交互力达到用户所配置的参考力大小。
该参考力是作用在机器人末端的力在用户所配置的力控参考坐标系中的描述,因此用户需要根据实际情况调整目标力参数的大小及符号。当目标力方向在力控参考坐标系中沿着坐标系平移/旋转方向为正,参考力值为正。当目标力方向在力控参考坐标系中沿着坐标系平移/旋转方向为负,参考力值为负。
力控方向最大速度
用户启用力控方向后,机器人末端会基于用户设置的参考力与阻尼参数产生位移。用户可以通过配置力控方向最大速度限制力控方向上由于力控产生的位移最大速度,单位为mm/s与°/s。
力控方向阻尼
用户启用力控方向后,可以通过配置力控方向阻尼调整机器人末端与外界实际交互力与参考交互力的误差与对应力控方向调整速度的关系。
力控平移方向X/Y/Z方向阻尼d单位N/(mm/s),机器人末端力控平移方向上与环境的实际交互力与参考力误差ΔF(N)会令对应力控平移方向产生ΔF/d(mm/s)的力控平移调整速度。
力控旋转方向RX/RY/RZ方向阻尼d单位Nm/(°/s),机器人末端力控旋转方向上与环境的实际交互力矩与参考力矩误差ΔM(Nm)会令对应力控旋转方向产生ΔM/d(°/s)的力控旋转调整速度。
力控方向力死区
用户启用力控方向后,可以通过配置力控方向力死区来调整机器人末端与外界实际交互力的检测死区大小。当机器人末端与外界实际交互力大小赋值小于死区范围时,机器人末端将不会对该交互力产生对应的力控调整运动。
力控平移方向X/Y/Z方向死区单位N,力控旋转方向RX/RY/RZ方向死区单位Nm。
力控工具坐标系
用户配置力控工具坐标系,机器人末端力控会将力控工具坐标系原点作为机器人末端与外界实际交互力的作用点,且由于力控方向产生的力控调整平移/旋转都将以力控工具坐标系原点为参考点。
当用户选择力控参考坐标系为工具坐标系时,用户所配置启用的力控方向都将沿着开启力控时的工具坐标系所在方向进行平移/旋转调整,且对应的力控参考力都是在开启力控时的工具坐标系中的描述。
力控工件坐标系
用户配置力控工具坐标系,且选择力控参考坐标系为工件坐标系时,用户所配置启用的力控方向都将沿着工件坐标系所在方向进行平移/旋转调整,且对应的力控参考力都是在工件坐标系中的描述。
力控参考坐标系
用户选择使用末端力控功能时,需要确定最终力控生效坐标系。用户可以选择末端力控沿着工具坐标系或工件坐标系进行力控调整。
运动程序末端力控集成
用户正确配置Force程序后,可以在Force程序下添加Move类运动程序,所有在Force程序节点下的Move程序都会在运动过程中基于Force程序配置参数进行末端力控。未添加在Force程序节点下的Move程序不具备末端力控调整功能,如下图所示:
ForceGuard程序#
用户选择使用ForceGuard程序可以用来激活/禁用基于末端交互力大小,如下图所示:
用户使用ForceGuard程序,需要配置激活/关闭状态、监控力方向、监控力大小、监控工具坐标系、监控工件坐标系及监控坐标系。
激活/关闭状态
在ForceGuard程序运行后且用户选择激活力安全监控,当机器人运行含末端力控的程序时,若作用在机器人末端的交互力大小在监控坐标系指定方向上超过了监控力大小,则会触发安全停止1类。
在ForceGuard程序运行后且用户选择关闭力安全监控,则监控失效。
安全力监控激活后仅会在机器人运行含末端力控的程序时生效。
当用户使用ForceGuard程序激活力安全监控且未通过ForceGuard程序禁用力安全监控时,力安全监控功能将以生效参数持续监控直到用户使用ForceGuard程序禁用或修改力安全监控配置。
监控力方向
用户通过勾选监控力方向开关可以启用/禁用对应笛卡尔空间监控坐标系中指定方向的力监控。
以上监控力方向都是基于监控参考坐标系所对应的方向,当用户选择监控参考坐标系为工具坐标系时,监控方向则会参考ForceGuard程序中所配置的工具坐标系进行力监控,当用户选择监控参考坐标系为工件坐标系时,监控方向则会沿着ForceGuard程序中所配置的工件坐标系进行监控。
监控力大小
用户开启监控力方向后,可以配置监控力大小来调整触发监控报警停机的力大小赋值,单位为N与Nm。
用户应确保激活力安全监控方向上的监控力大小为非零正数,从而保证力安全监控的正常运行。
监控工具坐标系
用户配置监控工具坐标系,机器人末端安全力监控会将监控工具坐标系原点作为机器人末端与外界实际交互力的作用点。
当用户选择监控参考坐标系为工具坐标系时,用户所配置启用的监控方向都将沿着实时工具坐标系所在方向进行力/力矩监控,且对应的监控力方向都是在机器人实时工具坐标系中的描述。
监控工件坐标系
用户配置监控工具坐标系,且选择监控参考坐标系为工件坐标系时,用户所配置启用的监控方向都将沿着工件坐标系所在方向进行力/力矩监控,且对应的监控力方向都是在工件坐标系中的描述。
监控参考坐标系
用户选择使用末端力安全监控功能时,需要确定最终监控生效坐标系。用户可以选择末端力安全监控控沿着工具坐标系或工件坐标系进行监控。
ForceSetZero程序#
用户可以选择使用ForceSetZero程序对当前传感器读数进行清零操作,如下图所示:
用户使用且程序执行ForceSetZero程序后,当前所有作用在机器人末端力上的负载,包括安装在机器人末端上的工具负载重量及所有作用在末端工具负载上的外力,都会被清空。此后修改安装在机器人末端的工具负载或与外界交互工况则会产生对应的误差力。
ForceWait程序#
用户选择使用ForceWait程序,可以实现在满足机器人末端力控等待条件后自动跳出当前Force程序段的运动程序,直到在当前Force程序段中执行新的ForceWait程序或当期Force程序运行结束,如下图所示:
用户选择使用ForceWait程序时,需要配置相关力控等待条件。当前用户可配置力控等待条件参数包括,位置等待条件、速度等待条件、力等待条件及力控等待条件激活逻辑。
位置等待条件
用户选择启用位置等待条件时,可以通过配置X/Y/Z/RX/RY/RZ上的绝对位置及相较于绝对位置的偏移范围来设定位置等待条件参数。
当绝对位置参数与偏移位置参数同时为0时,则代表不对该方向进行位置等待条件监控。
当用户选择绝对位置等待条件时,此时位置等待条件所监控的位置为ForceWait程序所在的Force程序中配置的力控工具坐标系原点在力控工件坐标系下的绝对位姿。当用户选择相对位置等待条件时,所监控的位置为ForceWait程序所在的Force程序中配置的力控工具坐标系原点在运行ForceWait程序后走过的相对位姿偏移。
用户通过配置位置等待条件持续时间参数,可以调整机器人末端位置满足并保持在等待条件范围内的持续时间,单位ms。当机器人末端位置超出范围时,持续时间会重新计时。当持续时间设为0时,则会在满足位置等待条件瞬间激活位置等待条件满足标志位。
用户通过配置位置等待条件超时参数,用户可以调整机器人末端在无法满足位置等待条件时的等待超时时间,单位ms,当FoeceWait程序执行后并超过位置等待超时时间,则会直接激活位置等待条件满足标志位。
速度等待条件
用户选择启用位置等待条件时,可以通过配置X/Y/Z/RX/RY/RZ上的绝对速度及相较于绝对速度的偏移范围来设定速度等待条件参数。当绝对速度参数与偏移速度参数同时为0时,则代表不对该方向进行速度等待条件监控。
当用户选择绝对速度等待条件时,此时速度等待条件所监控的速度为ForceWait程序所在的Force程序中配置的力控工具坐标系原点在力控工件坐标系下的绝对速度。当用户选择相对速度等待条件时,锁监控的速度为ForceWait程序所在的Force程序中配置的力控工具坐标系原点在运行ForceWait程序后的速度增量。由于开始进行末端力控运动功能时,机器人总是处于静止状态,因此对于速度等待条件,绝对速度等待条件与相对速度等待条件等价。
用户通过配置速度等待条件持续时间参数,可以调整机器人末端速度满足并保持在等待条件范围内的持续时间,单位ms。当机器人末端速度超出范围时,持续时间会重新计时。当持续时间设为0时,则会在满足速度等待条件的瞬间激活速度等待条件满足标志位。
用户通过配置速度等待条件超时参数,用户可以调整机器人末端在无法满足速度等待条件时的等待超时时间,单位ms。当FoeceWait程序执行后并超过速度等待超时时间,则会直接激活速度等待条件满足标志位。
力等待条件
用户选择启用力等待条件时,可以通过配置X/Y/Z/RX/RY/RZ上的绝对力大小及相较于绝对力的偏移范围来设定力等待条件参数。当绝对力大小参数与偏移力范围参数同时为0时,则代表不对该方向进行力等待条件监控。
力等待条件所参考的坐标系与ForceWait程序所在的Force程序中配置的力控参考坐标系相同,即当Force程序中配置力控参考坐标系为工具坐标系时,力等待条件所监控的力大小及方向是在力控工具坐标系中被描述的,当Force程序中配置力控参考坐标系为工件坐标系时,力等待条件所监控的力大小及方向是在力控工件坐标系中被描述的。
在进行力等待条件参数的设置时,应参考ForceWait程序所在Force程序中的实际坐标系配置进行设置,注意符号及大小是否能够被Force程序所引起的末端力控功能所满足。
当用户选择绝对力等待条件时,力等待条件监控的是对应监控力的绝对赋值大小。当用户选择相对力等待条件时,力等待条件监控的是运行完ForceWait程序后监控力的增量大小。
用户通过配置力等待条件持续时间参数,可以调整机器人末端力满足并保持在等待条件范围内的持续时间,单位ms。当机器人末端力超出范围时,持续时间会重新计时。当持续时间设为0时,则会在满足力等待条件的瞬间激活力等待条件满足标志位。
用户通过配置力等待条件超时参数,用户可以调整机器人末端在无法满足力等待条件时的等待超时时间,单位ms。当FoeceWait程序执行后并超过力等待超时时间,则会直接激活力等待条件满足标志位。
力控等待条件激活逻辑
当启用多个力控等待条件监控时,用户可以通过设置力控等待条件激活逻辑配置多个等待条件的逻辑关系。
当力控等待条件激活逻辑中存在与逻辑时,所有启用的力控等待条件都需要激活才认为全局力控等待条件被激活。
当力控等待条件激活逻辑中存在或逻辑时,任意启用的力控等待条件激活即认为全局力控等待条件被激活。
当力控等待条件激活逻辑中同时存在与逻辑与或逻辑是,任意或逻辑的力控等待条件激活或者所有与逻辑的力控等待条件激活都会认为全局力控等待条件被激活。
全局力控条件激活
当全局力控条件满足条件并激活后,对应Force程序下的所有Move类运动程序都将被停止并调过,如下图所示:
ForceMove程序#
用户选择使用ForceMove程序,可以使机器人末端仅产生末端力控调整,而不会产生任何Move类运动,如下图所示:
ForceMove程序仅可被添加在Force程序下,用以实现纯末端力控移动。
当用户选择使用ForceMove程序时,末端力控会持续保持机器人末端位置/姿态基于力/力矩的调整,直到满足ForceWait程序条件后退出或用户手动停止/暂停。因此当用户选择使用ForceMove程序时,应在ForceMove程序前添加ForceWait程序并正确配置条件参数,从而保证ForceMove程序运行过程中能够满足力控等待条件并正常退出ForceMove程序运行接下来的程序。
末端力控编程示例#
末端力控抛光打磨
设计机器人末端对某一曲面进行打磨,需要机器人末端在打磨开始时已与曲面产生10N的打磨力并持续维持1s。在打磨力满足要求后,机器人末端沿着曲面进行打磨。打磨路径采用从点A至点B至点C的两段支线路径。打磨过程中持机器人末端工具需要始终保持垂直于曲面切线方向。
对应上述工况,设计末端力控编程程序示例如下:
1、 需要机器人末端朝打磨曲面方向探索直到保持10N大小的接触力,采用Force程序进行力控并配合ForceMove程序使用;
2、 接触力在机器人工具坐标系中的方向为负,设定目标力为-10N,设定力控调整最大速度为默认值150mm/s,期望机器人以10mm/s的速度朝曲面运动,设置阻尼参数为1,实际工况中,若机器人末端始终无法与外界达到平衡,应调大阻尼参数;
3、 选取力控工具坐标系与工件坐标系为默认坐标系,并选取力控参考坐标系为工具坐标系,与设定目标里相对应;
4、 由于采用ForceMove程序进行力控探寻,配合使用ForceWait程序监控力等待条件激活情况;
5、 仅对力方向有等待条件需求,仅启用力等待条件;
6、 需要对Z方向上的力是否达到并保持-10N进行监控,选取相对便宜范围为正负2N,偏移范围的选取需要考虑实际工况中工具与打磨表面的接触刚度进行选取;
7、需要力保持1s,即1000ms,超时时间设定默认值5000ms;
8、 执行ForceMove程序,机器人末端力控调整机器人末端朝曲面方向移动,无其他方向运动规划,当机器人接触到曲面,产生10N力并保持超过1s,跳出当前ForceMove程序,执行后续程序;
9、 再次开启末端力控功能,使后续机器人Move类运动同时具有末端力控调整;
10、 机器人打磨过程中继续保持与打磨曲面产生10N大小的接触力,在工具坐标系中方向为Z-。同时为了保证机器人末端始终垂直于曲面切向,因此开启RX与RY旋转方向力控调整,且参考力矩设为0Nm,设置选装方向最大调整速度为60°/s,阻尼参数则需要根据实际工况中的曲面曲率以及打磨工具与曲面接触刚度进行调整;
11、 Force程序下的两行Move程序控制机器人以直线路径从点A运动至点B运动至点C,由于工具坐标系Z向上通过力控进行调整,因此推荐点A点B点C的示教点位为曲面正上方在XY平面中的点位,使得力控调整方向与运动控制方向解耦,尽可能同时保证两者的精度;
基于上述编程示例,机器人实际运动工况示意图如下图所示: