pytransform3d#

This documentation explains how you can work with pytransform3d and with 3D transformations in general.

Scope#

pytransform3d focuses on readability and debugging, not on computational efficiency. If you want to have an efficient implementation of some function from the library you can easily extract the relevant code and implement it more efficiently in a language of your choice.

The library integrates well with the scientific Python ecosystem with its core libraries NumPy, SciPy and Matplotlib. We rely on NumPy for linear algebra and on Matplotlib to offer plotting functionalities. SciPy is used if you want to automatically compute transformations from a graph of transformations.

pytransform3d offers…

  • operations for most common representations of rotation / orientation and translation / position

  • conversions between those representations

  • clear documentation of conventions

  • functions to check for common pitfalls (e.g., singularities, ambiguities, discontinuities)

  • tight coupling with matplotlib to quickly visualize (or animate) transformations

  • the TransformManager which organizes complex chains of transformations

  • the TransformEditor which allows to modify transformations graphically

  • the UrdfTransformManager which is able to load transformations from URDF files

  • a matplotlib-like interface to Open3D’s visualizer to display geometries and transformations

Citation#

If you use pytransform3d for a scientific publication, I would appreciate citation of the following paper:

Fabisch, A. (2019). pytransform3d: 3D Transformations for Python. Journal of Open Source Software, 4(33), 1159, https://doi.org/10.21105/joss.01159