Development branch, release 3.17.0 - #371
Open
AlexanderFabisch wants to merge 30 commits into
Open
AlexanderFabisch wants to merge 30 commits into
AlexanderFabisch wants to merge 30 commits into
Conversation
Co-authored-by: Alexander Fabisch <afabisch@googlemail.com>
AlexanderFabisch
force-pushed
the
develop
branch
from
July 29, 2026 07:47
5a48147 to
cf7393f
Compare
Previously [0, 0, 0, -1] would be normalized to [-1, 0, 0, 0].
Signed-off-by: 李永祺 <doribelove@gmail.com>
…h999/pytransform3d into jashshah999-fix-transform-log-small-rotation
Co-authored-by: Alexander Fabisch <alexander.fabisch@dfki.de>
Use arctan2 instead of arccos to extract the rotation angle in * axis_angle_from_quaternion * axis_angles_from_quaternions * axis_angle_from_two_directions * angles_between_vectors, 3D case arccos rounds angles below about 1e-8 to exactly 0 and loses relative precision well above that. Same fix as for axis_angle_from_matrix and axis_angles_from_matrices, see #377.
Fix exponential_coordinates_from_transforms and computation of angle between vectors.
Allocate the default output using both the input and norm dtypes. This retains floating-point input precision and avoids truncating normalized integer and boolean vectors. AI-assisted-by: OpenAI Codex Signed-off-by: 李永祺 <doribelove@gmail.com>
Allocate normalized axis-angle results using the input and axis-norm dtypes, preserving floating-point precision and avoiding integer truncation and sign-flip casting errors. Assisted-by: OpenAI Codex (model: GPT-6, autonomous) Signed-off-by: 李永祺 <doribelove@gmail.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Features
rotationsfor converting between rotation matrices and continuous 6D rotation representation introduced by Zhou et al (CVPR 2019). Contributed by @fagg.rotation_6d_from_matrix- encode a rotation matrix as a 6D vector (its first two columns stacked)matrix_from_rotation_6d- decode a 6D vector back into a rotation matrix via Gram-Schmidt orthonormalizationBugfixes
pytransform3d.batch_rotations.matrices_from_compact_axis_angleswith precomputed axes and angles and without output buffer. Fix batch axis-angle conversion without an output buffer #373, contributed by @Doribelove.arctan2instead ofarccosto extract the rotation angle.arccosrounds angles below about 1e-8 to exactly 0 and loses relative precision well above that.pytransform3d.rotations.axis_angle_from_matrix. Fixaxis_angle_from_matrixnear 0 angle #376, merged with Keep translation in transform_log_from_transform for tiny rotations #374pytransform3d.batch_rotations.axis_angles_from_matrices. Preserve small angles in batch rotation logarithmic map #378, contributed by @Doribelovepytransform3d.rotations(axis_angle_from_quaternion,axis_angle_from_two_directions), andpytransform3d.batch_rotations(axis_angles_from_quaternions, ,angles_between_vectors, 3D case). Recover small angles from quaternions and vectors #379pytransform3d.rotations.euler_from_matrixclose to gimbal lock with the same trick. Detect gimbal lock in euler_from_matrix with arctan2 #375, contributed by @jashshah999pytransform3d.batch_rotations.norm_axis_anglesto return[1, 0, 0, 0]for all cases of no rotations. Previously,norm_axis_angles([0, 0, 0, -1])would be normalized to[-1, 0, 0, 0].pytransform3d.transformations.transform_log_from_transformfor small angles. Keep translation in transform_log_from_transform for tiny rotations #374, contributed by @jashshah999angle_between_vectorsandangles_between_vectorsto simplifytrajectories.exponential_coordinates_from_transforms. Improve numerical stability #380