
SPI slave program to enable communication between the FPGA and the STM32L432 board.
Diff: Quaternions.h
- Revision:
- 4:e36c7042d3bb
- Child:
- 5:155d224d855c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Quaternions.h Sat Feb 23 01:20:08 2019 +0000 @@ -0,0 +1,43 @@ +typedef struct { + double w; + double x; + double y; + double z; +} Quaternion; + +typedef struct { + double roll; + double pitch; + double yaw; +} Rotation; + +typedef struct { + double x; + double y; + double z; +} vector; + + +//-----------------------------Functions--------------------------------------// +Quaternion toQuaternionNotation(vector AngularRate, double dt); +Quaternion getQuaternionProduct(Quaternion previousQ, Quaternion deltaQ); +Quaternion quaternionConjugate(Quaternion Q); +Quaternion updateQuaternion(Quaternion Qprevious, vector angularRate, double deltaTime); +vector quaternion2Vector(Quaternion Q); +Quaternion vector2Quaternion(vector v); +vector rotateVector(Quaternion Q, vector v); +Quaternion normaliseQuaternion(Quaternion Q); +double getQuaternionNorm(Quaternion Q); +Quaternion getQaDelta(Quaternion Q); +vector crossProduct(vector v1, vector v2); +Quaternion sumQuaternion(Quaternion Q1, Quaternion Q2); +vector sumVector(vector v1, vector v2); +Quaternion getQVproduct(Quaternion Q, vector v); +vector rotateGlobal(vector v1, Quaternion Q); +vector rotateLocal(vector v1, Quaternion Q); +vector mul(float a, vector v); +vector eulerA(Quaternion Q); + + +Quaternion toQuaternionNotation123(vector AngularRate, double dt); +//-----------------------------Functions--------------------------------------// \ No newline at end of file