Files
appRobotHoming/public/calibration_marker.html
2026-06-15 22:51:00 +02:00

112 lines
5.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div class="sections">
<!-- ── Aktuelle Marker ──────────────────────────────────────────────────── -->
<div class="section full">
<h2>Aktuelle Marker <span class="status-badge open">aus robot.json</span></h2>
<p style="font-size:12px;color:var(--muted);margin-top:8px;margin-bottom:10px">
Arm-Marker aller Links (Board-Marker ausgeblendet). Spin = Drehung um die Marker-Normale in Grad.
</p>
<div id="marker-table-wrap">
<p style="font-size:12px;color:var(--muted)">(wird geladen …)</p>
</div>
<div class="controls" style="margin-top:12px">
<button id="btn-marker-reload">Neu laden</button>
</div>
</div>
<!-- ── Aktionen ─────────────────────────────────────────────────────────── -->
<div class="section full">
<h2>Aktionen</h2>
<!-- Auswahl Link / Marker -->
<div style="margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;color:var(--text)">
<label>Link
<select id="marker-action-link"
style="margin-left:6px;background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 8px;font:inherit;font-size:12px;cursor:pointer">
<option value="Arm1">Arm1</option>
<option value="Ellbow">Ellbow</option>
<option value="Arm2">Arm2</option>
<option value="Hand">Hand</option>
<option value="Palm">Palm</option>
<option value="FingerA">FingerA</option>
<option value="FingerB">FingerB</option>
</select>
</label>
<label>Marker-ID
<select id="marker-action-id"
style="margin-left:6px;background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 8px;font:inherit;font-size:12px;cursor:pointer">
<option value=""> wählen </option>
</select>
</label>
<span id="marker-spin-current" style="color:var(--muted);font-size:11px"></span>
</div>
<!-- Spin-Aktionen -->
<div style="margin-top:12px">
<p style="font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px">
Spin (Drehung um Marker-Normale)
</p>
<div style="display:flex;flex-wrap:wrap;gap:8px;align-items:center">
<button id="btn-spin-minus90"
style="background:#1e293b;color:#c8cdd8;border:1px solid #334155;border-radius:3px;padding:5px 14px;cursor:pointer;font:inherit;font-size:12px">
90°
</button>
<button id="btn-spin-plus90"
style="background:#1e293b;color:#c8cdd8;border:1px solid #334155;border-radius:3px;padding:5px 14px;cursor:pointer;font:inherit;font-size:12px">
+90°
</button>
<button id="btn-spin-180"
style="background:#1e293b;color:#c8cdd8;border:1px solid #334155;border-radius:3px;padding:5px 14px;cursor:pointer;font:inherit;font-size:12px">
180°
</button>
<span style="font-size:10px;color:var(--muted)">→ wird sofort in robot.json gespeichert und im Viewer aktualisiert</span>
</div>
</div>
<!-- Ergebnis -->
<div id="marker-action-result" style="margin-top:10px;font-size:11px;min-height:18px;color:var(--muted)"></div>
</div>
<!-- ── Homing ───────────────────────────────────────────────────────────── -->
<div class="section full">
<h2>Homing</h2>
<p style="font-size:12px;color:var(--muted);margin-bottom:12px">
Startet einen vollständigen Homing-Run (Foto aller Kameras → ArUco-Erkennung → Gelenk-Winkel).
Der Viewer wird anschliessend mit den neuen Messwerten aktualisiert.
</p>
<div style="display:flex;align-items:center;gap:12px;flex-wrap:wrap">
<button id="btn-marker-homing"
style="background:#1d4ed8;color:#fff;border:none;border-radius:3px;padding:6px 16px;cursor:pointer;font:inherit;font-size:12px">
Foto &amp; Homing berechnen
</button>
<span id="marker-homing-status" style="font-size:11px;color:var(--muted)"></span>
</div>
</div>
<!-- ── Log ──────────────────────────────────────────────────────────────── -->
<div class="section full">
<h2>Log</h2>
<textarea id="log-marker" readonly placeholder="(Aktionen und Homing-Output erscheinen hier)"
style="height:140px"></textarea>
</div>
<!-- ── Viewer ───────────────────────────────────────────────────────────── -->
<div class="section full">
<h2>Viewer</h2>
<p style="font-size:12px;color:var(--muted);margin-bottom:10px">
Zeigt das Roboter-Modell mit den Arm-Markern (aus robot.json) und — nach einem Homing-Run —
die beobachteten Marker als Kugeln mit Abweichungs-Linien.
Nach einer Spin-Änderung oder einem Homing-Run wird der Viewer automatisch neu geladen.
</p>
<iframe
id="marker-viewer-frame"
src="/boardViewer.html?mode=homing"
style="width:100%;height:740px;border:1px solid #334155;border-radius:6px;background:#0d0f13;display:block"
title="Marker-Viewer"
></iframe>
</div>
</div>