Neubau auf Abrufe
This commit is contained in:
88
README.md
88
README.md
@@ -1,57 +1,49 @@
|
||||
# appRobotHoming
|
||||
|
||||
Eine kleine Node.js-App mit HTTPS-Frontend (einige Buttons + Textfeld) und Backend, das sich mit einem konfigurierbaren **WSS** (WebSocket Secure) verbindet. Die Buttons senden Befehle an den WSS, und das Textfeld zeigt eingehende Nachrichten/Logs an.
|
||||
`appRobotHoming` ist eine browserbasierte Benutzeroberfläche für die
|
||||
WebCam-gestützte Ermittlung der Roboterpose. Der Einstieg bleibt als einfaches
|
||||
Frontend erhalten, während die Auswertung künftig an den BodyTracker weitergeleitet
|
||||
wird.
|
||||
|
||||
## Features
|
||||
- **HTTPS**-Server wird automatisch mit **selbstsignierten Zertifikaten** betrieben.
|
||||
- **Postinstall-Task** erstellt bei `npm install` die Zertifikate unter `./certs`.
|
||||
- **WSS-Client** mit Auto-Reconnect und optionaler TLS-Validierung (in `.env` steuerbar).
|
||||
- **SSE** (Server-Sent Events) für Live-Logs im Browser.
|
||||
## Was das Projekt jetzt macht
|
||||
- Holt aus der WebCam alle 3 bis 10 Bilder ab (siehe `doc/README_WebCam.md`).
|
||||
- Zeigt ausgewählte Bilder und die zugehörigen `.npz`-Daten in einer Auswertungsansicht.
|
||||
- Übergibt diese Daten an den BodyTracker (`doc/README_BodyTracker.md`).
|
||||
- Ermittelt daraus die Roboterpose und gibt sie aus.
|
||||
|
||||
## Schnellstart
|
||||
```bash
|
||||
# 1) Abhängigkeiten installieren und Zertifikate erzeugen
|
||||
npm install
|
||||
## Aktueller Fokus
|
||||
- Benutzeroberfläche bleibt der Einstieg.
|
||||
- Bildanzeige und Poseausgabe sind zentral.
|
||||
- Der alte HTTPS/WSS-Server wurde entfernt.
|
||||
- `certs/`, `scripts/` und `server/` sind nicht mehr Teil des aktuellen Projekts.
|
||||
|
||||
# 2) (Optional) .env anlegen, basierend auf .env.sample
|
||||
cp .env.sample .env
|
||||
# Werte nach Bedarf anpassen
|
||||
## Integration
|
||||
- Die WebCam- und BodyTracker-Aufrufe laufen über das Backend, nicht direkt aus dem Browser.
|
||||
- Das Frontend lädt Snapshot-Daten über `/api/latest-snapshot`.
|
||||
- Der Browser sendet Pose-Anfragen an `/api/estimate`.
|
||||
- Das Backend kann dann auf interne Docker-Container zugreifen, z. B. auf den WebCam-Service und den BodyTracker-Service.
|
||||
- Als Fallback verwendet das Backend lokale `public/snapshots`, wenn keine externe WebCam verfügbar ist.
|
||||
- Konfigurierbare Umgebungsvariablen:
|
||||
- `WEBCAM_URL` – Basis-URL des internen Webcam-Services.
|
||||
- `BODYTRACKER_URL` – Basis-URL des internen BodyTracker-Services.
|
||||
|
||||
# 3) Starten
|
||||
npm run dev # mit Nodemon
|
||||
# oder
|
||||
npm start # ohne Nodemon
|
||||
```
|
||||
## Geplante Erweiterungen
|
||||
1. Pose an `appRobotDriver` weitergeben.
|
||||
2. Wenn die Hand nicht erkannt wird: Vorschlag für eine bessere Arm-/Foto-Position.
|
||||
3. Manuelle Eingabe von `x, y, z, a, b, c, e`.
|
||||
4. Erkennungsergebnis und erkannte Pose klar im UI ausgeben.
|
||||
|
||||
Öffne danach: https://localhost:8443
|
||||
(Da selbstsigniert, musst du dem Zertifikat im Browser einmalig vertrauen.)
|
||||
## Dateien & Struktur
|
||||
- `public/` – Frontend, UI, Client-Logik und Anzeige.
|
||||
- `doc/README_WebCam.md` – Details zur Webcam-Architektur und Bildabholung.
|
||||
- `doc/README_BodyTracker.md` – BodyTracker-Integration und Poseermittlung.
|
||||
- `test/` – bestehende Tests für die Berechnung und Auswertung.
|
||||
|
||||
## Konfiguration (`.env`)
|
||||
Siehe `.env.sample` für alle verfügbaren Variablen:
|
||||
- `HTTPS_PORT` (Standard: `8443`)
|
||||
- `WSS_URL` (z. B. `wss://localhost:9001`)
|
||||
- `WSS_INSECURE_TLS` (`true|false`) – bei selbstsignierten Upstream-Zertifikaten oft `true`
|
||||
- `HTTPS_HOST` (CN für das Zertifikat, Standard: `localhost`)
|
||||
- `HTTPS_CERT_DAYS` (Gültigkeitsdauer des selbstsignierten Zertifikats in Tagen)
|
||||
- `ALLOWED_COMMANDS` (kommasepariert; nur diese Kommandos akzeptiert das Backend)
|
||||
## Nutzung
|
||||
1. `npm install`
|
||||
2. `npm test`
|
||||
3. Öffne `public/index.html` im Browser oder nutze einen beliebigen statischen Server.
|
||||
|
||||
## Sicherheitshinweise
|
||||
- Die Inhalte des Verzeichnisses `certs/` sowie `.env` sind **absichtlich** in `.gitignore` eingetragen und werden nicht in Gitea eingecheckt.
|
||||
- In Entwicklungsumgebungen kann `WSS_INSECURE_TLS=true` nötig sein. In Produktion **deaktivieren** und echte Zertifikate verwenden.
|
||||
|
||||
## Ordnerstruktur
|
||||
```
|
||||
appRobotHoming/
|
||||
├─ public/ # Statisches Frontend (HTML/JS/CSS)
|
||||
├─ src/ # Backend-Quellcode
|
||||
├─ scripts/ # Utility-Skripte (z. B. Zertifikatserzeugung)
|
||||
├─ certs/ # (auto-generiert) selbstsignierte Zertifikate
|
||||
├─ .gitignore
|
||||
├─ .env.sample
|
||||
├─ package.json
|
||||
└─ README.md
|
||||
```
|
||||
|
||||
## Gitea-Upload
|
||||
- Committe den Code **ohne** `certs/` und **ohne** `.env`.
|
||||
- Nach dem Klonen auf einem anderen System einfach `npm install` ausführen – die Zertifikate werden wieder neu erzeugt.
|
||||
> Hinweis: Die Anwendung ist aktuell als Frontend/Analyse-UI aufgebaut. Die
|
||||
> Backend-Serverlogik aus früheren Versionen wurde bereinigt, um das Projekt zu
|
||||
> fokussieren.
|
||||
|
||||
Reference in New Issue
Block a user