foot_slip_metrics — DRIVE locomotion op

• Data kinds: any × mask × points → table

• Call: import fullseye as fs; fs.ledger.foot_slip_metrics(foot_xyz, stance, body_xyz, max_slip: 'float' = 0.02, min_advance_ratio: 'float' = 0.5) -> 'dict' (to call the implementation directly, import locomotion; locomotion.foot_slip_metrics(foot_xyz, stance, body_xyz, max_slip: 'float' = 0.02, min_advance_ratio: 'float' = 0.5) -> 'dict'; from the registry, opsdrive.get("foot_slip_metrics"))

• GPU: none (CPU reference implementation only)

Usage

Horizontal foot slip during stance, foot-measured progression, and a 'body-only' gate.

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

立脚中の足の水平の滑りと、足で測った前進。

• 滑り: 立脚の区間(stance が続けて True のコマ)ごとに、足の水平位置が区間の最初の位置から離れた最大の距離 [m] (slip)。全区間の最大が max_slip_observed。

• 足で測る前進: 足ごとに、続く 2 つの立脚の区間の最初の位置の差を進行方向に射影して足し、足の平均を取る(foot_advance [m])。足を置き直さない限り増えない。

• 胴の前進: body_xyz の最初と最後の水平の差の大きさ(body_advance)。進行方向はその向き(胴が動かなければ足の平均の向き、それも無ければ +x)。

• 門 walking_ok: max_slip_observed ≤ max_slip かつ foot_advance ≥ min_advance_ratio × body_advance。胴だけが進み、足が置き直されない(滑っている・引きずられている・足が地面に描かれているだけ)見せかけの歩行を落とす。advance_ratio = foot_advance / body_advance(胴が動かなければ None)。

foot_xyz (T, F, 3) [m]、stance (T, F) bool(gait_phase の stance)、body_xyz (T, 3) [m]。空の入力(foot_xyz が 0 要素)は ValueError で拒否する。

English: per stance interval the slip is the largest horizontal excursion of the foot from where it touched down; progression measured by the feet is the sum of stance-to-stance displacements along the direction of travel. walking_ok fails a scene in which only the body advances.

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 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 · support_polygon · com_support_margin · gait_phase · support_line_margin · lipm_capture_point · capture_margin


*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.