Flocking System BreakdownFlocking Systems | Boids | Geometric Flight | Flocking Behaviour | Collision Avoidance | Velocity Matching | Flock Centring | Examples | Steering Behaviours | Seek and Flee | Pursuit and Evasion | Arrival | Wander | Path Following | Wall Following and Containment
In order for the flock members to move freely around their environment, and not bump into one another, some form of collision avoidance algorithm must be implemented. Collision Avoidance is not the same as collision detection where a collision must occur before an action is taken. Instead the collision must never happen. In flocking systems, collision avoidance has two meanings. Firstly it refers to individual flock members steering clear from one another and not having in-flight collisions. Secondly it refers to individual boids steering clear of scenery obstacles, such as walls, that get in a flock member’s way during flight.
Other Flock Members
Our simple autonomous character model would not contain enough physical knowledge for it to respond accurately to a boid-boid collision. Either a more complicated boid model should be created or boids should steer away from each other to avoid collisions happening.
Even thought flock members must interact with their neighbours in order to maintain separation without collision, they must also try to maintain membership of the flock (This is dealt with in the velocity matching and flock centring sections).
Avoiding Scenery Obstacles
Several strategies can be used to implement this type of collision avoidance, but the most common solution is the one given by Craig Reynolds in his paper “Flocks, Herds and Schools: A Distributed Behavioural Model”. This method models each flock member’s perception as a field of view and visual processing.
Each scenery object is surrounded by a limited size force field that will affect flock members. This force field is often represented by an over-sized bounding sphere. As long as flock members stay out of this sphere, no force is imparted on them by the object. To calculate if this is the case can be determined by calculating the distance3 of the centre point of the boid to the centre point of the object. Once this distance gets below a certain threshold, the distance-based force starts to gently push the flock member away from the object. As the boid gets closer, the force gets stronger accordingly.