RamseteController

class RamseteController @JvmOverloads constructor(    val trackWidth: Double,     val zeta: Double = 0.7,     val bBar: Double = 2.0)

Ramsete controller for tracking tank trajectories.

The standard Ramsete control law from equation (5.12) of this paper is

(vω)=(vdcos(θdθ)+2ζωd2+bvd2[(xdx)cosθ+(ydy)sinθ]ωd+bvdsin(θdθ)θdθ[(xdx)cosθ(ydy)sinθ]+2ζωd2+bvd2(θdθ))
where ζ(0,1) and b>0. Since b has units, we substitute b=b¯l2 where l is the track width.

Constructors

Link copied to clipboard
constructor(trackWidth: Double, zeta: Double = 0.7, bBar: Double = 2.0)

Properties

Link copied to clipboard
Link copied to clipboard
val bBar: Double = 2.0
Link copied to clipboard
Link copied to clipboard
val zeta: Double = 0.7

Functions

Link copied to clipboard
fun compute(    s: DualNum<Time>,     targetPose: Pose2dDual<Arclength>,     actualPose: Pose2d): PoseVelocity2dDual<Time>

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