@@ -91,6 +91,12 @@ extern "C"
91
91
{
92
92
// We have arrived
93
93
94
+ // wrap q to +- pi
95
+ for (int i = 0 ; i < ets->n ; i++)
96
+ {
97
+ q (i) = std::fmod (q (i), PI);
98
+ }
99
+
94
100
// Check for joint limit violation
95
101
if (reject_jl)
96
102
{
@@ -107,9 +113,6 @@ extern "C"
107
113
// Jacobian Matric J
108
114
_ETS_jacob0 (ets, q.data (), (double *)NULL , J);
109
115
110
- // g = J.T @ We @ e
111
- // robot.q += np.linalg.inv(J.T @ We @ J) @ g
112
-
113
116
g = J.transpose () * We * e;
114
117
Jw = J.transpose () * We * J;
115
118
@@ -222,6 +225,12 @@ extern "C"
222
225
{
223
226
// We have arrived
224
227
228
+ // wrap q to +- pi
229
+ for (int i = 0 ; i < ets->n ; i++)
230
+ {
231
+ q (i) = std::fmod (q (i), PI);
232
+ }
233
+
225
234
// Check for joint limit violation
226
235
if (reject_jl)
227
236
{
@@ -339,6 +348,12 @@ extern "C"
339
348
{
340
349
// We have arrived
341
350
351
+ // wrap q to +- pi
352
+ for (int i = 0 ; i < ets->n ; i++)
353
+ {
354
+ q (i) = std::fmod (q (i), PI);
355
+ }
356
+
342
357
// Check for joint limit violation
343
358
if (reject_jl)
344
359
{
@@ -447,6 +462,12 @@ extern "C"
447
462
{
448
463
// We have arrived
449
464
465
+ // wrap q to +- pi
466
+ for (int i = 0 ; i < ets->n ; i++)
467
+ {
468
+ q (i) = std::fmod (q (i), PI);
469
+ }
470
+
450
471
// Check for joint limit violation
451
472
if (reject_jl)
452
473
{
@@ -553,6 +574,12 @@ extern "C"
553
574
{
554
575
// We have arrived
555
576
577
+ // wrap q to +- pi
578
+ for (int i = 0 ; i < ets->n ; i++)
579
+ {
580
+ q (i) = std::fmod (q (i), PI);
581
+ }
582
+
556
583
// Check for joint limit violation
557
584
if (reject_jl)
558
585
{
0 commit comments