ground_plane — DRIVE walkterrain op

• Data kinds: depth → depth

• Call: import fullseye as fs; fs.ledger.ground_plane(grid, trim: 'float' = 0.3, iters: 'int' = 3) (to call the implementation directly, import terrain; terrain.ground_plane(grid, trim: 'float' = 0.3, iters: 'int' = 3); from the registry, opsdrive.get("ground_plane"))

• GPU: none (CPU reference implementation only)

Usage

Robust least-squares ground plane z = a·x + b·y + c per cell.

> The detailed description below is the original text — the summary and the headings are translated.

Fits a plane to the (filled) elevation, then re-fits a few times after trimming the highest-residual cells — the ones that rise above the ground and are therefore obstacles, not ground. Recovers a flat *or* tilted (ramp) ground exactly, with no boundary artefact, which is what obstacle detection wants when the walkable surface is planar. *trim* is the top residual fraction discarded each iteration.

空の入力(grid が 0 要素)は形を保った空の配列を返す(理由: 当てはめる高さが無く、形だけを保つ。観測が 3 セル未満の地図は nan の平面)。

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• walking_ops_tour — py -3.11 examples/walking_ops_tour.py

Ops the type connects to (they accept depth as input)

spin_from_marker_sequence · carla_transform_matrix · carla_pose_to_world · carla_camera_pose · carla_xy_yaw · carla_scene_load · town_chain · osm_parse

Same category (walkterrain)

elevation_map · fill_gaps · elevation_traversability · foothold_score · ground_surface · detect_obstacles · fuse_elevation · roughness_map


*Provenance: terrain.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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