source: flair-dev/trunk/include/FlairFilter/AhrsComplementaryFilter.h @ 16

Last change on this file since 16 was 16, checked in by Sanahuja Guillaume, 5 years ago

complementary filter

File size: 1.9 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5/*!
6 * \file AhrsComplementaryFilter.h
7 * \brief Class defining an Ahrs Kalman filter
8 * \author Augustin Manecy (RT-MaG Toolbox author, augustin.manecy@gmail.com), API changes by Guillaume Sanahuja to fit the Flair framework
9 * \date 2014/01/15
10 * \version 4.0
11 */
12
13#ifndef AHRSCOMPLEMENTARYFILTER_H
14#define AHRSCOMPLEMENTARYFILTER_H
15
16#include <Ahrs.h>
17#include <Vector3D.h>
18#include <Quaternion.h>
19
20namespace flair {
21    namespace sensor {
22        class Imu;
23    }
24    namespace gui {
25        class DoubleSpinBox;
26    }
27}
28
29namespace flair { namespace filter {
30    /*! \class AhrsComplementaryFilter
31    *
32    * \brief Class defining an Ahrs complementary filter
33    *
34    * Implementation from Augustin Manecy
35    */
36    class AhrsComplementaryFilter : public Ahrs {
37        public:
38            /*!
39            * \brief Constructor
40            *
41            * Construct an AhrsComplementaryFilter.
42            *
43            * \param parent parent
44            * \param name name
45            */
46            AhrsComplementaryFilter(const sensor::Imu* parent,std::string name);
47
48            /*!
49            * \brief Destructor
50            *
51            */
52            ~AhrsComplementaryFilter();
53
54        private:
55            /*!
56            * \brief Update using provided datas
57            *
58            * Reimplemented from IODevice.
59            *
60            * \param data data from the parent to process
61            */
62            void UpdateFrom(const core::io_data *data);
63
64            core::Time previous_time;
65
66            bool isInit;
67            core::Quaternion QHat;
68            core::Vector3D BHat;
69            gui::DoubleSpinBox *ka[3];
70            gui::DoubleSpinBox *kb[3];
71    };
72} // end namespace filter
73} // end namespace flair
74#endif // AHRSCOMPLEMENTARYFILTER_H
Note: See TracBrowser for help on using the repository browser.