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

@@ -13,9 +13,13 @@
const DEFAULT_KINEMATICS = 'arm3segmentlinearx';
// Registry: Bezeichner (lowercase) → Modulpfad relativ zu dieser Datei.
// Neue Kinematiken hier eintragen (siehe Phase 3).
// Neue Kinematiken hier eintragen (siehe Phase 3). Mehrere Bezeichner dürfen auf
// dasselbe Modul zeigen (Alias, z. B. Produktname).
const KINEMATICS_REGISTRY = {
arm3segmentlinearx: './kinematics/Arm3SegmentLinearX',
arm3segmentrotarybase: './kinematics/Arm3SegmentRotaryBase',
grabit: './kinematics/Arm3SegmentRotaryBase', // Alias: Joy-IT „Grab-It" (Robot02)
robot02: './kinematics/Arm3SegmentRotaryBase', // Alias: Joy-IT-Modellbezeichnung
};
/**
@@ -64,7 +68,11 @@ function createRobotFromEnv(env = process.env, defaultParams = {}) {
const identifier = env.ROBOT_KINEMATICS || DEFAULT_KINEMATICS;
const params = { ...defaultParams, ...parseParams(env.ROBOT_KINEMATICS_PARAMS) };
const KinematicsClass = loadKinematicsClass(identifier);
return new KinematicsClass(params.l1, params.l2, params.l3);
// l1/l2/l3 positional (Kompatibilität mit Arm3SegmentLinearX); das vollständige
// params-Objekt als 4. Argument für Kinematiken mit weiteren Parametern
// (z. B. baseHeight bei Arm3SegmentRotaryBase). Klassen, die es nicht brauchen,
// ignorieren das Argument.
return new KinematicsClass(params.l1, params.l2, params.l3, params);
}
module.exports = {