GVFFollower

class GVFFollower @JvmOverloads constructor(var maxVel: Double, var maxAccel: Double, var maxDecel: Double, var maxAngVel: Angle, var maxAngAccel: Angle, admissibleError: Pose2d, var kN: Double, var kOmega: Double, val pidCoeffs: PIDCoefficients, var correctionDistance: Double = 5.0, var useCurvatureControl: Boolean = false, errorMapFunc: (Double) -> Double = { it }, clock: NanoClock = NanoClock.system) : PathFollower

State-of-the-art path follower based on the GuidingVectorField. Any heading interpolation on any path is ignored.

Parameters

maxVel

maximum velocity

maxAccel

maximum acceleration

maxDecel

maximum deceleration

admissibleError

admissible/satisfactory pose error at the end of each move

kN

normal vector weight (see GuidingVectorField)

kOmega

proportional heading velocity gain

pidCoeffs

heading PID coefficients

errorMapFunc

error map function (see GuidingVectorField)

clock

clock

Constructors

Link copied to clipboard
constructor(maxVel: Double, maxAccel: Double, maxDecel: Double, maxAngVel: Angle, maxAngAccel: Angle, admissibleError: Pose2d, kN: Double, kOmega: Double, pidCoeffs: PIDCoefficients, correctionDistance: Double = 5.0, useCurvatureControl: Boolean = false, errorMapFunc: (Double) -> Double = { it }, clock: NanoClock = NanoClock.system)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override var lastError: Pose2d

Robot pose error computed in the last update call.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
Link copied to clipboard
open override fun followPath(path: Path)

Follow the given path.

Link copied to clipboard
protected open override fun internalUpdate(currentPose: Pose2d, currentRobotVel: Pose2d?): DriveSignal