Presentation is loading. Please wait.

Presentation is loading. Please wait.

2.7 Avoiding Dynamic Obstacles and Hazards Don DeLorenzo.

Similar presentations


Presentation on theme: "2.7 Avoiding Dynamic Obstacles and Hazards Don DeLorenzo."— Presentation transcript:

1 2.7 Avoiding Dynamic Obstacles and Hazards Don DeLorenzo

2 Geraint Johnson – Computer Artworks Ltd. The Thing ► First/Third Person Shooter ► Squad Based ► Utilized Repulsion Vectors for dynamic obstacle avoidance ► Fear and Trust

3 Avoiding Dynamic Hazards ► A* or any other method we’ve seen handles long range movement  These often deal poorly with dynamic obstacles ► Convincing short range obstacle avoidance  Avoids walking into other agents  Discovers dynamically blocked paths early

4 Ideal Path Direct Path ► Dynamic obstacles are obstacles capable of movement ► Agent should avoid obstacle smoothly, not bump into it on its way past, which looks bad, and is worse of obstacle is dangerous Obstacle Destination Agent

5 Repulsion Vectors  In the direction of the agent from the obstacle  Combine with destination direction via vector addition  Update as agent moves Obstacle DestinationDestination Direction Desired Velocity Repulsion Agent

6 Calculating Vector Direction ► Repulsion of Agent ‘a’ from entity ‘e’ ► Total repulsion vector is sum of repulsion vectors from all dynamic obstacles ► Desired velocity is calculated using desired speed and destination and repulsion vectors

7 Repulsion Magnitude ► No single ‘correct’ value for m ae ► Desirable characteristics for heuristic:  In the case of an obstacle not worth avoiding, m ae = 0  If the obstacle is too far away, m ae = 0  Otherwise, m ae inversely related to distance from a to e  m ae should be larger if a and e are on collision course  m ae should have clamped upper bound

8 Sidestepping ► If obstacle is located directly between agent and destination, either  Ra will overpower Da and agent will never reach destination  Da will overpower Ra and agent will collide with obstacle ► If angle between Ra and Da too large, add sidestep vector Destination a Obstacle RaRa DaDa VaVa Sidestep Repulsion

9 Realistic Sidestepping Agent BAgent A

10 Unworkable Repulsion ► Repulsion vector will never allow agent to reach destination ► Defer to higher level AI  Ignore repulsion vector ► Obstacle can be pushed out of the way ► Obstacle is less dangerous than what agent is fleeing ► Obstacle is moving and will be gone in time  Give up on this destination Agent Obstacle Destination

11 Oscillations ► Oscillations occur when agent is near multiple obstacles  If one or more obstacles are non-hazardous, ignore them in calculation  Otherwise, flag failure find a different path Time = t 0 Time = t 1 e1 e2 a a DaDa RaRa VaVa DaDa VaVa RaRa

12 The Thing

13 Conclusion ► Repulsion vectors from nearby entities are added to agent’s velocity ► Sidestepping vectors are added when velocity and repulsion are roughly opposite ► Oscillations preempted ► Adds realism with convincing short range avoidance ► Simple arithmetic – quick to calculate


Download ppt "2.7 Avoiding Dynamic Obstacles and Hazards Don DeLorenzo."

Similar presentations


Ads by Google