157 lines
7.9 KiB
HTML
157 lines
7.9 KiB
HTML
<div class="sections">
|
||
|
||
<div class="section full">
|
||
<h2>Board – ArUco & Kamera-Pose</h2>
|
||
<div class="info-grid" style="margin-top: 14px;">
|
||
<span class="info-label">Ablauf</span>
|
||
<span class="info-value" style="font-family: inherit; font-size: 13px; color: var(--muted);">
|
||
Foto aufnehmen → ArUco erkennen → Kamera-Pose schätzen
|
||
</span>
|
||
<span class="info-label">Schritte</span>
|
||
<span class="info-value" style="font-family: inherit; font-size: 13px; color: var(--muted);">
|
||
1_detect_aruco_observations → 2_estimate_camera_from_observations
|
||
</span>
|
||
<span class="info-label">Letzter Run</span>
|
||
<span class="info-value" id="board-last-run">–</span>
|
||
</div>
|
||
<div class="controls" style="margin-top: 16px; display:flex; align-items:center; gap:10px; flex-wrap:wrap;">
|
||
<button id="btn-board-run">Board erkennen</button>
|
||
<label style="display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)">
|
||
Referenz:
|
||
<select id="board-ref-set"
|
||
style="background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 8px;font:inherit;font-size:12px;cursor:pointer">
|
||
<option value="">alle</option>
|
||
</select>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- ── Aktionen ─────────────────────────────────────────────────────────── -->
|
||
<div class="section full">
|
||
<h2>Aktionen</h2>
|
||
|
||
<!-- Aktion 1: Z-Bereich Zuordnung -->
|
||
<div style="margin-top:14px">
|
||
<p style="font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px">
|
||
Z-Bereich Zuordnung
|
||
</p>
|
||
<div style="display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--text)">
|
||
z von
|
||
<input id="act-z-min" type="number" step="0.5" placeholder="-30"
|
||
style="width:72px;background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 7px;font:inherit;font-size:12px">
|
||
bis
|
||
<input id="act-z-max" type="number" step="0.5" placeholder="-24"
|
||
style="width:72px;background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 7px;font:inherit;font-size:12px">
|
||
mm  →  Set
|
||
<input id="act-set" type="text" placeholder="A0"
|
||
style="width:72px;background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 7px;font:inherit;font-size:12px">
|
||
Link
|
||
<input id="act-link" type="text" placeholder="Board"
|
||
style="width:90px;background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 7px;font:inherit;font-size:12px">
|
||
<button id="btn-act-assign"
|
||
style="background:#1e293b;color:#c8cdd8;border:1px solid #4a9eff;border-radius:3px;padding:4px 14px;cursor:pointer;font:inherit;font-size:12px">
|
||
Zuordnen
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Aktion 2: Zuordnung entfernen -->
|
||
<div style="margin-top:14px">
|
||
<p style="font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px">
|
||
Zuordnung entfernen
|
||
</p>
|
||
<div style="display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--text)">
|
||
ID
|
||
<input id="act-rm-id" type="number" placeholder="z.B. 46"
|
||
style="width:90px;background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 7px;font:inherit;font-size:12px">
|
||
aus
|
||
<label style="cursor:pointer;display:flex;align-items:center;gap:4px">
|
||
<input type="radio" name="act-rm-from" value="set" checked> Set
|
||
</label>
|
||
<label style="cursor:pointer;display:flex;align-items:center;gap:4px">
|
||
<input type="radio" name="act-rm-from" value="link"> Link <span style="color:var(--muted);font-size:10px">(nur falls Set leer)</span>
|
||
</label>
|
||
<button id="btn-act-remove"
|
||
style="background:#1e293b;color:#c8cdd8;border:1px solid #ef4444;border-radius:3px;padding:4px 14px;cursor:pointer;font:inherit;font-size:12px">
|
||
Entfernen
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Aktion 3: Sets justieren (Kabsch 2D+Z) -->
|
||
<div style="margin-top:14px">
|
||
<p style="font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px">
|
||
Sets justieren (zu 3b-Messung)
|
||
</p>
|
||
<div style="display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--text)">
|
||
<select id="act-align-fixed"
|
||
style="background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 8px;font:inherit;font-size:12px;cursor:pointer">
|
||
<option value="">– bleibt –</option>
|
||
</select>
|
||
bleibt / 
|
||
<select id="act-align-move"
|
||
style="background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 8px;font:inherit;font-size:12px;cursor:pointer">
|
||
<option value="">– verschoben –</option>
|
||
</select>
|
||
wird verschoben
|
||
<button id="btn-act-align"
|
||
style="background:#1e293b;color:#c8cdd8;border:1px solid #4a9eff;border-radius:3px;padding:4px 14px;cursor:pointer;font:inherit;font-size:12px">
|
||
Justieren
|
||
</button>
|
||
<span style="color:var(--muted);font-size:10px">Rotation (Z-Achse) + Translation → passt verschobenes Set zu 3b-Messung</span>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Aktion 4: Zuordnung hinzufügen -->
|
||
<div style="margin-top:14px">
|
||
<p style="font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px">
|
||
Zuordnung hinzufügen
|
||
</p>
|
||
<div style="display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--text)">
|
||
ID
|
||
<input id="act-add-id" type="number" placeholder="z.B. 210"
|
||
style="width:90px;background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 7px;font:inherit;font-size:12px">
|
||
Set
|
||
<input id="act-add-set" type="text" placeholder="A0"
|
||
style="width:72px;background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 7px;font:inherit;font-size:12px">
|
||
Link
|
||
<input id="act-add-link" type="text" placeholder="Board"
|
||
style="width:90px;background:#1e293b;border:1px solid #334155;color:#c8cdd8;border-radius:3px;padding:3px 7px;font:inherit;font-size:12px">
|
||
<button id="btn-act-add"
|
||
style="background:#1e293b;color:#c8cdd8;border:1px solid #22c55e;border-radius:3px;padding:4px 14px;cursor:pointer;font:inherit;font-size:12px">
|
||
Hinzufügen
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Ergebnis-Zeile -->
|
||
<div id="act-result" style="margin-top:10px;font-size:11px;min-height:18px;color:var(--muted)"></div>
|
||
</div>
|
||
|
||
<div class="section full">
|
||
<h2>Ausgabe / Log</h2>
|
||
<textarea id="log-board" readonly placeholder="(Ausgabe erscheint hier)"></textarea>
|
||
</div>
|
||
|
||
<div class="section full">
|
||
<h2>Board-Viewer</h2>
|
||
<p style="font-size: 12px; color: var(--muted); margin-bottom: 10px;">
|
||
Wird nach jedem Board-Run automatisch aktualisiert.
|
||
</p>
|
||
<iframe
|
||
id="board-viewer-frame"
|
||
src="/boardViewer.html"
|
||
style="width: 100%; height: 740px; border: 1px solid #334155; border-radius: 6px; background: #0d0f13; display: block;"
|
||
title="Board-Viewer"
|
||
></iframe>
|
||
</div>
|
||
|
||
<div class="section full">
|
||
<h2>Marker-Positionen (letzter Run)</h2>
|
||
<div id="board-marker-table-wrap" style="overflow-x:auto;margin-top:10px;">
|
||
<p style="font-size:12px;color:var(--muted);padding:4px 0">(Erscheint nach einem Board-Run mit ≥2 Kameras)</p>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|