capture_margin — DRIVE locomotion op

• データ種: vector × vector × scalar × points → measurement

• 呼び出し: import fullseye as fs; fs.ledger.capture_margin(com, com_vel, com_height, contacts, gravity: 'float' = 9.81, ground=None, contact_tol: 'float' = 0.02) -> 'float' (実装を直接呼ぶなら import locomotion; locomotion.capture_margin(com, com_vel, com_height, contacts, gravity: 'float' = 9.81, ground=None, contact_tol: 'float' = 0.02) -> 'float'、台帳から引くなら opsdrive.get("capture_margin"))

• GPU: なし(CPU 参照実装のみ)

使い方

LIPM の捕捉点から支持の形までの符号つき距離(踏み出さずに止まれるか)。

捕捉点 ξ(lipm_capture_point)の、支持の形(support_line_margin と同じ規則) までの符号つき余裕。正 = ξ が支持多角形の内側で、踏み出さずに止まれる(足圧中心を ξ に置ける。Koolen ほか 2012 の 0 歩捕捉可能)。負 = どこに足圧中心を置いても重心は止まらない

ので、踏み出すか倒れる。静的な com_support_margin は速度を見ないので、前へ走っている重心を「安定」と読む ―― この op はそれを負にする。

com / com_vel は 1 時刻の (3,) か (2,)。com_height [m] は正の有限値。足が 1 つも無いときは ValueError。空の入力(com が 0 要素)も ValueError で拒否する。

English: positive = the capture point lies inside the support polygon, so the robot can stop without stepping (0-step capturable); negative = it must step. Segment / single-foot support follows support_line_margin (never positive).

参考(サンプルデータ・文献)

• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。

• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。

• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。

実行できる例(この op を実際に呼ぶ検証済みサンプル)

• walking_ops_tour — py -3.11 examples/walking_ops_tour.py

型が繋がる次の op(measurement を入力に取れる)

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

同カテゴリ(locomotion)

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


*Provenance: locomotion.py — DRIVE operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。*

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