What changed in IK lib:
Fully restructured, with components now as follows:
-Ik_solver: c <=> C++ interfaz.
Ik_qsegment: base class for bone/segment with 0.
To 3 Dof.
Ik_qtask: base class for a tasque (currently theres.
A position and a rotation task).
Ik_qjacobian: the jacobian Matrix, with svd.
Decomposition, damping, etc.
Ik_qjacobiansolver: the iterative Solver.
The exponential map parametrization is no longer used.
Instead we have now:
-3dof and 2dof xz segments: directly update Matrix.
With rodrigues formula.
Other: Euler angles (no worries about singularities.
Here).
Computation of the jacobian inverse has a los changed:
-The svd algorithm is now based on lapack code.
Instead of nr, todo avoid some problems with rounding.
Errors.
-When the problem is underconstrained (as is the case.
Most of the time), the svd is computed for the Transpose.
Of the jacobian (faster).
A new damping algorithm called the selectively damped.
Least squares is used, result in faster and more.
Stable convergence.
Stifness is implemented as if a weighted psuedo-inverse.
Was used.
Tre structure support.
Rotation límites:
-3dof and 2dof xz segments límites are based on a swing.
(Direct axis-angle over xz) and twist/roll (rotation.
Over y) decomposition. The swing región is an elipse.
On a sphere.
Rotation límites are implemented using an inner clamping.
Loop: as long as there is a violation, a violating Dof.
Is Clamped and removed from the jacobian, and the solution.
Is recomputed.
Convergence checking is based now on the max Norm of angle.
Change, or the máximum number of iterations.