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

curve

lateinit var curve: ParametricCurve

Base parametric curve

Functions

init

fun init(curve: ParametricCurve): Unit

Initialize the interpolator with a curve.

Inherited Functions

deriv

fun deriv(s: Double, t: Double = curve.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 = curve.reparam(s)): Double

Returns the heading at the specified s.

secondDeriv

fun secondDeriv(s: Double, t: Double = curve.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.