Ramsete Controller with Squiggles: What Does 1/Meters Represent?

The formula for gain in a ramsete controller requires angular velocity (w term):
Screenshot from 2022-09-11 20-14-45
However, the library I’m using to generate paths only provides

  • position,
  • translational velocity, acceleration, and jerk
  • wheel velocity
  • curvature (???)
  • time

Interestingly, curvature is in units of “1/meters” . I found Reciprocal length - Wikipedia which links to curvature, but I did not get anywhere in that article. Is the curvature useful for the w term or should I calculate the rotational velocity from the wheel speeds?

It seems like you can integrate curvature to find your desired velocity given that it satisfies certain conditions. The paper I linked above is a really lengthy read, and I haven’t read the entire thing to give you a great answer, but you could start there.


Not sure if this is exactly what you’re looking for either but this article relates the curvature of a motion to acceleration which you could integrate to find velocity and try to convert to angular velocity somehow.

I’m no expert so take my opinion with a grain of salt but you could probably get your angular velocity by calculating the rate of change of your heading if you have a position tracking system, or with wheel speeds. The equation for curvature is k = 1/r so that’s where your 1/meter unit comes from.

1 Like

From Manipulating Trajectories - FTCLib Docs

curvature: The curvature (rate of change of heading with respect to distance along the trajectory) at the sample point.

Since radians are unit-less, this winds up being 1/unit-of-distance


I probably should’ve done a little more googling beforehand but you could use inverse curvature (which is the radius of your arc) to calculate angular velocity using linear velocity with the formula v = ω × r.

1 Like

Thank you for the resource. Right below that it states:

Note: The angular velocity at the sample point can be calculated by multiplying the velocity by the curvature.

That should resolve the issue.

You can take a look at WPI’s implementation for FRC/FTC: