
SPI slave program to enable communication between the FPGA and the STM32L432 board.
Quaternions.h@4:e36c7042d3bb, 2019-02-23 (annotated)
- Committer:
- Zbyszek
- Date:
- Sat Feb 23 01:20:08 2019 +0000
- Revision:
- 4:e36c7042d3bb
- Child:
- 5:155d224d855c
-Added quaternion integration; -added accel based angle calculations
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 | 4:e36c7042d3bb | 40 | |
Zbyszek | 4:e36c7042d3bb | 41 | |
Zbyszek | 4:e36c7042d3bb | 42 | Quaternion toQuaternionNotation123(vector AngularRate, double dt); |
Zbyszek | 4:e36c7042d3bb | 43 | //-----------------------------Functions--------------------------------------// |