Learning Center
Plans & pricing Sign in
Sign Out

racing vehicle Control


									Racing Vehicle Control

              Alex Darby
 FreeStyleGames Ltd
 Downforce
   PS2
   Moves Track Not Car
                 Track Space
 Track modeled as long strip with fixed
  width=1 and an infinite length
 2 Major pieces of knowledge about car
   Horizontal position on the track (fWidthPos)
   Location from some “start” point (fLengthPos)
      This location is course and track dependent
Track Space
Downforce AI System
               Layers in AI
 Operate in Psudeo-Parallel
   Code executed serially
   Congitative System not used until all layers are
    done processing
 Behaviors
   Each layer composed of behaviors
   Behaviors are independent but operate much
    the way the overall layers work
          Path Following Layer
 Correct controller inputs so a vehicle can follow a
  specific path at max speed.
 Two behaviors
    Steering Control
    Corner Speed Regulation
 Steering Control
    Steering to follow vehicle racing line
    Steering to converge back onto racing line if lost
        Path Following Cont...
 Corner Speed Regulation
   Only following race line, cares about nothing else (ie
    obstacles, track conditions, etc)
   Dead-Reckoning Approach
   FSM based around corners
      Corner Identification – including corner apex
          Braking distance is calculated based on current speed
      Braking For Corner – break until the current speed is the
       same as the necessary speed to clear the corners apex
      Cruse To Apex – controls throttle so that it does not go too
       below corner breaking speed, and then accelerates once the
       apex of the corner is reached.
    Fine Grain Avoidance Layer
 Deals with potential collisions the other layers
  have not
 Two behaviors
    Race Priority
    Collision Avoidance (side-to-side)
 Race Priority selects which AI will back off incase
  of collision
    Player has significantly higher priority
    “Inside” car around a corner gets priority
             Avoidance Cont…
 Side-to-Side collisions
   Overrides steering/speed from Path Following
   Dependent on Race Priority
   If “outer” car will collide with inner car, limits the
    speed and steering to run parallel slightly behind
    the inner car
 Front-to-Back collisions
   Rear car must make sure not to hit car in front of
   Override Breaking/Throttle from P.F.L.
        Tactical Racing Layer
 Assists in change of speed & racing line in a
  pack of cars to gain an overall advantage
 Three behaviors
   Optimum Road Position
   New Race Line
   Collision Avoidance Speed Control
      Optimum Road Position
 Each Car has 4 simple “eyes” to find
  relative speed of other cars, and their
 Each eye stores a 1D that represents the
  entire track width.
 The 4 eyes give a low resolution image of
  what is ahead, next to and behind the car
    Determining Optimal Line
 4 “Eye” images combined, current racing
  line added in.
 Determine best place to “be” based on the
  locations of others and racing line
 Simple mathematical average of current
 Must be fine tuned for each track
             Path Generation
 Once a new position have been identified to give
  vehicle an “advantage” a new race line must be
 Old racing line is buffered, and simply
  interpolated in track space toward the new optimal
 Sometimes this new line may go off the track, in
  which case other layers have to deal with it
         Collision Avoidance
 Handles most of front-to-back collisions
 Only occurs if vehicle in front is currently
  going slower.
 Ignores curves in track, simply brakes to
  avoid a car in front based on current speeds
  and fWidthPos of both cars
 Not super efficient, but cheap, reliable and
  sufficiently accurate
         Driving Assist Layer
 Controls obscure events such as brake lock,
  wheel spins and washing out
 Two behaviors
   Traction Control
   Anti-Lock Braking
 Traction Control minimizes slippage
   Once the slip in the lengthwise axis > threshold
    value, actual slip is calculated
                 Slip Cont…
 Also a min throttle value to start slipping to force
  high power-weight cars wouldn’t slip a greater
  amount then expected when at a standstill.
 Type of car (4wd, fwd, rwd) must be taken into
  account, as to which wheels to measure slip from
  and how to determine curvature of car from
  slippage. (direction of the skid)
         Anti-Lock Breaking
 Same Code as Traction Control System, but
  by scaling brake value under breaking,
  instead of throttle under acceleration
 In straight line, forces wheels to lock up,
  but breaking efficiency is less then with a
  drum break wheel lockup. This is not how
  the real world works, but was deemed
  acceptable in the game.

To top