Swarm robotics is a distinctive type of multi-robotic system that relies on local communication among the swarm members to generate a desired global behaviour. This implies a lack of global information, requiring robots to sense and communicate using sensors and actuators located on their bodies. Consequently, the robots within the swarm must leverage collective intelligence to solve the problem at hand, as no individual robot can accomplish the task independently. This article provides an overview of swarm robotics in general, highlighting its characteristics that distinguish it from other multi-robotic systems and simultaneously serve as motivation to adopt a swarm robotics approach. A closer examination of collective decision making within swarm robotics and its design problem also provided, classifying design methods into manual design and automatic approaches. The most commonly used automatic approaches to design collective decision making in swarm robotics are explained, along with a mention of the benefits and drawbacks of such approaches. However, this review does not cover aspects such as the swarm collective behaviours – except collective decision making – and the swarm robotics tasks.