力监视器功能的SPEL+编程
概述
力觉监视器功能使用力觉传感器测量力和转矩。
它的监视结果可用于在创建应用时调整参数,或者记录和管理在操作过程中对每个工件施加的力。
力觉监视器功能的编程按以下过程执行。
- 设置要执行的坐标系
- 设置参数
- 执行力监视器功能并进行测量
力监视器功能的坐标系
力觉监视器功能在力觉坐标系中工作。
力觉监视器功能会计算力觉传感器检测到的力、转矩施加到力觉坐标系的力以及转矩本身,获取值,并计算平均值和峰值。
将力觉坐标系的原点指定为实际发生接触并产生力的点。(示例:工件边缘点等)
另外,力觉坐标系的方向因应用而异。在恒定方向测量力时,无论机器人处于哪种姿态,都应指定基础坐标系和本地坐标系。在根据机器人姿态改变的方向(例如,在机器人抓取的工件的正向)测量力时,请指定工具坐标系和自定义坐标系。
力觉监视器功能可以测量在力觉坐标系中指定的以下8维数据。
- 六个轴(Fx到Tz)
- Fmag:平移力的合力
- Tmag:转矩的合成转矩
力监视器功能参数
力觉监视器功能的参数在力觉监视器对象的属性中设定。可以在执行程序之前在GUI中设定这些参数。有关在GUI中进行设定的详细信息,请参阅以下章节。
软件篇 [机器人管理器]- [Tools]菜单
- [Tools]-[Robot Manager]-[Force]面板
如果要在执行程序的过程中动态更改参数,可以使用FSet语句设定这些参数。
- ForceSensor属性
指定要执行力觉监视器功能的力觉传感器的编号。
- CoordinateSystem属性
指定要对其执行力觉监视器功能的力觉坐标对象。
- Fmag_Axes属性
指定要合并的轴(Fx到Fz)以计算Fmag值。
要测量水平施加到XY平面的力,请指定要测量的方向; 例如,指定X轴和Y轴。
- Tmag_Axes属性
指定要合并的轴(Tx到Tz)以计算Tmag值。
- LPF_Enabled属性
指定要在力觉监视器功能中执行的低通滤波器所在的轴(Fx到Tmag)。
要减小噪声或忽略诸如脉冲等力觉传感器值,可以使用此属性。
- LPF_TimeConstant属性
指定要在力觉监视器功能中执行的低通滤波器的时间常数。
增大值可减小噪声,但同时会降低对力觉传感器值的响应。
执行力监视器功能
可以使用力觉监视器功能执行以下操作。
- 获取力觉传感器值
- 记录力觉传感器值
- 获取平均值
- 获取峰值
- 获取力觉传感器值
- 执行力觉监视器对象的Force属性以获取力觉传感器值。
- 用法示例:
- 在实型数组变量rVar中获取8维(Fx到Tmag)力觉传感器值。要获取的力觉传感器值是最新值。
- 获取平均值
-
执行力觉监视器对象的AvgForceClear属性以开始计算力觉传感器平均值。
开始后,可以使用AvgForce状态获取平均值。 - 用法示例:
-
在实型数组变量rVar中获取8维(Fz到Tmag)力觉传感器平均值。
执行AvgForce状态之前,务必使用AvgForceClear属性开始计算平均值。如果未开始计算,将获取“0”。
执行AvgForce状态会停止计算平均值。要连续获取平均值,请在每次获取平均值之后再次开始计算平均值,然后获取平均值。
在开始计算平均值之后,执行AvgForce状态超过一分钟会导致发生错误。此时请在一分钟内执行AvgForce状态,或者再次开始计算平均值。 - 获取峰值
-
执行力觉监视器对象的PeakForceClear属性以开始计算力觉传感器峰值。
开始后,可以使用PeakForce状态获取峰值。 - 用法示例:
-
在实型数组变量rVar中获取8维(Fx到Tmag)力觉传感器峰值。
执行PeakForce状态之前,务必使用PeakForceClear属性开始计算峰值。如果未开始计算,将获取“0”。
执行PeakForce状态会停止计算峰值。要连续获取峰值,请在每次获取峰值之后再次开始计算峰值,然后获取峰值。 - 记录力觉传感器值
-
执行力觉监视器对象的LogStart属性以将力觉传感器值记录到文件中。
这样可以将有关每个操作的信息存储在文件中。 - 用法示例:
- 执行RecordStart属性30秒,以0.1秒的间隔开始将力觉传感器值等记录到文件中。在开始记录之前,文件名由在Label属性中设置的标签和开始时间确定。开始记录之后,程序将转到下一个语句。
FGet FM1.Forces, rVar()
FSet FM1.AvgForceClear, True, True, True, True, True, True, True, True
FGet FM1.AvgForces, rVar()
FSet FM1.PeakForceClear, True, True, True, True, True, True, True, True
FGet FM1.PeakForces, rVar()
FSet FM1.Label, "ForceLog"
FSet FM1.RecordStart, 30, 0.1