AI - Einführung, Suche & Exploration, Steering & Control, Path Finding  

Steering Algorithmen

Wie funktionert der Steering Algorithmus Collision Prediction?

1. Für alle target ∈ T berechne Zeitpunkt der größten Annäherung
        Δp = target.pos - agent.pos
        Δv = target.v - agent.v
        tclosest = (Δp • Δv) / |Δv|2
Agent und target kollidieren wenn Minimalabstand kleiner als doppelter Kollisionsradius ist (dmin < 2 * rcol)
        dmin = |Δp| - |Δv| * tclosest
 
2. Wähle kollidierendes target mit kleinstem tclosest
  • Wenn alle target ∈ T betrachtet wurden und keine Kollision auftragt beende CollisionAvoidance (success)
 
3. Bestimme Richtung zur Kollision
  • unmittelbare Kollision (dmin ≤ 0 oder |Δp| < 2 * rcol)
    • dk = Δp (besser: Evade(agent))
  • ansonsten zukünftige Kollision (predicted) berechnen
    • dk = Δp - Δv * tclosest
 
4. Bestimme Beschleunigung (steering.linear)
        s = dk * maxAcceleration

Diskussion