membrane_recover — DRIVE tacsim op

• 数据种类:rgb × matrix × scalar → table

• 调用: import fullseye as fs; fs.ledger.membrane_recover(rgb, lights, pitch: 'float', ambient: 'float' = 0.0, albedo: 'float' = 1.0) -> 'dict'(要直接调用实现,import tacsim; tacsim.membrane_recover(rgb, lights, pitch: 'float', ambient: 'float' = 0.0, albedo: 'float' = 1.0) -> 'dict';从台账取用则 opsdrive.get("membrane_recover"))

用法

视触觉 RGB (H, W, 3) → 将 3 个通道视为 3 个光源下的图像,用 photometric.photometric_stereo(lit_only)求法线 → 用 photometric.integrate_normals(Frankot-Chellappa)求高度(像素单位 × pitch = m)。

ambient、albedo 为标定值: 先从图像中减去 albedo·ambient 再求解(Woodham 的线性模型不含合成 albedo·(N·L + ambient) 中的 ambient 项, 因此若不减去,法线会偏向 z 侧,倾斜会系统性地偏小 ambient/sin(仰角) ≈ 3.7 %(0.03/0.82) —— 相当于实机的参考帧标定。这正是试作中 δ 偏低 3.5 % 的原因)。

返回: normals(H, W, 3)、albedo(H, W)、height(H, W)[m,均值为 0 的相对值]、pitch。Raises ValueError: rgb 不是 (H, W, 3)、pitch ≤ 0、ambient < 0。空输入(rgb 为 0 个元素)会引发 ValueError。

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• 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

类型可衔接的下一个算子(可接受 table 作为输入)

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

同类别(tacsim)

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


*Provenance: tacsim.py — DRIVE 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

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