com_support_margin — DRIVE locomotion op

• Data kinds: vector × points → measurement

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

• GPU: none (CPU reference implementation only)

Usage

Static stability margin: signed distance from the COM ground-projection to the support-polygon boundary (McGhee & Frank 1968).

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

com_xy is the COM projected onto the ground (x, y). Positive = the COM is inside the support polygon by that margin (statically stable, larger = safer); negative = outside (tipping). Returns the margin in world units (-inf if the polygon is degenerate / has no area).

★ground / contact_tol are forwarded to support_polygon — pass them (floor level z or plane [a, b, c, d]) so airborne feet are excluded. Without them the contacts are used as given and a lifted foot can turn a tipping robot into a "stable" one; pre-filter with contact_points in that case.

★2 足支持(線分)と 1 足(点)では面積が無いので -inf を返す(この値は変えない —— 変えると破壊的変更)。線分・点までの余裕が要るときは support_line_margin。Two-foot (segment) and one-foot support return -inf by contract; use support_line_margin for a finite margin there.

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 measurement 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 (locomotion)

contact_points · com_from_silhouette · support_polygon · 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.