1 | initial version |

Okay, I just found my mistake, as expected, it was very easy:

The multiplication of quaternions is not cummutative. With respect to that, I just had to change the calculation of the quaternion from

```
q_equilibrium = tf.transformations.quaternion_multiply(q_relative, q_equilibrium)
```

to

```
q_equilibrium = tf.transformations.quaternion_multiply(q_equilibrium,q_relative)
```

If we change the order of the multiplication, we also change the frames which we want to rotate.

2 | No.2 Revision |

Okay, I just found my mistake, as expected, it was very easy:

The multiplication of quaternions is not cummutative. With respect to that, I just had to change the calculation of the quaternion from

```
q_equilibrium = tf.transformations.quaternion_multiply(q_relative, q_equilibrium)
```

to

```
q_equilibrium = tf.transformations.quaternion_multiply(q_equilibrium,q_relative)
```

If we change the order of the multiplication, we also change the frames which we want to rotate.

EDIT:

I also had to change from this:

```
q_relative = tf.transformations.quaternion_multiply(q_2, q_1_inv)
```

to this

```
q_relative = tf.transformations.quaternion_multiply(q_1_inv, q_2)
```

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.