Presentation is loading. Please wait.

Presentation is loading. Please wait.

Racing Vehicle Control Adam Balgach Adam Balgach

Similar presentations


Presentation on theme: "Racing Vehicle Control Adam Balgach Adam Balgach"— Presentation transcript:

1 Racing Vehicle Control Adam Balgach Adam Balgach

2 Alex Darby FreeStyleGames Ltd (www.freestylegames.com) Downforce PS2 Moves Track Not Car FreeStyleGames Ltd (www.freestylegames.com) Downforce PS2 Moves Track Not Car

3 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 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

4 Track Space

5 Downforce AI System

6 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 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

7 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 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

8 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. 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.

9 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 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

10 Avoidance Cont… Side-to-Side collisions Overrides steering/speed from Path Following Layer 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 it. Override Breaking/Throttle from P.F.L. Side-to-Side collisions Overrides steering/speed from Path Following Layer 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 it. Override Breaking/Throttle from P.F.L.

11 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 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

12 Optimum Road Position Each Car has 4 simple eyes to find relative speed of other cars, and their proximity 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 Each Car has 4 simple eyes to find relative speed of other cars, and their proximity 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

13 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 positions Must be fine tuned for each track 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 positions Must be fine tuned for each track

14 Path Generation Once a new position have been identified to give vehicle an advantage a new race line must be constructed Old racing line is buffered, and simply interpolated in track space toward the new optimal position Sometimes this new line may go off the track, in which case other layers have to deal with it Once a new position have been identified to give vehicle an advantage a new race line must be constructed Old racing line is buffered, and simply interpolated in track space toward the new optimal position Sometimes this new line may go off the track, in which case other layers have to deal with it

15 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 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

16 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 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

17 Slip Cont… Also a min throttle value to start slipping to force high power-weight cars wouldnt 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) Also a min throttle value to start slipping to force high power-weight cars wouldnt 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)

18 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. 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.

19 Demo 2 Show the Demo…

20 AI System Wrap Up Modular Independent Scalable Representational abstractions Sensor eyes Track Space Modular Independent Scalable Representational abstractions Sensor eyes Track Space

21 Optimal Racing Lines Not easy task, math/physics intensive and track dependent How to overcome Limit custom built tracks, only allow users to use predefined segments Boring, lack of variety for users Just because pieces have racing lines, doesnt mean an optimal race line will occur from sticking pieces together Not easy task, math/physics intensive and track dependent How to overcome Limit custom built tracks, only allow users to use predefined segments Boring, lack of variety for users Just because pieces have racing lines, doesnt mean an optimal race line will occur from sticking pieces together

22 Race Lines Cont… Search for line of minimum curvature Does not account for car (width, weight), or speed. Is simply the most effective path along a track Very quick, efficient and highly reliable. Search for line of minimum curvature Does not account for car (width, weight), or speed. Is simply the most effective path along a track Very quick, efficient and highly reliable.

23 How to do it… Initially put points equally spaced in the center of the track from start to finish In sets of three points, gradually reduce the curvature by using the sum of the squares of the angles between them. Initially put points equally spaced in the center of the track from start to finish In sets of three points, gradually reduce the curvature by using the sum of the squares of the angles between them.

24 Points, and Vectors…

25 Anyone Remember Physics 21?

26 Model App Show the App

27 Surviving a Simulation Simulation AI very important Controls all the other things in a single player game Is used as to show how the game development is progressing Overall quality of game play is based on how good the AI is Simulation AI very important Controls all the other things in a single player game Is used as to show how the game development is progressing Overall quality of game play is based on how good the AI is

28 Design & Implementation Code well Create a Prototype Test Force the AI to use the same inputs a player would use Make the AI do real-world logical things. Layer the AI Design Code well Create a Prototype Test Force the AI to use the same inputs a player would use Make the AI do real-world logical things. Layer the AI Design

29 Layered Example

30 What else can be done? Include a debugger Make AI visible to players Include a debugger Make AI visible to players

31 Summary A Good AI System is made of Layers Layers operate in parallel Goal To generate lifelike racing AI with ability to pass and force the player to react more Mathematics Influenced Optimizing Best Race Line A Good AI System is made of Layers Layers operate in parallel Goal To generate lifelike racing AI with ability to pass and force the player to react more Mathematics Influenced Optimizing Best Race Line


Download ppt "Racing Vehicle Control Adam Balgach Adam Balgach"

Similar presentations


Ads by Google