LTVUController

Linear Time-Varying Unicycle controller. This controller is similar to the LQR-based holonomic controller, but the unicycle model is linearized at a range of forward velocities. The feedback gains are scheduled according to the target robot velocity.

This controller is intended as a replacement for the Ramsete controller, as its tuning is more intuitive.

This should be used by differential/tank drive robots only.

See also

Constructors

Link copied to clipboard
constructor(qX: Double, qY: Double, qHeading: Double, qV: Double, qOmega: Double, rA: Double, rAlpha: Double, maxVel: Double, dt: Double = 0.0303)

Constructs an LTV Unicycle controller for a differential/tank drive robot.

Functions

Link copied to clipboard
open override fun compute(targetPose: Pose2dDual<Time>, actualPose: Pose2d, actualVelActual: PoseVelocity2d): PoseVelocity2dDual<Time>

Computes the velocity and acceleration command. The frame Target is the reference robot, and the frame Actual is the measured, physical robot.