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
gps_conversion.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2012, Markus Achtelik, ASL, ETH Zurich, Switzerland
3  * You can contact the author at <acmarkus 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 GPS_CONVERSION_H_
18 #define GPS_CONVERSION_H_
19 
20 #include <Eigen/Dense>
21 #include <msf_core/msf_types.hpp>
22 
23 namespace msf_core {
24 
26  private:
28  msf_core::Vector3 ecef_ref_point_;
29  public:
31  GPSConversion();
32  void initReference(const double & latitude, const double & longitude,
33  const double & altitude);
34  msf_core::Vector3 wgs84ToEcef(const double & latitude,
35  const double & longitude,
36  const double & altitude) const;
37  msf_core::Vector3 ecefToEnu(const msf_core::Vector3 & ecef) const;
38  void adjustReference(double z_corr);
39 };
40 
41 }
42 #endif // GPS_CONVERSION_H_