Files
appRobotHoming/doc/Callibration_ROADMAP.md
2026-06-10 09:51:12 +02:00

3.7 KiB
Raw Blame History

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