2019/09/13ver
Dependencies: SerialMultiByte QEI omni_wheel PID R1370MeasuringWheel IRsensor ikarashiMDC_2byte_ver Eigen
lib/S-ShapeModel/position_controller.h@0:3ad208cbea5f, 2019-09-13 (annotated)
- Committer:
- skouki
- Date:
- Fri Sep 13 02:19:03 2019 +0000
- Revision:
- 0:3ad208cbea5f
2019/09/13ver
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
skouki | 0:3ad208cbea5f | 1 | #ifndef POSITION_CONTROLLER_H |
skouki | 0:3ad208cbea5f | 2 | #define POSITION_CONTROLLER_H |
skouki | 0:3ad208cbea5f | 3 | |
skouki | 0:3ad208cbea5f | 4 | #include "mbed.h" |
skouki | 0:3ad208cbea5f | 5 | #include "Geometry.h" |
skouki | 0:3ad208cbea5f | 6 | //#define M_PI 3.141592653589793238462643383219502884 |
skouki | 0:3ad208cbea5f | 7 | |
skouki | 0:3ad208cbea5f | 8 | class PositionController { |
skouki | 0:3ad208cbea5f | 9 | public : |
skouki | 0:3ad208cbea5f | 10 | PositionController(double accDistance_, double decDistance_, double initialVelocity_, double terminalVelocity_, float maxVelocity_); |
skouki | 0:3ad208cbea5f | 11 | |
skouki | 0:3ad208cbea5f | 12 | void compute(int positionX, int positionY); |
skouki | 0:3ad208cbea5f | 13 | void targetXY(int targetX_, int targetY_); |
skouki | 0:3ad208cbea5f | 14 | double getVelocityX(); |
skouki | 0:3ad208cbea5f | 15 | double getVelocityY(); |
skouki | 0:3ad208cbea5f | 16 | private : |
skouki | 0:3ad208cbea5f | 17 | |
skouki | 0:3ad208cbea5f | 18 | double generateSineWave(double x, double initV, double termV, double start, double length); |
skouki | 0:3ad208cbea5f | 19 | |
skouki | 0:3ad208cbea5f | 20 | double accDistance; |
skouki | 0:3ad208cbea5f | 21 | double decDistance; |
skouki | 0:3ad208cbea5f | 22 | double accTrue; |
skouki | 0:3ad208cbea5f | 23 | double decTrue; |
skouki | 0:3ad208cbea5f | 24 | double initialVelocity; |
skouki | 0:3ad208cbea5f | 25 | double terminalVelocity; |
skouki | 0:3ad208cbea5f | 26 | float maxVelocity; |
skouki | 0:3ad208cbea5f | 27 | double target; |
skouki | 0:3ad208cbea5f | 28 | int targetX; |
skouki | 0:3ad208cbea5f | 29 | int targetY; |
skouki | 0:3ad208cbea5f | 30 | double radians; |
skouki | 0:3ad208cbea5f | 31 | double velocity[2]; |
skouki | 0:3ad208cbea5f | 32 | |
skouki | 0:3ad208cbea5f | 33 | bool enoughDistance; |
skouki | 0:3ad208cbea5f | 34 | |
skouki | 0:3ad208cbea5f | 35 | double getVelocity(int position); |
skouki | 0:3ad208cbea5f | 36 | }; |
skouki | 0:3ad208cbea5f | 37 | #endif |
skouki | 0:3ad208cbea5f | 38 |