amiro-os / devices / DiWheelDrive / linefollow2.hpp @ af93a91c
History | View | Annotate | Download (640 Bytes)
1 | c76baf23 | Georg Alberding | #ifndef AMIRO_LINEFOLLOWING_H
|
---|---|---|---|
2 | #define AMIRO_LINEFOLLOWING_H
|
||
3 | |||
4 | #include <ch.hpp> |
||
5 | |||
6 | #include <amiroosconf.h> |
||
7 | |||
8 | namespace amiro {
|
||
9 | |||
10 | class LineFollow |
||
11 | { |
||
12 | public:
|
||
13 | void printSensorData();
|
||
14 | 25388c2f | Georg Alberding | void stableFollow(int vcnl4020Proximity[4], int (&rpmFuzzyCtrl)[2], Global *global); |
15 | 2330e415 | Georg Alberding | float SetPoint = 0x4000; // (0x1800+0x2800) >> 8 |
16 | float Kp = 0.001; |
||
17 | float Ki = 0.00001; |
||
18 | 25388c2f | Georg Alberding | float Kd = 0.5 |
19 | ; |
||
20 | int accSum = 0; |
||
21 | float oldError = 0; |
||
22 | b8085493 | Georg Alberding | int biggestDiff = 0; |
23 | 12463563 | galberding | Global *global; |
24 | LineFollow(Global *global); |
||
25 | af93a91c | galberding | void calibrateZiegler(float KCrit, int rpmSpeed[2]); |
26 | |||
27 | private:
|
||
28 | int delta();
|
||
29 | 2330e415 | Georg Alberding | |
30 | c76baf23 | Georg Alberding | }; |
31 | |||
32 | } // end of namespace amiro
|
||
33 | |||
34 | #endif // AMIRO_LINEFOLLOWING_H |