From b2ba8afead895c91d27dda6a7fa5279b4f717a5a Mon Sep 17 00:00:00 2001 From: osiu97 Date: Wed, 8 Jul 2026 18:38:25 +0200 Subject: [PATCH] drop hardcoded lookup table --- web/js/kinematics.js | 56 +++----------------------------------------- 1 file changed, 3 insertions(+), 53 deletions(-) diff --git a/web/js/kinematics.js b/web/js/kinematics.js index 71902ef..5d4fa7c 100644 --- a/web/js/kinematics.js +++ b/web/js/kinematics.js @@ -73,52 +73,7 @@ const LIMITS = { }; // ── Letter / number position lookup table ──────────────────────── -// Directly ported from PositionControl.cpp -const LOOKUP_TABLE = { - 'Q': { x: -66.5, y: 91.6 }, - 'W': { x: 70.8, y: 92.0 }, - 'E': { x: -41.4, y: 125.5 }, - 'R': { x: -44.0, y: 96.0 }, - 'T': { x: 1.3, y: 97.8 }, - 'Y': { x: 117.8, y: 91.7 }, - 'U': { x: 22.5, y: 98.3 }, - 'I': { x: 53.5, y: 124.5 }, - 'O': { x: -112.0, y: 82.0 }, - 'P': { x: -90.0, y: 89.0 }, - 'A': { x: -143.0, y: 99.0 }, - 'S': { x: -19.8, y: 98.0 }, - 'D': { x: -68.5, y: 121.7 }, - 'F': { x: -19.5, y: 127.0 }, - 'G': { x: 4.0, y: 128.4 }, - 'H': { x: 31.3, y: 127.3 }, - 'J': { x: 72.5, y: 121.0 }, - 'K': { x: 93.0, y: 116.8 }, - 'L': { x: 114.3, y: 110.2 }, - 'Z': { x: 130.0, y: 75.0 }, - 'X': { x: 95.9, y: 87.3 }, - 'C': { x: -94.0, y: 116.0 }, - 'V': { x: 44.5, y: 97.0 }, - 'B': { x: -119.0, y: 109.0 }, - 'N': { x: -135.4, y: 75.1 }, - 'M': { x: 132.0, y: 100.5 }, - - '+': { x: -110.0, y: 1.0 }, - '-': { x: 110.0, y: 1.0 }, - '*': { x: 110.0, y: -24.0 }, - ',': { x: -110.0, y: -24.0 }, - - '0': { x: -130.4, y: 44.2 }, - '1': { x: -101.1, y: 53.3 }, - '2': { x: -71.5, y: 60.4 }, - '3': { x: -41.7, y: 65.2 }, - '4': { x: -13.0, y: 66.5 }, - '5': { x: 16.3, y: 68.0 }, - '6': { x: 45.8, y: 64.0 }, - '7': { x: 75.7, y: 61.1 }, - '8': { x: 103.6, y: 53.8 }, - '9': { x: 132.1, y: 45.0 }, -}; - +// (Removed: superseded by spots.json dynamic loading) // ── IK solver — exact port of calculateInverseKinematics() ─────── /** * Compute motor angles for a given target end-effector position. @@ -312,11 +267,6 @@ function checkWorkspace(x, y) { return { ok: true, reason: '' }; } -// ── Lookup ──────────────────────────────────────────────────────── -function lookup(char) { - return LOOKUP_TABLE[char.toUpperCase()] ?? null; -} - // ── Unit converters ─────────────────────────────────────────────── function stepsToRad(steps) { // Physical motors are wired such that + steps is CW. @@ -346,7 +296,7 @@ function radToDeg(rad) { } export default { - ARM, LIMITS, LOOKUP_TABLE, - solve, forward, armsCrossed, checkWorkspace, lookup, + ARM, LIMITS, + solve, forward, armsCrossed, checkWorkspace, stepsToRad, radToSteps, radToStepsAbsolute, stepsToDeg, radToDeg, };