My Project 1.0
Holistic Fusion: A Generic Framework for Multimodal Sensor Fusion
Loading...
Searching...
No Matches
GnssHandler.h
Go to the documentation of this file.
1/*
2Copyright 2024 by Julian Nubert, Robotic Systems Lab, ETH Zurich.
3All rights reserved.
4This file is released under the "BSD-3-Clause License".
5Please see the LICENSE file that has been included as part of this package.
6 */
7
8#ifndef HOLISTIC_FUSION_GNSS_HANDLER_H
9#define HOLISTIC_FUSION_GNSS_HANDLER_H
10
11// C++
12#include <Eigen/Eigen>
13
14// Workspace
17
18namespace holistic_fusion {
19
21 public:
23
24 // Methods
25 // Init
26 void initHandler(const Eigen::Vector3d& accumulatedLeftCoordinates, const Eigen::Vector3d& accumulatedRightCoordinates);
27 void initHandler(const Eigen::Vector3d& accumulatedCoordinates);
28
29 // Conversion methods
30 void convertNavSatToPositions(const Eigen::Vector3d& leftGnssCoordinate, const Eigen::Vector3d& rightGnssCoordinate,
31 Eigen::Vector3d& leftPosition, Eigen::Vector3d& rightPosition);
32 void convertNavSatToPosition(const Eigen::Vector3d& gnssCoordinate, Eigen::Vector3d& position);
33 double computeYaw(const Eigen::Vector3d& gnssPos1, const Eigen::Vector3d& gnssPos2);
34 void convertNavSatToPositionLV03(const Eigen::Vector3d& gnssCoordinate, Eigen::Vector3d& position);
35
36 // Setters
37 // For state machine and bookkeeping
38 void setUseGnssReferenceFlag(const bool useGnssReferenceFlag) { useGnssReferenceFlag_ = useGnssReferenceFlag; }
39 void setGlobalYawDegFromFile(const double globalYawDegFromFile) { globalYawDegFromFile_ = globalYawDegFromFile; }
40 void setUseYawInitialGuessFromFile(const bool useYawInitialGuessFromFile) { useYawInitialGuessFromFile_ = useYawInitialGuessFromFile; }
41 void setUseYawInitialGuessFromAlignment(const bool useYawInitialGuessFromAlignment) {
42 useYawInitialGuessFromAlignment_ = useYawInitialGuessFromAlignment;
43 }
44 // Actual Reference Coordinate Parameters
45 void setGnssReferenceLatitude(const double gnssReferenceLatitude) { presetGnssReferenceLatitude_ = gnssReferenceLatitude; }
46 void setGnssReferenceLongitude(const double gnssReferenceLongitude) { presetGnssReferenceLongitude_ = gnssReferenceLongitude; }
47 void setGnssReferenceAltitude(const double gnssReferenceAltitude) { presetGnssReferenceAltitude_ = gnssReferenceAltitude; }
48 void setGnssReferenceHeading(const double gnssReferenceHeading) { presetGnssReferenceHeading_ = gnssReferenceHeading; }
49
50 // Getters
55 // Reference Coordinate Parameters
56 double getGnssReferenceLatitude() const { return gnssSensor_.getReferenceLatitude(); }
57 double getGnssReferenceLongitude() const { return gnssSensor_.getReferenceLongitude(); }
58 double getGnssReferenceAltitude() const { return gnssSensor_.getReferenceAltitude(); }
59 double getGnssReferenceHeading() const { return gnssSensor_.getReferenceHeading(); }
60
61 private:
62 // Member methods
63 Eigen::Vector3d computeHeading_(const Eigen::Vector3d& gnssPos1, const Eigen::Vector3d& gnssPos2);
65 static double computeYawFromHeadingVector_(const Eigen::Vector3d& headingVector);
66
67 // Member variables
70
71 // State Machine and bookkeeping.
76
77 // Reference Coordinate Parameters
82};
83
84} // namespace holistic_fusion
85
86#endif // HOLISTIC_FUSION_GNSS_HANDLER_H
void setGnssReferenceLongitude(const double gnssReferenceLongitude)
Definition GnssHandler.h:46
bool getUseYawInitialGuessFromAlignment() const
Definition GnssHandler.h:54
void convertNavSatToPosition(const Eigen::Vector3d &gnssCoordinate, Eigen::Vector3d &position)
double getGnssReferenceLongitude() const
Definition GnssHandler.h:57
static double computeYawFromHeadingVector_(const Eigen::Vector3d &headingVector)
double getGnssReferenceLatitude() const
Definition GnssHandler.h:56
void convertNavSatToPositionLV03(const Eigen::Vector3d &gnssCoordinate, Eigen::Vector3d &position)
void setGnssReferenceHeading(const double gnssReferenceHeading)
Definition GnssHandler.h:48
Eigen::Vector3d computeHeading_(const Eigen::Vector3d &gnssPos1, const Eigen::Vector3d &gnssPos2)
void setGlobalYawDegFromFile(const double globalYawDegFromFile)
Definition GnssHandler.h:39
void initHandler(const Eigen::Vector3d &accumulatedLeftCoordinates, const Eigen::Vector3d &accumulatedRightCoordinates)
void setUseYawInitialGuessFromAlignment(const bool useYawInitialGuessFromAlignment)
Definition GnssHandler.h:41
bool getUseGnssReferenceFlag() const
Definition GnssHandler.h:51
double getGnssReferenceAltitude() const
Definition GnssHandler.h:58
void setGnssReferenceAltitude(const double gnssReferenceAltitude)
Definition GnssHandler.h:47
void setUseYawInitialGuessFromFile(const bool useYawInitialGuessFromFile)
Definition GnssHandler.h:40
double computeYaw(const Eigen::Vector3d &gnssPos1, const Eigen::Vector3d &gnssPos2)
void setUseGnssReferenceFlag(const bool useGnssReferenceFlag)
Definition GnssHandler.h:38
double getGnssReferenceHeading() const
Definition GnssHandler.h:59
void setGnssReferenceLatitude(const double gnssReferenceLatitude)
Definition GnssHandler.h:45
bool getUseYawInitialGuessFromFile() const
Definition GnssHandler.h:53
void convertNavSatToPositions(const Eigen::Vector3d &leftGnssCoordinate, const Eigen::Vector3d &rightGnssCoordinate, Eigen::Vector3d &leftPosition, Eigen::Vector3d &rightPosition)
double getGlobalYawDegFromFile() const
Definition GnssHandler.h:52