@@ -175,11 +175,11 @@ def __call__(self, p_start: np.ndarray, p_end: np.ndarray, s: np.ndarray) -> np.
175175 np.ndarray
176176 Sampled path of shape ``(N, 3)``.
177177 """
178- path = np .zeros (3 )
178+ path = np .zeros (( len ( s ), 3 ) )
179179 theta = s * math .pi
180- path [2 ] = np .sin (theta ) * self .foot_height
181- path [1 ] = p_start [1 ]
182- path [0 ] = (1.0 - s ) * p_start [0 ] + s * p_end [0 ]
180+ path [:, 2 ] = np .sin (theta ) * self .foot_height
181+ path [:, 1 ] = p_start [1 ]
182+ path [:, 0 ] = (1.0 - s ) * p_start [0 ] + s * p_end [0 ]
183183 return path
184184
185185
@@ -455,48 +455,11 @@ def get_active_polygon(t: float, steps_pose, t_ss: float, t_ds: float, foot_shap
455455 return compute_double_support_polygon (steps_pose [i ], steps_pose [i + 1 ], foot_shape )
456456
457457
458- def min_jerk_scalar (s : float ) -> float :
459- """
460- Minimum-jerk scalar polynomial on [0, 1].
461- """
462- s2 = s * s
463- s3 = s2 * s
464- return 10.0 * s3 * s2 - 15.0 * s2 * s2 + 6.0 * s3
465-
466-
467- def swing_foot_min_jerk (
468- s : float ,
469- p0 : np .ndarray ,
470- p1 : np .ndarray ,
471- swing_height : float ,
472- ) -> np .ndarray :
473- """
474- Minimum-jerk 3D swing trajectory between p0 and p1 with vertical lift.
475-
476- s in [0, 1]: normalized phase of the swing.
477- """
478- s = float (np .clip (s , 0.0 , 1.0 ))
479- # Horizontal: simple min-jerk blend
480- alpha = min_jerk_scalar (s )
481- pos_xy = (1.0 - alpha ) * p0 [:2 ] + alpha * p1 [:2 ]
482-
483- # Vertical: lift up then back down via a simple "bump"
484- # z(s) = (1 - alpha)*z0 + alpha*z1 + h * 4*s*(1-s)
485- bump = 4.0 * s * (1.0 - s )
486- z = (1.0 - alpha ) * p0 [2 ] + alpha * p1 [2 ] + swing_height * bump
487-
488- out = np .empty (3 )
489- out [0 :2 ] = pos_xy
490- out [2 ] = z
491- return out
492-
493-
494458def compute_swing_foot_pose (
495459 t_state : float ,
496460 params : WalkingStateMachineParams ,
497461 step_start : np .ndarray ,
498462 step_target : np .ndarray ,
499- swing_height : float ,
500463 touchdown_extension_vel : float ,
501464 path_generator ,
502465) -> np .ndarray :
0 commit comments