How to move robot hand "forward" w.r.t. current rotation using PTP command?

  • Hi all!


    I have a situation in my KRL program where I try to move "forward" (+x in my situation) with respect to the current hand orientation, meaning the robot should move in the direction that the tool on the hand is pointing. I have two questions:
    1. How do I do this? I have tried setting the $TOOL variable's a, b and c rotations to hold the values of the $POS_ACT variable. In my mind, this should rotate the tool to be aligned with the current hand orientation. However, when I do a relative PTP command after that, it will move relative to the world axes (while also doing a slight rotation, which I do not comprehend). If I do not change the $TOOL variable at all, the relative PTP command will also result in a movement relative to the world axes (while not doing any rotation).
    2. When jogging in T1 mode, using the +x button does exactly what I want to do. It moves relative to the current hand orientation. When watching the "current position" window while doing the jogging, I can however see that it does a complex change in x, y and z coordinates. Why is the behavior of T1 mode different than in the program, using relative PTP commands?


    I think I am missing some fundamental property of the way coordinate systems are handled in jogging vs. automatic mode. Please enlighten me!

  • use:


    ptp_rel {position} #TOOL


    where:
    position is POS, E6POS, AXIS, E6AXIS - type variable. For example:


    ptp_rel {x -100, y 100, z 50) #TOOl; will move robot in tool-frame x by -100, y by 100, z by 50.


    Don't forget to use #TOOl, otherwise robot will be moved in #BASE frame (pre-defined)


    But why ptp? When is safer to use lin-motion? ... :icon_mrgreen:

    We are not responsible for injury, accidents, acts of random stupidity, burning your house down, exploding parts, and other undesired actions (all of which are possible) resulting from the use of ANY information contained herein.

    Edited once, last by skottt_kzn ().

  • Thanks a lot!


    Does this mean that I could also change the $BASE frame alternatively to get the same effect (just wondering...)?



    But why ptp? When is safer to use lin-motion? ... :icon_mrgreen:


    Could you elaborate? Why is linear motion safer?

  • Hey, just been learning this type of movement myself (still new to robots in general).


    Linear motion is a calculated straight-line path, therefore it is always known and repeatable. PTP is "fastest route" which usually involves curved paths. There is no guarantee of the path taken for a given movement.
    PTP can be safe if you know the area of movement is clear, but linear is still safer since you know exactly where it's going and how it's getting there.


  • Why is linear motion safer?


    Because u would know exact motion of your engines, and in this case you can predict any potetnial collisions. Any {pick/place/change welding guns/approach changed offset/etc} movement must be performed as LIN-motion type IMHO.
    Any way, good luck!

    We are not responsible for injury, accidents, acts of random stupidity, burning your house down, exploding parts, and other undesired actions (all of which are possible) resulting from the use of ANY information contained herein.

Advertising from our partners