Skip to content

Commit

Permalink
Add an EKF overview
Browse files Browse the repository at this point in the history
  • Loading branch information
shalabymhd committed Nov 11, 2024
1 parent 8d23b43 commit 8516903
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions docs/examples/ekf/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,22 @@ parent: Examples
nav_order: 4
---

<!-- \begin{equation}
\begin{bmatrix}
\displaylines{x_{1} \\\ x_{2} \\\ \vdots \\\ x_{m}}
\end{bmatrix}
\end{equation} -->
The following examples demonstrate the usage of the MILUV dataset with the Extended Kalman Filter (EKF) for state estimation. We show EKF examples that use IMU for state propagation and UWB for state correction in single- and multi-robot scenarios. We also show EKF examples that use Visual-Inertial Navigation System (VINS) output for state propagation in a loosely-coupled manner, alongside UWB for state correction in single- and multi-robot scenarios.

The goal of these examples is to demonstrate how to use the MILUV dataset, and to provide a starting point for users to develop their own localization algorithms. The focus is not on the EKF implementation itself, and as such we split the examples into two parts: a main script for every example that loads the data and runs the EKF, and a corresponding utility script that contains the EKF model and other utilities. The files are organized as follows:

```
├── ekf_imu_one_robot.py
├── ekf_imu_three_robots.py
├── ekf_vins_one_robot.py
├── ekf_vins_three_robots.py
├── ekfutils
│ ├── common.py
│ ├── imu_models.py
│ ├── imu_one_robot_models.py
│ ├── imu_three_robots_models.py
│ ├── vins_one_robot_models.py
│ └── vins_three_robots_models.py
```

As you can see, the main scripts are named according to the scenario they demonstrate, and are in the form `ekf_<model>_<num_robots>.py`. The utility scripts are named according to the model they contain, and are in the form `<model>_<num_robots>_models.py`. The `common.py` script contains utilities that are common to all EKF models, such as an outlier rejection algorithm and classes to store the EKF state and covariance history. Meanwhile, the `imu_models.py` is IMU-EKF-specific and contains necessary functions for the IMU EKF models. We focus on explaining how to load and use data from MILUV in these examples, but also do provide a brief explanation of the EKF models used for the interested reader.

0 comments on commit 8516903

Please sign in to comment.