RamseteController

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

Ramsete controller for tracking tank trajectories with unit-less gains.

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. To rid the gains of units, let b=b¯l2 where l is the track width.

Constructors

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

Functions

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

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

Properties

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