We propose a new self-stabilizing flocking algorithm for oblivious robot networks, and prove its correctness. With this algorithm, a flock head emerges from a uniform flock of robots, and the algorithm allows those robots to follow the head, whatever its direction on the plane. Robots are oblivious in that they do not recall the result of their previous computations and do not share a common coordinate system.
The novelty of our approach consists in identifying the sufficient conditions to set on the flock pattern placement and the velocity of the flock-head (rotation, translation or speed), such that the flock head and the flock pattern are both preserved while the flock moves (following the head). Additionally, our system is both self-healing and self-stabilizing. In case the head leaves (e.g., disappears or is damaged) the flock agrees on a new head and follows its trajectory. Also, robots keep no record of their previous computations and we make no assumption on their initial position. The step complexity of our solution is O(n).