mirror of
https://github.com/AtsushiSakai/PythonRobotics.git
synced 2026-01-12 10:27:53 -05:00
clean up localization docs (#570)
* clean up localization docs * clean up localization docs * clean up localization docs
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 1.0 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 110 KiB |
File diff suppressed because one or more lines are too long
@@ -1,72 +0,0 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"collapsed": true,
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"# Particle Filter Localization\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"## How to calculate covariance matrix from particles\n",
|
||||
"\n",
|
||||
"The covariance matrix $\\Xi$ from particle information is calculated by the following equation: \n",
|
||||
"\n",
|
||||
"$\\Xi_{j,k}=\\frac{1}{1-\\sum^N_{i=1}(w^i)^2}\\sum^N_{i=1}w^i(x^i_j-\\mu_j)(x^i_k-\\mu_k)$\n",
|
||||
"\n",
|
||||
"- $\\Xi_{j,k}$ is covariance matrix element at row $i$ and column $k$.\n",
|
||||
"\n",
|
||||
"- $w^i$ is the weight of the $i$ th particle. \n",
|
||||
"\n",
|
||||
"- $x^i_j$ is the $j$ th state of the $i$ th particle. \n",
|
||||
"\n",
|
||||
"- $\\mu_j$ is the $j$ th mean state of particles.\n",
|
||||
"\n",
|
||||
"Ref:\n",
|
||||
"\n",
|
||||
"- [Improving the particle filter in high dimensions using conjugate artificial process noise](https://arxiv.org/pdf/1801.07000.pdf)\n"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 2
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython2",
|
||||
"version": "2.7.6"
|
||||
},
|
||||
"pycharm": {
|
||||
"stem_cell": {
|
||||
"cell_type": "raw",
|
||||
"source": [],
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 0
|
||||
}
|
||||
@@ -222,9 +222,8 @@ described with two parameters, the mean (:math:`\mu`) and the variance
|
||||
|
||||
f(x, \mu, \sigma) = \frac{1}{\sigma\sqrt{2\pi}} \exp\big [{-\frac{(x-\mu)^2}{2\sigma^2} }\big ]
|
||||
|
||||
Range is
|
||||
|
||||
.. math:: [-\inf,\inf]
|
||||
Range is :math:`[-\inf,\inf]`
|
||||
|
||||
This is just a function of mean(\ :math:`\mu`) and standard deviation
|
||||
(:math:`\sigma`) and what gives the normal distribution the
|
||||
@@ -279,7 +278,8 @@ New mean is
|
||||
|
||||
.. math:: \mu_\mathtt{new} = \frac{\sigma_z^2\bar\mu + \bar\sigma^2z}{\bar\sigma^2+\sigma_z^2}
|
||||
|
||||
New variance is
|
||||
|
||||
New variance is
|
||||
|
||||
.. math::
|
||||
|
||||
@@ -336,7 +336,7 @@ of the two.
|
||||
.. math::
|
||||
|
||||
\begin{gathered}\mu_x = \mu_p + \mu_z \\
|
||||
\sigma_x^2 = \sigma_z^2+\sigma_p^2\, \square\end{gathered}
|
||||
\sigma_x^2 = \sigma_z^2+\sigma_p^2\, \end{gathered}
|
||||
|
||||
.. code-block:: ipython3
|
||||
|
||||
|
||||
@@ -2,14 +2,6 @@
|
||||
Extended Kalman Filter Localization
|
||||
-----------------------------------
|
||||
|
||||
.. code-block:: ipython3
|
||||
|
||||
from IPython.display import Image
|
||||
Image(filename="ekf.png",width=600)
|
||||
|
||||
|
||||
|
||||
|
||||
.. image:: extended_kalman_filter_localization_files/extended_kalman_filter_localization_1_0.png
|
||||
:width: 600px
|
||||
|
||||
@@ -18,8 +10,6 @@ Extended Kalman Filter Localization
|
||||
.. figure:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/Localization/extended_kalman_filter/animation.gif
|
||||
:alt: EKF
|
||||
|
||||
EKF
|
||||
|
||||
This is a sensor fusion localization with Extended Kalman Filter(EKF).
|
||||
|
||||
The blue line is true trajectory, the black line is dead reckoning
|
||||
@@ -127,7 +117,7 @@ The observation function states that
|
||||
|
||||
Its Jacobian matrix is
|
||||
|
||||
:math:`\begin{equation*} J_g = \begin{bmatrix} \frac{\partial x'}{\partial x} & \frac{\partial x'}{\partial y} & \frac{\partial x'}{\partial \phi} & \frac{\partial x'}{\partial v}\\ \frac{\partial y'}{\partial x}& \frac{\partial y'}{\partial y} & \frac{\partial y'}{\partial \phi} & \frac{\partial y'}{ \partialv}\\ \end{bmatrix} \end{equation*}`
|
||||
:math:`\begin{equation*} J_g = \begin{bmatrix} \frac{\partial x'}{\partial x} & \frac{\partial x'}{\partial y} & \frac{\partial x'}{\partial \phi} & \frac{\partial x'}{\partial v}\\ \frac{\partial y'}{\partial x}& \frac{\partial y'}{\partial y} & \frac{\partial y'}{\partial \phi} & \frac{\partial y'}{ \partial v}\\ \end{bmatrix} \end{equation*}`
|
||||
|
||||
:math:`\begin{equation*} = \begin{bmatrix} 1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ \end{bmatrix} \end{equation*}`
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ This is a sensor fusion localization with Unscented Kalman Filter(UKF).
|
||||
|
||||
The lines and points are same meaning of the EKF simulation.
|
||||
|
||||
Ref:
|
||||
References:
|
||||
~~~~~~~~~~~
|
||||
|
||||
- `Discriminatively Trained Unscented Kalman Filter for Mobile Robot
|
||||
Localization`_
|
||||
@@ -37,9 +38,26 @@ It is assumed that the robot can measure a distance from landmarks
|
||||
|
||||
This measurements are used for PF localization.
|
||||
|
||||
Ref:
|
||||
How to calculate covariance matrix from particles
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The covariance matrix :math:`\Xi` from particle information is calculated by the following equation:
|
||||
|
||||
.. math:: \Xi_{j,k}=\frac{1}{1-\sum^N_{i=1}(w^i)^2}\sum^N_{i=1}w^i(x^i_j-\mu_j)(x^i_k-\mu_k)
|
||||
|
||||
- :math:`\Xi_{j,k}` is covariance matrix element at row :math:`i` and column :math:`k`.
|
||||
|
||||
- :math:`w^i` is the weight of the :math:`i` th particle.
|
||||
|
||||
- :math:`x^i_j` is the :math:`j` th state of the :math:`i` th particle.
|
||||
|
||||
- :math:`\mu_j` is the :math:`j` th mean state of particles.
|
||||
|
||||
References:
|
||||
~~~~~~~~~~~
|
||||
|
||||
- `PROBABILISTIC ROBOTICS`_
|
||||
- `Improving the particle filter in high dimensions using conjugate artificial process noise`_
|
||||
|
||||
Histogram filter localization
|
||||
-----------------------------
|
||||
@@ -59,12 +77,14 @@ localization.
|
||||
|
||||
Initial position is not needed.
|
||||
|
||||
Ref:
|
||||
References:
|
||||
~~~~~~~~~~~
|
||||
|
||||
- `PROBABILISTIC ROBOTICS`_
|
||||
|
||||
.. _PROBABILISTIC ROBOTICS: http://www.probabilistic-robotics.org/
|
||||
.. _Discriminatively Trained Unscented Kalman Filter for Mobile Robot Localization: https://www.researchgate.net/publication/267963417_Discriminatively_Trained_Unscented_Kalman_Filter_for_Mobile_Robot_Localization
|
||||
.. _Improving the particle filter in high dimensions using conjugate artificial process noise: https://arxiv.org/pdf/1801.07000.pdf
|
||||
|
||||
.. |2| image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/Localization/unscented_kalman_filter/animation.gif
|
||||
.. |3| image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/Localization/particle_filter/animation.gif
|
||||
|
||||
Reference in New Issue
Block a user