Callibration
This commit is contained in:
123
doc/Callibration_ROADMAP.md
Normal file
123
doc/Callibration_ROADMAP.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# Calibration Roadmap – appRobotHoming
|
||||
|
||||
> Stand: 2026-06-10
|
||||
> Ziel: Vor dem Homing muss das System einmalig (oder nach mechanischen Änderungen) kalibriert werden.
|
||||
|
||||
---
|
||||
|
||||
## Übersicht der Kalibrierungsschritte
|
||||
|
||||
```
|
||||
[1] Camera NPZ → [2] Board → [3] Robot X-Axis → [4] Arm1 / Arm2
|
||||
```
|
||||
|
||||
Jede Stufe baut auf der vorherigen auf. Die Ergebnisse werden als Dateien gespeichert und vom Homing-Prozess geladen.
|
||||
|
||||
---
|
||||
|
||||
## [1] Camera NPZ – Kamerakalibrierung
|
||||
|
||||
**Ziel:** Intrinsische Kameraparameter (Brennweite, Verzerrungskoeffizienten, Kameramatrix) für jede Kamera ermitteln und als `.npz`-Datei speichern.
|
||||
|
||||
**Vorgehen (noch offen):**
|
||||
- Schachbrettmuster / ChArUco-Board aus verschiedenen Winkeln fotografieren
|
||||
- OpenCV `calibrateCamera()` ausführen
|
||||
- Ergebnis speichern: `cam0_calib.npz`, `cam1_calib.npz`, `cam2_calib.npz`
|
||||
|
||||
**Aktionen auf der Seite (geplant):**
|
||||
- Fotos aufnehmen (mehrere Posen)
|
||||
- Kalibrierung berechnen
|
||||
- `.npz`-Datei herunterladen / auf Server speichern
|
||||
- Reprojektionsfehler anzeigen
|
||||
|
||||
**Offene Fragen:**
|
||||
- Welches Muster wird verwendet (Schachbrett vs. ChArUco)?
|
||||
- Automatische Erfassung oder manueller Upload der Bilder?
|
||||
|
||||
---
|
||||
|
||||
## [2] Board – Referenz-Board-Kalibrierung
|
||||
|
||||
**Ziel:** Die extrinsische Position des Marker-Boards im Kamera-Koordinatensystem bestimmen.
|
||||
|
||||
**Vorgehen (noch offen):**
|
||||
- Board in definierter Position aufstellen
|
||||
- Foto aufnehmen, Marker erkennen (`aruco.detectMarkers`)
|
||||
- `solvePnP` → Rotations- und Translationsvektor berechnen
|
||||
- Transformation Board → Kamera speichern
|
||||
|
||||
**Aktionen auf der Seite (geplant):**
|
||||
- Kamerabild anzeigen mit erkannten Markern
|
||||
- Pose berechnen und anzeigen
|
||||
- Kalibrierungsdatei speichern
|
||||
|
||||
**Offene Fragen:**
|
||||
- Feste Board-Position oder Referenzpunkte einmessen?
|
||||
|
||||
---
|
||||
|
||||
## [3] Robot X-Axis – Achsenrichtung kalibrieren
|
||||
|
||||
**Ziel:** Die X-Achse des Roboters im Weltkoordinatensystem verorten (Ausrichtung und Nullpunkt).
|
||||
|
||||
**Vorgehen (noch offen):**
|
||||
- Roboter an bekannte X-Positionen fahren (z. B. X=0 und X=max)
|
||||
- Kamera beobachtet den Endeffektor / Marker am Roboter
|
||||
- Achsvektor aus zwei Messpunkten berechnen
|
||||
- Ergebnis speichern
|
||||
|
||||
**Aktionen auf der Seite (geplant):**
|
||||
- Roboter zu Referenzposition 1 fahren → Foto → Marker-Position merken
|
||||
- Roboter zu Referenzposition 2 fahren → Foto → Marker-Position merken
|
||||
- Achsvektor berechnen und anzeigen
|
||||
- Speichern
|
||||
|
||||
**Offene Fragen:**
|
||||
- Wie viele Referenzpunkte werden benötigt?
|
||||
- Wird die Z-Achse separat kalibriert?
|
||||
|
||||
---
|
||||
|
||||
## [4] Arm1 / Arm2 – Gelenk-Kalibrierung
|
||||
|
||||
**Ziel:** Nullposition und Kinematikparameter von Arm1 und Arm2 einmessen.
|
||||
|
||||
**Vorgehen (noch offen):**
|
||||
- Arm in mechanische Nullposition fahren (physischer Anschlag oder Markierung)
|
||||
- Kamera prüft die tatsächliche Arm-Pose
|
||||
- Offset zwischen Soll und Ist berechnen und speichern
|
||||
|
||||
**Aktionen auf der Seite (geplant):**
|
||||
- Arm1 auf Nullposition → Foto → Winkel ablesen
|
||||
- Arm2 auf Nullposition → Foto → Winkel ablesen
|
||||
- Offset-Korrektur berechnen und speichern
|
||||
|
||||
**Offene Fragen:**
|
||||
- Separater Marker pro Armgelenk?
|
||||
- Kalibrierung bei jedem Start oder nur nach Umbau?
|
||||
|
||||
---
|
||||
|
||||
## Dateistruktur (geplant)
|
||||
|
||||
```
|
||||
calibration/
|
||||
cam0_calib.npz
|
||||
cam1_calib.npz
|
||||
cam2_calib.npz
|
||||
board_pose.json
|
||||
robot_xaxis.json
|
||||
arm_offsets.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Status
|
||||
|
||||
| Schritt | Status | Anmerkung |
|
||||
|------------------|--------------|----------------------------------|
|
||||
| Camera NPZ | offen | Konzept unklar |
|
||||
| Board | offen | Konzept unklar |
|
||||
| Robot X-Axis | offen | Konzept unklar |
|
||||
| Arm1 / Arm2 | offen | Konzept unklar |
|
||||
| Calibration-UI | in Arbeit | HTML-Seite angelegt |
|
||||
Reference in New Issue
Block a user