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:

Direction

classmethod From_Spherical(azimuth, zenith)[source]

Initialize a direction from spherical parameters.

Parameters:
  • azimuth (float) – Azimuth angle in radians.

  • zenith (float) – Zenith angle in radians.

Return type:

Direction

Returns: The initialized direction.

to_spherical()[source]

Represent the direction as spherical coordinates.

Returns: An array representing azimuth and zenith angles in radians.

Return type:

ndarray

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:

None

to_local_coordinates(arg_0, arg_1=None)[source]
Return type:

Transformation

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 is_base: bool

Is this transformable acting as a base frame?

Returns: Boolean indicator.

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:

None

property forwards_transformation: Transformation

Transformation to convert local coordinates to global coordinates.

Updated every time the kinematic chain’s parameters change.

Returns: The transformation.

Bases: object

Abstract base class of kinetmatic chain links.

Establish a new link to a coordinate frame depending on this frame.

Parameters:

link (Transformable) – The transformable frame to be registered.

Return type:

None

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:

None

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:

None

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.

classmethod From_Quaternion(quaternion, pos, normalize_quaternion=True)[source]

Initialize a transformation from a quaternion.

Parameters:
  • quaternion (np.ndarray) – Quaternion in w, x, y, z representation.

  • pos (np.ndarray) – Cartesian position in m.

  • normalize (bool, optional) – Normalize the quaternion before computing the rotation matrix. Enabled by default.

Return type:

Transformation

Returns: The initialized transformation.

classmethod From_RPY(rpy, pos)[source]

Initialize a transformation from roll pitch yaw angles.

Parameters:
  • rpy (np.ndarray) – Roll, pitch and yaw angles in radians.

  • pos (np.ndarray) – Cartesian position in m.

Return type:

Transformation

Returns: The initialized transformation.

classmethod From_Translation(translation)[source]
Return type:

Transformation

classmethod No()[source]
Return type:

Transformation

invert()[source]

Invert the transformation.

Returns: The inverted transformation.

Return type:

Transformation

rotate_direction(direction)[source]

Rotate a cartesian direction.

Parameters:

direction (np.ndarray) – A directional vector.

Return type:

Direction

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:

Direction

Returns: The transformed direction.

transform_position(position)[source]

Transform a cartesian position.

Parameters:

position (np.ndarray) – Numpy array representing the cartesian position.

Return type:

ndarray

Returns: The transformed position.

Raises:

ValueError – If position is invalid.

property rotation_quaternion: ndarray

Orientation in Quaternion representation.

A numpy vector representing w, x, y, z.

property rotation_rpy: ndarray

Orientation in Roll, Pitch and Yaw Angles.

Returns: Roll, Pitch and Yaw in Radians.

property translation: ndarray