core / com.acmerobotics.roadrunner.path.heading / WiggleInterpolator

WiggleInterpolator

class WiggleInterpolator : HeadingInterpolator

Heading interpolator that wraps another interpolator and adds sinusoidal oscillations ("wiggles") while preserving continuity. More specifically, the wiggle function is composed of a sine wave with a quintic spline on either end.

Parameters

amplitude - amplitude of the wiggle oscillations

desiredPeriod - period fo the wiggle oscillations

baseInterpolator - base interpolator to add oscillations to (e.g., oscillations relative to the tangent)

Constructors

<init>

WiggleInterpolator(amplitude: Double, desiredPeriod: Double, baseInterpolator: HeadingInterpolator = TangentInterpolator())

Heading interpolator that wraps another interpolator and adds sinusoidal oscillations ("wiggles") while preserving continuity. More specifically, the wiggle function is composed of a sine wave with a quintic spline on either end.

Inherited Properties

parametricCurve

lateinit var parametricCurve: ParametricCurve

Base parametric curve

Functions

init

fun init(parametricCurve: ParametricCurve): Unit

Initialize the interpolator with a parametricCurve.

internalDeriv

fun internalDeriv(s: Double, t: Double): Double

internalGet

fun internalGet(s: Double, t: Double): Double

internalSecondDeriv

fun internalSecondDeriv(s: Double, t: Double): Double

respectsDerivativeContinuity

fun respectsDerivativeContinuity(): Boolean

Returns true if the heading interpolator respects derivative continuity at path segment endpoints. That is, the start and end heading derivatives match those of the TangentInterpolator.

Inherited Functions

deriv

fun deriv(s: Double, t: Double = parametricCurve.reparam(s)): Double

Returns the heading derivative at the specified s.

end

fun end(): Double

Returns the end heading.

endDeriv

fun endDeriv(): Double

Returns the end heading derivative.

endSecondDeriv

fun endSecondDeriv(): Double

Returns the end heading second derivative.

get

operator fun get(s: Double, t: Double = parametricCurve.reparam(s)): Double

Returns the heading at the specified s.

secondDeriv

fun secondDeriv(s: Double, t: Double = parametricCurve.reparam(s)): Double

Returns the heading second derivative at the specified s.

start

fun start(): Double

Returns the start heading.

startDeriv

fun startDeriv(): Double

Returns the start heading derivative.

startSecondDeriv

fun startSecondDeriv(): Double

Returns the start heading second derivative.