Umbau 12: Robot-Kinematics als extends RobotBase
This commit is contained in:
@@ -9,7 +9,8 @@ Dieses Projekt empfängt G-Code und Robotersteuerbefehle, berechnet Inverse Kine
|
|||||||
- Info-Server für Status, Position und einfache Weboberfläche
|
- Info-Server für Status, Position und einfache Weboberfläche
|
||||||
- `server/InputWS.js` empfängt Nachrichten von WebSocket-Clients, prüft sie auf G-Code oder Datei-Kommandos und gibt Positionsdaten zurück.
|
- `server/InputWS.js` empfängt Nachrichten von WebSocket-Clients, prüft sie auf G-Code oder Datei-Kommandos und gibt Positionsdaten zurück.
|
||||||
- `robot/GCode.js` verarbeitet G-Code, übersetzt ihn in Roboter-Koordinaten und triggert `robot.sendCommand()`.
|
- `robot/GCode.js` verarbeitet G-Code, übersetzt ihn in Roboter-Koordinaten und triggert `robot.sendCommand()`.
|
||||||
- `robot/Robot.js` führt die Inverse Kinematik aus und berechnet Motorwinkel sowie optionale Motor-Geschwindigkeiten.
|
- `robot/RobotBase.js` ist die abstrakte Basisklasse / der Interface-Vertrag: generische Infrastruktur (Zustand, `sendCommand`, Motor-Geschwindigkeiten) plus die zwei abstrakten Kinematik-Methoden.
|
||||||
|
- `robot/kinematics/Arm3SegmentLinearX.js` ist die konkrete Kinematik (Inverse + Vorwärts) für den aktuellen Arm. Die Auswahl der Kinematik erfolgt über `robot/KinematicsFactory.js` (Umgebungsvariablen `ROBOT_KINEMATICS` / `ROBOT_KINEMATICS_PARAMS`). Siehe `doc/ToDo_12_InverseKinematikConfig_ROADMAP.md`.
|
||||||
- `robot/TelnetSenderGRBL.js` formatiert die Motor-Positionen in GRBL-kompatible Befehle und sendet sie per Telnet an einen Zielcontroller.
|
- `robot/TelnetSenderGRBL.js` formatiert die Motor-Positionen in GRBL-kompatible Befehle und sendet sie per Telnet an einen Zielcontroller.
|
||||||
|
|
||||||
## Eingaben
|
## Eingaben
|
||||||
@@ -129,7 +130,9 @@ Die Achszuordnung kann in `robot/TelnetSenderGRBL.js` durch Anpassung der Konstr
|
|||||||
- `startRobot.js`
|
- `startRobot.js`
|
||||||
- `server/InputWS.js`
|
- `server/InputWS.js`
|
||||||
- `server/InfoServer.js`
|
- `server/InfoServer.js`
|
||||||
- `robot/Robot.js` — Modell + Kinematik
|
- `robot/RobotBase.js` — abstrakte Basisklasse / Interface-Vertrag (generische Infrastruktur)
|
||||||
|
- `robot/kinematics/Arm3SegmentLinearX.js` — konkrete Kinematik (Modell + Inverse/Vorwärts)
|
||||||
|
- `robot/KinematicsFactory.js` — wählt die Kinematik per Umgebungsvariable
|
||||||
- `robot/GCodeParser.js` — wandelt rohe Nachrichten in strukturierte Befehlsobjekte
|
- `robot/GCodeParser.js` — wandelt rohe Nachrichten in strukturierte Befehlsobjekte
|
||||||
- `robot/RobotController.js` — wendet geparste Befehle auf das Modell an (Steuerlogik)
|
- `robot/RobotController.js` — wendet geparste Befehle auf das Modell an (Steuerlogik)
|
||||||
- `robot/GCode.js` — Fassade + Datei-Befehle
|
- `robot/GCode.js` — Fassade + Datei-Befehle
|
||||||
|
|||||||
@@ -60,12 +60,11 @@ Folgende Methoden in `robot/GCode.js` werden nie aufgerufen:
|
|||||||
|
|
||||||
## 4. `robot/Robot.js` Alias aufräumen *(abhängig von ToDo_12 Phase 2)*
|
## 4. `robot/Robot.js` Alias aufräumen *(abhängig von ToDo_12 Phase 2)*
|
||||||
|
|
||||||
- [ ] `robot/Robot.js` zeigt nach Phase 1 auf `Arm3SegmentLinearX` (Übergangsalias)
|
- [x] **Erledigt:** Statt eines dauerhaften Alias wurde `robot/Robot.js` nach
|
||||||
- [ ] Nach Phase 2: auf `RobotBase` umzeigen:
|
Abschluss von ToDo_12 Phase 0–2 **vollständig entfernt**. Alle Tests importieren
|
||||||
```js
|
jetzt direkt `robot/kinematics/Arm3SegmentLinearX` bzw. `robot/RobotBase`.
|
||||||
module.exports = require('./RobotBase');
|
Produktivcode geht ohnehin über `robot/KinematicsFactory.js`. Damit entfällt der
|
||||||
```
|
Übergangsalias komplett.
|
||||||
- [ ] Kommentar in `robot/Robot.js` aktualisieren: Zweck des Alias erklären
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user