1. Ausgangsfrage
Welche Entfernung sollte eine ESP32-CAM haben, um eine Fläche von 70 × 70 cm erfassen zu können?
2. Erforderlicher Abstand der Kamera
Der notwendige Abstand hängt hauptsächlich vom Blickwinkel des verwendeten Objektivs ab. Viele ESP32-CAM-Module mit OV2640-Kamera besitzen einen horizontalen Blickwinkel von ungefähr 60°.
d = 70 cm / (2 · tan(30°))
d ≈ 60,6 cm
Für eine Fläche von 70 × 70 cm ist daher ein Abstand von ungefähr 60 bis 65 cm zwischen Kamera und Arbeitsfläche ein sinnvoller Ausgangswert.
| Erfasste Fläche | Ungefährer Abstand |
|---|---|
| 30 × 30 cm | ca. 26 cm |
| 50 × 50 cm | ca. 43 cm |
| 70 × 70 cm | ca. 60 cm |
| 100 × 100 cm | ca. 87 cm |
Für die Lochrasterplatte mit ungefähr 70 × 50 cm bietet sich eine Montagehöhe von etwa 60 bis 70 cm an. Ein kleiner Rand außerhalb der Platte erleichtert die Kalibrierung.
3. Skizze des Aufbaus
Die Grafik zeigt einen möglichen Aufbau mit senkrecht montierter Kamera, Arbeitsbereich, Lochrasterplatte und Dobot.
4. Wichtige Hinweise für eine zuverlässige Erkennung
- Kamera möglichst senkrecht über der Platte montieren
- Feste und verwindungsarme Halterung verwenden
- Gleichmäßige Beleuchtung ohne harte Schatten sicherstellen
- Weitwinkelverzerrung möglichst gering halten
- Referenzpunkte oder das Lochraster zur Kalibrierung verwenden
- Bildkoordinaten anschließend in Dobot-Koordinaten umrechnen
5. Frage zur Bilderkennung
Welche KI-Applikation kann auf einem ESP, Raspberry Pi oder im Steuerprogramm die Bilderkennung übernehmen?
6. Empfohlene Lösung
ESP32-CAM als Kamera, Python auf dem PC als Auswertungssystem.
Die ESP32-CAM nimmt das Bild auf und überträgt es an das vorhandene Python-Steuerprogramm. Dort übernehmen OpenCV und bei Bedarf YOLO die Auswertung.
ESP32-CAM
↓ Bildübertragung per WLAN
Python-Steuerprogramm
├── OpenCV: Bild einlesen und entzerren
├── YOLO: Körper erkennen
├── Koordinaten umrechnen
└── dobot.py: Roboter bewegen
Diese Lösung ist für den Einstieg besonders geeignet, weil ausreichend Rechenleistung vorhanden ist und Fehler leicht untersucht werden können.
7. Geeignete Softwarelösungen
OpenCV
OpenCV eignet sich für klassische Bildverarbeitung:
- Farberkennung
- Konturerkennung
- Kreis- und Rechteckerkennung
- Bestimmung von Mittelpunkt und Größe
- Entzerrung und Kamerakalibrierung
YOLO
YOLO eignet sich für trainierte Objekterkennung. Es kann mehrere Objekte gleichzeitig erkennen und für jedes Objekt Klasse, Position und Wahrscheinlichkeit ausgeben.
Edge Impulse mit FOMO
Für eine direkte Erkennung auf einem ESP32 oder ESP32-S3 ist Edge Impulse mit FOMO geeignet. Das Modell wird mit eigenen Bildern trainiert und anschließend als Bibliothek auf den Mikrocontroller übertragen.
ESP-DL
ESP-DL ist Espressifs eigene Bibliothek für neuronale Netze auf ESP32-Plattformen. Sie ist leistungsfähig, aber technischer in der Einrichtung.
Raspberry Pi mit OpenCV und YOLO
Ein Raspberry Pi 4 oder 5 kann Kameraaufnahme, Bilderkennung und Dobot-Steuerung gemeinsam übernehmen. Das ist eine gute Lösung für eine später eigenständig arbeitende Anlage.
8. Vergleich der Plattformen
| Plattform | Geeignete Lösung | Bewertung |
|---|---|---|
| ESP32-CAM | Edge Impulse/FOMO oder ESP-DL | Gut für einfache Edge-KI, aber begrenzte Rechenleistung |
| ESP32-S3 mit PSRAM | Edge Impulse, ESP-DL | Besser für lokale KI als die klassische ESP32-CAM |
| Raspberry Pi | OpenCV und YOLO | Sehr gut für eine eigenständige Sortieranlage |
| PC-Steuerprogramm | Python, OpenCV und YOLO | Beste Einstiegs- und Entwicklungsumgebung |
9. Erkennung geometrischer Körper
Die KI kann beispielsweise folgende Klassen unterscheiden:
| Klasse | Typische Merkmale |
|---|---|
| Würfel | gleich lange Kanten, quadratische Flächen |
| Quader | rechteckige Flächen, unterschiedliche Kantenlängen |
| Zylinder | runde Grundfläche, gekrümmte Mantelfläche |
| Kegel | runde Grundfläche und Spitze |
| Kugel | keine Kanten und keine Ecken |
Zusätzlich können Farbe, Größe, Lage, Orientierung, Anzahl und Position der Objekte bestimmt werden.
10. Grenzen einer einzelnen Kamera
- Ein stehender Zylinder kann von oben wie ein Kreis aussehen.
- Eine Kugel erscheint ebenfalls kreisförmig.
- Würfel und Quader können aus bestimmten Perspektiven ähnlich wirken.
- Schatten, schlechte Beleuchtung und Überdeckungen verschlechtern die Erkennung.
Zur Verbesserung helfen eine leicht schräge Perspektive, bekannte Objektgrößen, eine zusätzliche Seitenkamera oder ein trainiertes YOLO-Modell.
11. Sinnvolle Entwicklungsstufen
- Farbe und Lage mit OpenCV erkennen
- Einfache Grundkörper über Konturen und Größen unterscheiden
- Mehrere Körper mit YOLO zuverlässig erkennen
- Bildkoordinaten in Dobot-Koordinaten umrechnen
- Dobot sortiert die erkannten Körper automatisch
- Später auf Raspberry Pi oder ESP32-S3 umstellen
12. Fazit
Für den ersten funktionsfähigen Aufbau ist folgende Kombination am sinnvollsten:
ESP32-CAM als Bildquelle + Python mit OpenCV und YOLO im vorhandenen Dobot-Steuerprogramm.
Damit lassen sich Bilderkennung, Koordinatenbestimmung, Lagerverwaltung und Robotersteuerung schrittweise miteinander verbinden.