179 lines
6.6 KiB
Markdown
179 lines
6.6 KiB
Markdown
# CPS Geislinger PackPal
|
|
|
|
Dieses Repository enthält die Software und Dokumentation für den **CPS Geislinger PackPal**, ein System, das Mitarbeiter beim Einpacken von Aufträgen unterstützt. Es kombiniert eine Waage und eine Kamera, um Bauteile automatisch zu erkennen, die Stückzahl zu prüfen und den Verpackungsprozess effizienter zu gestalten.
|
|
|
|
---
|
|
|
|
## Inhaltsverzeichnis
|
|
|
|
1. [Ordnerstruktur](#ordnerstruktur)
|
|
2. [Systemanforderungen](#systemanforderungen)
|
|
3. [Installation](#installation)
|
|
4. [Anwendung](#anwendung)
|
|
- [Programmstart](#programmstart)
|
|
- [Arbeitsablauf](#arbeitsablauf)
|
|
5. [Fehlerbehebung](#fehlerbehebung)
|
|
6. [Kontakt](#kontakt)
|
|
|
|
---
|
|
|
|
## Funktionsumfang
|
|
|
|
## Ordnerstruktur
|
|
|
|
Die Dateien und Ordner sind wie folgt strukturiert:
|
|
|
|
- **`workflow.py`**: Hauptprogramm zur Steuerung des Systems.
|
|
- **`readme.md`**: Diese Anleitung.
|
|
- **`environment.yaml`**: Conda-Umgebungskonfigurationsdatei.
|
|
- **`compose.yml`**: Docker Compose Datei für lokale Tests mit MariaDB.
|
|
- **`.gitignore`**: Einstellungen für Git, um unnötige Dateien auszuschließen.
|
|
- **`doc/`**: Zusätzliche Dokumentation.
|
|
- **`ESP32/`**: Firmwaredateien für den ESP32-Hilfscontroller.
|
|
- **`lib/`**: Lokale Python-Bibliotheken.
|
|
- **`models/`**: Machine Learning-Modelle für die Bauteilerkennung.
|
|
- **`pyqt_project/`**: Projektdateien für die Benutzeroberfläche (erstellt mit Qt Designer).
|
|
|
|
---
|
|
|
|
## Systemanforderungen
|
|
|
|
- **Betriebssystem**: Ubuntu 24.04 oder kompatibel.
|
|
- **Python-Version**: Python 3.10 oder höher.
|
|
- **Abhängigkeiten**:
|
|
- Conda oder Miniforge zur Verwaltung von Python-Bibliotheken.
|
|
- Docker und Docker Compose (optional für lokale Tests mit MariaDB).
|
|
- **Hardware**:
|
|
- Mitgelieferte Waage mit USB-/serieller Verbindung.
|
|
- Mitgelieferte Kamera für die Bauteilerkennung.
|
|
- Mitgelieferte 2x ESP32-Mikrocontroller als Hilfsgeräte.
|
|
|
|
---
|
|
|
|
## Funktionsumfang
|
|
|
|
Der **CPS Geislinger Packaging Assistant** bietet eine Vielzahl an Funktionen, um den Verpackungsprozess effizient zu unterstützen.
|
|
|
|
### Lichtsteuerung
|
|
|
|
- **Flexible Steuerung**:
|
|
- LEDs und Scheinwerfer können unabhängig voneinander per Software gesteuert werden, um optimale Arbeitsbedingungen zu schaffen.
|
|
|
|
### Datenerfassung
|
|
|
|
- **Integrierte Geräteansteuerung**:
|
|
- Waage und Kamera werden über den mitgelieferten Mini-PC angesteuert und ausgelesen, sodass die Datenerfassung nahtlos in den Workflow integriert ist.
|
|
|
|
### Vortrainierte Modelle
|
|
|
|
- **Effiziente Bauteilerkennung**:
|
|
- Das System enthält vortrainierte Modelle, die mit über **1.000 annotierten Datenframes** erstellt wurden.
|
|
- **Modelloptionen**:
|
|
- Standardmäßig wird **YOLOv8n** (kleinste Modellvariante) verwendet, um die begrenzte Rechenleistung des Mini-PCs zu berücksichtigen.
|
|
- Zusätzlich werden vortrainierte **YOLOv8m**- und **YOLOv10n**-Modelle bereitgestellt, um erweiterte Tests durchzuführen oder zukünftige Hardware-Upgrades zu berücksichtigen.
|
|
|
|
### Vollständig vorinstallierter Mini-PC
|
|
|
|
- **Leistungsstarker Mini-PC**:
|
|
- **Prozessor**: 12th Gen Intel Prozessor, optimiert für Effizienz.
|
|
- **Betriebssystem**: Ubuntu 24.04 ist vorinstalliert und einsatzbereit.
|
|
- **Grafik**: Keine dedizierte Grafikkarte, um Energieverbrauch und Kosten zu minimieren, bei gleichzeitiger Eignung für die enthaltenen leichten Modelle.
|
|
|
|
### Softwareumgebung
|
|
|
|
- **Umsetzung in Python**:
|
|
Die gesamte Softwareumgebung wurde in **Python** entwickelt, um eine einfache Erweiterbarkeit, Wartung und Integration mit modernen Machine-Learning-Frameworks zu gewährleisten.
|
|
|
|
- **Quellcode verfügbar**:
|
|
Der komplette Quellcode ist in diesem Repository enthalten und modular aufgebaut, sodass spezifische Funktionen leicht angepasst oder erweitert werden können.
|
|
|
|
- **Vorteile der Python-Umgebung**:
|
|
- Breite Unterstützung durch Bibliotheken wie **OpenCV**, **PyTorch**, und **PyQt**.
|
|
- Leichte Integration von Machine-Learning-Modellen und Hardwaresteuerung.
|
|
- Hohe Lesbarkeit und einfache Anpassung durch gut dokumentierten Code.
|
|
|
|
|
|
## Installation
|
|
|
|
Falls das System nicht vorinstalliert ist, folgen Sie diesen Schritten:
|
|
|
|
### 1. Conda-Umgebung erstellen
|
|
|
|
Installieren Sie die Conda-Abhängigkeiten, indem Sie die `environment.yaml` Datei nutzen:
|
|
|
|
```bash
|
|
conda env create -n geislinger -f environment.yaml
|
|
```
|
|
|
|
### 2. Conda-Umgebung aktivieren
|
|
|
|
Setzen Sie die erstellte Umgebung als Standardumgebung, indem Sie in der Datei ~/.bashrc folgendes hinzufügen:
|
|
|
|
> conda activate geislinger
|
|
|
|
Alternativ können Sie die Umgebung vor jedem Programmstart manuell aktivieren:
|
|
```bash
|
|
conda activate geislinger
|
|
```
|
|
|
|
### 3. Optional: MariaDB-Testumgebung starten
|
|
|
|
Falls Sie die Datenbank lokal testen möchten, starten Sie Docker Compose im Projektordner:
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
### 4. Software für USB Relay Board installieren
|
|
https://github.com/scheiber-sa/sainsmartUsbRelay
|
|
|
|
## Anwendung
|
|
|
|
### Programmstart
|
|
Starten Sie das Hauptprogramm aus dem Projektordner mit:
|
|
|
|
```bash
|
|
python3 workflow.py
|
|
```
|
|
|
|
Die Benutzeroberfläche wird gestartet und alle Geräte (Waage, Kamera, ESP32) werden automatisch initialisiert.
|
|
|
|
### Arbeitsablauf
|
|
|
|
1. Auftrag laden
|
|
Geben Sie die Auftragsnummer in das entsprechende Feld ein und laden Sie die Auftragsdaten.
|
|
|
|
2. Bauteilerkennung
|
|
Wählen Sie das Bauteil manuell aus oder lassen Sie es automatisch durch die Kamera und Waage bestimmen.
|
|
|
|
3. Bestücken
|
|
Legen Sie die Teile auf, bis die Waage die gewünschte Stückzahl bestätigt.
|
|
|
|
4. Weiterverpacken
|
|
Wiederholen Sie den Vorgang für alle Bauteile im Auftrag.
|
|
|
|
5. Auftragsabschluss
|
|
Sobald alle Bauteile verpackt sind, schließen Sie den Auftrag ab.
|
|
|
|
## Fehlerbehebung
|
|
|
|
- Geräte werden nicht erkannt:
|
|
Stellen Sie sicher, dass alle Geräte korrekt verbunden sind und überprüfen Sie die Konfiguration.
|
|
|
|
- Waage zeigt falsche Werte:
|
|
Kalibrieren Sie die Waage erneut gemäß der Dokumentation. Die Waage muss auf Kg eingestellt werden, damit die Daten korrekt übermittelt werden.
|
|
|
|
- Fehlerhafte Bauteilerkennung:
|
|
Stellen Sie sicher, dass die Kamera sauber ist und die Beleuchtung ausreichend ist. Prüfen Sie auch, ob das richtige Modell in models/ geladen wurde.
|
|
|
|
- Datenbankfehler:
|
|
Vergewissern Sie sich, dass die Datenbank MariaDB läuft und die Zugangsdaten korrekt in der Konfiguration hinterlegt sind.
|
|
|
|
## Kontakt
|
|
|
|
Für weitere Unterstützung oder Fragen wenden Sie sich bitte an:
|
|
|
|
- E-Mail: clemens.fritze@unileoben.ac.at
|
|
- Telefon: +43 3842 402 1904
|
|
- Dokumentation: Weitere Informationen finden Sie im Ordner doc/.
|
|
|
|
Dieses Projekt wurde entwickelt, um die Effizienz und Genauigkeit im Verpackungsprozess zu steigern und die Arbeitsbelastung der Mitarbeiter zu reduzieren. Vielen Dank für die Nutzung des CPS Geislinger PackPal! |