visionsim.interpolate package¶
Submodules¶
visionsim.interpolate.pose module¶
- class visionsim.interpolate.pose.pose_interp(transforms: npt.ArrayLike, ts: TypeAliasForwardRef('npt.ArrayLike') | None = None, k=3, normalize=False)[source]¶
Bases:
objectLinearly interpolate between 4x4 (or 3x4) transformation matrices by interpolating it’s components
- __init__(transforms: npt.ArrayLike, ts: TypeAliasForwardRef('npt.ArrayLike') | None = None, k=3, normalize=False) None[source]¶
Create a spline from the rotational and translational components of each pose. Specifically, we use scipy’s RotationSpline and BSpline respectively.
- Parameters:
transforms (npt.ArrayLike) – Poses to interpolate as matrices.
ts (npt.ArrayLike | None, optional) – Time of each pose. Defaults to None, meaning linspace between [0, 1].
k (int, optional) – B-spline degree for translation. Default is cubic (i.e: 3).
normalize (bool, optional) – If true, normalize rotations by their determinants. Defaults to False.
- Raises:
RuntimeError – raised when rotations are not normalized.
- __call__(ts: npt.ArrayLike, order: Literal[0, 1, 2] = 0) npt.NDArray[source]¶
Compute interpolated poses, or their derivatives.
- Parameters:
ts (npt.ArrayLike) – Times of interest.
order (Literal[0, 1, 2], optional) –
Order of differentiation:
0 (default): return pose as 4x4 matrices
- 1: return velocities, where the first row is the angular rates
in rad/sec and second row are positional velocities.
- 2: return the accelerations, packaged as angular acceleration
(in rad/sec/sec) then positional.
Defaults to 0.
- Returns:
Interpolated poses (Tx4x4) or their derivatives (2xTx3)
- Return type:
npt.NDArray
- visionsim.interpolate.pose.interpolate_poses(poses: list[list[list[float]] | ndarray[tuple[Any, ...], dtype[floating]]], normalize: bool = False, n: int = 2, k: int = 3) list[list[list[float]] | ndarray[tuple[Any, ...], dtype[floating]]][source]¶
Interpolate between pose matrices
- Parameters:
poses (list[Matrix4x4]) – List of pose matrices to interpolate between
normalize (bool) – Whether the interpolation should be normalized or not
n (int) – Number of poses to interpolate between existing poses
k (int) – Order of spline interpolation, see
pose_interp
- Returns:
List of interpolated poses
- Return type:
list[Matrix4x4]