locomotion op• 数据种类:points × points × scalar → points
• 调用: import fullseye as fs; fs.ledger.lipm_capture_point(com, com_vel, com_height, gravity: 'float' = 9.81)(要直接调用实现,import locomotion; locomotion.lipm_capture_point(com, com_vel, com_height, gravity: 'float' = 9.81);从台账取用则 opsdrive.get("lipm_capture_point"))
• GPU:无(仅 CPU 参考实现)
线性倒立摆的瞬时捕获点,xi = c + c_dot / omega。
> 以下的详细说明为原文 —— 摘要与标题已翻译。
線形倒立振子(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.
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• walking_ops_tour — py -3.11 examples/walking_ops_tour.py
points 作为输入)course_contains · ray_plane_range · ray_box_ranges · course_distance · mesh_signed_volume · fit_parabola · flight_fit · fit_aero
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 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.