MSCEqF 1.0
Multi State Constraint Equivariant Filter for visual inertial navigation
Loading...
Searching...
No Matches
symmetry.hpp
1// Copyright (C) 2023 Alessandro Fornasier.
2// Control of Networked Systems, University of Klagenfurt, Austria.
3//
4// All rights reserved.
5//
6// This software is licensed under the terms of the Apache License, Version 2.0
7// (the "License"); you may not use this file except in compliance with the
8// License. You may obtain a copy of the License at
9//
10// http://www.apache.org/licenses/LICENSE-2.0
11//
12// Unless required by applicable law or agreed to in writing, software
13// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15// License for the specific language governing permissions and limitations
16// under the License.
17//
18// You can contact the authors at <alessandro.fornasier@ieee.org>
19
20#ifndef SYMMETRY_HPP
21#define SYMMETRY_HPP
22
23#include "msceqf/state/state.hpp"
24#include "sensors/sensor_data.hpp"
25#include "msceqf/state/state.hpp"
26#include "utils/tools.hpp"
27
28namespace msceqf
29{
30class Symmetry
31{
32 public:
40 [[nodiscard]] static const SystemState phi(const MSCEqFState& X, const SystemState& xi);
41
49 [[nodiscard]] static const SystemState::SystemStateAlgebraMap lift(const SystemState& xi, const Imu& u);
50
58 [[nodiscard]] static const MatrixX curvatureCorrection(const MSCEqFState& X, const VectorX& inn);
59
60 static const Matrix5 D;
61
62 private:
63 Symmetry() = default;
64};
65
66} // namespace msceqf
67
68#endif // SYMMETRY_HPP
this class represent the state of the MSCEqF. This includes the state of the lifted system (element o...
Definition state.hpp:38
static const Matrix5 D
The D matrix.
Definition symmetry.hpp:60
static const SystemState phi(const MSCEqFState &X, const SystemState &xi)
Implement the right group action phi of the symmetry group, acting on the homogenous space (phi(X,...
static const SystemState::SystemStateAlgebraMap lift(const SystemState &xi, const Imu &u)
Implement the lift function. Lift the actual dynamics onto the symmetry group.
static const MatrixX curvatureCorrection(const MSCEqFState &X, const VectorX &inn)
Return the Gamma matrix for the reset / curvature correction.
The SystemState class represent the state of the system posed on the Homogenous space.
Definition system.hpp:37
std::unordered_map< SystemStateKey, VectorX > SystemStateAlgebraMap
System state algebra map.
Definition system.hpp:41
Struct for one IMU reading. It includes timestamp, angular velocity and linear acceleration....
Definition sensor_data.hpp:37