Universal Robots Forum

How to use get_inverse_kin?


I don’t really understand this function.
I know that it gives joint positions(base,shoulder,elbow,wrist1,wrist2,wrist3) but according to which system ? Base system ?
Or does it give only positions in degree ?



Tool position defined in the cartesian coordinate will be converted to a set of 6 joint positions(radian value for each joint motor) in the end for the robot movement. Therefore, this get_inverse_kin is a function for you to get the 6-joint position which is not related to any coordinate systems such as base coordinate. However, you should be careful that each set of tool position will not be only converted one set of 6 joint angle. It is possible that you get different sets of 6 joint angle but any set of them can let you reach to the same tool position in the cartesian coordinate. This is why you can use the “qnear” paramenter in the get_inverse_kin to filter to get the one you really want.

1 Like

Thank you for the answer !

Then why do we have to use this function get_inverse_kin for using servoj function ?

I think this is because you need to feed in 6 joint angles to the servoj function but you only have position in cartesian coordinate. As a result, you need to convert it.

I understand now thank you.

If try this :

q:= p[x,y,z,rx,ry,rz]

h := get_inverse_kin(q)

I get randomly for example h = [1.83 , 0.234 , -1 , -2.65 , 0.22, 2.78]

1,83 correspond to the base joint position but what unity ? Is it in radians or degree ?

Thank you

As I replied in the first mail, it’s radian not degrees.

You can try the simulator of URsim to test and variety your thoughts.

1 Like