Difference between revisions of "Program Examples - Robot Pick and Place (P&P)"

From SoftMC-Wiki
Jump to: navigation, search
Line 5: Line 5:
  
 
{|  cellpadding="10"  cellspacing="0"  border="1"  
 
{|  cellpadding="10"  cellspacing="0"  border="1"  
|'''P1 [[File:P1.JPG]]''' ||'''P11 [[File:PnP2.JPG]]''' || '''P22 [[File:PnP3.JPG]]''' ||'''P2 [[File:PnP4.JPG]]'''
+
|'''P1 [[File:P1.JPG]]''' ||'''P11 [[File:P2.JPG]]''' || '''P22 [[File:P22.JPG]]''' ||'''P2 [[File:P2.JPG]]'''
 
|}
 
|}
 
PnP.PRG:
 
PnP.PRG:

Revision as of 12:11, 22 January 2017

here is an example of doing Robot Pick and Place. We use puma 6 axis robot in this example:

File:PnP Cartesian positions.JPG


P1 P1.JPG P11 P2.JPG P22 P22.JPG P2 P2.JPG

PnP.PRG:

'------------------------------------------------------------------------------
' File:        PnP.prg
' Purpose:     Robot simple Pick & Place
' Version:     1.00
' Author:      Or Karni
' History:     11.JAN.2017	-	created
'------------------------------------------------------------------------------

dim shared jntZeroPosition as joint of xyzypr = {0,0,0,0,0,0}

dim shared jntPickHigh  as joint of xyzypr = {120,45,0,0,45,0}
dim shared jntPickLow   as joint of xyzypr = {120 , 49.9504 , 0.352258 , 0 , 39.6973 , 0}
dim shared jntPlaceHigh as joint of xyzypr = {60,45,0,0,45,0}
dim shared jntPlaceLow  as joint of xyzypr = {60 , 49.9504 , 0.352258 , 0 , 39.6973 , 0}

dim shared dVelSlow as double = 40.0
dim shared dVelFast as double = 80.0

program

    Sys.Vrate = 100.0
    with Puma
        Attach
            En = TRUE
            Sleep 100
            while NOT En
                Sleep 100
            end while
            Move jntZeroPosition Vcruise=dVelSlow
            call waitMotion
              call pickPlaceJoint
            Move jntZeroPosition Vcruise=dVelSlow
            call waitMotion
        Detach
    end with    

end program


sub pickPlaceJoint

    dim i as long
    dim dVelFac as double = 0.9
    
    Move PUMA jntZeroPosition Vcruise=dVelSlow
    call waitMotion
    Move PUMA jntPickHigh Vcruise=dVelSlow
    call waitMotion
    Puma.BlendingMethod = 1
    Puma.Cp = 50
    puma.J1.PeMax = 3.0 ' 0.2
    for i = 1 to 10
        Move Puma jntPickHigh Vcruise = PUMA.Vmax * dVelFac
        Move Puma jntPickLow Vcruise = PUMA.Vmax
        call waitMotion
        Move Puma jntPickHigh Vcruise = PUMA.Vmax
        Move Puma jntPlaceHigh Vcruise = PUMA.Vmax * dVelFac
        Move Puma jntPlaceLow Vcruise = PUMA.Vmax
        call waitMotion
        Move Puma jntPlaceHigh Vcruise = PUMA.Vmax
    next i
    Move PUMA jntZeroPosition Vcruise = dVelSlow
    call waitMotion

end sub

sub waitMotion
    while puma.IsMoving
        Sleep 1
    end while
end sub