My Project 1.0
Holistic Fusion: A Generic Framework for Multimodal Sensor Fusion
Loading...
Searching...
No Matches
HolisticFusionHolistic.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_HOLISTIC_H
9#define HOLISTIC_FUSION_HOLISTIC_H
10
11// Inherited Class
13
14// Package
18
19namespace holistic_fusion {
20
21// Actual Class
22class HolisticFusionHolistic : virtual public HolisticFusion {
23 public:
25 virtual ~HolisticFusionHolistic() = default;
26
27 // Adder Functions for Holistic Fusion
31 const bool addToOnlineSmootherFlag = true) override;
33 // Constrains the rotation about the z-axis of the world between the estimated and the measured orientation R_M_S of the sensor frame
34 // in its fixed frame M. Unlike the yaw, it is defined for every attitude and leaves roll and pitch to the other measurements.
35 // In a fixed frame other than the world frame, the heading goes through the alignment keyframe of that frame. Only a position or pose
36 // measurement of the same frame creates that keyframe, so add it first. The heading measurement is skipped with a warning while the
37 // frame has no keyframe.
46 const Eigen::Isometry3d& T_I_sensorFrame, const Eigen::Vector3d& I_w_W_I);
47
50 const int landmarkCreationCounter) override;
52
54 // TODO: add binary measurements
55
56 private:
57 // Whether a measurement without a position can enter the graph, i.e. its fixed frame has an alignment keyframe. Warns if not.
59};
60
61} // namespace holistic_fusion
62
63#endif // HOLISTIC_FUSION_HOLISTIC_H
void addUnaryPosition3AbsoluteMeasurement(UnaryMeasurementXDAbsolute< Eigen::Vector3d, 3 > &R_t_R_S) override
void addUnaryVelocity3AbsoluteMeasurement(UnaryMeasurementXDAbsolute< Eigen::Vector3d, 3 > &R_v_R_S) override
void addUnaryPose3AbsoluteMeasurement(const UnaryMeasurementXDAbsolute< Eigen::Isometry3d, 6 > &R_T_R_S, const bool addToOnlineSmootherFlag=true) override
Unary Measurements / Absolute Measurements: In reference frame --> systematic drift.
void addUnaryBearing3LandmarkMeasurement(UnaryMeasurementXDLandmark< Eigen::Vector3d, 3 > &S_bearing_S_L) override
void addUnaryVelocity3LocalMeasurement(UnaryMeasurementXD< Eigen::Vector3d, 3 > &S_v_F_S) override
void addUnaryPosition3LandmarkMeasurement(UnaryMeasurementXDLandmark< Eigen::Vector3d, 3 > &S_t_S_L, const int landmarkCreationCounter) override
Landmark Measurements: No systematic drift.
bool hasAlignmentKeyframeForMeasurementWithoutPosition_(const UnaryMeasurementAbsolute &measurement) const
Binary Measurements: Purely relative.
void addUnaryHeadingAbsoluteMeasurement(const UnaryMeasurementXDAbsolute< Eigen::Matrix3d, 1 > &R_M_S)
void addUnaryVelocity3LocalMovingFrameMeasurement(UnaryMeasurementXD< Eigen::Vector3d, 3 > &S_v_F_S, const Eigen::Isometry3d &T_I_sensorFrame, const Eigen::Vector3d &I_w_W_I)
HolisticFusion()
Constructor --------—.
Class to represent an absolute unary measurement in the graph. Exact dimension is not known.
Class to represent x-dimensional absolute unary measurement in the graph.
Class to represent x-dimensional landmark unary measurement in the graph.
Class to represent x-dimensional unary measurement in the graph.