|
67 | 67 | TIMEOUT_EXECUTE_TRAJECTORY = 30 |
68 | 68 |
|
69 | 69 |
|
| 70 | +def are_quaternions_same(q1, q2, tolerance): |
| 71 | + dot_product = q1.x * q2.x + q1.y * q2.y + q1.z * q2.z + q1.w * q2.w |
| 72 | + return (abs(dot_product) - 1.0) < tolerance |
| 73 | + |
| 74 | + |
70 | 75 | @pytest.mark.launch_test |
71 | 76 | @launch_testing.parametrize( |
72 | 77 | "tf_prefix", |
@@ -205,25 +210,10 @@ def test_force_mode_controller(self, tf_prefix): |
205 | 210 | trans_before.transform.translation.z, |
206 | 211 | delta=0.001, |
207 | 212 | ) |
208 | | - self.assertAlmostEqual( |
209 | | - trans_after.transform.rotation.x, |
210 | | - trans_before.transform.rotation.x, |
211 | | - delta=0.01, |
212 | | - ) |
213 | | - self.assertAlmostEqual( |
214 | | - trans_after.transform.rotation.y, |
215 | | - trans_before.transform.rotation.y, |
216 | | - delta=0.01, |
217 | | - ) |
218 | | - self.assertAlmostEqual( |
219 | | - trans_after.transform.rotation.z, |
220 | | - trans_before.transform.rotation.z, |
221 | | - delta=0.01, |
222 | | - ) |
223 | | - self.assertAlmostEqual( |
224 | | - trans_after.transform.rotation.w, |
225 | | - trans_before.transform.rotation.w, |
226 | | - delta=0.01, |
| 213 | + self.assertTrue( |
| 214 | + are_quaternions_same( |
| 215 | + trans_after.transform.rotation, trans_before.transform.rotation, 0.001 |
| 216 | + ) |
227 | 217 | ) |
228 | 218 |
|
229 | 219 | res = self._force_mode_controller_interface.stop_force_mode() |
|
0 commit comments