Hello. I am programming an IRB 4400 6-axis industrial robot with milling router bit EOAT to record friction values for a specific sequence of move instructions. The aim is to set friction values for specific cut paths to eliminate waviness in milled parts. I am using instructions FricIdInit and FricIdEvaluate for this.
This routine will serve as a tool for determining the friction values for a given sequence of move instructions, and will populate the array R1_Cut_FricLevels with these new friction values. Here is my program:
MODULE R1_Friction_Tuning
LOCAL PERS num Friction_Levels_Original{6}:=[0.24,0.51,0.35,0.32,0.69,0.54];
!This array displays the values found in the .MOC file.
LOCAL PERS num R1_Cut_FricLevels{6}:=[0,0,0,0,0,0];
!This array will be populated with new values.
PROC R1_Friction_Program()
!Start Friciton Evaluation Initialization
FricIdInit;
!Copy and paste cut path below. Must be < 4s.
ConfJ\Off;
ConfL\Off;
MoveL [[271.4178,121.7909,419.1499],[0.74120872,0.486167,-0.43839483,0.14853033],[-1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v180,fine,tR1Current\WObj:=wobj_R1;
...
MoveL [[738.3276,115.9078,415.5497],[0.64857728,0.62449349,-0.18881946,0.39204925],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v180,fine,tR1Current\WObj:=wobj_R1;
!Evaluate Friction and Repeat Sequence
FricIdEvaluate R1_F21_V1_C9_FricLevels;
ENDPROC
ENDMODULE
However, the array is not populated after and all values remain at zero.
Additionally, the robot continues cycling back and forth through the move instructions indefinitely - is this normal? It writes to the pendant "iteration nr."
Note:
FFW ON is active for all robot joints.
The move sequence is under 4s.
The instructions begin and end with FINE movements.
P.S. What do these friction values represent? Are they percentages? Are they related to servo feedback? Torque?