Feed-forward Steering Controller - Cars & Trucks
Similar to the Feed-forward throttle and brake controllers, the steering feed-forward controller predicts the states of the vehicle after look ahead time or look ahead distance. Using a prediction point and defined path, it tries to minimize lateral error by applying a steering angle.
It computes the appropriate steering angle to take the vehicle as close to centerline as possible after look ahead time or distance. The controller expects a 3d curve (X Y Z) or information to instantiate a parametric path (for example, dimensions of an entry distance/circle for a constant-radius cornering event).
Types
-
- MOTION CONTROL
- Driver output is steering wheel angle which is connected to the vehicle using a Motion.
-
- TORQUE CONTROL (For Leaning Driver only)
- Driver output is steering torque which is applied to the steering wheel.
Algorithm
Uses the equivalent bicycle model to calculate the vehicle state derivatives as described in Kinematic or Dynamic bicycle model.
[FEEDFORWARD_STEERING]
TAG = 'FEEDFORWARD'
LOOK_AHEAD_TIME = 0.5
PATH = 'DDF'
FILE = 'spiral.ddf'
INTEGRATION_STEP_SIZE = 0.01
[FEEDFORWARD STEERING CONTROLLER] | ||
---|---|---|
TAG | Attr - string | REQUIRED <FEEDFORWARD > |
LOOK_AHEAD_TIME | Attr - real | REQUIRED Integrates states to (current time + look ahead time) to predict. |
INTEGRATION_STEP_SIZE | Attr - real | REQUIRED
|
CONTROL_MODEL | Attr - Real | OPTIONAL
|
AGGRESSIVE | Attr - Bool | OPTIONAL
|
- Smaller look ahead times leads to more accurate path following, but in the case of sudden path changes it may cause abrupt steering input that lead to simulation failures.
- Larger look ahead times lead to more error between the desired and actual paths, however sudden path changes cause less abrupt steering inputs and generally lead to less simulation failures.
- Predict forward distance = look ahead time * velocity.
- Prediction algorithm involves internal integrator and hence, requires step size for the integration. Lower step size states are predicted more accurately, however simulation becomes computationally heavy. This step size is different from the h_max of MotionSolve.
- Recommended value for decent accuracy and speed, look ahead time/50.