Neues Kinematics

This commit is contained in:
chk
2026-06-11 07:57:51 +02:00
parent efe04b731f
commit 05355facf1
8 changed files with 678 additions and 27 deletions

View File

@@ -146,10 +146,29 @@ environment:
Erst wenn ein konkreter zweiter Roboter definiert ist.
- [ ] Physikalische Spezifikation dokumentieren (DOF, Achsen, Gelenkreihenfolge)
- [ ] `robot/kinematics/<Name>.js` anlegen — nur die zwei Kinematik-Methoden
- [ ] RoundTrip-Tests für die neue Implementierung schreiben
- [ ] Prüfen ob die 7 Motor-Slots ausreichen; falls nicht → `RobotMotorPosition` anpassen
**Umgesetzt: Joy-IT „Grab-It" (Robot02)** als `Arm3SegmentRotaryBase`.
- [x] Physikalische Spezifikation dokumentieren (DOF, Achsen, Gelenkreihenfolge)
→ im JSDoc von `robot/kinematics/Arm3SegmentRotaryBase.js`. 5 Achsen + Greifer:
Basis-Yaw, Schulter, Ellbogen, Handgelenk-Pitch, Handgelenk-Roll, Greifer.
- [x] `robot/kinematics/Arm3SegmentRotaryBase.js` anlegen — nur die zwei Kinematik-Methoden
- [x] RoundTrip-Tests für die neue Implementierung schreiben
(`test/Robot.GrabIt.RoundTrip.test.js`)
- [x] Prüfen ob die 7 Motor-Slots ausreichen → **ja**: 6 Slots belegt
(`xMotor, alpha, beta, a, b, eMotor`), `c` bleibt frei. `RobotMotorPosition`
unverändert.
- [x] In `KinematicsFactory` registriert (Bezeichner `arm3segmentrotarybase`,
Aliase `grabit` / `robot02`). Factory reicht jetzt das vollständige
`params`-Objekt als 4. Konstruktor-Argument durch (für `baseHeight`).
**Offene Punkte / Annahmen (kein Blocker, aber vor Echtbetrieb zu klären):**
- ⚠️ **5-DOF-Constraint:** `phi` (Hand-Azimut) ist an die Position gekoppelt
(= Basis-Drehung) und nicht frei. In der Inversen aus `atan2(y,x)` abgeleitet.
- ⚠️ **Segmentlängen sind Schätzwerte** (l1=105, l2=98, l3=100, baseHeight=110 mm),
abgeleitet aus Reichweite (300 mm) / Höhe (420 mm). Vor Echtbetrieb am Arm
messen und per `ROBOT_KINEMATICS_PARAMS` setzen.
- ⚠️ **Gelenkmodell** (Pitch/Roll am Handgelenk) folgt der Standardkonfiguration
dieser Arm-Klasse; gegen das physische Gerät / die Kalibrieranleitung prüfen.
---