力覺監控功能的SPEL+程式
概觀
力覺監控功能係指使用力覺感應器測量力及扭力的功能。
結果可用於在建立應用時調整參數,或記錄及管理在操作期間施加到各工件的力。
力覺監控功能的編程是依據下列程序執行。
- 設定要執行的座標系
- 設定參數
- 執行力覺監控功能並測量
力覺監控功能的座標系
力覺監控功能會在力覺座標系中執行。
力覺監控功能會計算力覺感應器偵測到的力、扭力施加至力覺座標系的力以及扭力、取得數值及計算平均值及峰值。
在實際進行接觸及產生力的點中指定力覺座標系的原點。(範例:工件邊緣點等)
此外,力覺座標系的方向會因應用內容而異。測量固定方向的力時,無論機器人的姿態為何,請指定基礎座標系及本地座標系。在依機器人的姿態而改變的方向中測量力時(如在機器人抓握工件的前方),請指定工具座標系及自訂座標系。
力覺監控功能可測量下列力覺座標系中指定的8維資料。
- 6軸Fx至Tz
- Fmag:平移力的合力
- Tmag:力矩的合力矩
力覺監控功能的參數
力覺監控功能的參數設定於力覺監控物件的屬性內。執行程式前,可在GUI中進行設定。如需GUI設定的詳細資訊,請參閱下列章節。
軟體篇 [機器人管理器] - [Tools]功能表
- -[Tools]-[Robot Manager]-[Force]面板
若需在執行程式期間動態變更參數,可使用FSet陳述式進行設定。
- ForceSensor屬性
指定力覺感應器編號以執行力覺監控功能。
- CoordinateSystem屬性
為已執行的力覺監控功能指定力覺座標物件。
- Fmag_Axes屬性
從要結合的Fx至Fz指定軸以計算Fmag值。
若要測量水平施加至X-Y平面的力,請指定要測量的方向; 例如,指定X及Y軸。
- Tmag_Axes屬性
從要結合的Tx至Tz指定軸以計算Tmag值。
- LPF_Enabled屬性
指定在力覺監控功能中執行低通濾波器的軸(Fx至Tmag)。
使用此屬性可減少雜訊,或在忽略力覺感應器值(如脈衝)時使用此屬性。
- LPF_TimeConstant屬性
指定要在力覺監控功能中執行低通濾波器的時間常數。
增加數值會降低雜訊,但也會降低對力覺感應器值的反應。
執行力覺監控功能
可透過力覺監控功能執行下列操作。
- 取得力覺感應器值
- 記錄力覺感應器值
- 取得平均值
- 取得峰值
- 取得力覺感應器值
- 執行力覺監控物件的Force屬性以取得力覺感應器值。
- 使用範例:
-
在實際陣列變數rVar中取得Fx至Tmag的8維力覺感應器值。
要擷取的力覺感應器值為最新值。 - 取得平均值
-
執行力覺監控物件的AvgForceClear屬性以開始計算力覺感應器平均值。
開始程序後,使用AvgForce狀態可擷取平均值。 - 使用範例:
-
在實際陣列變數rVar中取得Fz至Tmag的8維力覺感應器平均值。
執行AvgForce狀態前,務必使用AvgForceClear屬性開始計算平均值。若未開始計算,則會擷取「0」。
執行AvgForce狀態會停止計算平均值。若要連續取得平均值,每次擷取平均值後,再次開始計算平均值並取得平均值。
開始計算平均值後,若在超過一分鐘後才執行AvgForce狀態,則會發生錯誤。在一分鐘內執行AvgForce狀態,或再次開始計算平均值。 - 取得峰值
-
執行力覺監控物件的PeakForceClear屬性以開始計算力覺感應器峰值。
開始程序後,使用PeakForce狀態可擷取峰值。 - 使用範例:
-
在實際陣列變數rVar中取得Fx至Tmag的8維力覺感應器峰值。
執行PeakForce狀態前,務必使用PeakForceClear屬性開始計算峰值。若未開始計算,則會擷取「0」。
執行PeakForce狀態會停止計算峰值。若要連續取得峰值,每次擷取峰值後,再次開始計算峰值並取得峰值。 - 記錄力覺感應器值
-
執行力覺監控物件的RecordStart屬性後,即可將力覺感應器值記錄在檔案內。
這可將每個操作的資訊儲存在檔案中。 - 使用範例:
- 利用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