MSCEqF
1.0
Multi State Constraint Equivariant Filter for visual inertial navigation
Toggle main menu visibility
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
28
namespace
msceqf
29
{
30
class
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
msceqf::MSCEqFState
this class represent the state of the MSCEqF. This includes the state of the lifted system (element o...
Definition
state.hpp:38
msceqf::Symmetry::D
static const Matrix5 D
The D matrix.
Definition
symmetry.hpp:60
msceqf::Symmetry::phi
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,...
msceqf::Symmetry::lift
static const SystemState::SystemStateAlgebraMap lift(const SystemState &xi, const Imu &u)
Implement the lift function. Lift the actual dynamics onto the symmetry group.
msceqf::Symmetry::curvatureCorrection
static const MatrixX curvatureCorrection(const MSCEqFState &X, const VectorX &inn)
Return the Gamma matrix for the reset / curvature correction.
msceqf::SystemState
The SystemState class represent the state of the system posed on the Homogenous space.
Definition
system.hpp:37
msceqf::SystemState::SystemStateAlgebraMap
std::unordered_map< SystemStateKey, VectorX > SystemStateAlgebraMap
System state algebra map.
Definition
system.hpp:41
msceqf::Imu
Struct for one IMU reading. It includes timestamp, angular velocity and linear acceleration....
Definition
sensor_data.hpp:37
include
msceqf
symmetry
symmetry.hpp
Generated by
1.17.0