lipm_capture_point — DRIVE locomotion op

• Datenarten: points × points × scalar → points

• Aufruf: import fullseye as fs; fs.ledger.lipm_capture_point(com, com_vel, com_height, gravity: 'float' = 9.81) (die Implementierung direkt: import locomotion; locomotion.lipm_capture_point(com, com_vel, com_height, gravity: 'float' = 9.81); aus dem Register: opsdrive.get("lipm_capture_point"))

• GPU: nein (nur CPU-Referenzimplementierung)

Verwendung

Momentaner Capture Point des linearen inversen Pendels, xi = c + c_dot / omega.

> Die ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.

線形倒立振子(LIPM)の捕捉点 ξ = c + ċ/ω、ω = √(g / z_c)(Kajita ほか 2001、Pratt ほか 2006、Koolen ほか 2012)。足圧中心 p を ξ に置けば重心は p の真上で止まり、p が ξ から離れていると ξ は ξ̇ = ω (ξ - p) で指数的に離れていく。

• com / com_vel: 重心の位置と速度。(3,) か (T, 3) の世界座標 [m]、[m/s] (x, y が地面、z が上)。(2,) / (T, 2) の地面の点でもよい。形は 2 つで揃える。

• com_height: LIPM の一定の重心高さ z_c [m] (地面から)。正の有限値。既定値は置かない(ロボットごとに違い、間違うと ω が √ で狂う)。

• gravity: 重力加速度 [m/s²]。

• 返り値: com と同じ形。x, y が捕捉点、3 列のときの z は com_z - com_height (振子の支点 = 地面の高さ)。

照合: 解析解 x(t) = x0 cosh ωt + (v0/ω) sinh ωt から ξ(t) = (x0 + v0/ω) e^{ωt} (tests/test_locomotion_ops_2026_11_06.py)。空の入力(com が 0 要素)は ValueError で拒否する。

English: xi = c + c_dot / omega with omega = sqrt(g / z_c); same shape as com; for 3-column input the z of the result is the pendulum pivot height com_z - com_height. The source of the law is onocollo scripts/evis_video/capture_point_train.py (Apache-2.0, same author); this is a fresh numpy implementation.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• walking_ops_tour — py -3.11 examples/walking_ops_tour.py

Typkompatible Folge-Operatoren (nehmen points als Eingabe)

course_contains · ray_plane_range · ray_box_ranges · course_distance · mesh_signed_volume · fit_parabola · flight_fit · fit_aero

Gleiche Kategorie (locomotion)

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


*Provenance: locomotion.py — DRIVE Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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