membrane_recover — DRIVE tacsim op

• Datenarten: rgb × matrix × scalar → table

• Aufruf: import fullseye as fs; fs.ledger.membrane_recover(rgb, lights, pitch: 'float', ambient: 'float' = 0.0, albedo: 'float' = 1.0) -> 'dict' (die Implementierung direkt: import tacsim; tacsim.membrane_recover(rgb, lights, pitch: 'float', ambient: 'float' = 0.0, albedo: 'float' = 1.0) -> 'dict'; aus dem Register: opsdrive.get("membrane_recover"))

Verwendung

Visuotaktiles RGB (H, W, 3) → die 3 Kanäle werden als Bilder unter 3 Lichtquellen behandelt, Normalen per photometric.photometric_stereo (lit_only) → Höhe per photometric.integrate_normals (Frankot-Chellappa) (Pixeleinheiten × pitch = m).

ambient und albedo sind Kalibrierwerte: albedo·ambient wird vor dem Lösen vom Bild abgezogen (Woodhams lineares Modell hat keinen ambient-Term des synthetischen albedo·(N·L + ambient); ohne Abzug neigen sich die Normalen zur z-Seite, und die Neigung fällt systematisch um ambient/sin(Elevation) ≈ 3.7 % (0.03/0.82) zu klein aus —— das entspricht der Referenzbild-Kalibrierung am realen Gerät. Dies war die Ursache dafür, dass δ im Prototyp 3.5 % zu niedrig lag).

Rückgabe: normals (H, W, 3), albedo (H, W), height (H, W) [m, relativer Wert mit Mittelwert 0], pitch. Raises ValueError: rgb ist nicht (H, W, 3), pitch ≤ 0, ambient < 0. Leere Eingabe (rgb mit 0 Elementen) löst ValueError aus.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• poc_peg_insertion_tactile — py -3.11 examples/poc_peg_insertion_tactile.py

• poc_tacsim_elastic_membrane — py -3.11 examples/poc_tacsim_elastic_membrane.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Gleiche Kategorie (tacsim)

combined_modulus · hertz_sphere · hertz_force · hertz_cylinder · hertz_surface_uz · hertz_pressure · membrane_indent_sphere · membrane_indent_shape


*Provenance: tacsim.py — DRIVE Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.