Files
slam-stereo-blueos/docs/source/theory_baseline.rst
2026-04-19 18:07:05 +02:00

99 lines
2.6 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Théorie — Baseline Stéréo
==========================
Modèle géométrique
------------------
Le système stéréo calibré suit le modèle trou d'aiguille rectifié.
Après rectification, les lignes épipolaires sont horizontales et
la disparité est uniquement sur l'axe X.
Relation profondeurdisparité
------------------------------
.. math::
Z = \frac{f \cdot B}{d}
Avec :
- :math:`Z` — profondeur en mètres
- :math:`f` — focale en **pixels** (après calibration)
- :math:`B` — baseline en **mètres**
- :math:`d` — disparité en **pixels**
Paramètres du système
---------------------
.. list-table::
:header-rows: 1
* - Paramètre
- Valeur
- Source
* - Focale estimée :math:`f`
- 525 px
- LifeCam HD-3000, résolution 1280×720
* - Baseline :math:`B`
- 0.11 m
- Support OpenSCAD, médiane 1012 cm
* - Disparité min :math:`d_{min}`
- 1 px
- Limite théorique
* - Disparité max :math:`d_{max}`
- 64 px
- StereoBM / SGBM config
Portée théorique
----------------
.. math::
Z_{max} = \frac{f \cdot B}{d_{min}} = \frac{525 \times 0.11}{1} = 57.75 \text{ m}
.. math::
Z_{min} = \frac{f \cdot B}{d_{max}} = \frac{525 \times 0.11}{64} \approx 0.9 \text{ m}
**Portée pratique sous-marin** : 0.5 m 5 m
La limite pratique est imposée par la **visibilité de l'eau** (turbidité,
diffusion), pas par la géométrie. En eau claire méditerranéenne,
portée max mesurée ≈ 8 m. En eau verte côtière : ≈ 23 m.
Pourquoi 1012 cm ?
--------------------
**Baseline trop courte** (< 5 cm) :
- Disparité trop faible → bruit dominant
- :math:`Z_{max}` réduit, peu de points 3D à grande distance
**Baseline trop longue** (> 20 cm) :
- Zone aveugle centrale grande (:math:`Z_{min}` augmente)
- Occultations importantes (objet vu par une seule caméra)
- Synchronisation temporelle plus critique
**Plage 1012 cm** :
- Compromise optimal pour portée 0.55 m
- Compatible avec gabarit BlueROV2 (largeur tube ~10 cm)
- Résolution en profondeur : :math:`\delta Z = Z^2 / (f \cdot B)` ≈ 4 cm à 2 m
Sensibilité à la calibration
-----------------------------
Une erreur de 1 mm sur la baseline :math:`B` induit une erreur
:math:`\delta Z / Z = \delta B / B \approx 0.9\%` sur toutes les profondeurs.
Conserver le support imprimé rigide et éviter le choc thermique
(dilatation différentielle PETG/aluminium).
Références
----------
:cite:`campos2021orbslam3` — ORB-SLAM3, précision stéréo-inertiel.
:cite:`ferrera2019underwater` — Calibration sous-marine, modèle réfraction.