Standardize "Ref:" to "Reference" across files (#1210)

Updated all instances of "Ref:" to "Reference" for consistency in both code and documentation. This change improves clarity and aligns with standard terminology practices.
This commit is contained in:
Atsushi Sakai
2025-05-02 10:01:19 +09:00
committed by GitHub
parent a2c42c3d68
commit 22cbee4921
45 changed files with 179 additions and 161 deletions

View File

@@ -331,7 +331,7 @@ are vectors and matrices, but the concepts are exactly the same:
- Use the process model to predict the next state (the prior)
- Form an estimate part way between the measurement and the prior
References:
Reference
~~~~~~~~~~~
1. Roger Labbes

View File

@@ -552,7 +552,7 @@ a given (X,Y) value.
.. image:: Kalmanfilter_basics_files/Kalmanfilter_basics_28_1.png
References:
Reference
~~~~~~~~~~~
1. Roger Labbes

View File

@@ -91,7 +91,7 @@ the target minimum velocity :math:`v_{min}` can be calculated as follows:
:math:`v_{min} = \frac{d_{t+1}+d_{t}}{\Delta t} = \frac{d_{t+1}+d_{t}}{(\kappa_{t+1}-\kappa_{t})}\frac{tan\dot{\delta}_{max}}{WB}`
References:
Reference
~~~~~~~~~~~
- `Vehicle Dynamics and Control <https://link.springer.com/book/10.1007/978-1-4614-1433-9>`_

View File

@@ -5,3 +5,8 @@ Ensamble Kalman Filter Localization
This is a sensor fusion localization with Ensamble Kalman Filter(EnKF).
Code Link
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. autofunction:: Localization.ensemble_kalman_filter.ensemble_kalman_filter.enkf_localization

View File

@@ -23,28 +23,40 @@ is estimated trajectory with EKF.
The red ellipse is estimated covariance ellipse with EKF.
Code: `PythonRobotics/extended_kalman_filter.py at master ·
AtsushiSakai/PythonRobotics <https://github.com/AtsushiSakai/PythonRobotics/blob/master/Localization/extended_kalman_filter/extended_kalman_filter.py>`__
Kalman Filter with Speed Scale Factor Correction
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. image:: ekf_with_velocity_correction_1_0.png
:width: 600px
This is a Extended kalman filter (EKF) localization with velocity correction.
This is for correcting the vehicle speed measured with scale factor errors due to factors such as wheel wear.
Code: `PythonRobotics/extended_kalman_ekf_with_velocity_correctionfilter.py
AtsushiSakai/PythonRobotics <https://github.com/AtsushiSakai/PythonRobotics/blob/master/Localization/extended_kalman_filter/extended_kalman_ekf_with_velocity_correctionfilter.py>`__
Filter design
Code Link
~~~~~~~~~~~~~
Position Estimation Kalman Filter
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. autofunction:: Localization.extended_kalman_filter.extended_kalman_filter.ekf_estimation
Extended Kalman Filter algorithm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Localization process using Extended Kalman Filter:EKF is
=== Predict ===
:math:`x_{Pred} = Fx_t+Bu_t`
:math:`P_{Pred} = J_f P_t J_f^T + Q`
=== Update ===
:math:`z_{Pred} = Hx_{Pred}`
:math:`y = z - z_{Pred}`
:math:`S = J_g P_{Pred}.J_g^T + R`
:math:`K = P_{Pred}.J_g^T S^{-1}`
:math:`x_{t+1} = x_{Pred} + Ky`
:math:`P_{t+1} = ( I - K J_g) P_{Pred}`
Filter design
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In this simulation, the robot has a state vector includes 4 states at
time :math:`t`.
@@ -82,27 +94,9 @@ In the code, “observation” function generates the input and observation
vector with noise
`code <https://github.com/AtsushiSakai/PythonRobotics/blob/916b4382de090de29f54538b356cef1c811aacce/Localization/extended_kalman_filter/extended_kalman_filter.py#L34-L50>`__
Kalman Filter with Speed Scale Factor Correction
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In this simulation, the robot has a state vector includes 5 states at
time :math:`t`.
.. math:: \textbf{x}_t=[x_t, y_t, \phi_t, v_t, s_t]
x, y are a 2D x-y position, :math:`\phi` is orientation, v is
velocity, and s is a scale factor of velocity.
In the code, “xEst” means the state vector.
`code <https://github.com/AtsushiSakai/PythonRobotics/blob/916b4382de090de29f54538b356cef1c811aacce/Localization/extended_kalman_filter/extended_kalman_ekf_with_velocity_correctionfilter.py#L163>`__
The rest is the same as the Position Estimation Kalman Filter.
Motion Model
~~~~~~~~~~~~
Position Estimation Kalman Filter
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
~~~~~~~~~~~~~~~~~
The robot model is
@@ -137,9 +131,61 @@ Its Jacobian matrix is
:math:`\begin{equation*}  = \begin{bmatrix} 1& 0 & -v \sin(\phi) \Delta t & \cos(\phi) \Delta t\\ 0 & 1 & v \cos(\phi) \Delta t & \sin(\phi) \Delta t\\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \end{equation*}`
Observation Model
~~~~~~~~~~~~~~~~~
The robot can get x-y position information from GPS.
So GPS Observation model is
.. math:: \textbf{z}_{t} = g(\textbf{x}_t) = H \textbf{x}_t
where
:math:`\begin{equation*} H = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ \end{bmatrix} \end{equation*}`
The observation function states that
:math:`\begin{equation*} \begin{bmatrix} x' \\ y' \end{bmatrix} = g(\textbf{x}) = \begin{bmatrix} x \\ y \end{bmatrix} \end{equation*}`
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'}{ \partial v}\\ \end{bmatrix} \end{equation*}`
:math:`\begin{equation*}  = \begin{bmatrix} 1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ \end{bmatrix} \end{equation*}`
Kalman Filter with Speed Scale Factor Correction
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is a Extended kalman filter (EKF) localization with velocity correction.
This is for correcting the vehicle speed measured with scale factor errors due to factors such as wheel wear.
In this simulation, the robot has a state vector includes 5 states at
time :math:`t`.
.. math:: \textbf{x}_t=[x_t, y_t, \phi_t, v_t, s_t]
x, y are a 2D x-y position, :math:`\phi` is orientation, v is
velocity, and s is a scale factor of velocity.
In the code, “xEst” means the state vector.
`code <https://github.com/AtsushiSakai/PythonRobotics/blob/916b4382de090de29f54538b356cef1c811aacce/Localization/extended_kalman_filter/extended_kalman_ekf_with_velocity_correctionfilter.py#L163>`__
The rest is the same as the Position Estimation Kalman Filter.
.. image:: ekf_with_velocity_correction_1_0.png
:width: 600px
Code Link
~~~~~~~~~~~~~
.. autofunction:: Localization.extended_kalman_filter.ekf_with_velocity_correction.ekf_estimation
Motion Model
~~~~~~~~~~~~
The robot model is
@@ -178,33 +224,7 @@ Its Jacobian matrix is
Observation Model
~~~~~~~~~~~~~~~~~
Position Estimation Kalman Filter
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The robot can get x-y position infomation from GPS.
So GPS Observation model is
.. math:: \textbf{z}_{t} = g(\textbf{x}_t) = H \textbf{x}_t
where
:math:`\begin{equation*} H = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ \end{bmatrix} \end{equation*}`
The observation function states that
:math:`\begin{equation*} \begin{bmatrix} x' \\ y' \end{bmatrix} = g(\textbf{x}) = \begin{bmatrix} x \\ y \end{bmatrix} \end{equation*}`
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'}{ \partial v}\\ \end{bmatrix} \end{equation*}`
:math:`\begin{equation*}  = \begin{bmatrix} 1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ \end{bmatrix} \end{equation*}`
Kalman Filter with Speed Scale Factor Correction
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The robot can get x-y position infomation from GPS.
The robot can get x-y position information from GPS.
So GPS Observation model is
@@ -225,32 +245,8 @@ Its Jacobian matrix is
:math:`\begin{equation*}  = \begin{bmatrix} 1& 0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0\\ \end{bmatrix} \end{equation*}`
Extended Kalman Filter
~~~~~~~~~~~~~~~~~~~~~~
Localization process using Extended Kalman Filter:EKF is
=== Predict ===
:math:`x_{Pred} = Fx_t+Bu_t`
:math:`P_{Pred} = J_f P_t J_f^T + Q`
=== Update ===
:math:`z_{Pred} = Hx_{Pred}`
:math:`y = z - z_{Pred}`
:math:`S = J_g P_{Pred}.J_g^T + R`
:math:`K = P_{Pred}.J_g^T S^{-1}`
:math:`x_{t+1} = x_{Pred} + Ky`
:math:`P_{t+1} = ( I - K J_g) P_{Pred}`
Ref:
~~~~
Reference
^^^^^^^^^^^
- `PROBABILISTIC-ROBOTICS.ORG <http://www.probabilistic-robotics.org/>`__

View File

@@ -16,6 +16,11 @@ The filter uses speed input and range observations from RFID for localization.
Initial position information is not needed.
Code Link
~~~~~~~~~~~~~
.. autofunction:: Localization.histogram_filter.histogram_filter.histogram_filter_localization
Filtering algorithm
~~~~~~~~~~~~~~~~~~~~
@@ -107,7 +112,7 @@ There are two ways to calculate the final positions:
References:
Reference
~~~~~~~~~~~
- `_PROBABILISTIC ROBOTICS: <http://www.probabilistic-robotics.org>`_

View File

@@ -15,6 +15,12 @@ It is assumed that the robot can measure a distance from landmarks
This measurements are used for PF localization.
Code Link
~~~~~~~~~~~~~
.. autofunction:: Localization.particle_filter.particle_filter.pf_localization
How to calculate covariance matrix from particles
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -30,7 +36,7 @@ The covariance matrix :math:`\Xi` from particle information is calculated by the
- :math:`\mu_j` is the :math:`j` th mean state of particles.
References:
Reference
~~~~~~~~~~~
- `_PROBABILISTIC ROBOTICS: <http://www.probabilistic-robotics.org>`_

View File

@@ -7,7 +7,13 @@ This is a sensor fusion localization with Unscented Kalman Filter(UKF).
The lines and points are same meaning of the EKF simulation.
References:
Code Link
~~~~~~~~~~~~~
.. autofunction:: Localization.unscented_kalman_filter.unscented_kalman_filter.ukf_estimation
Reference
~~~~~~~~~~~
- `Discriminatively Trained Unscented Kalman Filter for Mobile Robot Localization <https://www.researchgate.net/publication/267963417_Discriminatively_Trained_Unscented_Kalman_Filter_for_Mobile_Robot_Localization>`_

View File

@@ -578,7 +578,7 @@ reckoning and control functions are passed along here as well.
.. image:: ekf_slam_1_0.png
References:
Reference
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- `PROBABILISTIC ROBOTICS <http://www.probabilistic-robotics.org/>`_

View File

@@ -17,7 +17,7 @@ The black stars are landmarks for graph edge generation.
.. include:: graphSLAM_formulation.rst
.. include:: graphSLAM_SE2_example.rst
References:
Reference
~~~~~~~~~~~
- `A Tutorial on Graph-Based SLAM <http://www2.informatik.uni-freiburg.de/~stachnis/pdf/grisetti10titsmag.pdf>`_

View File

@@ -13,7 +13,7 @@ You can get different Beizer course:
.. image:: Figure_2.png
Ref:
Reference
- `Continuous Curvature Path Generation Based on Bezier Curves for
Autonomous

View File

@@ -7,7 +7,7 @@ Eta^3 Spline path planning
This is a path planning with Eta^3 spline.
Ref:
Reference
- `\\eta^3-Splines for the Smooth Path Generation of Wheeled Mobile
Robots <https://ieeexplore.ieee.org/document/4339545/>`__

View File

@@ -35,7 +35,7 @@ Low Speed and Merging and Stopping Scenario
This scenario illustrates the trajectory planning at low speeds with merging and stopping behaviors.
Ref:
Reference
- `Optimal Trajectory Generation for Dynamic Street Scenarios in a
Frenet

View File

@@ -63,7 +63,7 @@ This is a 2D grid based shortest path planning with D star algorithm.
The animation shows a robot finding its path avoiding an obstacle using the D* search algorithm.
Ref:
Reference
- `D* search Wikipedia <https://en.wikipedia.org/wiki/D*>`__
@@ -74,7 +74,7 @@ This is a 2D grid based path planning and replanning with D star lite algorithm.
.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/DStarLite/animation.gif
Ref:
Reference
- `Improved Fast Replanning for Robot Navigation in Unknown Terrain <http://www.cs.cmu.edu/~maxim/files/dlite_icra02.pdf>`_
@@ -88,7 +88,7 @@ This is a 2D grid based path planning with Potential Field algorithm.
In the animation, the blue heat map shows potential value on each grid.
Ref:
Reference
- `Robotic Motion Planning:Potential
Functions <https://www.cs.cmu.edu/~motionplanning/lecture/Chap4-Potential-Field_howie.pdf>`__

View File

@@ -16,7 +16,7 @@ Lookup table generation sample
.. image:: lookup_table.png
Ref:
Reference
- `Optimal rough terrain trajectory generation for wheeled mobile
robots <https://journals.sagepub.com/doi/pdf/10.1177/0278364906075328>`__

View File

@@ -13,7 +13,7 @@ Cyan crosses means searched points with Dijkstra method,
The red line is the final path of PRM.
Ref:
Reference
- `Probabilistic roadmap -
Wikipedia <https://en.wikipedia.org/wiki/Probabilistic_roadmap>`__

View File

@@ -97,7 +97,7 @@ Each velocity and acceleration boundary condition can be calculated with each or
:math:`v_{xe}=v_ecos(\theta_e), v_{ye}=v_esin(\theta_e)`
References:
Reference
~~~~~~~~~~~
- `Local Path Planning And Motion Control For Agv In

View File

@@ -380,7 +380,7 @@ Hence, we have:
- :math:`v = (t - φ)`
Ref:
Reference
- `15.3.2 Reeds-Shepp
Curves <https://lavalle.pl/planning/node822.html>`__

View File

@@ -53,7 +53,7 @@ This is a path planning code with Informed RRT*.
The cyan ellipse is the heuristic sampling domain of Informed RRT*.
Ref:
Reference
- `Informed RRT\*: Optimal Sampling-based Path Planning Focused via
Direct Sampling of an Admissible Ellipsoidal
@@ -68,7 +68,7 @@ Batch Informed RRT\*
This is a path planning code with Batch Informed RRT*.
Ref:
Reference
- `Batch Informed Trees (BIT*): Sampling-based Optimal Planning via the
Heuristically Guided Search of Implicit Random Geometric
@@ -87,7 +87,7 @@ In this code, pure-pursuit algorithm is used for steering control,
PID is used for speed control.
Ref:
Reference
- `Motion Planning in Complex Environments using Closed-loop
Prediction <https://acl.mit.edu/papers/KuwataGNC08.pdf>`__
@@ -109,7 +109,7 @@ A double integrator motion model is used for LQR local planner.
.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/LQRRRTStar/animation.gif
Ref:
Reference
- `LQR-RRT\*: Optimal Sampling-Based Motion Planning with Automatically
Derived Extension

View File

@@ -22,7 +22,7 @@ Lane sampling
.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathPlanning/StateLatticePlanner/LaneSampling.gif
Ref:
Reference
- `Optimal rough terrain trajectory generation for wheeled mobile
robots <https://journals.sagepub.com/doi/pdf/10.1177/0278364906075328>`__

View File

@@ -11,7 +11,7 @@ Cyan crosses mean searched points with Dijkstra method,
The red line is the final path of Vornoi Road-Map.
Ref:
Reference
- `Robotic Motion Planning <https://www.cs.cmu.edu/~motionplanning/lecture/Chap5-RoadMap-Methods_howie.pdf>`__

View File

@@ -134,7 +134,7 @@ Simulation results
References:
Reference
~~~~~~~~~~~
- `Towards fully autonomous driving: Systems and algorithms <https://ieeexplore.ieee.org/document/5940562/>`__

View File

@@ -113,7 +113,7 @@ The optimal control input `u` can be calculated as:
where `K` is the feedback gain matrix obtained by solving the Riccati equation.
References:
Reference
~~~~~~~~~~~
- `ApolloAuto/apollo: An open autonomous driving platform <https://github.com/ApolloAuto/apollo>`_

View File

@@ -9,7 +9,7 @@ speed control.
The red line is a target course, the green cross means the target point
for pure pursuit control, the blue line is the tracking.
References:
Reference
~~~~~~~~~~~
- `A Survey of Motion Planning and Control Techniques for Self-driving

View File

@@ -6,7 +6,7 @@ PID speed control.
.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathTracking/rear_wheel_feedback/animation.gif
References:
Reference
~~~~~~~~~~~
- `A Survey of Motion Planning and Control Techniques for Self-driving
Urban Vehicles <https://arxiv.org/abs/1604.07446>`__

View File

@@ -6,7 +6,7 @@ control.
.. image:: https://github.com/AtsushiSakai/PythonRoboticsGifs/raw/master/PathTracking/stanley_controller/animation.gif
References:
Reference
~~~~~~~~~~~
- `Stanley: The robot that won the DARPA grand