ethzasl-msf - Modular Sensor Fusion
Time delay compensated single and multi sensor fusion framework based on an EKF
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
msf_fwds.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012-2013 Simon Lynen, ASL, ETH Zurich, Switzerland
3  * You can contact the author at <slynen at ethz dot ch>
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 #ifndef MSF_FWD_HPP_
18 #define MSF_FWD_HPP_
19 
20 #include <msf_core/msf_types.hpp>
21 #include <msf_core/msf_macros.h>
22 
23 namespace msf_core {
24 
25 //state types used to identify propagated/core/auxiliary states
26 enum {
31 };
32 
33 enum { //set power 2 flags here
34  none = 0x0,
36 };
37 
38 //forwards
39 
40 //state variable
41 template<typename type_T, int name_T, int STATETYPE = Auxiliary, int OPTIONS =
42  none>
43 struct StateVar_T;
44 
45 //the state
46 template<typename StateVector_T, typename StateDefinition_T>
47 struct GenericState_T;
48 
49 template<typename EKFState_T>
50 class MSF_Core;
51 
52 template<typename T> struct echoStateVarType;
53 template<typename T> struct CorrectionStateLengthForType;
54 template<typename T> struct StateLengthForType;
55 template<typename T> struct getEnumStateName;
56 
57 template<typename Sequence, template<typename > class Counter, typename First,
58  typename Last, bool T>
59 struct countStatesLinear;
60 
61 template<typename Sequence, typename First, typename Last, int CurrentIdx,
62  bool T>
63 struct CheckStateIndexing;
64 
65 template<typename TypeList, int INDEX> struct getEnumStateType;
66 
67 template<typename Sequence, typename StateVarT,
68  template<typename > class OffsetCalculator, typename First, typename Last,
69  bool TypeFound, int CurrentVal, bool EndOfList>
70 struct ComputeStartIndex;
71 
72 template<typename Sequence> struct CheckCorrectIndexing;
73 template<typename Sequence, template<typename > class Counter>
74 struct CountStates;
75 
76 template<typename Sequence, typename StateVarT,
77  template<typename > class Counter>
78 struct getStartIndex;
79 
80 struct resetState;
81 
82 template<typename stateT> struct copyNonPropagationStates;
83 template<typename stateList_T> struct copyQBlocksFromAuxiliaryStatesToQ;
84 template<typename T, typename stateList_T> struct correctState;
85 template<typename T, typename stateList_T> struct StatetoDoubleArray;
86 
87 class MeasurementHandler;
88 template<typename EKFState_T> class MSF_InitMeasurement;
89 template<typename EKFState_T> class MSF_MeasurementBase;
90 template<typename EKFState_T> class MSF_InvalidMeasurement;
91 template<typename EKFState_T> class MSF_SensorHandler;
92 template<typename EKFState_T> class MSF_SensorManager;
93 
94 }
95 #endif /* MSF_FWD_HPP_ */