Delta Robot example
Dependencies: BufferedSerial Eigen
Fork of TCPSocket_Example by
Axis.h@5:01e1e68309ae, 2018-10-15 (annotated)
- Committer:
- je310
- Date:
- Mon Oct 15 18:30:20 2018 +0000
- Revision:
- 5:01e1e68309ae
- Parent:
- 4:778bc352c47f
testing eigen;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
je310 | 3:10fa3102c2d7 | 1 | #ifndef AXIS_H |
je310 | 3:10fa3102c2d7 | 2 | #define AXIS_H |
je310 | 3:10fa3102c2d7 | 3 | |
je310 | 4:778bc352c47f | 4 | #include "odrive.h" |
je310 | 4:778bc352c47f | 5 | #include "mbed.h" |
je310 | 4:778bc352c47f | 6 | #include "calibration.h" |
je310 | 4:778bc352c47f | 7 | #include "comms.h" |
je310 | 4:778bc352c47f | 8 | #include <string> |
je310 | 4:778bc352c47f | 9 | #include <sstream> |
je310 | 4:778bc352c47f | 10 | |
je310 | 4:778bc352c47f | 11 | enum axisName { |
je310 | 4:778bc352c47f | 12 | AX_A, |
je310 | 4:778bc352c47f | 13 | AX_B, |
je310 | 4:778bc352c47f | 14 | AX_C, |
je310 | 4:778bc352c47f | 15 | }; |
je310 | 4:778bc352c47f | 16 | |
je310 | 3:10fa3102c2d7 | 17 | class Axis |
je310 | 3:10fa3102c2d7 | 18 | { |
je310 | 3:10fa3102c2d7 | 19 | public: |
je310 | 3:10fa3102c2d7 | 20 | |
je310 | 5:01e1e68309ae | 21 | Axis(ODrive* od, int ax, DigitalIn* homeSwitch, calVals calibration_,axisName identity); |
je310 | 3:10fa3102c2d7 | 22 | void homeAxis(); |
je310 | 5:01e1e68309ae | 23 | void findIndex(); |
je310 | 3:10fa3102c2d7 | 24 | void goAngle(float angle); |
je310 | 3:10fa3102c2d7 | 25 | void goAngleSpeed(float angle, float speed); |
je310 | 4:778bc352c47f | 26 | void runState(int requestedState); |
je310 | 5:01e1e68309ae | 27 | int readState(); |
je310 | 4:778bc352c47f | 28 | DigitalIn* homeSwitch_; |
je310 | 4:778bc352c47f | 29 | void setMaxVel(float stepsPerSec); |
je310 | 5:01e1e68309ae | 30 | int setParams(float stepsPerSec, float vel_gain, float encoder_bandwidth, float pos_gain, float vel_int); |
je310 | 4:778bc352c47f | 31 | ODrive* odrive; |
je310 | 5:01e1e68309ae | 32 | void idle(); |
je310 | 5:01e1e68309ae | 33 | int test(); |
je310 | 5:01e1e68309ae | 34 | float readParam(string in); |
je310 | 5:01e1e68309ae | 35 | float readBattery(); |
je310 | 5:01e1e68309ae | 36 | float writeParam(string in, float val); |
je310 | 5:01e1e68309ae | 37 | axisName name; |
je310 | 3:10fa3102c2d7 | 38 | |
je310 | 3:10fa3102c2d7 | 39 | private: |
je310 | 4:778bc352c47f | 40 | |
je310 | 4:778bc352c47f | 41 | int axNum; |
je310 | 4:778bc352c47f | 42 | int homeOffset; |
je310 | 4:778bc352c47f | 43 | float currentSetPos; |
je310 | 4:778bc352c47f | 44 | float currentSetVel; |
je310 | 4:778bc352c47f | 45 | |
je310 | 4:778bc352c47f | 46 | float maxAngle; //roughtly |
je310 | 4:778bc352c47f | 47 | float gearRatio_; |
je310 | 4:778bc352c47f | 48 | float pulse_per_rev; |
je310 | 4:778bc352c47f | 49 | float pulse_per_rad; |
je310 | 4:778bc352c47f | 50 | float rotation_offset; // defines the rotational ofset from flat, to be calibrated. |
je310 | 3:10fa3102c2d7 | 51 | |
je310 | 3:10fa3102c2d7 | 52 | |
je310 | 3:10fa3102c2d7 | 53 | }; |
je310 | 3:10fa3102c2d7 | 54 | |
je310 | 3:10fa3102c2d7 | 55 | |
je310 | 3:10fa3102c2d7 | 56 | |
je310 | 3:10fa3102c2d7 | 57 | |
je310 | 3:10fa3102c2d7 | 58 | |
je310 | 3:10fa3102c2d7 | 59 | #endif // COMMS_H |