-
Notifications
You must be signed in to change notification settings - Fork 417
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release 1.4.1 rc1 #381
base: release-1.4
Are you sure you want to change the base?
Release 1.4.1 rc1 #381
Conversation
due to rounding, it can happen that abs( 1 - (dot(ab, bc) / abdist / bcdist) ) < eps
…r case The set of conditionals where xx, yy, and zz are checked for being < epsilon seems to be searching for the case where the matrix is the negative identity matrix. For example, if xx > yy and xx > zz and xx < epsilon, then the diagonal elements data[0], data[4], and data[8] are all approximately equal -1. Yet this will return an angle-axis of (0, 1/sqrt2, 1/sqrt2) which corresponds to a rotation matrix of [-1 0 0; 0 0 1; 0 1 0] which is not the negative identity matrix. The same is true for yy or zz being the largest value but still ~0. But the negative identity matrix is an improper rotation matrix so the checks should not be there. This code was drawn from the java code at http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm. In the final entry under “Correspondence on this page”, Gene Gorokhovsky basically gives protocode for the 180 deg singularity case, which does not include the ‘ < epsilon ‘ checks. So it seems this was added afterwards as a way to prevent a divide by zero for the case of the negative identity matrix which is not a legal input.
KDL assumes that rotation matrices are proper, i.e. orthonormal with an eigenvalue of +1. Improper rotation matrices with an eigenvalue of -1, such as the negative identity matrix, involve a mirroring of axes such as going from a right-hand to left-hand coordinate system or vice versa. However, rotation matrices are always proper if operating within a right hand or left hand system. This means also that GetRotAngle will not return the correct angle-axis if the rotation matrix is improper. Two test cases were added to verify this, one for a nonsingular case and the other for a singular case (180 deg rotation) to demonstrate this.
Found via `codespell`
Misc. trivial typos
…angle-improper-rotation-bug KDL Frames/GetRotAngle: Removed incorrect singularity checks and added unit tests for improper rotation matrices
Fix 'nan's in path rounded composite
…-spaces Minor: replace tab with spaces in chainiksolvervel_wdls
…ng-conversion Fixed python3 std string conversion issue
This fixes test failures on i686, where the error would be just slightly higher than the allowed value.
This also moves the definition for Inertia-Vector multiplication out of the sip class body, which was causing a code generation problem.
…rance Increase threshold tolerance in jacobiandottest
…c-python-wrapper Added ChainIdSolver python wrapper
…rotationalinertia-getsetitem Adding setters and getters for RotationalInertia
Adding catkin env-hooks to support Python venv
Added QUIET to find catkin to suppress message
…does-not-stop Fixed velocityprofile_dirac does not stop bug and replaced tab with 4…
Minor: fixed error message in PyKDL Wrench
Add (deep)copy support for PyKDL
Don't use isApprox, but isZero
(kdl) (ChainDynParam) public inherit from SolverI
Don't use isApprox, but isZero
Please remove the Travis config. |
The tests for python2 require modules from psutil and future packages. This patch fixes those dependencies for CI. Additionally, the main test file imports sys package which is also needed.
CI: fix dependencies for python2 tests
Thanks for catching that @MatthijsBurgh. I also needed to fix some other details on the CI to execute properly |
As this PR also brings Python3 compatibility, we should change the CI config too, so these are included. I think it should be a bit of a merge of the current config and the version on master. |
After the support of Python3, this patch adds CI testing for the python_orocos_kdl pacakge.
Some tests fail because the tolerance of the machine precision is too tight. This patch gives some tolerance to those tests.
CI: add Python3 tests
This patch adds a symbol that is no longer used with the purpose of restore the alginment of the class ChainIkSolverVel_pinv_givens
…ivens abi_compatibility: add a symbol to restore alignment
Declare assignment operator private in SIP, needed for SIP>=4.19.23
First step into fixing inconsistent test results
This reverts commit 8d58605.
Replace M_PI by custom PI
…tions Simplify implementation of addDelta() for rotations
Replace M_PI by custom PI
This reverts commit 7b5b0f5.
Fix/geometry example
Update pybind11 to v2.6.0
@spd-intermodalics any plans for this one? |
@spd-intermodalics @smits @meyerj any plans for this one? |
Current release is https://github.com/orocos/orocos_kinematics_dynamics/releases/tag/v1.5.1 so this is obsolete |
Release 1.4.1
This is a proposal for release a version 1.4.1.
Contents
So far the contents of this release are:
It also includes fixes to solve ABI compatibility problems generated by #229 on the
KDL::Vector::Norm()
andKDL::Vector2::Norm()
symbols.