lipm_capture_point — DRIVE locomotion op

• Data kinds: points × points × scalar → points

• Call: import fullseye as fs; fs.ledger.lipm_capture_point(com, com_vel, com_height, gravity: 'float' = 9.81) (implementation को सीधे call करना हो तो import locomotion; locomotion.lipm_capture_point(com, com_vel, com_height, gravity: 'float' = 9.81), registry से लेना हो तो opsdrive.get("lipm_capture_point"))

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

Linear inverted pendulum का तात्कालिक capture point, xi = c + c_dot / omega।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

線形倒立振子(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.

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• walking_ops_tour — py -3.11 examples/walking_ops_tour.py

वे अगले ops जिनसे type जुड़ता है (points को input के रूप में लेते हैं)

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

इसी category के (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. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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