Closed Levi-Armstrong closed 2 years ago
@marip8 I found the issue.
The issue is that the algorithm uses std::atan2
which has numerical issues when both values are close to zero.
For example std::atan2(6.938893903907231e-18, 7.216449660063518e-16) = 0.00961509
but should be zero because both values are zero.
Addressed #61
I have been running into issues where OPW kinematics produces incorrect IK solutions and have tracked it down where the matrix has very small numbers which are not zero. As shown below if you replace the 0 with
4.9065389333868E-018
you get a significant error in the solutions returned. I currently looking into how best to resolve this issue, but if anyone has suggestions please let me know.