1 | initial version |

I understand what you mean. You want to translate in the rotated frame and not the original frame. Unfortunately tf2 only works with translation and rotation being published with respect to the original frame. Because it is a transform with respect to that particular frame.

To solve your problem there are two ways:

- The simple way is to create two frames. A temporary frame which contains only the rotation. And then another transform to translate in this frame.
- If you do not want to create a
temporary frame, you can calculate
what the translational vector will
be in the rotated frame. And then
use those values instead. To
illustrate: If you want to first
rotate by
`r,p,y`

and then translate in the rotated frame by`a,b,c`

. You should calculate the new translational values`R * {a,b,c}`

where`R`

is the rotation matrix constructed by the rotation angles. Then you can use the tf2 package with these new values.

Hope this helps!

ROS Answers is licensed under Creative Commons Attribution 3.0 Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.