Class AnglePIDController

Public

Implements a PID controller for the angular velocity of an agent following a curve.

The PID controller is formulated for small angles (see https://en.wikipedia.org/wiki/Small-angle_approximation), but extends well to large angles. For small angles, if y(t) is the curve/agent position, then y'(t) is the angle and y''(t) is the angular velocity. This controller outputs an angular velocity, meaning it controls y''(t).

See https://en.wikipedia.org/wiki/PID_controller

Public Static Methods

ApproximateTurningRadius (followingStrength)

An approximate turning radius the agent will have in an open space.

Control (settings, followingStrength, angle, curveAngle, curveCurvature, curveDistanceSigned, speed, remainingDistance, minRotationSpeed, isStationary, dt)

How much to rotate and move in order to smoothly follow a given curve.

FollowingStrengthToRotationSpeed (followingStrength)
RotationSpeedToFollowingStrength (speed, maxRotationSpeed)

Given a speed and a rotation speed, what is the approximate corresponding following strength.

Private/Protected Members

DampingRatio
Private Static