# 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.

Public
Static

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.

Public
Static

FollowingStrengthToRotationSpeed
(followingStrength)

Public
Static

RotationSpeedToFollowingStrength
(speed, maxRotationSpeed)

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

Public
Static

## Private/Protected Members

DampingRatio

Private
Static