# How to rotate vector by quaternion in python

What is the python tf API to rotate a vector by a quaternion to get another vector?

How to rotate vector by quaternion in python

What is the python tf API to rotate a vector by a quaternion to get another vector?

add a comment

3

There's a copy of transformations.py embedded inside tf for linear math operations.

1

1

Hi robzz, Have a closer look at the link that tfoote posted; the comments give an explanation and examples.

Yep, that's the ticket. Have a look here to get an idea of /why/ this works.

9

Okay, based on @tfoote's response and this answer to a related question, I *think* this does the job:

```
# rotate vector v1 by quaternion q1
def qv_mult(q1, v1):
v1 = tf.transformations.unit_vector(v1)
q2 = list(v1)
q2.append(0.0)
return tf.transformations.quaternion_multiply(
tf.transformations.quaternion_multiply(q1, q2),
tf.transformations.quaternion_conjugate(q1)
)[:3]
```

1

Please start posting anonymously - your entry will be published after you log in or create a new account.

Asked: ** 2014-10-28 17:58:31 -0600 **

Seen: **8,514 times**

Last updated: **Oct 28 '14**

Quaternion transformations in Python

turning turtlebot a set number of degrees

ROS2 Python quaternion to euler [closed]

Installing ROS TF library into Raspberry (From Source) [closed]

Obtain map frame pose of visual markers

problem publishing tf map->base_link

Introduction to tf tutorial: Second turtle does not follow the first one. (No errors)

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.