Ben Katz / Mbed 2 deprecated Pendulum_demo

Dependencies:   mbed Eigen

Committer:
benkatz
Date:
Tue May 07 01:56:53 2019 +0000
Revision:
0:4dd2d995f7d0
works with the python side control

Who changed what in which revision?

UserRevisionLine numberNew contents of line
benkatz 0:4dd2d995f7d0 1 #ifndef STRUCTS_H
benkatz 0:4dd2d995f7d0 2 #define STRUCTS_H
benkatz 0:4dd2d995f7d0 3 #include <Eigen/Dense.h>
benkatz 0:4dd2d995f7d0 4
benkatz 0:4dd2d995f7d0 5 using namespace Eigen;
benkatz 0:4dd2d995f7d0 6
benkatz 0:4dd2d995f7d0 7 // Union for easily converting floats to bytes for serial //
benkatz 0:4dd2d995f7d0 8 union f_b
benkatz 0:4dd2d995f7d0 9 {
benkatz 0:4dd2d995f7d0 10 float f;
benkatz 0:4dd2d995f7d0 11 uint8_t bytes[4];
benkatz 0:4dd2d995f7d0 12 };
benkatz 0:4dd2d995f7d0 13
benkatz 0:4dd2d995f7d0 14 union u16_b
benkatz 0:4dd2d995f7d0 15 {
benkatz 0:4dd2d995f7d0 16 uint16_t i;
benkatz 0:4dd2d995f7d0 17 uint8_t bytes[2];
benkatz 0:4dd2d995f7d0 18 };
benkatz 0:4dd2d995f7d0 19
benkatz 0:4dd2d995f7d0 20
benkatz 0:4dd2d995f7d0 21 typedef struct
benkatz 0:4dd2d995f7d0 22 {
benkatz 0:4dd2d995f7d0 23 Vector2f q, qd, qdd, tau, g;
benkatz 0:4dd2d995f7d0 24 Matrix2f h, c;
benkatz 0:4dd2d995f7d0 25 } StateStruct;
benkatz 0:4dd2d995f7d0 26
benkatz 0:4dd2d995f7d0 27 typedef struct
benkatz 0:4dd2d995f7d0 28 {
benkatz 0:4dd2d995f7d0 29 int encoder_count[2];
benkatz 0:4dd2d995f7d0 30 float q_sensed[2], qd_sensed[2];
benkatz 0:4dd2d995f7d0 31 }SensorStruct;
benkatz 0:4dd2d995f7d0 32
benkatz 0:4dd2d995f7d0 33 typedef struct
benkatz 0:4dd2d995f7d0 34 {
benkatz 0:4dd2d995f7d0 35 float tau, p_setpoint, p_gain, v_setpoint, v_gain;
benkatz 0:4dd2d995f7d0 36 }ControlStruct;
benkatz 0:4dd2d995f7d0 37
benkatz 0:4dd2d995f7d0 38 typedef struct
benkatz 0:4dd2d995f7d0 39 {
benkatz 0:4dd2d995f7d0 40 // Inputs //
benkatz 0:4dd2d995f7d0 41 u16_b p_setpoint, p_gain, v_setpoint, v_gain;
benkatz 0:4dd2d995f7d0 42 // Outputs //
benkatz 0:4dd2d995f7d0 43 u16_b encoder_0, encoder_1;
benkatz 0:4dd2d995f7d0 44 f_b q0, q1, qd0, qd1, torque_command;
benkatz 0:4dd2d995f7d0 45 }CommunicationStruct;
benkatz 0:4dd2d995f7d0 46
benkatz 0:4dd2d995f7d0 47 #endif