Coordinate System Transformations#
- class Direction[source]#
Bases:
ndarray
A cartesian unit norm vector pointing towards a direction.
- classmethod From_Cartesian(vector, normalize=False)[source]#
Initialize a direction from a cartesian vector.
- Raises:
ValueError – If vector does not represent a valid cartesian vector.
Returns: The initialized direction.
- Return type:
- class Transformable(pose=None)[source]#
Bases:
Serializable
,TransformableLink
Representation of a Coordinate Frame within a Kinematic Chain.
- Parameters:
pose (Transformation, optional) – Transformation of the transformable with respect to its reference frame. By default, no transformation is considered, i.e.
Transformation.No()
- set_base(base)[source]#
Set the relative base coordinate frame of this link.
- Parameters:
base (TransformableLink | None) – The base to be coordinate frame to be set. None to detach the link.
- Return type:
- property backwards_transformation: Transformation#
Transformation to convert global coordinates to local coordinates.
Updated every time the kinematic chain’s parameters change.
Returns: The transformation.
- property forwards_transformation: Transformation#
Transformation to convert local coordinates to global coordinates.
Updated every time the kinematic chain’s parameters change.
Returns: The transformation.
- property global_orientation: ndarray#
Orientation of the represented object within the global coordinate system.
Returns: Three-dimensional numpy vector representing roll, pitch and yaw in radians.
- property global_position: ndarray#
Position of the represented object within the global coordinate system.
Returns: Three-dimensional numpy vector representing the cartesian object coordinates.
- property orientation: ndarray#
Orientation of the Transformable.
Returns: The transformation in radians for roll, pitch and yaw.
- Raises:
ValueError – If orientation is not a three-dimensional numpy vector.
- property pose: Transformation#
Pose of the Transformable with respect to its reference link.
Returns: The pose’s transformation.
- property position: ndarray#
Position of the Transformable.
Cartesian offset to the reference coordinate frame.
- Returns:
Cartesian position x, y, z in m.
- Raises:
ValueError – If position is not a valid three-dimensional vector.
- class TransformableBase[source]#
Bases:
TransformableLink
Base of kinematic chains.
- set_base(base)[source]#
Set the relative base coordinate frame of this link.
- Parameters:
base (TransformableLink | None) – The base to be coordinate frame to be set. None to detach the link.
- Return type:
- property forwards_transformation: Transformation#
Transformation to convert local coordinates to global coordinates.
Updated every time the kinematic chain’s parameters change.
Returns: The transformation.
- class TransformableLink[source]#
Bases:
object
Abstract base class of kinetmatic chain links.
- add_link(link)[source]#
Establish a new link to a coordinate frame depending on this frame.
- Parameters:
link (Transformable) – The transformable frame to be registered.
- Return type:
- remove_link(link, force_removal=True)[source]#
Remove an established link to this coordinate frame.
- Parameters:
link (Transformable) – The coordinate frame to be linked to this frame.
force_removal (bool, optional) – Raise a RuntimeError if the link is not registered
- Raises:
RuntimeError – If the link is not currently registerd and force_removal is enabled.
- Return type:
- abstract set_base(base)[source]#
Set the relative base coordinate frame of this link.
- Parameters:
base (TransformableLink | None) – The base to be coordinate frame to be set. None to detach the link.
- Return type:
- abstract property forwards_transformation: Transformation#
Transformation to convert local coordinates to global coordinates.
Updated every time the kinematic chain’s parameters change.
Returns: The transformation.
- property linked_frames: Set[TransformableLink]#
- class Transformation[source]#
Bases:
ndarray
,Serializable
Coordinate system transformation.
- rotate_direction(direction)[source]#
Rotate a cartesian direction.
- Parameters:
direction (np.ndarray) – A directional vector.
- Return type:
Returns: The transformed direction.
- Raises:
ValueError – If direction is invalid.
- transform_direction(direction, normalize=False)[source]#
Transform a direction.
- Parameters:
direction (np.ndarray) – Direction to be transformed.
normalize (bool, optional) – Normalize the resulting transformed direction to a unit norm vector. Disabled by default.
- Return type:
Returns: The transformed direction.
- transform_position(position)[source]#
Transform a cartesian position.
- Parameters:
position (np.ndarray) – Numpy array representing the cartesian position.
- Return type:
Returns: The transformed position.
- Raises:
ValueError – If position is invalid.