Metadata-Version: 2.4
Name: dm_robotics-transformations
Version: 0.10.0
Summary: A library for Rigid Body Transformations
Home-page: https://github.com/deepmind/dm_robotics/tree/main/py/transformations
Author: DeepMind
License: Apache 2.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Description-Content-Type: text/markdown
Requires-Dist: pip>=20.0.2
Requires-Dist: absl-py>=0.9.0
Requires-Dist: numpy<3.0,>=2.0
Requires-Dist: jax>=0.4.13
Provides-Extra: quaternion
Requires-Dist: numpy-quaternion==v2024.0.10; extra == "quaternion"
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: summary

# DeepMind Robotics Transformations

Transformations is a pure python library for rigid-body transformations
including velocities and forces.

The objectives for this library are **simplicity** and **comprehensiveness**
across all canonical representations (euler, axis-angle, quaternion,
homogeneous matrices).


## Supported conversions:
* Quaternion to Rotation matrix, Axis-angle and Euler-angle
* Axis-angle to Quaternion, Rotation matrix and Euler-angle
* Rotation matrix to Quaternion, Axis-angle and Euler-angle
* Euler-angle to Quaternion, Rotation matrix and Axis-angle

## Quaternions:
Quaternions are represented with the scalar part (w) first, e.g.

```python
identity_quaternion = np.asarray([1, 0, 0, 0])  # w, i, j, k
```

Supported quaternion operations:

* Difference
* Distance
* Multiplication
* Inverse
* Conjugate
* Logarithm and Exponent
* Slerp (spherical linear interpolation)
* Rotation of a vector by a quaternion.

## Euler-angles
All 24 from-euler orderings are supported.
7 of 24 to-euler orderings are supported.

## Transforms
This library supports force and velocity transforms.

## Usage Example

```python
from dm_robotics.transformations import transformations as tr

# Convert a pose, euler angle into a homogeneous matrix (a 4x4 matrix):
hmat = tr.poseuler_to_hmat(
        np.array([x, y, z, rot_x, rot_y, rot_z]), 'XYZ')

# Convert the homogeneous matrix to a twist (a 6 vector):
twist = tr.hmat_to_twist(hmat)
```

