Bayley Wang
/
foc-ed_in_the_bot_compact
robot
ThrottleMapper/ThrottleMapper.h@252:38644631ed97, 2018-11-13 (annotated)
- Committer:
- bwang
- Date:
- Tue Nov 13 17:46:23 2018 +0000
- Revision:
- 252:38644631ed97
- Parent:
- 174:3872516b0d04
11/13/2018 12:45 - hitting <return> on empty line prints "\r>", so that hitting enter after intially connecting to the controller generates a prompt
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 | 174:3872516b0d04 | 14 | class InvertingThrottleMapper : public ThrottleMapper { |
bwang | 174:3872516b0d04 | 15 | public: |
bwang | 174:3872516b0d04 | 16 | InvertingThrottleMapper(ThrottleMapper *m) {mapper = m;} |
bwang | 174:3872516b0d04 | 17 | virtual float map(float throttle, float w) {return -mapper->map(throttle,w);} |
bwang | 174:3872516b0d04 | 18 | private: |
bwang | 174:3872516b0d04 | 19 | ThrottleMapper *mapper; |
bwang | 174:3872516b0d04 | 20 | }; |
bwang | 174:3872516b0d04 | 21 | |
bwang | 50:f508c7860342 | 22 | class DrivingThrottleMapper : public ThrottleMapper { |
bwang | 42:030e0ec4eac5 | 23 | public: |
bwang | 42:030e0ec4eac5 | 24 | virtual float map(float throttle, float w); |
bwang | 42:030e0ec4eac5 | 25 | private: |
bwang | 42:030e0ec4eac5 | 26 | float getMaxTqpctPlus(float w); |
bwang | 42:030e0ec4eac5 | 27 | float getMaxTqpctMinus(float w); |
bwang | 42:030e0ec4eac5 | 28 | float getZeroTqThrottle(float w); |
bwang | 42:030e0ec4eac5 | 29 | }; |
bwang | 50:f508c7860342 | 30 | |
bwang | 56:c681001dfa46 | 31 | class LimitingThrottleMapper : public ThrottleMapper { |
bwang | 56:c681001dfa46 | 32 | public: |
bwang | 56:c681001dfa46 | 33 | LimitingThrottleMapper(float wmax); |
bwang | 56:c681001dfa46 | 34 | virtual float map(float throttle, float w); |
bwang | 56:c681001dfa46 | 35 | private: |
bwang | 56:c681001dfa46 | 36 | float __wmax, __wlim; |
bwang | 56:c681001dfa46 | 37 | }; |
bwang | 56:c681001dfa46 | 38 | |
bwang | 73:d44bc3a46942 | 39 | class ConstantThrottleMapper : public ThrottleMapper { |
bwang | 73:d44bc3a46942 | 40 | public: |
bwang | 73:d44bc3a46942 | 41 | ConstantThrottleMapper(float out) {__out = out;} |
bwang | 73:d44bc3a46942 | 42 | virtual float map(float throttle, float w) {if (throttle > 0.01f) return __out; return 0.0f;} |
bwang | 73:d44bc3a46942 | 43 | private: |
bwang | 73:d44bc3a46942 | 44 | float __out; |
bwang | 73:d44bc3a46942 | 45 | }; |
bwang | 160:6948bb7bcabd | 46 | |
bwang | 160:6948bb7bcabd | 47 | class AutoThrottleMapper : public ThrottleMapper { |
bwang | 160:6948bb7bcabd | 48 | public: |
bwang | 160:6948bb7bcabd | 49 | AutoThrottleMapper(float rate, float period) {_rate = rate; _period = period; val = 0.0f;} |
bwang | 160:6948bb7bcabd | 50 | virtual float map(float throttle, float w); |
bwang | 160:6948bb7bcabd | 51 | private: |
bwang | 160:6948bb7bcabd | 52 | float _rate, _period; |
bwang | 160:6948bb7bcabd | 53 | float val; |
bwang | 160:6948bb7bcabd | 54 | }; |
bwang | 160:6948bb7bcabd | 55 | |
bwang | 42:030e0ec4eac5 | 56 | #endif |