In this project, we present a novel platform for swarm robotics that is low cost, easy to assemble using off the shelf components and is deeply integrated with the most used robotic framework available today: ROS (Robot Operating System). The robotic platform is completely open, composed by a 3D printed body and open source software. We describe its architecture, present its main features and evaluate its functionalities executing real experiments using a couple of robots. We concluded that the proposed swarm platform is a feasible and usable system for education and research, given its reduced cost, easy of use and small size.
Keywords: Mobile robot platforms, Multi-robot systems, ROS


Wheels Encoders (Odometry)
Inertial Motion Unit (IMU)
8x Long-range IR proximity sensors (20 cm)
2x Addressable RGBA LED
Long-time Autonomy 3-9 hours (1800 mA LiPo Battery)
PID speed control
Built-in battery charge
General Purpose Bus on top (I2C/Serial/IO)
Communication Improves
Setup via Web Interface
Smaller Design
ROS Compatible
Open Hardware and Software

Hardware Architecture

We did choose ESP8266, which is a trend in recent projects, due to its high processing power, low-cost and a fast IEEE 802.11 connection with full TCP/IP stack. The use of servo motors gives us a good trade-off between size, control and speed, as other types of motors required extra components to work, making them difficult to integrate into a small body.

One of the novelties of the current version is the localization system. Unlike previous versions, HeRo now uses encoders to estimate its pose. A pair of inexpensive incremental encoders are mounted mechanically (using 3D printed parts) at both wheels reducing odometry to merely counting steps of both encoders. Furthermore, the output of the encoders can also be used as an input to a controller for closed-loop motion control.

In addition to the encoders, the robot also houses an accelerometer and gyroscope whose data can be fused into the velocity and position estimation to account for odometry errors, such as the slip produced by the wheels.

A primary requirement of a small robot used in swarm experiments is the measurement of distances to neighboring robots as well as obstacles. For reasons of both sensor size and cost, HeRo, like most other
swarm platforms, relies on infrared-based distance sensing. Eight IR transmitters and receivers are arranged in 45º increments around the circumference of the robot.

Since the autonomy of the robot is an important factor considering the time and number of experiments, we improved the autonomy of HeRo using a powerful 3.7 V 1800 mAh Li-Po battery. In addition, a 5 V DC-DC step-up module is used to regulate and manage the board power supply. These components enable the robot to perform up to 3 hours of experiments, considering the continuous use of all components.

Besides all these features, we also let an I2C/UART BUS in case we need to incorporate another external sensor or a specific module. In the following sections, we show how each part of the proposed architecture works.

Software Architecture

Given that HeRo features swarm-capable hardware and wireless communication, we proceed in this chapter to design a software architecture that supports the application developer to implement swarm applications in a fast, efficient and elegant way. In order to reach this goal, we make HeRo a ROS compatible robot by connecting them using a TCP/IP connection.

Communication Architecture

In order to provide communication between a workstation and the robots, we implement HeRo as a ROS compatible robot by connecting them using a TCP/IP networking.

The communication is conducted by a publish/subscribe model, where topics made up of predefined message structures can be communicated between multiple nodes (processes) in the network. These topics, for example, odometry, can be accessed by any node in the network, allowing for easy scalability of publishers and subscribers. In this way, robots acting as publishers and subscribers can readily communicate with other robots in the network in a well-defined way.

However, most instances of swarm robots, including HeRo, are very limited to process native ROS instance. In nearly all cases, researchers are unable to provide the functionalities of the swarm robot in ROS, since they are not able to locally run the ROS core — a collection of process and programs that are pre-requisites of a ROS-based system.

To integrate these functionalities to less powerful microcontrollers without the need for a full instance of ROS, we implemented the communication module over the rosserial protocol. Rosserial is a protocol for wrapping standard ROS serialized messages and multiplexing multiple topics and services over a network socket.

In short, the rosserial nodes convert data from normal structured XMLRPC protocol handled by TCP natively in ROS to serialized data out to the microcontroller. This node also deserializes data from the microcontroller back into the correct message structures to be sent around the conventional ROS network.


            Source code – Available here!

            Paper Draft – Available soon!


[IROS 2017 – Abstract Only] Rezeck, Paulo; Azpurua, Hector; Chaimowicz, Luiz. HeRo: An Open Platform for Robotics Research and Education, 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2018, Vancouver, CA. 2017 IEEE/RSJ, 2017.
[LARS 2017] Rezeck, Paulo AF and Azpurua, Hector and Chaimowicz, Luiz. HeRo: An open platform for robotics research and education, 2017 Latin American Robotics Symposium (LARS) and 2017 Brazilian Symposium on Robotics (SBR).

Video Demo


Paulo Alfredo Frota Rezeck

PhD Student

Maurício Ferrari Santos Corrêa


Héctor Ignacio Azpúrua Perez-Imaz

PhD Student

Luiz Chaimowicz

Associated Professor