Skip to content

Controller Design

Cristian Cruz edited this page Nov 2, 2021 · 3 revisions

Sends commands to the steering, braking, & throttling actuators. Translates the trajectory path to the goal destination to physical actions.

Motion Model

  • A Kinematic model is suitable for smooth turns & slower speeds
  • To keep track of the current state based on the previous state & current control inputs
  • Autoware already adopted the bicycle kinematic model, as it offers a nice balance of simplicity & accuracy
  • Calculates state transitions as a funciton of time
  • Derive velocity vector components using trig
  • Define physical limitations for:
    • Accelerating (throttle) & decelerating (braking)
    • Steering

Control Scheme

Longitudinal component:

  • Controlled variables: throttle & brake inputs.
  • Governs the velocity, acceleration, jerk, & higher derivatives
  • Use a PID controller for now (typically the primary choice)

Lateral component:

  • Controlled variable: steering input
  • Governs the steering angle & heading (yaw)

Coupled Control

  • If coupled, allow the Longitudinal controller to be dominant over the lateral to prevent a large steering angle at high speed.
  • The longitudinal is computed independently, influences lateral, & regulates max steering limit inversely proportional to the vehicle speed.


Model Predictive Control (MPC)

  • Best for both normal & rigorous driving conditions
  • Can handle multi-input multi-output (can handle both longitudinal & lateral control)
  • Constraints can be used for both safety & physical limitations

  • Sample Time
    • If too high, response time will be too slow
    • If too small, responses will be over-reactive
    • Suggested sample time: 5% to 10% of rise time
  • Prediction Horizon
    • If too small, the vehicle will lack time to react properly
    • If too high, wasteful effort
  • Control Horizon
    • The number of time steps that are computed by the optimizer
    • If too short, the optimizer may not return the best possible actions
    • If too long, wasteful effort (only the first couple control actions have a huge impact on the predicted states)
  • Weights
    • For prioritizing goals
    • MPC tries to do everything simultaneously, but goals can compete with each other
    • Ex: You can assign higher weight to pose tracking rather than velocity tracking (less important)
  • Cost functions can be implemented for both longitudinal & lateral control. Can penalize.
  • Optimization chooses the optimal set of control inputs corresponding to the predicted trajectory with lowest cost (while still considering current state, reference state, & constraints). Developer's choice how to implement.

  • Ways to reduce computational resources, if necessary:
    • Limit the prediction & control horizons
    • Formulate simpler cost functions
    • Use less detailed motion models
    • Set a high tolerance for optimization convergence

Inputs & Outputs

  • Inputs:
    • Trajectory path

  • Longitudinal Output:
    • Brake commands
    • Throttle commands
  • Lateral Output:
    • Steering angle commands

Note: More inputs & processing nodes will vary on the selected controller & motion model

Links

Control strategies for autonomous vehicles

Parameter adaptive steering control for autonomous vehicles

MPC-based path tracking with PID speed control for autonomous vehicles

Mathworks: Understanding MPC

Mathworks: Three Ways to Speed Up MPC

Mathworks: Developing Longitudinal Controls for a Self-Driving Taxi

Clone this wiki locally