Class LloydHaywardBlendRotation3D_f


  • public class LloydHaywardBlendRotation3D_f
    extends BlendRotation3D_f
    Implements LloydHayward blending

    The LloydHayward blend [1], makes a smooth continous differentiable transition between
    two interpolators.

    [1]: J. Lloyd, V. Hayward. Real-Time Trajectory Generation Using Blend Functions,
    Proc. Int. Conf. on Robotics and Automation, 1991, pp. 784-798.
    • Constructor Detail

      • LloydHaywardBlendRotation3D_f

        public LloydHaywardBlendRotation3D_f​(long cPtr,
                                             boolean cMemoryOwn)
      • LloydHaywardBlendRotation3D_f

        public LloydHaywardBlendRotation3D_f​(InterpolatorRotation3D_f interpolator1,
                                             InterpolatorRotation3D_f interpolator2,
                                             double tau,
                                             double kappa)
        Constructs LloydHaywardBlend between interpolator1 and interpolator2.

        The blend starts tau before the end of interpolator1 and finished tau after the
        start of interpolator2. The constant kappa specifies characteristics of the blend
        as described in [1].

        Parameters:
        interpolator1 - [in] First interpolator, no ownership transferred
        interpolator2 - [in] Second interpolator, no ownership transferred
        tau - [in] Blend time
        kappa - [in] Blend characteristic (default 15/2 for acceleration minimal blend
        between linie segments)
      • LloydHaywardBlendRotation3D_f

        public LloydHaywardBlendRotation3D_f​(InterpolatorRotation3D_f interpolator1,
                                             InterpolatorRotation3D_f interpolator2,
                                             double tau)
        Constructs LloydHaywardBlend between interpolator1 and interpolator2.

        The blend starts tau before the end of interpolator1 and finished tau after the
        start of interpolator2. The constant kappa specifies characteristics of the blend
        as described in [1].

        Parameters:
        interpolator1 - [in] First interpolator, no ownership transferred
        interpolator2 - [in] Second interpolator, no ownership transferred
        tau - [in] Blend time
    • Method Detail

      • x

        public Rotation3Df x​(double t)
        <T>::x
        Overrides:
        x in class BlendRotation3D_f
        Parameters:
        t - [in] t\in[0,\tau_1+\tau_2]
        Returns:
        Position at time t
      • dx

        public Rotation3Df dx​(double t)
        Description copied from class: BlendRotation3D_f
        The velocity for a given time t
        Overrides:
        dx in class BlendRotation3D_f
        Parameters:
        t - [in] t\in[0,\tau_1+\tau_2]
        Returns:
        Velocity at time t
      • ddx

        public Rotation3Df ddx​(double t)
        Description copied from class: BlendRotation3D_f
        The acceleration for a given time t
        Overrides:
        ddx in class BlendRotation3D_f
        Parameters:
        t - [in] t\in[0,\tau_1+\tau_2]
        Returns:
        Acceleration at time t
      • tau1

        public double tau1()


        Note: For ParabolicBlend getTau1()==getTau2()
        Overrides:
        tau1 in class BlendRotation3D_f
        Returns:
        \tau_1
      • tau2

        public double tau2()


        Note: For ParabolicBlend getTau1()==getTau2()
        Overrides:
        tau2 in class BlendRotation3D_f
        Returns:
        \tau_2
      • kappa

        public double kappa()
        Returns the kappa value used in the blend