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.
structs.h@0:4dd2d995f7d0, 2019-05-07 (annotated)
- 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?
| User | Revision | Line number | New 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 |