Sorry that i didn't end this conversation. Lot of work in robot field I solve the problem with calculating inverse kinematic and i tell to vision system that this part is not reachable for the robot
Thanks guys!
Sorry that i didn't end this conversation. Lot of work in robot field I solve the problem with calculating inverse kinematic and i tell to vision system that this part is not reachable for the robot
Thanks guys!
Like panic mode and SkyeFire said be very careful about reset. I always in the begining of the program check if the robot is in home position and if it's posible to return to home (if the application allows that).
Example In the program BinPicking_TPV() i can return to home if i'm in the workspace of the bins. I easily go -200 Z in tool direction and return to home position the same path.
We are using reset because of the PLC programming. Our firm has strict PLC program requirements. If the application stops at any reason we must to carryout reset of the whole application (included robots).
Code in SPS to auto RESET via PLC. I_RESET_PROGRAM signal from PLC, O_RESET_PROGRAM signal to PLC. RES1, RES2, RES3 markers.
.;FOLD Auto RESET PROGRAMA.
;Auto RESET
IF (( $PRO_STATE1==#P_ACTIVE) AND ( $MODE_OP==#EX ) AND ( NOT $PRO_MOVE ) AND ( I_RESET_PROGRAM )) THEN
CWRITE($CMD,STAT,MODE,"STOP /R1/BINPICKING_TPV()")
RES1=TRUE
O_RESET_PROGRAM=TRUE
ENDIF
IF (( $PRO_STATE1==#P_STOP ) AND ( RES1 ) AND ( $MODE_OP==#EX )) THEN
CWRITE($CMD,STAT,MODE,"RESET /R1/BINPICKING_TPV()")
RES2=TRUE
ENDIF
IF (( $PRO_STATE1==#P_RESET ) AND ( RES2 ) AND ( $MODE_OP==#EX )) THEN
CWRITE($CMD,STAT,MODE,"RUN /R1/BINPICKING_TPV()")
RES1=FALSE
RES2=FALSE
O_RESET_PROGRAM=FALSE
ENDIF
;Auto RESET first START
IF ((( $PRO_STATE1==#P_RESET ) OR ( $PRO_STATE1==#P_STOP )) AND ( $MODE_OP==#EX ) AND ( NOT $PRO_MOVE ) AND ( I_RESET_PROGRAM )) THEN
CWRITE($CMD,STAT,MODE, "STOP /R1/BINPICKING_TPV()")
RES3=TRUE
O_RESET_PROGRAM=TRUE
ENDIF
IF ((( $PRO_STATE1==#P_RESET ) OR ( $PRO_STATE1==#P_STOP )) AND ( RES3 ) AND ( $MODE_OP==#EX )) THEN
CWRITE($CMD,STAT,MODE, "RESET /R1/BINPICKING_TPV()")
RES3=FALSE
O_RESET_PROGRAM=FALSE
ENDIF
;Auto select PROGRAM
IF (( $PRO_STATE1==#P_FREE ) AND ( $MODE_OP==#EX )) THEN
CWRITE($CMD,STAT,MODE,"RUN /R1/BINPICKING_TPV()")
ENDIF
;ENDFOLD
Display More
43. UNDO type of key for touch up would be great!
Vision system have primary and secondary system. Primary system sends me location of part (FRAME type). On secondary system i scan picked part (2D picture) and the system send me correction for fine placing. Correction is in X, Y and A coordinates (gripper magnet, known Z=0, B and C orientation). So the orientation of the part is important, because the location where i place the part i have limited movemend (limits for correction of X,Y and A).
So if i understand properly $ORI_TYPE=#JOINT causes unknown rotation of TCP in A,B and C orientation. So if its this the case than this is not possible.
Yeah i stick to linear move because if i have PTP move it is possible for collision. For better understanding the paths of robot see attachment. This robot does never have the same path because the parts (elements) are always in different location inside bin.
Hi,
I have problems with singularity on Bin picking cell. The Vision system is giving me location of the part (FRAME type information) and after i get the info that part is ready for picking i have PTP move 200mm above the location. Then i have LIN move to the point of picking.
I know that is LIN move problem for singularity and i already have set $CP_VEL_TYPE to #VAR_ALL. But is it possible that the robot chose another path that is not near singularity or what to use that resolve the problem?
CODE:
; PTP GIB 200mm NAD ZABOJ
;FOLD PTP NAD_POBIRANJE_IZ_PRVE T(1) B(0) C_PTP C_DIS
BAS(#TOOL,1) ; POBIRANJE ODPRE`KA Z MAGNETOM (1 magnet)
BAS(#BASE,0)
NAD_POBIRANJE_IZ_PRVE=SCAN_LOC[1]
NAD_POBIRANJE_IZ_PRVE.Z=NAD_POBIRANJE_IZ_PRVE.Z+200
PTP NAD_POBIRANJE_IZ_PRVE C_PTP C_DIS
;ENDFOLD
; LIN GIB DO KOSA KI GA BOMO POBRALI
;FOLD LIN SCAN_LOC[1] T(1) B(0)
BAS(#TOOL,1) ; POBIRANJE ODPRE`KA Z MAGNETOM (1 magnet)
BAS(#BASE,0)
LIN SCAN_LOC[1]
;ENDFOLD
; UKAZ ZA PRIJEM KOSA
ODPRESEK_MAG(#ON)
WAIT SEC 0.2
CONTINUE
WAIT FOR I_PRIJEL_MAG
Display More
In the attach is picture where the robot is in singularity.
ROBOT: KR16 1610mm
KRC: KRC4 standart
KSS: v8.3.17
Thanks for reply.
Best regards