|
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", |
@@ -195,25 +200,10 @@ def run_force_mode(self, tf_prefix): |
195 | 200 | trans_before.transform.translation.z, |
196 | 201 | delta=0.001, |
197 | 202 | ) |
198 | | - self.assertAlmostEqual( |
199 | | - trans_after.transform.rotation.x, |
200 | | - trans_before.transform.rotation.x, |
201 | | - delta=0.01, |
202 | | - ) |
203 | | - self.assertAlmostEqual( |
204 | | - trans_after.transform.rotation.y, |
205 | | - trans_before.transform.rotation.y, |
206 | | - delta=0.01, |
207 | | - ) |
208 | | - self.assertAlmostEqual( |
209 | | - trans_after.transform.rotation.z, |
210 | | - trans_before.transform.rotation.z, |
211 | | - delta=0.01, |
212 | | - ) |
213 | | - self.assertAlmostEqual( |
214 | | - trans_after.transform.rotation.w, |
215 | | - trans_before.transform.rotation.w, |
216 | | - delta=0.01, |
| 203 | + self.assertTrue( |
| 204 | + are_quaternions_same( |
| 205 | + trans_after.transform.rotation, trans_before.transform.rotation, 0.001 |
| 206 | + ) |
217 | 207 | ) |
218 | 208 |
|
219 | 209 | res = self._force_mode_controller_interface.stop_force_mode() |
|
0 commit comments