[122] | 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 {
|
---|
[214] | 22 | class Matrix;
|
---|
[122] | 23 | }
|
---|
| 24 | namespace gui {
|
---|
| 25 | class GroupBox;
|
---|
| 26 | class DoubleSpinBox;
|
---|
[124] | 27 | class PushButton;
|
---|
[122] | 28 | }
|
---|
| 29 | namespace filter {
|
---|
| 30 | class OpticalFlow;
|
---|
[155] | 31 | class OpticalFlowCompensated;
|
---|
[122] | 32 | class OpticalFlowSpeed;
|
---|
| 33 | class LowPassFilter;
|
---|
[142] | 34 | class EulerDerivative;
|
---|
[122] | 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);
|
---|
[155] | 51 | void ExtraCheckPushButton(void);
|
---|
[165] | 52 | void ExtraSecurityCheck(void);
|
---|
[122] | 53 | const flair::core::AhrsData *GetReferenceOrientation(void);
|
---|
| 54 |
|
---|
| 55 | flair::gui::GroupBox* opticalFlowGroupBox;
|
---|
| 56 | flair::gui::DoubleSpinBox *maxXSpeed,*maxYSpeed;
|
---|
[214] | 57 | flair::core::Matrix *opticalFlowReference;
|
---|
[122] | 58 | flair::filter::Pid *u_x, *u_y;
|
---|
| 59 | flair::filter::CvtColor* greyCameraImage;
|
---|
| 60 | flair::core::AhrsData *customReferenceOrientation;
|
---|
[214] | 61 | flair::core::Matrix *opticalFlowRealSpeed,*opticalFlowRealAcceleration;
|
---|
[122] | 62 |
|
---|
| 63 | private:
|
---|
| 64 | flair::filter::OpticalFlow *opticalFlow;
|
---|
[155] | 65 | flair::filter::OpticalFlowCompensated *opticalFlowCompensated;
|
---|
[142] | 66 | flair::filter::OpticalFlowSpeed *opticalFlowSpeedRaw;
|
---|
| 67 | flair::filter::EulerDerivative *opticalFlowAccelerationRaw;
|
---|
[155] | 68 | flair::gui::PushButton *startOpticalflow,*stopOpticalflow;
|
---|
| 69 | void StartOpticalFlow(void);
|
---|
[163] | 70 | flair::filter::LowPassFilter* opticalFlowSpeed;
|
---|
| 71 | flair::filter::LowPassFilter* opticalFlowAcceleration;
|
---|
[165] | 72 | bool flagCameraLost;
|
---|
[122] | 73 | };
|
---|
| 74 |
|
---|
| 75 | #endif // DEMOOPTICALFLOW_H
|
---|