support_polygon — DRIVE locomotion op

• Data kinds: points → table

• Call: import fullseye as fs; fs.ledger.support_polygon(contacts, ground=None, contact_tol: 'float' = 0.02) -> 'dict' (to call the implementation directly, import locomotion; locomotion.support_polygon(contacts, ground=None, contact_tol: 'float' = 0.02) -> 'dict'; from the registry, opsdrive.get("support_polygon"))

• GPU: none (CPU reference implementation only)

Usage

Convex support polygon of the ground-contact points (ground x, y plane).

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

Returns {vertices (M,2 CCW), area, perimeter, centroid}. With <3 distinct points it degenerates gracefully (a point or a segment, area = 0). This is the base of support a static-stability check is measured against. 空の入力(contacts が 0 要素)は頂点 0 個・面積 0 の多角形を返す(理由: 足が 1 つも接地していない状態そのもの。重心は nan)。

★Precondition — only feet ACTUALLY TOUCHING the floor may take part: every contact is projected to (x, y), so a lifted foot out at some far x/y inflates the polygon and can make a tipping robot read as statically stable.

• ground given (recommended for anti-cheat) — a floor level z or a plane [a, b, c, d]; contacts further than contact_tol from it are filtered out here, so an airborne foot supports nothing.

• ground=None (default, backward-compatible) — no z check at all; the caller MUST pre-filter with contact_points.

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)

• consumer_hillco — py -3.11 examples/consumer_hillco.py

• consumer_onocollo — py -3.11 examples/consumer_onocollo.py

• physical_ai_perception — py -3.11 examples/physical_ai_perception.py

• walking_ops_tour — py -3.11 examples/walking_ops_tour.py

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

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

Same category (locomotion)

contact_points · com_from_silhouette · com_support_margin · gait_phase · support_line_margin · lipm_capture_point · capture_margin · gait_step_events


*Provenance: locomotion.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.