Statistics
| Branch: | Tag: | Revision:

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