pybotics.geometry module

Geometry functions and utilities.

class pybotics.geometry.OrientationConvention[source]

Bases: enum.Enum

Orientation of a body with respect to a fixed coordinate system.

EULER_XYX = 'xyx'
EULER_XYZ = 'xyz'
EULER_XZX = 'xzx'
EULER_XZY = 'xzy'
EULER_YXY = 'yxy'
EULER_YXZ = 'yxz'
EULER_YZX = 'yzx'
EULER_YZY = 'yzy'
EULER_ZXY = 'zxy'
EULER_ZXZ = 'zxz'
EULER_ZYX = 'zyx'
EULER_ZYZ = 'zyz'
FIXED_XYX = 'xyx'
FIXED_XYZ = 'zyx'
FIXED_XZX = 'xzx'
FIXED_XZY = 'yzx'
FIXED_YXY = 'yxy'
FIXED_YXZ = 'zxy'
FIXED_YZX = 'xzy'
FIXED_YZY = 'yzy'
FIXED_ZXY = 'yxz'
FIXED_ZXZ = 'zxz'
FIXED_ZYX = 'xyz'
FIXED_ZYZ = 'zyz'
pybotics.geometry.matrix_2_vector(matrix: numpy.ndarray[Any, numpy.dtype[numpy.float64]], convention: pybotics.geometry.OrientationConvention = <OrientationConvention.EULER_ZYX: 'zyx'>) → numpy.ndarray[Any, numpy.dtype[numpy.float64]][source]

Convert 4x4 matrix to a vector.

pybotics.geometry.position_from_matrix(matrix: numpy.ndarray[Any, numpy.dtype[numpy.float64]]) → numpy.ndarray[Any, numpy.dtype[numpy.float64]][source]

Get the position values from a 4x4 transform matrix.

pybotics.geometry.rotation_matrix_x(angle: float) → numpy.ndarray[Any, numpy.dtype[numpy.float64]][source]

Generate a basic 4x4 rotation matrix about the X axis.

pybotics.geometry.rotation_matrix_y(angle: float) → numpy.ndarray[Any, numpy.dtype[numpy.float64]][source]

Generate a basic 4x4 rotation matrix about the Y axis.

pybotics.geometry.rotation_matrix_z(angle: float) → numpy.ndarray[Any, numpy.dtype[numpy.float64]][source]

Generate a basic 4x4 rotation matrix about the Z axis.

pybotics.geometry.translation_matrix(xyz: numpy.ndarray[Any, numpy.dtype[numpy.float64]]) → numpy.ndarray[Any, numpy.dtype[numpy.float64]][source]

Generate a basic 4x4 translation matrix.

pybotics.geometry.vector_2_matrix(vector: numpy.ndarray[Any, numpy.dtype[numpy.float64]], convention: Union[pybotics.geometry.OrientationConvention, str] = <OrientationConvention.EULER_ZYX: 'zyx'>) → numpy.ndarray[Any, numpy.dtype[numpy.float64]][source]

Calculate the pose from the position and euler angles.

Parameters:
  • convention
  • vector – transform vector
Returns:

4x4 transform matrix

pybotics.geometry.wrap_2_pi(angle: float) → float[source]

Wrap given angle to +/- PI.

Parameters:angle – angle to wrap
Returns:wrapped angle