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