Skip to content

Approaches to Behavior Planning & Controls

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

Control strategies for autonomous vehicles

Suitable controllers have been narrowed down to the following:

Comparison Metric PID Control Geometric (Stanley) Control Model Predictive Control
Principle of Operation Error Driven (Corrective) Model Based (Corrective) Model Based (Optimal)
Tracking Good Very Good Excellent
Robustness Very Good Very Good Excellent
Stability Very Good Very Good Excellent
Reliability Very High Very High Extremely high
Technical Complexity Low Low Very high
Computational Overhead Low Low Very High
Constraint Satisfaction Good Good Excellent
Technical Maturity Very High High Moderate

Parameter adaptive steering control for autonomous vehicles

  • Steering controller consists of two controllers:

    • 1) preview model of the upcoming road is used to determine the desired yaw rate

      • Deciding the yaw rate is based on no slip & low speed conditions
    • 2) "adaptive control" determines the steering wheel angle

      • Not constrained to the speed & slip conditions
      • Independent on the vehicle parameters
      • Uses an "adaptation algorithm" for adaptive yaw rate gain that minimizes the error of yaw rate gain
  • Reported max lateral error: 0.4970 meters (caused by severe curvature change)

  • Reported error of yaw rate gain in respect to the predicted yaw rate gain (in simulation): 8.25%


Dynamic path planning for autonomous driving on various roads with avoidance of static and moving obstacles

  • Generates a new path at least 15 times per second
  • Selects optimal path from a finite set of candidates based on cost function combining speed, safety, and consistency. Returns cubic spline that considers stationary obstacles and obstacles with linear velocity, max velocity/acceleration, and temporal consistency (reduces jerk)
  • We can model objects with linear velocity because over 1/15th of a second, they probably won’t accelerate much.
  • Algorithm is also penalized for going near a potential collision
  • This algorithm also considers dodging a moving obstacle by overtaking, or slowing down and following it.
  • Works on multilane roads and single lane roads
  • We can change parameters of the algorithm to change tradeoff of safety, smoothness, and speed
    • We can also change parameters to limit the maximum lateral speed (steering amount)

Self-Driving Cars: A Survey

  • Route Planner - Computes a Route (sequence of waypoints) from car’s state to goal. Route is W = {w_1, w_2, …, w_|W|} where each wi = (xi, yi)

    • Goal-Directed Techniques - guide search from source vertex to target vertex by avoiding scans of vertices not in the direction of the target (like A*, arc flags)
    • Separator-based techniques - based on vertex/arc separators, which are small subsets of vertices/arcs whose removal decomposes the graph into several balanced cells.
      • Vertex separator-based algorithm uses these to compute an overlay graph, with shortcut arcs being added to preserve distances between pairs of vertices on full graph.
      • Arc separator-based algorithm - decomposes graph into balanced cells, attempts to minimize the number of cut arcs (connect boundary vertices to different cells)
    • Hierarchical Techniques - exploit hierarchy of road networks (main roads go long distance)
      • So we only have to query main roads for distant start/goal vertices
      • Contraction Hierarchies (CH) algorithm - repeatedly removes the least important vertex from graph and creates shortcuts between neighboring vertices.
    • Bounded-Hop Techniques - precompute distances between pairs of vertices by adding virtual shortcuts to graphs. Aim to get length with few hops by computing subset of pairs, since all pairs is a lot.
    • We can also do combinations of techniques
    • Table 1: Performance of Route Planning Techniques
  • Path Planner - computes a set of Paths P (sequence of poses of the car) = {P_1, P_2, .. P_|P|} based on route, state, traffic rules. A path P_j = {p_1, p_2, … p_|Pj|} is a sequence of poses pi = (x_i,y_i,θ_i = car orientation) respective to the offline map. The first pose is the current pose of the car

    • Graph Search - goal state is a pose near a waypoint w_i of current route W. Discretize the search space by putting a graph on an occupancy grid map with the centers of cells acting as neighbors in the search graph.
      • Methods: Dijkstra, A*, D*, hybrid-A*. One of the star algorithms would be better than dijsktra, since we can use heuristics to speed up search.
    • Interpolating curve - take waypoints of a route and generates a new set of points that depict a smooth path. Typically a spline curve
      • Spline curve - piecewise polynomial parametric curve. the junction between segments is called a knot/control point and usually has a high smoothness constraint. Low cost, but chooses continuity/smoothness over road’s constraints
    • Graph Search seems like the only good option. The hard part will be finding a good heuristic.
  • Behavior Selector - chooses current driving behavior (lane keeping, intersection handing, traffic lights, etc). Selects a future (usually ~5s in the future) pose, p_g, in some path and decides a desired velocity, vg, to create a Goal = (p_g, v_g). Estimated time between now and goal is called the decision horizon. Must obviously avoid collisions.

    • Finite State Machine Based Techniques - different traffic scenarios are represented by states with transitions based on discrete rules from perception information. Difficult to deal with uncertainties.
      • Could work for demo 2, as it is simpler and we only have a small set of different states to make (don’t have to worry about weather, weird roads, etc)
    • Other techniques:
      • Ontology based techniques - uses a knowledge base to make decisions, and sends info like “STOP” “GO LEFT” “GIVE WAY” to another system.
      • Markov Decision Processes Based Techniques - addresses uncertainty in actions/transitions and perception

Clone this wiki locally