
Public Member Functions | |
| def | __eq__ (self, other) |
| def | __getitem__ (self, index) |
| def | __init__ (self, attitude=[1) |
| def | __mul__ (self, other) |
| def | __str__ (self) |
| def | __truediv__ (self, other) |
| def | close (self, other) |
| def | dcm (self) |
| def | dcm (self, dcm) |
| def | euler (self) |
| def | euler (self, euler) |
| def | inversed (self) |
| def | norm (self) |
| def | normalize (self) |
| def | q (self) |
| def | q (self, q) |
| def | transform (self, v) |
Static Public Member Functions | |
| def | norm_array (q) |
| def | normalize_array (q) |
Public Attributes | |
| dcm | |
| euler | |
| q | |
Private Member Functions | |
| def | _dcm_to_euler (self, dcm) |
| def | _dcm_to_q (self, dcm) |
| def | _euler_to_dcm (self, euler) |
| def | _euler_to_q (self, euler) |
| def | _mul_array (self, p, q) |
| def | _q_inversed (self, q) |
| def | _q_to_dcm (self, q) |
Private Attributes | |
| _dcm | |
| _euler | |
| _q | |
Quaternion class, this is the version which supports numpy arrays
If you need support for Matrix3 look at the Quaternion class
Usage:
>>> from quaternion import QuaternionBase
>>> import numpy as np
>>> q = QuaternionBase([np.radians(20), np.radians(20), np.radians(20)])
>>> print(q)
[ 0.9603483 0.13871646 0.19810763 0.13871646]
>>> print(q.dcm)
[[ 0.88302222 -0.21147065 0.41898917]
[ 0.3213938 0.92303098 -0.21147065]
[-0.34202014 0.3213938 0.88302222]]
>>> q = QuaternionBase([1, 0, 0, 0])
>>> print(q.euler)
[ 0. -0. 0.]
>>> m = [[1, 0, 0], [0, 0, -1], [0, 1, 0]]
>>> q = QuaternionBase(m)
>>> vector = [0, 1, 0]
>>> vector2 = q.transform(vector)
Definition at line 20 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.__init__ | ( | self, | |
attitude = [1 |
|||
| ) |
Construct a quaternion from an attitude
:param attitude: another QuaternionBase,
3 element list [roll, pitch, yaw],
4 element list [w, x, y ,z], DCM (3x3 array)
Definition at line 45 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.__eq__ | ( | self, | |
| other | |||
| ) |
Equality test (same orientation, not necessarily same rotation) :param other: a QuaternionBase :returns: true if the quaternions are equal
Definition at line 203 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.__getitem__ | ( | self, | |
| index | |||
| ) |
Returns the quaternion entry at index
Definition at line 79 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.__mul__ | ( | self, | |
| other | |||
| ) |
:param other: QuaternionBase :returns: multiplaction of this Quaternion with other
Definition at line 227 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.__str__ | ( | self | ) |
String of quaternion values
Definition at line 449 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.__truediv__ | ( | self, | |
| other | |||
| ) |
:param other: QuaternionBase :returns: division of this Quaternion with other
Definition at line 241 of file quaternion.py.
|
private |
Create DCM from euler angles :param dcm: 3x3 dcm array :returns: array [roll, pitch, yaw] in rad
Definition at line 417 of file quaternion.py.
|
private |
Create q from dcm
Reference:
- Shoemake, Quaternions,
http://www.cs.ucr.edu/~vbz/resources/quatut.pdf
:param dcm: 3x3 dcm array
returns: quaternion array
Definition at line 350 of file quaternion.py.
|
private |
Create DCM from euler angles :param euler: array [roll, pitch, yaw] in rad :returns: 3x3 dcm array
Definition at line 386 of file quaternion.py.
|
private |
Create q array from euler angles :param euler: array [roll, pitch, yaw] in rad :returns: array q which represents a quaternion [w, x, y, z]
Definition at line 295 of file quaternion.py.
|
private |
Performs multiplication of the 2 quaterniona arrays p and q :param p: array of len 4 :param q: array of len 4 :returns: array of len, result of p * q (with p, q quaternions)
Definition at line 276 of file quaternion.py.
|
private |
Returns inversed quaternion q :param q: array q which represents a quaternion [w, x, y, z] :returns: inversed array q which is a quaternion [w, x, y ,z]
Definition at line 440 of file quaternion.py.
|
private |
Create DCM from q :param q: array q which represents a quaternion [w, x, y, z] :returns: 3x3 dcm array
Definition at line 322 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.close | ( | self, | |
| other | |||
| ) |
Equality test with tolerance (same orientation, not necessarily same rotation) :param other: a QuaternionBase :returns: true if the quaternions are almost equal
Definition at line 214 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.dcm | ( | self | ) |
Get the DCM :returns: 3x3 array
Definition at line 130 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.dcm | ( | self, | |
| dcm | |||
| ) |
Set the DCM :param dcm: 3x3 array
Definition at line 146 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.euler | ( | self | ) |
Get the euler angles. The convention is Tait-Bryan (ZY'X'') :returns: array containing the euler angles [roll, pitch, yaw]
Definition at line 97 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.euler | ( | self, | |
| euler | |||
| ) |
Set the euler angles :param euler: list or array of the euler angles [roll, pitch, yaw]
Definition at line 115 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.inversed | ( | self | ) |
Get inversed quaternion :returns: inversed quaternion
Definition at line 194 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.norm | ( | self | ) |
Returns norm of quaternion :returns: norm (scalar)
Definition at line 181 of file quaternion.py.
|
static |
Calculate quaternion norm on array q :param quaternion: array of len 4 :returns: norm (scalar)
Definition at line 267 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.normalize | ( | self | ) |
Normalizes the quaternion
Definition at line 189 of file quaternion.py.
|
static |
Normalizes the list with len 4 so that it can be used as quaternion :param q: array of len 4 :returns: normalized array
Definition at line 255 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.q | ( | self | ) |
Get the quaternion :returns: array containing the quaternion elements
Definition at line 65 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.q | ( | self, | |
| q | |||
| ) |
Set the quaternion :param q: list or array of quaternion values [w, x, y, z]
Definition at line 84 of file quaternion.py.
| def pymavlink.quaternion.QuaternionBase.transform | ( | self, | |
| v | |||
| ) |
Calculates the vector transformed by this quaternion :param v: array with len 3 to be transformed :returns: transformed vector
Definition at line 163 of file quaternion.py.
|
private |
Definition at line 94 of file quaternion.py.
|
private |
Definition at line 93 of file quaternion.py.
|
private |
Definition at line 73 of file quaternion.py.
| pymavlink.quaternion.QuaternionBase.dcm |
Definition at line 56 of file quaternion.py.
| pymavlink.quaternion.QuaternionBase.euler |
Definition at line 60 of file quaternion.py.
| pymavlink.quaternion.QuaternionBase.q |
Definition at line 54 of file quaternion.py.