Skip to main content

blend_cartesian_path

Function blend_cartesian_path 

Source
pub fn blend_cartesian_path<const N: usize, const M: usize, const CAP: usize>(
    chain: &CuKinematicChain<N>,
    model: &CuRobotCollisionModel<N, M>,
    env: &CuCollisionEnv<'_>,
    waypoints: &[CuCartesianWaypoint<N>],
    params: &CuCartesianBlendParams,
    out: &mut CuCartesianBlendPath<N, CAP>,
) -> CuResult<CuCartesianBlendStatus>
Expand description

Construct a Cartesian path through joint waypoints with per-waypoint TCP zones.

Each waypoint carries its zone radius. First and last must be zero. A zero interior radius is an exact stop; a positive radius is a fly-by zone. Trimming is capped to 49% of each adjacent straight segment to avoid overlapping zones. Degenerate corners and zones too small relative to IK tolerance are rejected, as are invalid params. The input joint configurations define TCP position and orientation through FK. Collisions are checked against env (pass CuCollisionEnv::EMPTY for self-collision only); checking is discrete, not swept-volume continuous collision detection; parameterize_cartesian_path rechecks the interpolated path when timing it.

All output and scratch storage is const-sized; failure clears the output.