Bayley Wang
/
foc-ed_in_the_bot_compact
robot
ThrottleMapper/ThrottleMapper.h@160:6948bb7bcabd, 2017-07-01 (annotated)
- Committer:
- bwang
- Date:
- Sat Jul 01 21:16:33 2017 +0000
- Revision:
- 160:6948bb7bcabd
- Parent:
- 110:c66f359b6932
- Child:
- 174:3872516b0d04
added AutoMapper, AutoThrottleMapper classes for automated stall testing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bwang | 42:030e0ec4eac5 | 1 | #ifndef __THROTTLE_MAPPER_H |
bwang | 42:030e0ec4eac5 | 2 | #define __THROTTLE_MAPPER_H |
bwang | 42:030e0ec4eac5 | 3 | |
bwang | 42:030e0ec4eac5 | 4 | class ThrottleMapper { |
bwang | 42:030e0ec4eac5 | 5 | public: |
bwang | 42:030e0ec4eac5 | 6 | virtual float map(float throttle, float w) = 0; |
bwang | 42:030e0ec4eac5 | 7 | }; |
bwang | 42:030e0ec4eac5 | 8 | |
bwang | 42:030e0ec4eac5 | 9 | class NullThrottleMapper : public ThrottleMapper { |
bwang | 42:030e0ec4eac5 | 10 | public: |
bwang | 110:c66f359b6932 | 11 | virtual float map(float throttle, float w) {if (throttle >= 0.0f) return throttle; return 0.0f;} |
bwang | 42:030e0ec4eac5 | 12 | }; |
bwang | 42:030e0ec4eac5 | 13 | |
bwang | 50:f508c7860342 | 14 | class DrivingThrottleMapper : public ThrottleMapper { |
bwang | 42:030e0ec4eac5 | 15 | public: |
bwang | 42:030e0ec4eac5 | 16 | virtual float map(float throttle, float w); |
bwang | 42:030e0ec4eac5 | 17 | private: |
bwang | 42:030e0ec4eac5 | 18 | float getMaxTqpctPlus(float w); |
bwang | 42:030e0ec4eac5 | 19 | float getMaxTqpctMinus(float w); |
bwang | 42:030e0ec4eac5 | 20 | float getZeroTqThrottle(float w); |
bwang | 42:030e0ec4eac5 | 21 | }; |
bwang | 50:f508c7860342 | 22 | |
bwang | 56:c681001dfa46 | 23 | class LimitingThrottleMapper : public ThrottleMapper { |
bwang | 56:c681001dfa46 | 24 | public: |
bwang | 56:c681001dfa46 | 25 | LimitingThrottleMapper(float wmax); |
bwang | 56:c681001dfa46 | 26 | virtual float map(float throttle, float w); |
bwang | 56:c681001dfa46 | 27 | private: |
bwang | 56:c681001dfa46 | 28 | float __wmax, __wlim; |
bwang | 56:c681001dfa46 | 29 | }; |
bwang | 56:c681001dfa46 | 30 | |
bwang | 73:d44bc3a46942 | 31 | class ConstantThrottleMapper : public ThrottleMapper { |
bwang | 73:d44bc3a46942 | 32 | public: |
bwang | 73:d44bc3a46942 | 33 | ConstantThrottleMapper(float out) {__out = out;} |
bwang | 73:d44bc3a46942 | 34 | virtual float map(float throttle, float w) {if (throttle > 0.01f) return __out; return 0.0f;} |
bwang | 73:d44bc3a46942 | 35 | private: |
bwang | 73:d44bc3a46942 | 36 | float __out; |
bwang | 73:d44bc3a46942 | 37 | }; |
bwang | 160:6948bb7bcabd | 38 | |
bwang | 160:6948bb7bcabd | 39 | class AutoThrottleMapper : public ThrottleMapper { |
bwang | 160:6948bb7bcabd | 40 | public: |
bwang | 160:6948bb7bcabd | 41 | AutoThrottleMapper(float rate, float period) {_rate = rate; _period = period; val = 0.0f;} |
bwang | 160:6948bb7bcabd | 42 | virtual float map(float throttle, float w); |
bwang | 160:6948bb7bcabd | 43 | private: |
bwang | 160:6948bb7bcabd | 44 | float _rate, _period; |
bwang | 160:6948bb7bcabd | 45 | float val; |
bwang | 160:6948bb7bcabd | 46 | }; |
bwang | 160:6948bb7bcabd | 47 | |
bwang | 42:030e0ec4eac5 | 48 | #endif |