Skip to content
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

Draft
wants to merge 110 commits into
base: release-1.4
Choose a base branch
from

Conversation

ahoarau and others added 30 commits April 7, 2018 22:27
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`
…angle-improper-rotation-bug

KDL Frames/GetRotAngle:  Removed incorrect singularity checks and added unit tests for improper rotation matrices
…-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
@MatthijsBurgh
Copy link
Collaborator

Please remove the Travis config.

spd-intermodalics and others added 3 commits February 5, 2022 01:48
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.
@spd-intermodalics
Copy link
Author

Please remove the Travis config.

Thanks for catching that @MatthijsBurgh. I also needed to fix some other details on the CI to execute properly python2 tests, related PR: spd-intermodalics#2.

@MatthijsBurgh
Copy link
Collaborator

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.

spd-intermodalics and others added 16 commits February 8, 2022 12:59
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.
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
…tions

Simplify implementation of addDelta() for rotations
@MatthijsBurgh
Copy link
Collaborator

@spd-intermodalics any plans for this one?

@MatthijsBurgh
Copy link
Collaborator

@spd-intermodalics @smits @meyerj any plans for this one?

@meyerj meyerj self-assigned this Jan 4, 2023
@luzpaz
Copy link
Contributor

luzpaz commented Sep 24, 2023

Current release is https://github.com/orocos/orocos_kinematics_dynamics/releases/tag/v1.5.1 so this is obsolete

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.