1 | // created: 2011/05/01
|
---|
2 | // filename: DemoOpticalFlow.h
|
---|
3 | //
|
---|
4 | // author: Guillaume Sanahuja
|
---|
5 | // Copyright Heudiasyc UMR UTC/CNRS 7253
|
---|
6 | //
|
---|
7 | // version: $Id: $
|
---|
8 | //
|
---|
9 | // purpose: demo optical flow
|
---|
10 | //
|
---|
11 | //
|
---|
12 | /*********************************************************************/
|
---|
13 | //------------
|
---|
14 |
|
---|
15 | #ifndef DEMOOPTICALFLOW_H
|
---|
16 | #define DEMOOPTICALFLOW_H
|
---|
17 |
|
---|
18 | #include <UavStateMachine.h>
|
---|
19 |
|
---|
20 | namespace flair {
|
---|
21 | namespace core {
|
---|
22 | class Matrix;
|
---|
23 | }
|
---|
24 | namespace gui {
|
---|
25 | class GroupBox;
|
---|
26 | class DoubleSpinBox;
|
---|
27 | class PushButton;
|
---|
28 | }
|
---|
29 | namespace filter {
|
---|
30 | class OpticalFlow;
|
---|
31 | class OpticalFlowCompensated;
|
---|
32 | class OpticalFlowSpeed;
|
---|
33 | class LowPassFilter;
|
---|
34 | class EulerDerivative;
|
---|
35 | class CvtColor;
|
---|
36 | }
|
---|
37 | namespace sensor {
|
---|
38 | class TargetController;
|
---|
39 | }
|
---|
40 | }
|
---|
41 |
|
---|
42 | class DemoOpticalFlow : public flair::meta::UavStateMachine {
|
---|
43 |
|
---|
44 | public:
|
---|
45 | DemoOpticalFlow(flair::sensor::TargetController *controller);
|
---|
46 | ~DemoOpticalFlow();
|
---|
47 |
|
---|
48 | protected:
|
---|
49 | void SignalEvent(Event_t event);
|
---|
50 | void ExtraCheckJoystick(void);
|
---|
51 | void ExtraCheckPushButton(void);
|
---|
52 | void ExtraSecurityCheck(void);
|
---|
53 | const flair::core::AhrsData *GetReferenceOrientation(void);
|
---|
54 |
|
---|
55 | flair::gui::GroupBox* opticalFlowGroupBox;
|
---|
56 | flair::gui::DoubleSpinBox *maxXSpeed,*maxYSpeed;
|
---|
57 | flair::core::Matrix *opticalFlowReference;
|
---|
58 | flair::filter::Pid *u_x, *u_y;
|
---|
59 | flair::filter::CvtColor* greyCameraImage;
|
---|
60 | flair::core::AhrsData *customReferenceOrientation;
|
---|
61 | flair::core::Matrix *opticalFlowRealSpeed,*opticalFlowRealAcceleration;
|
---|
62 |
|
---|
63 | private:
|
---|
64 | flair::filter::OpticalFlow *opticalFlow;
|
---|
65 | flair::filter::OpticalFlowCompensated *opticalFlowCompensated;
|
---|
66 | flair::filter::OpticalFlowSpeed *opticalFlowSpeedRaw;
|
---|
67 | flair::filter::EulerDerivative *opticalFlowAccelerationRaw;
|
---|
68 | flair::gui::PushButton *startOpticalflow,*stopOpticalflow;
|
---|
69 | void StartOpticalFlow(void);
|
---|
70 | flair::filter::LowPassFilter* opticalFlowSpeed;
|
---|
71 | flair::filter::LowPassFilter* opticalFlowAcceleration;
|
---|
72 | bool flagCameraLost;
|
---|
73 | };
|
---|
74 |
|
---|
75 | #endif // DEMOOPTICALFLOW_H
|
---|