UPDATE:
Many thanks again Fubini and Panic for your patience and explanations about calibration.
So the actual calibration process seemed to work enough.
I grabbed the idea of clock gauge and created an adapter (see figure).
While gently pressing the rod a mate performed slowly movements. While doing so i was looking for the bottom of the "V". After this, my orientation is kept well now and I can live with that. So indeed the assumption in post #31 was right. My KUKA was everything, but not calibrated.
I recorded a short video clip for further documentations here (company), where you can see the current array-like movement. My belonging code file is also attached. This code exactly leads to trajectories shown in the inked video file.
In this run, I span a workspace area of 1400 mm in X by 2000 mm in Y and tested this with a 8 by 3 grid.
So my "interface" in *.src file is this..
;IMPORTANT user's input here:
gridWidth = 1400.0 ;geometrically width of workspace area in [mm]
gridHeight = 2000.0 ;geometrically "height" of workspace area in [mm]
tPulse = 0.5 ;output pulse duration in [s]..
;..to measure inductive voltages (used in function call)
nRow = 8 ;grid's height (number of rows)
nCol = 3 ;grid's width (number of columns)
;IMPORTANT user's input end
Here i define my area and the number of rows and cols. The rest will be done automatically with state ments as:
IF (row == idxDragE) THEN ;"drag E1 to enlarge Y-workspace" functionality
nextP.Y = nextP.Y + yStep ;
nextP.E1 = nextP.E1 - yStepE1 ;
LIN nextP ;
ELSE ;regular Y-step functionality
nextP.Y = nextP.Y + yStep ;
LIN nextP ;
ENDIF
Critically grid elements for singularity are those, where the KUKA's wrist is near the external linear axis.
in this shown combination of rows and columns there was no singularity issue, even if it looks like (in video).
Next i will successive increase the number of rows and cols and when singularity occurs, I can try those approaches you guys gave here.
I am optimistic.
- First I would try to place $CP_VEL_TYPE to #VAR_ALL at appropriate position in code.
- Second I would try to avoid CP motions in this critically spots (maybe i can hold flange's orientation anyway).
- Third I would try to keep external axis far away of momentary row, so the robot would always have to lean over more to reach momentary grid point
So the first part/issue of array-wise movements is solved (orientation).
The second part/issue (singularity) is not done so far.
UPDATE ends