Skip to content

Commit

Permalink
Merge pull request #1 from vortexntnu/rework/bayesian-framework
Browse files Browse the repository at this point in the history
  • Loading branch information
EirikKolas committed Feb 8, 2024
2 parents bf2fcf3 + 995a071 commit 96c78a2
Show file tree
Hide file tree
Showing 68 changed files with 4,361 additions and 2,517 deletions.
3 changes: 2 additions & 1 deletion .clang-format
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
# Documentation: https://releases.llvm.org/17.0.1/tools/clang/docs/ClangFormatStyleOptions.html
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
Expand Down Expand Up @@ -132,5 +133,5 @@ StatementMacros:
- QT_REQUIRE_VERSION
TabWidth: 2
UseCRLF: false
UseTab: ForIndentation
UseTab: Never
...
8 changes: 4 additions & 4 deletions .github/workflows/clang-formatter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: DoozyX/clang-format-lint-action@v0.14
- uses: actions/checkout@v3
- uses: DoozyX/clang-format-lint-action@v0.17
with:
source: '.'
exclude: './lib'
extensions: 'h,hpp,cpp,c'
clangFormatVersion: 14
clangFormatVersion: 17
inplace: True
- uses: EndBug/add-and-commit@v4
- uses: EndBug/add-and-commit@v9
with:
author_name: Clang Robot
author_email: [email protected]
Expand Down
82 changes: 0 additions & 82 deletions CMakeLists.txt

This file was deleted.

34 changes: 8 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,8 @@
Simple Kalman Filter for estimating objects in odom frame. Includes a general ekf implementation which can be configured for
use with generic process and sensor model.

Kalman Filter:

state vector: x = [x, y, z, phi, theta, psi]
measurement vector: y = [x, y, z, phi, theta, psi]

process model: x_dot = 0 + v
measurement model: y = I_6x6 * x


Important Files in ekf_python2:

dynamicmodels_py2.py: contains a parent class for dynamic models and as many different dynamic models as need to be defined
as subclasses

measurementmodels_py2.py: contains a parent class for sensor models and as many different sensor models as need to be defined
as subclasses

ekf_py2.py: contains a class implementing the ekf equations. In the case of linear model this will collapse to a standard Kalman Filter

gaussparams_py2.py: contains a class which implements multivariate gaussians

Pip3/pip requirement:
pip install dataclasses
# Vortex VKF
## Introduction
This is a C++ library for state estimation.

## Packages
### vortex-filtering
Currently, it has a pure C++ implementation of the Unscented Kalman Filter (UKF) and the Extended Kalman Filter (EKF) as well as model
[More info](vortex-filtering/README.md)
71 changes: 71 additions & 0 deletions docs/vkf_class_diagram.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<!-- Can be viewed in vscode -->

```mermaid
classDiagram
DynamicModel <|-- DynamicModelLTV
SensorModel <|-- SensorModelLTV
DynamicModelLTV <|-- ConstantVelocity
DynamicModelLTV <|-- ConstantAcceleration
DynamicModelLTV <|-- CoordinatedTurn
EKF -- DynamicModelLTV
EKF -- SensorModelLTV
UKF -- DynamicModel
UKF -- SensorModel
class EKF{
+predict()
+update()
+step()
}
class UKF{
+predict()
+update()
+step()
-get_sigma_points()
-propagate_sigma_points_f()
-propagate_sigma_points_h()
-estimate_gaussian()
}
class DynamicModel{
+virtual f_d() Vec_x
+virtual Q_d() Mat_vv
+sample_f_d() Vec_x
}
class SensorModel{
+virtual h() Vec_z
+virtual R() Mat_ww
+sample_h() Vec_z
}
class DynamicModelLTV {
+overide f_d() Vec_x
+virtual A_d() Mat_xx
+virtual Q_d() Mat_vv
+vurtual G_d() Mat_xv
+pred_from_est() Gauss_x
+pred_from_state() Gauss_x
}
class SensorModelLTV {
+override h(x) Vec_z
+virtual R(x) Mat_ww
+virtual C(x) Mat_zx
+virtual H(x) Mat_zw
+pred_from_est(x_est) Gauss_z
+pred_from_state(x) Gauss_z
}
class ConstantVelocity
class CoordinatedTurn
class ConstantAcceleration
```
<!-- Can be edited at https://mermaid.live/edit -->
63 changes: 0 additions & 63 deletions include/filters/EKF.hpp

This file was deleted.

4 changes: 0 additions & 4 deletions include/filters/EKF.md

This file was deleted.

34 changes: 0 additions & 34 deletions include/filters/Kalman_filter_base.hpp

This file was deleted.

Loading

0 comments on commit 96c78a2

Please sign in to comment.