Article Preview
TopIntroduction
Flocking is a behavior that shows a set of independent, self-propelled entities moving together collectively (Reynolds, C., 1987; Oweis, S., Ganesan, S. & Cheok, K., 2014; Wikipedia, n.d.); these entities are called boids (Red3d.com, n.d.). To participate in a flock, each entity must be able to coordinate its own movement while considering the effect on its neighboring entities. An entity cannot move too fast or too slow relative to the flock. It also cannot be too close to or too far from any proximal entities. This requires each entity to continuously adjust its motion so not to disrupt any other neighboring entity. Flocking behavior can be found both in natural and artificial environments. Common natural flocks include bird formations or schools of fish. Artificial flocking behavior can often be found in robotics and aerospace. Examples of artificial applications are controlling the behavior of Unmanned Aerial Vehicles (UAVs), screensavers and movie animation.
In normal flocking behavior, there is no centralized control of the flock as a group. Each bird behaves autonomously. In other words, each bird has to decide for itself which flock to consider as its environment. Usually, environment is defined as a circle (2D) or an orb (3D) with a particular radius, representing the wing reach or domain of an individual bird (Reynolds, C., 1987; Oweis, S., Ganesan, S. & Cheok, K., 2014; Wikipedia, n.d.; Red3d.com, n.d.).
A basic utilization of a flocking algorithm has a time complexity of
(Wikipedia, n.d.) - each bird searches through all other birds to find those who fall into this environment, where
is the number of the birds in the flock. This paper presents a new way of applying flocking behavior by usage of a central command and control flocking algorithm. The algorithm can run on a server to have overall control of each boid in the flock, and a better path planning for the boid.
This paper is structured as follows: Section II describes the properties of the boids in the flock; Section III describes the original three Reynolds rules, while Section IV includes two addition rules of flocking. They were added to support both obstacle avoidance and targeting. Section V shows implementation of the flocking simulation using MATLAB® software (Mathworks, n.d.). Finally, Section VI provides a conclusion and insight into future work.
Boids Properties
There are two sets of properties for the boids: global and environmental parameters. Examples of these are the radius of the environment; the coefficient of friction (in both static friction and kinetic friction); and acceleration. There are other local boid parameters, such as mass, separation, alignment, cohesion, targeting and avoiding strengths, velocity and force limits, in addition to an assigned number ID to uniquely identify each boid in the space.
Reynolds Rules of Flocking
Flocking behavior in a virtual environment was first demonstrated by Craig Reynolds, in 1986 (Reynolds, C., 1987; Oweis, S., Ganesan, S. & Cheok, K., 2014; Wikipedia, n.d.; Red3d.com, n.d.). Reynolds developed a set of simple adaptive rules that each boid could apply to its current position, speed, and orientation. These rules are known as Reynolds Rules of Flocking. There are three main rules: 1. Separation, 2. Alignment, and 3. Cohesion. (Bourg and Seemann, 2004; Wikipedia, n.d.; Ibanez, Gomez-Skarmeta & Blat, 2003).