robot

Dependencies:   FastPWM3 mbed

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?

UserRevisionLine numberNew 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