Releases: dfki-ric/pytransform3d
Releases · dfki-ric/pytransform3d
3.5.0
Features
- Add
pytransform3d.transformations.pq_slerp
, which performs linear interpolation of position and SLERP of quaternion.
Bugfixes
- Fix serialization of TransformManager objects.
Documentation
- Add connections between docstrings through "See Also" sections.
Refactoring
- Rename branch master to main.
3.4.0
Features
- More general mesh loader that can handle more file formats (e.g., collada), loads meshes more robustly, and enables dynamic selection of available libraries to load a mesh (currently supported: Open3D, trimesh).
Bugfixes
- Improve numerical precision of
pytransform3d.rotations.norm_angle
. - Clamp argument to range [-1, 1] before applying
arccos
in some conversion functions.
Refactoring
- Extract common geometric code used for visualization and plotting and move it to the geometry module.
Documentation
- Improve discussion of pros and cons of rotation representations.
3.3.0
Features
- Add option to visualize convex hull of collision objects.
- Add
TemporalTransformManager
to handle dynamic transformations.
Documentation
- New logo.
- Add section on temporal alignment of transformations.
Refactoring
- Remove dependency beautifulsoup4 and use lxml for URDF parsing.
- Turn
pytransform3d.transform_manager
into a subpackage. - Extract base class
TransformGraphBase
fromTransformManager
that contains common code ofTransformManager
andTemporalTransformManager
.
3.2.0
Bugfixes
- Fix edge cases of euler angle computation from rotation matrix
- Fix inconsistency when removing transforms from the
TransformManager
Documentation
- Add citation file (CITATION.cff) to repository
3.1.0
3.0.0
Breaking Changes
- Switch to new random number generator interface of NumPy (
numpy.random.RandomState
is legacy code, see good practices with numpy random number generators).random_state
arguments will also be renamed torng
. With this change pytransform3d does not work with Python 2 anymore as there is no NumPy version for Python 2 that supports the new random number generator interface.
Features
pytransform3d.rotations
- Add left Jacobian of SO(3) and its inverse
- New representation of rotations: Modified Rodrigues Parameters (MRP)
- Add input validation function:
pytransform3d.rotations.check_mrp
- Add conversion from quaternion to MRP:
pytransform3d.rotations.mrp_from_quaternion
- Add conversion from MRP to quaternion:
pytransform3d.rotations.quaternion_from_mrp
- Add input validation function:
pytransform3d.transformations
- Add left Jacobian of SE(3) and its inverse
- Add function to generate random exponential coordinates
- Extend function to generate random transformation matrices by mean and covariance argument
- Add new module
pytransform3d.uncertainty
with the following functions:estimate_gaussian_transform_from_samples
invert_uncertain_transform
concat_uncertain_transforms
pose_fusion
to_ellipsoid
to_projected_ellipsoid
plot_projected_ellipsoid
- Add
pytransform3d.plot_utils.plot_spheres
to plot multiple spheres more efficiently.
Bugfixes
- Fix handling of integer inputs in conversion functions of
pytransform3d.coordinates
. - Fix argument
strict_check
ofpytramsform.camera.plot_camera
.
Documentation
- More visually appealing introduction and description of TransformManager.
- Add introduction to 3D rigid transformations for beginners.
- Add more details on exponential coordinates of SO(3) and SE(3) in docstrings.
2.3.1
Last version with Python 2 support!
Deprecation
- Rename
random_state
argument torng
in all functions that use random number generators. This change will prepare the transition to the new numpy random number generator interface in version 3.0.0 of pytransform3d. The old argument name still works and prints out a deprecation warning.
2.3.0
Features
- Serialization of
TransformManager
withto_dict
which produces a serializable dict. An identical object can be created from a deserialized dict withfrom_dict
.
Documentation
- General introduction to 3D rigid transformations
- Update discussion of rotation matrices
Bugfixes
- Relax numerical precision check of rotation matrices (
pytransform3d.rotations.check_matrix
). Instead of checking the determinant, only the components ofR.dot(R.T)
will be compared withI
.
Tests
- Use pytest for testing
- Update CI to check up to Python 3.11
2.2.0
Features
New interface to Euler angles
- Add
rotations.euler_from_quaternion
to convert quaternions to arbitrary Euler angles (#207) - Add
rotations.quaternion_from_angle
- Add
quaternion_from_euler
to convert from arbitrary Euler angles to quaternion (#211) - Add
matrix_from_euler
to convert from arbitrary Euler angles to active rotation matrix - Add
euler_from_matrix
to convert from active rotation matrix to arbitrary Euler angles
Bugfixes
- Fix
plot_utils.plot_cylinder
andplot_utils.plot_cone
in case of axis alignment (#206)
Deprecated
rotations.quaternion_from_extrinsic_euler_xyz