Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Quaternions.h@5:155d224d855c, 2019-02-24 (annotated)
- Committer:
 - Zbyszek
 - Date:
 - Sun Feb 24 16:49:06 2019 +0000
 - Revision:
 - 5:155d224d855c
 - Parent:
 - 4:e36c7042d3bb
 - Child:
 - 6:0ebecfecadc9
 
Added code to calculate bias offsets for calibration of the Gyro and Accelerometer
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| Zbyszek | 4:e36c7042d3bb | 1 | typedef struct { | 
| Zbyszek | 4:e36c7042d3bb | 2 | double w; | 
| Zbyszek | 4:e36c7042d3bb | 3 | double x; | 
| Zbyszek | 4:e36c7042d3bb | 4 | double y; | 
| Zbyszek | 4:e36c7042d3bb | 5 | double z; | 
| Zbyszek | 4:e36c7042d3bb | 6 | } Quaternion; | 
| Zbyszek | 4:e36c7042d3bb | 7 | |
| Zbyszek | 4:e36c7042d3bb | 8 | typedef struct { | 
| Zbyszek | 4:e36c7042d3bb | 9 | double roll; | 
| Zbyszek | 4:e36c7042d3bb | 10 | double pitch; | 
| Zbyszek | 4:e36c7042d3bb | 11 | double yaw; | 
| Zbyszek | 4:e36c7042d3bb | 12 | } Rotation; | 
| Zbyszek | 4:e36c7042d3bb | 13 | |
| Zbyszek | 4:e36c7042d3bb | 14 | typedef struct { | 
| Zbyszek | 4:e36c7042d3bb | 15 | double x; | 
| Zbyszek | 4:e36c7042d3bb | 16 | double y; | 
| Zbyszek | 4:e36c7042d3bb | 17 | double z; | 
| Zbyszek | 4:e36c7042d3bb | 18 | } vector; | 
| Zbyszek | 4:e36c7042d3bb | 19 | |
| Zbyszek | 4:e36c7042d3bb | 20 | |
| Zbyszek | 4:e36c7042d3bb | 21 | //-----------------------------Functions--------------------------------------// | 
| Zbyszek | 4:e36c7042d3bb | 22 | Quaternion toQuaternionNotation(vector AngularRate, double dt); | 
| Zbyszek | 4:e36c7042d3bb | 23 | Quaternion getQuaternionProduct(Quaternion previousQ, Quaternion deltaQ); | 
| Zbyszek | 4:e36c7042d3bb | 24 | Quaternion quaternionConjugate(Quaternion Q); | 
| Zbyszek | 4:e36c7042d3bb | 25 | Quaternion updateQuaternion(Quaternion Qprevious, vector angularRate, double deltaTime); | 
| Zbyszek | 4:e36c7042d3bb | 26 | vector quaternion2Vector(Quaternion Q); | 
| Zbyszek | 4:e36c7042d3bb | 27 | Quaternion vector2Quaternion(vector v); | 
| Zbyszek | 4:e36c7042d3bb | 28 | vector rotateVector(Quaternion Q, vector v); | 
| Zbyszek | 4:e36c7042d3bb | 29 | Quaternion normaliseQuaternion(Quaternion Q); | 
| Zbyszek | 4:e36c7042d3bb | 30 | double getQuaternionNorm(Quaternion Q); | 
| Zbyszek | 4:e36c7042d3bb | 31 | Quaternion getQaDelta(Quaternion Q); | 
| Zbyszek | 4:e36c7042d3bb | 32 | vector crossProduct(vector v1, vector v2); | 
| Zbyszek | 4:e36c7042d3bb | 33 | Quaternion sumQuaternion(Quaternion Q1, Quaternion Q2); | 
| Zbyszek | 4:e36c7042d3bb | 34 | vector sumVector(vector v1, vector v2); | 
| Zbyszek | 4:e36c7042d3bb | 35 | Quaternion getQVproduct(Quaternion Q, vector v); | 
| Zbyszek | 4:e36c7042d3bb | 36 | vector rotateGlobal(vector v1, Quaternion Q); | 
| Zbyszek | 4:e36c7042d3bb | 37 | vector rotateLocal(vector v1, Quaternion Q); | 
| Zbyszek | 4:e36c7042d3bb | 38 | vector mul(float a, vector v); | 
| Zbyszek | 4:e36c7042d3bb | 39 | vector eulerA(Quaternion Q); | 
| Zbyszek | 5:155d224d855c | 40 | Quaternion euler2Quaternion(Quaternion Q); | 
| Zbyszek | 4:e36c7042d3bb | 41 | |
| Zbyszek | 4:e36c7042d3bb | 42 | |
| Zbyszek | 4:e36c7042d3bb | 43 | Quaternion toQuaternionNotation123(vector AngularRate, double dt); | 
| Zbyszek | 4:e36c7042d3bb | 44 | //-----------------------------Functions--------------------------------------// |