base data to point

  • Hi everybody

    I would need to write the coordinates of base number 16 measured by tool number 16 at point "P3". I define point P3 to config as variable E6POS. Subsequently move ptp to the beginning of this base 16 with tool 16. The problem is, that robot write error message "unreachable point" on axis 5.


    My program:


    ;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT


    $BWDSTART = FALSE


    PDAT_ACT=PDEFAULT


    FDAT_ACT=FHOME


    BAS (#PTP_PARAMS,100 )


    $H_POS=XHOME


    PTP XHOME


          ;ENDFOLD


    $ADVANCE=1


    $BASE=$NULLFRAME


    $TOOL=TOOL_DATA[16]


    XP3=BASE_DATA[16]


          wait sec 0


    ptp XP3


    ;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT

    $BWDSTART = FALSE

    PDAT_ACT=PDEFAULT

    FDAT_ACT=FHOME

    BAS (#PTP_PARAMS,100 )

    $H_POS=XHOME

    PTP XHOME

    ;ENDFOLD


    :help::help:

  • The error means that in the target position axis A5 would be beyond software axis limits. You will likely need to change tool or position angles to get there. For easier debugging try going there with lin motion instead of ptp.

  • Maybe You problem is related to Status and Turn values, that are present on E6POS variable, but are not provided by BASE_DATA.


    You can try to set them manually on .dat file, or try another another approach.


    Create a FRAME variable on $config.dat, like


    Code
    FRAME POSITION={X -1135.17,Y -1312.02,Z 1377.81,A 179.990,B 0.01000000,C 90.5000} ;TOOL[16] BASE[16]


    And at your program, You write something like this.


    Code
    PTP POSITION C_DIS


    But, I'm really don't remember if You need UserTech or ExpertTech packages installed on robot to do this.

  • No need for UserTech or ExpertTech for that. It can all be done in raw KRL, although it may not play nice with the inline forms.


    I see how P3 is being "generated" now -- you're basically trying to get the TCP to move to the Origin point of Base 16. Have you tried making it a LIN motion? LINs don't pre-check the destination, they just keep trying to move until they hit a limit. That would show you which way the robot is trying to move.


    Remember, running this code will try to align all 3 axes of the Tool with all three axes of Base 16. It can be really easy to create an unreachable condition that way. Try setting just the XYZ values of P3 first, and see if the robot can reach, before doing all 6 dimensions.

  • Hi,


    you wrote:

    Subsequently move ptp to the beginning of this base 16 with tool 16.


    You are actually using base 0 ($BASE=$NULLFRAME)

    What are the values for BASE_DATA[16]?


    and then

    XP3=BASE_DATA[16]

    ptp XP3


    I never saw this approach before (I am willing to learn)



    If you give me the version of the KUKA System Software e.g. KSS 8.3)

    the type of robot

    TOOL_DATA[16]

    BASE_DATA[16]


    I can make the calculation and tell you the axes positons


    regards


    MOM

  • I do not want to put numeric values into the program, due to a possible change in the coordinates of the base. I would like the robot to take the coordinates of point P3 directly from the coordinates of the beginning of base 16.


    version KSS: 8.3.32

    typ of robot: kr180R2500 EXTRA C4 FLR

    BASE_DATA[16] ... X = 54,559 Y =1544,828 Z= 895,524 A=169,196 B = -0,424 C=0,465

    TOOL_DATA[16] ... X = -97,084 Y =178,215 Z= 370,674 A=0 B = 0 C=0


    thank you

  • Well it is impossible - without rotation of the tool (A, B, C) the tool Z is pointing downwards, whereas your base Z is pointing upwards by making the robot got to 0, 0, 0, 0, 0, 0 in BASE[16] you are forcing A5 beyond it's limits hence the error.

    If I understand what you are trying to do is make the position variable with base, just having a POS with XYZ 0s and the correct angles will always be at the beginning of which ever base you activate.

  • OK I made the calculation



    column 1:

    index of calculation


    column 2:

    solution valid (0: no e.g. Software limit switch, work space; 1 yes)


    column 3 .. 8:

    calculated axes values


    column 9:

    L2 Norm if solution valid otherwise 0


    Normally index 8 thru 11 is used (S = '010')


    calculated axis value A5: 155.664154 (outside software limit switch 125.0)


    TCPb: recalculated position (here idx 26 was used)


    regards


    MOM

  • I normally do not like to answer my responds , but let us have a look



    I am only looking about your BASE_DATA[16]. The Drawing of the right side shows both identical for position and orientation (left and right).


    The way to solve this problem was mentioned by dexterv earlier.


    change the tool from

    TOOL_DATA[16] = {X -97.084, Y 178.215, Z 370.674, A 0.0, B 0.0, C 0.0}

    to

    TOOL_DATA[16] ={X -97.084, Y 178.215, Z 370.674, A 0.0, B 0.0, C 180.0}


    and the problem is solved, see best solution


    best solution:

    8: 1: -92.830734 -85.360123 101.230873 -0.541391 74.481873 -103.486565 2.760850


    and position is:

    TCPb: [[ 54.559 1544.828 895.524 169.196 -0.424 0.465]]

    as requested

    regards


    MOM

Advertising from our partners