vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Filter.h
Go to the documentation of this file.
1 #include <vrecko/Ability.h>
2 #include <vreckoDP/base/PHANToM.h>
3 
4 //newfilter
5 #define BASEK1 (0.9)
6 #define BASEK2 (0.1)
7 //oldfilter
8 //#define DEFAULTBASEK1 (0.154882 * 2000.0)
9 //#define DEFAULTBASEK2 (0.141881 * 2000.0)
10 
11 
12 using namespace vrecko;
13 using namespace vreckoDP_base;
14 namespace VirtualFixture{
15 
16 
17 
18 class Filter: public PHANToMFilter {
19  public:
20  Filter();
21  ~Filter() {};
22 
23  void Filter_Initialize(void); //inicializacni funkce
24  void Filter_Update(void); //pri zmene frekvence
25  void Filter_SetX_hat1(osg::Vec3 nx); //nastavuje inicialni hodnotu 1. vnitrni promenne
26  void Filter_SetX_hat2(osg::Vec3 nx); //nastavuje inicialni hodnotu 2. vnitrni promenne
27  void Filter_Mesurement(osg::Vec3 z); //mereni
28  void Filter_Prediction(void); //predikcni krok
29  osg::Vec3 Filter_GetPosition(void); //vraci hodnotu pozice (vystup filtru)
30  osg::Vec3 Filter_GetVelocity(void); //vraci hodnotu rychlosti
32  void apply(PHANToM *pPHANToM, osg::Vec3 &force);
33  void processEvent(const std::string &input_name, void *value);
34 
35  void preInitialize(void);
36  void postInitialize(void);
37  void update(void);
38 
39  bool loadXMLParameters(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *pParametersNode);
40  XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getXMLParameters(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *);
41 
42  protected:
43  PHANToM *PHANToMDevice;
44  bool all_on;
45  bool active; //if true, filter will be active
46  unsigned int freq; //frequncy of phantom thread
47  float k1; //kalmanuv zisk (1.radek)
48  float k2; //kalmanuv zisk (2.radek)
49  osg::Vec3 x_hat1; //odhad x po mereni
50  osg::Vec3 x_hat2; //minuly odhad (pro urceni rychlosti)
51  osg::Vec3 x_hat_prev1; //odhad x pred merenim
52  osg::Vec3 x_hat_prev2; //odhad x pred merenim
53  osg::Vec3 inovation; //rozdil odhadu a mereni
54 };
55 
56 };