walkterrain op• Data kinds: depth → mask
• Call: import fullseye as fs; fs.ledger.detect_obstacles(grid, cell: 'float' = 0.05, clearance: 'float' = 0.12, ground: 'str' = 'plane', ground_radius: 'float' = 0.4, trim: 'float' = 0.3, min_area: 'float' = 0.01, extent=None) (to call the implementation directly, import terrain; terrain.detect_obstacles(grid, cell: 'float' = 0.05, clearance: 'float' = 0.12, ground: 'str' = 'plane', ground_radius: 'float' = 0.4, trim: 'float' = 0.3, min_area: 'float' = 0.01, extent=None); from the registry, opsdrive.get("detect_obstacles"))
• Return value through the ledger: fullseye.ledger.detect_obstacles(...) returns only the declared out type mask (the underlying function also returns auxiliary values). When you need what was dropped, use fullseye.ledger.detect_obstacles.raw(...) or call terrain.detect_obstacles directly.
• GPU: none (CPU reference implementation only)
Segment cells rising more than *clearance* above the walkable ground.
> The detailed description below is the original text — the summary and the headings are translated.
The ground model isolates obstacles from a sloped surface: ground='plane' (default) fits a robust ground_plane (best when the ground is planar — flat or ramp); ground='opening' uses the morphological ground_surface envelope (best for rough/curved terrain); or pass a precomputed ground height array. So a ramp is not an obstacle but a box, curb, or rock on it is. Returns (mask, obstacles): a boolean obstacle mask and a list of per-obstacle dicts sorted largest-first, each with area_cells / area (m²) / height (peak rise above ground) / centroid_cell (row, col) / bbox_cells (i0, j0, i1, j1), plus centroid_xy in world units when *extent* (from elevation_map) is given. Blobs smaller than *min_area* (m²) are dropped as noise.
★ground_radius は ground='opening' のときだけ読まれ、trim は 'plane' のときだけ。空の入力(grid が 0 要素)は空の mask と空の listを返す(理由: 観測の無い地図には障害物も無く、形だけを保つ)。
• 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.
• walking_ops_tour — py -3.11 examples/walking_ops_tour.py
mask 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
walkterrain)elevation_map · fill_gaps · elevation_traversability · foothold_score · ground_surface · ground_plane · 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.