Public Member Functions | |
def | __init__ (self, args) |
def | __str__ (self) |
def | __neg__ (self) |
def | __add__ (self, other) |
def | __sub__ (self, other) |
def | __mul__ (self, other) |
def | __rmul__ (self, other) |
def | __abs__ (self) |
def | conjugate (self) |
def | inv (self) |
def | __div__ (self, other) |
def | __pow__ (self, n) |
def | normalize (self) |
def | normalized (self) |
def | toRotationMatrix (self) |
def | toRotationVector (self) |
def | copy (self) |
def | toRPY (self) |
def | fromRPY (self, R, P, Y) |
def | toTuple (self) |
def | fromTwoVectors (self, a, b) |
Public Attributes | |
array | |
Quaternion class : ------------------ A quaternion has a scalar part and a vector part. In this class the quaternion is represented as an array of 4 elements : - the first element is the scalar part - the next 3 elements represents the vector part One can acces to the array directly with the attribute "array" e.g. q1=Quaternion(1,0,0,0) --> q1.array A quaternion can be instanciated with 1, 2 or 4 elements (see : __init__() for more information). It can also return a rotation vector, a rotation matrix, or a SO3 (see the methods : to...() for more information).
def gepetto.quaternion.Quaternion.__init__ | ( | self, | |
args | |||
) |
Instanciation of the quaternion with 1, 2 or 4 arguments : ----------------------------------------------------------- This creates a 4-sized array (self.array) representing the quaternion with the first element representing the scalar part and the 3 others the vector part. With 4 arguments : ------------------ - the first one is used as the scalar part, the other three as the vector part. With 2 arguments : ------------------ - the 1-sized argument is used as the scalar part, the 3-sized argument is used as the vector part. With 1 argument : ----------------- - if it is a quaternion it will create a copy of this quaternion. - if it is a scalar, the scalar will be used as the scalar part and the vector part will be set at (0,0,0). - if it is an array, matrix, tuple or list of 4 elements, the first element is used as the scalar part and the rest as the vector part. - if it is an array, matrix, tuple or list of 3 elements, the 3 elements are interpreted as a rotation vector, this creates a quaternion representing the same rotation. - if it is a to 2 dimension array convertible array, matrix, tuple or list with at least (3*3) elements, the upper left (3*3) elements are interpreted as a rotation matrix, this creates a quaternion representing the same rotation. - if it is an instance of SO3, quaternion is built from rotation matrix. With 0 arguments : ------------------ If no argument is given, than the quaternion will be set by default to with the scalar part set to 1 and the vector part to (0,0,0). (this is the neutral element for multiplication in quaternion space) To create a quaternion from Roll, Pitch, Yaw angles : ----------------------------------------------------- first instanciate a quaternion and than use the method fromRPY() to change the values of it to the dezired ones. e.g. : quat().fromRPY(R,P,Y)
def gepetto.quaternion.Quaternion.__abs__ | ( | self | ) |
Returns the norm of the quaternion.
def gepetto.quaternion.Quaternion.__add__ | ( | self, | |
other | |||
) |
If other is not a quaternion it is casted to a quaternion, the elements are added one to one.
def gepetto.quaternion.Quaternion.__div__ | ( | self, | |
other | |||
) |
If other is not a quaternion it is casted to a quaternion, the result of the quaternion multiplication with the inverse of other is returned.
def gepetto.quaternion.Quaternion.__mul__ | ( | self, | |
other | |||
) |
If other is not a quaternion it is casted to a quaternion, the result of the quaternion multiplication is returned.
def gepetto.quaternion.Quaternion.__neg__ | ( | self | ) |
Returns a quaternion which elements are the opposite of the original, (this opposite quaternion represents the same rotation).
def gepetto.quaternion.Quaternion.__pow__ | ( | self, | |
n | |||
) |
Returns quaternion**n with quaternion**0 = Quaternion(1,0,0,0).
def gepetto.quaternion.Quaternion.__rmul__ | ( | self, | |
other | |||
) |
other is casted to a quaternion, the result of the quaternion multiplication is returned.
def gepetto.quaternion.Quaternion.__str__ | ( | self | ) |
String representation of the quaternion.
def gepetto.quaternion.Quaternion.__sub__ | ( | self, | |
other | |||
) |
If other is not a quaternion it is casted to a quaternion, the elements are substracted one to one.
def gepetto.quaternion.Quaternion.conjugate | ( | self | ) |
Returns the conjugate of the quaternion.
def gepetto.quaternion.Quaternion.copy | ( | self | ) |
Returns a copy of the quaternion.
def gepetto.quaternion.Quaternion.fromRPY | ( | self, | |
R, | |||
P, | |||
Y | |||
) |
Set the values of the quaternion to the values of a unit quaternion representing the same rotation as the one performed by Roll Pitch Yaw : - A rotation of R (Roll) about the original x-axis, followed by a rotation of P (Pitch) about the original y-axis, followed by a rotation of Y (Yaw) about the original z-axis. - Or otherwise a rotation of Y about the original z-axis, followed by a rotation of P about the new y-axis, followed by a rotation of R about the new x-axis.
def gepetto.quaternion.Quaternion.fromTwoVectors | ( | self, | |
a, | |||
b | |||
) |
Return a quaternion build representing the rotation between the two vectors. In other words, the built rotation represent a rotation sending the line of direction a to the line of direction b, both lines passing through the origin. Equations from Eigen https://eigen.tuxfamily.org/dox/classEigen_1_1Quaternion.html#title13
def gepetto.quaternion.Quaternion.inv | ( | self | ) |
Returns the inverse of the quaternion.
def gepetto.quaternion.Quaternion.normalize | ( | self | ) |
Changes the values of the quaternion to make it a unit quaternion representing the same rotation as the original one and returns the updated version.
def gepetto.quaternion.Quaternion.normalized | ( | self | ) |
Returns the unit quaternion representation of the quaternion without changing the original.
def gepetto.quaternion.Quaternion.toRotationMatrix | ( | self | ) |
Returns a (3*3) array (rotation matrix) representing the same rotation as the (normalized) quaternion.
def gepetto.quaternion.Quaternion.toRotationVector | ( | self | ) |
Returns a 3-sized array (rotation vector) representing the same rotation as the (normalized) quaternion.
def gepetto.quaternion.Quaternion.toRPY | ( | self | ) |
Returns a 3-sized array with representing the same rotation as the (normalized) quaternion. With : - the first element representing the Roll, - the second the Pitch - the third the Yaw Where Roll Pitch and Yaw are the angles so that the rotation with the quaternion represents the same rotation as : - A rotation of R (Roll) about the original x-axis, followed by a rotation of P (Pitch) about the original y-axis, followed by a rotation of Y (Yaw) about the original z-axis. - Or otherwise a rotation of Y about the original z-axis, followed by a rotation of P about the new y-axis, followed by a rotation of R about the new x-axis.
def gepetto.quaternion.Quaternion.toTuple | ( | self | ) |
Return quaternion as a tuple a float starting with real part.
gepetto.quaternion.Quaternion.array |