Position Offsets with Tool and Joint Offsets

  • I am running KRC4


    I am trying to maneuver a robot with gripper attached into a restricted location but I need to have offsets. Due to restrictions of the gripper against the robot, I need to rotate A5 90 degrees along with the offset of the tool itself. The offset is based on a pre-taught point. Is there a way to have a combination of both the tool offset moves as well as the axis offsets?


    Here is the code used with our movement:


    TRIGGER WHEN DISTANCE=1 DELAY=0 DO g_nStep=2


    PDAT_ACT=PPDAT


    PDAT_ACT.ACC=100.0


    PDAT_ACT.APO_DIST=20.0


    FDAT_ACT=FPick_GP


    BAS(#PTP_PARAMS,100)


    PrePos1={x 0,y 0,z 500,a 0,b 0,c 0}:Pick_GP[g_nStyleNo]


    PTP PrePos1 C_DIS


    The PTP_PARAMS is a function we call to change speed settings on the move. Pick_GP[g_nStyle] is the point we are moving two based on a number called in from a PLC from an array of possible points.

  • you may want to explain that a bit better. nothing in posted code sample matches anything in description. if there is a restricted space, it is restricted for a reason so why enter? if there is need to enter, why restrict it?

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • Sorry for the confusion. The tool itself needs to maneuver around other machines within the cell. The code I posted is just one of three offset moves the robot needs to make. The robot does not hit any stay out zones or slow down zones in the process, I just need the weird rotational offsets because the "tennis racket" shaped structure that holds all the wires and tubes in place on the robot will hit the arm otherwise. Moving that structure causes other issues with other movements for the robot.

  • for thing like that one would normally use soft limits. alternatively one can create more complex logic using axis spaces.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • of course ... provided that you know what you want as well as used math (transforms). no sane person would go for that though. what is the reason for someone to add custom offsets to A2 or A4 or A5 for example?

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • So the job doesn't want us to use more than 2 points in a single action (in this instance a part pick) and I have to use 1 point for the start position and one for the part pick itself. Everything else needs to be based off offsets. While I can get the offsets normally with a PTP move to get the orientation of the tool right followed by LIN moves to get to the actual part pick. This time the wiring bundle needed to control the tool at the end of the robot will be pinched and the bracketed used to hold the wiring bunch will hit the robot arm because of the angle we have to get the tool into.


    But for clarification, there is no simple way to have that offset such as (x 100, y 0, z 0, a 0, b 0,c 0, A5 -90)

  • Change the 'tool offset' in a manner that the end position matches your wanted position. You must change a, b or con your offset.

    Otherwise you must use the function inverse() with the tool offset to calculate the axis values, add the axis offset and then move to that axis values.

  • the idea is to use PTP motions to bring robot close to work are and turn it correctly. those are potentially long distance motions using programmed values of status and turn.


    one the robot is close to desired area use CP motions (LIN or whatever) and add intermediate points using offsets. those are relatively short motions. CP motions do not care about programmed value of status and turn... they compute them themselves but can get things wrong if initial position is not close enough.


    or... you need to do proceed as hermann already stated and use inverse.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

Advertising from our partners