Skip to main content

parameterize_cartesian_path

Function parameterize_cartesian_path 

Source
pub fn parameterize_cartesian_path<const N: usize, const M: usize, const CAP: usize, const OUT: usize>(
    chain: &CuKinematicChain<N>,
    model: &CuRobotCollisionModel<N, M>,
    env: &CuCollisionEnv<'_>,
    path: &CuCartesianBlendPath<N, CAP>,
    params: &CuPathTimingParams<N>,
    out: &mut CuTrajectoryPayload<N, OUT>,
) -> CuResult<CuTimingStatus>
Expand description

Times a sampled Cartesian path with one profile along the whole path.

Every move between an exact stop or zone corner and the next follows params.timing.profile in the path parameter; zones are crossed at a constant corner speed. Joint velocity and acceleration stay within params.timing.limits; S-curve additionally bounds joint jerk on the quintic reconstruction, including curvature contributions. The geometric spline is rechecked for collisions against env (pass CuCollisionEnv::EMPTY for self-collision only) and for zone containment with discrete samples, not swept-volume continuous collision detection. This check does not certify the reconstructed execution curve against geometry. out.interpolation is set to the reconstruction the limits were validated on: CuTrajectoryInterpolation::Quintic for the S-curve, CuTrajectoryInterpolation::Cubic for the other profiles, so CuTrajectoryPayload::sample (and the default follower) execute the validated position, velocity and acceleration. All scratch storage is const-sized; out is empty unless the status is Success.