# Getting poses and velocities in robot reference frame

I am trying to build upon the Franka examples in `IsaacGymEnvs`. It seems that all positions, rotations, velocities, and rotational velocities are given with respect to the world frame. I’d like to transform these values for the robot’s end effector from the world frame to the robot’s base frame.

I saw in the docs there were some functions that might be useful, particularly `get_rigid_transform()`, but it seems there’s not even a way to sequentially combine transformations with the `isaacgym.gymapi.Transform` class, and it’s not as simple as composing these transformations for the velocities case.

What’s the best way of doing this?

1 Like

Hi have you got any solutions?

oh wow! yes this is something that can be done. I’m sorry for the terribly late reply… I wont be able to give a better answer without more details though.

These are the utilities you are looking for I think

you may also want to familiarize yourself with inertial and non inertial reference frames and their associated transformations. Generally, assuming the base is fixed in the world frame (or moving with a constant velocity), you can transform these vectors with simple sums and differences.

For example, if the position of the EE in the world frame is W = (x, y, z) and the position of the base in the world frame is B = (x’, y’, z’), then the position of the EE in the base frame is a vector E and it must have the properties such that

B + E = W

and so E = W - B

the velocities will need to be rotated appropriately, but the scale shouldn’t change unless you are working with the relative velocity between two moving frames. You can extract the appropriate rotations using the utilities linked above.

I would encourage you to check out general Transformation Matrices as well

hope this helps!
Gus

1 Like

Thanks a lot Gus!