Joint to Cartesian?

  • Hi,
    Can you please tell me in kawasaki how to calculate Cartesian from joint?
    eg.


    Applejoint=(45.5,23.3,98,89.9,45.1,110.3)
    Apple=(x,y,z,o,a,t)?


    how to calculate apple with reference to tool and a frame?


    Thank you

  • The precision point is with # in front, for example: #applejoint. Once you have this position, in the terminal you can save the transformation point from the precision point:


    POINT applejoint = #applejoint

  • Thank you.


    As far us I understood


    for joint toCartesian

    point Pcartesion=#PJointvar


    For Cartesian to joint

    point #PJointvar=PCartesian


    1. am I correct?

    2. While converting from joint to cartesian. Does it gives the value with world frame and null tool OR ..?

    3. While converting from joint to cartesian. How to convert to cartesian with specific to certain tool and frame?

    4. In Kawasaki is there forward and inverse transformation function?


    Thanks in advance

  • Kawasaki only stores the raw values when they were defined:

    - Joint angles

    - XYZOAT


    Have a look deeper for the following in the AS Language Manual:

    BASE

    TOOL

    POINT

    TRANS

    SHIFT

    FRAME

    ABOVE/BELOW/DWRIST/UWRIST/LEFTY/RIGHTY

    Compound Transformations

    Transformation Operators


    1. Basically yes.

    - They are the commands used for forward and inverse transformations.

    - A cartesian can be represented as different joint angles (configuration).

    - Therefore ensure correct configuration is used ABOVE/BELOW/DWRIST/UWRIST/LEFTY/RIGHTY.

    - You could also just use a # reference position too.


    2. The cartesian value is reference to it's current Base coordinate setting.


    3. See Compound transformations and transformation operators.


    4. See 1.

  • Let's Say

    Frame testframe (200,100,500,45,56,90)

    tool alpha (50,50,100, 10,0,0)

    point apple = Trans(100,0,0,0,0,0)

    point Orange = Trans(0,0,100,0,0,0)

    teashops (456,234,598,34,23,78);;;Teached pos

    chocolate(45,34,45,60,67,110);joint pos reached

    frame addframe(100,0,100,0,0,0)


    tool alpha

    MoveL testframe+teashops;; Move to teashops with respect to testframe. with the alpha TCP

    here testframe+fruits ; records the current position with respect to testframe and with alpha TCP


    MoveL fruits+orange;; from current position it goes to z100+ in base co-ordinate

    DrawT fruits+orange;; from current position it goes to z100+ in tool co-ordinate

    MoveL fruits+orange+apple;;;; from current position it goes to z100+ and x100+ in base co-ordinate

    DrawT fruits+orange+apple;;;; from current position it goes to z100+ and x100+ in tool co-ordinate

    point chocolate=#chocolate,teashops;;Converts the chocolate joints to cartesian with teashops configuration.

    frame newframe=testframe+addframe ;; adding x100 and z100 to the testframe.

    MoveL newframe+chocolate; moves the TCP to chocolate with respect to newframe.


    1. Is the comments wrote behind the command are correct ? If not please correct me.

    2. How to find the difference between two position? is it aa=chocolate-teashops??

    3. how to make a inverse of a position? inverse of chocolate? is it aa= -chocolate or ..?


    Thank you.

  • I am really struggling to respond here - AS Language Manual.

    There's one thing posting and then there's another in actually writing something that doesn't take a greengrocer and a barista to decode for you.

    Without defining testframe, teashops, chocolate or addframe correctly.

    The following drivel you wrote will never work especially as it's not AS syntax.


    POINT test = TRANS(0,0,0,0,0,0); defines a transformation.

    POINT #test = #PPOINT(0,0,0,0,0,0); defines a precision point.

    POINT testframe = FRAME(o1,x1,y1,o1); defines a frame location with vectors inline with xy ordering.

    POINT #test = test, #ref; defines precision point using transformation using config of #ref.

    POINT #test = test; defines precision point using TCP location.

    POINT test = test1+test2 defines test with sum of test1 and test2

    POINT test = #PPOINT(0,0,0,0,0,0) defines TCP location from joint angles


    LMOVE is a linear move

    TDRAW (0,0,0,0,0,0) moves linearly using TCP coordinate (XYZRXRYRZ).

    DRAW (0,0,0,0,0,0) moves linearly using TCP coordinate (XYZRXRYRZ).

    LMOVE TRANS(0,0,0,0,0,0) moves linearly using TCP coordinate (XYZOAT).


    HERE #a defines current posture as precision point.

    HERE a defines current location as transformation.

    HERE a+#b cannot be done, you cannot mix apples and oranges to form another fruit.

    HERE a+b defines b with reference to a.

    HERE a-b defines b with inverse value of x to a.


    Note when using compound calculations:

    - You cannot include # values/references.

    - right most element is defined.


    I am sure reading the AS manual will also be of benefit, if you can be bothered of course.

  • Hi Kawasaki,

    My point of interest is not in syntax. My point of interest is in transformations. That's why for understanding I wrote frames and point without syntax.


    MoveL fruits+orange;; from current position it goes to z100+ in base co-ordinate

    DrawT fruits+orange;; from current position it goes to z100+ in tool co-ordinate

    MoveL fruits+orange+apple;;;; from current position it goes to z100+ and x100+ in base co-ordinate

    DrawT fruits+orange+apple;;;; from current position it goes to z100+ and x100+ in tool co-ordinate


    Can you please tell the dynamics of

    1. POINT test = test1+test2 ;;;(visually its adding of two pos) what is the dynamics?

    2. how to make a inverse of a position? inverse of chocolate? is it aa= -chocolate or ..?

    3. aa=-chocolate+teashops. will give the difference between the pos. correct or ?

  • 1. You can find about the compound transformation values at section 3.5.3 or 8.5 from as language manual, do you have it?


    2. If you have this point:

    POINT aa = (10,20,30,40,50,60)

    DECOMPOSE a[1] = aa

    POINT aa = TRANS(-a[1], -a[2], -a[3], -a[4], -a[5], -a[6])

    This is what are you looking for?


    3. If the teashops is the reference point (taught point) and chocolate is the point is where the robot is, the difference might be: PO diff = chocolate - teashops


    Usually i have a reference point and based from that position i calculate the points. If you want an offset in tool coordinates:


    PO offset = refpoint + TRANS(x_offset, y_offset, z_offset)


    or in base coordinates:


    PO offset = TRANS(x_offset, y_offset, z_offset) + refpoint

  • You are not reading anything I wrote earlier (I made an intentional mistake which you did not see).

    Which shows that you are not interested in reading the manual, understanding the Kawasaki syntax and how to apply it.

    So I'll not be wasting anymore of my spare time here now.

    With respect, good luck in resolving your dynamical fruit baskets.

  • Hey Kawasaki

    Once again am telling that am not focusing on the syntax. am focussing the transformations only.


    you have written all the transformation commands.


    My main point is

    1. Dynamics behind adding two points?

    2 Difference between two co-ordinates? Just subtracting two pos will not give you difference. That's 3d dynamics.

    3. transforming frames.

Advertising from our partners