Files
slam-stereo-blueos/README.md
2026-04-19 17:49:39 +02:00

109 lines
2.7 KiB
Markdown
Raw 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.
# SLAM Stéréo BlueOS — AUV Sous-Marin Autonome
SLAM visuel stéréo pour drone sous-marin (AUV) intégré BlueOS.
Stack: ORB-SLAM3 + ROS2 Humble + Python + Flask.
## Objectifs
- Localisation et cartographie 3D temps réel en milieu sous-marin
- Portée cible : **0.5 m 5 m** (visibilité eau douce/mer côtière)
- Baseline stéréo : **11 cm** (médiane 10-12 cm optimale)
- Déploiement : Raspberry Pi 4B sous BlueOS (Docker extension)
- Interface web Flask pour monitoring et calibration
## Hardware
| Composant | Modèle | Quantité |
|-----------|--------|----------|
| SBC | Raspberry Pi 4B (4 GB) | 1 |
| Caméra gauche | Microsoft LifeCam HD-3000 | 1 |
| Caméra droite | Microsoft LifeCam HD-3000 | 1 |
| IMU | À définir (MPU-6050 ou ICM-20689) | 1 |
| Support | Impression 3D PETG (voir /hardware/) | 1 |
## Schéma Baseline Stéréo
```
CAMÉRA GAUCHE CAMÉRA DROITE
| |
|<------- B = 11cm ----->|
| |
_____|_____ _____|_____
| [o] f | | f [o] |
|___________| |___________|
| |
| AUV |
|_______________________|
Z_max = f * B / d_min
= 525 px * 0.11 m / 1 px
≈ 57.75 m (théorique, ~5 m pratique sous-marin)
Z_min = f * B / d_max
= 525 * 0.11 / 64
≈ 0.9 m
```
## Quick Start
### 1. Calibration stéréo (PC)
```bash
# Capturer les paires de damier
python src/calibration/stereo_capture.py
# Calibrer
python src/calibration/stereo_calibrate.py
# → génère config/stereo_calib.yaml
```
### 2. Déploiement Pi
```bash
bash scripts/deploy_pi.sh <IP_DU_PI>
```
### 3. Interface web
```bash
cd src/interface && python app.py
# → http://localhost:5000
```
### 4. Documentation Sphinx
```bash
pip install sphinx sphinx-rtd-theme sphinxcontrib-bibtex myst-parser
sphinx-build -b html docs/source docs/build
# → ouvrir docs/build/index.html
```
## Structure
```
SLAM_Stereo_BlueOS/
├── src/
│ ├── calibration/ # Calibration stéréo OpenCV
│ ├── slam/ # Wrapper ORB-SLAM3
│ └── interface/ # Flask web UI
├── docs/ # Sphinx documentation
├── hardware/ # OpenSCAD support caméras
├── datasets/ # (gitignored — trop lourds)
├── scripts/ # Deploy SSH Pi
├── config/ # YAML calibration + params
└── Dockerfile # BlueOS extension
```
## Dépendances Python
```
opencv-python>=4.8
flask>=3.0
numpy>=1.24
pyyaml>=6.0
```
## Licence
MIT — Baptiste Moulin 2026