Python utilities for estimating and transforming rigid body motion.
Project description
rigid-body-motion
Python utilities for estimating and transforming rigid body motion.
Documentation: https://rigid-body-motion.readthedocs.io
Overview
This package provides a high-level interface for transforming arrays describing motion of rigid bodies between different coordinate systems and reference frames. The core of the reference frame handling is a fast re-implementation of ROS’s tf2 library using numpy and numpy-quaternion. The package also provides first-class support for xarray data types.
Installation
rigid-body-motion can be installed via pip:
$ pip install rigid-body-motion
or via conda:
$ conda install -c phausamann -c conda-forge rigid-body-motion
Examples
Transform numpy arrays between coordinate systems:
import numpy as np
import rigid_body_motion as rbm
arr_cart = np.ones((10, 2))
arr_polar = rbm.transform_coordinates(arr_cart, outof="cartesian", into="polar")
Transform numpy arrays across a tree of reference frames:
import numpy as np
import rigid_body_motion as rbm
rbm.register_frame("world")
rbm.register_frame("child", parent="world", translation=(1., 0., 0.))
rbm.register_frame("child2", parent="world", translation=(-1., 0., 0.))
arr_child = np.ones((10, 3))
arr_child2 = rbm.transform_points(arr_child, outof="child", into="child2")
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
0.1.2 (October 7th, 2020)
Improvements
Use SQUAD instead of linear interpolation for quaternions.
0.1.1 (September 17th, 2020)
Bug fixes
Fix transformations failing for DataArrays with non-numeric coords.
0.1.0 (September 17th, 2020)
First release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.