INTRODUCTION
Mobile robotics is a technological field and a research area which has witnessed incredible advances for the last decades. It finds application in areas like automatic cleaning, agriculture, support to medical services, hazard environments, space exploration, military, intelligent transportation, social robotics, and entertainment [1]. In robotics research, the need for practical integration tools to implement valuable scientific contributions is felt frequently. However, roboticists end up spending excessive time with engineering solutions for their particular hardware setup, often reinventing the wheel. For that purpose, several different mobile robotic platforms have emerged with the ability to support research work focusing on applications like search and rescue, security applications, human interaction or robotics soccer and, nowadays, almost every major engineering institute has one or more laboratories focusing on mobile robotics research.
Earlier, the focus of research was especially on large and medium systems. However, with recent advances in sensor miniaturization and the increasing computational power and capability of microcontrollers in the past years, the emphasis has been put on the development of smaller and lower cost robots. Such low-cost platforms make affordable the experimentation with a larger number of robots (e.g., in cooperative robotics and swarm robotics) and are also ideal for educational purposes. With such assumptions in mind, we have been doing engineering and research work with two Arduino-based mobile platforms [2]: the TraxBot [3] and the StingBot1. The choice fell upon Arduino solutions, since it presents an easy-to-learn programming language (derived from C++) that incorporates various complex programming functions into simple commands that are much easier for students to learn. Moreover, the simplicity of the Arduino to create, modify and improve projects, as well as its open-source and reduced cost makes it among the most used microcontroller solutions in the educational context
Following the trend of research, in this work the focus is on educational, open-source platforms that enable researchers, students and robot enthusiasts to quickly perform real world experimentation, having access to the tools provided by the Robotic Operating System (ROS) [4]. ROS is currently the most trending and popular robotic framework in the world, reaching critical mass and being the closest one to become the standard that the robotics community urgently needed. With the exponential growth of robotics, some difficulties have been found in terms of writing software for robots. Different types of robots can have wildly varying hardware, making code reuse nontrivial. Opposing this tendency, ROS provides libraries and tools to help software developers to create robot applications. The major goals of ROS are hardware abstraction, low-level device control, implementation of commonly-used functionally, message-passing between processes and package management. One of its gold marks is the amount of tools available for the community like the Stage simulator [5], navigation capabilities 2 , visual SLAM [6] and 3D point cloud based object recognition [7], among others. Regular updates enable the users to obtain, build, write and run ROS code across multiple computers.
In the next section, we review general purpose and educational mobile robots, focusing on those already integrated in ROS and briefly describe our Arduino-based robot platforms. In section III, the main contributions of this work are revealed and details on the development of the ROS driver and its features are presented. In the subsequent section, preliminary results with physical Arduino-based robots and a team of mixed real and virtual cooperating agents are presented. Finally, the article ends with conclusions and future work.