Ant Intelligent Robot: A Versatile and Low Cost Miniature Mobile Robot Platform for Swarm Robotics Research and Education

In this paper we present the Ant Intelligent Robot (AIR), a miniature mobile platform designed for swarm robotic research and education. The proposed system has a modular and distributed architecture that provides the necessary versatility, robustness and user accessibility to enable the study of a broad range of applications, while achieving a low cost. We also present a comparison between AIR and other platforms that were recently used in collective experiments.


INTRODUCTION
Multi-robot systems, as a subfield of multi-agent systems, have attracted the attention of many researches in the past decade.The attention received by these systems is twofold: hardware advancements -a typical smart phone of today's world is equipped with a CPU running at several hundreds of MHz -and the expected benefits of their improved efficiency -applications in this respect include autonomous exploration, unmanned search and rescue missions, dynamic target tracking, hazardous environment monitoring, waste cleaning and others.In these applications teams of robots not only have to rely on local information and overcome the inherent problems with imperfect sensors and communication medium, but they must intelligently coordinate in order successfully accomplish the tasks at hand.Moreover, the dynamic of various application environments, time constraints, robustness, flexibility, cost, size, ease of use and the ever increasing demands of user requirements add to the complexity of designing such robot platforms.
In this paper we present the Ant Intelligent Robot (AIR), a miniature mobile platform that provides the versatility, robustness and flexibility necessary for the study of single-and multi-robot applications, while still achieving a low cost.The modular and distributed architecture of the platform meets key design goals facilitating user accessibility -required in education -and multiagent system engineering -required in swarm robotic research.A comparison between AIR and similar mobile robot platforms that were recently used in collective experiments is also provided in this paper.

RELATED WORK
To date research on swarm robotics has mainly focused on the underlying multi-agent system design.As such, there is a large body of work addressing key application areas: bio-inspired systems [6], coordination [15], task-allocation [27], communication [11], localization and mapping [30] and control approach [9], just to name a few.Reviews on multi-agent research areas for swarm robotics can be found in [19] [37] and a more recent review on swarm robotics multi-agent engineering can be found in [28].In order to support the requirements of these multirobot systems the individual robot designs are task centric [5][7] [13] [16] [25] or make tradeoffs between: cost, modularity, size, processing power, energy consumption, versatility of sensory systems and communication capabilities, robustness , ease of use and monitoring [1][2][3][4] Early work on mobile robot designs used in swarm robotics research and education was done by Mondada et al. [1].This work featured Khepera, a small robot with only a 55 mm diameter, but very limited processing power, flexibility and ease of monitoring.This design was the basis for the subsequent commercial versions: Khepera II, Khepera III and Khepera IV developed by K-Team Co. [20] [33].The Khepera IV robot is targeted toward research applications and costs $2000+ in parts for the basic configuration, which may inhibit its use in swarm robotic applications.A more versatile and also small size robot design is Alice [3].To the best of our knowledge, Alice, is the smallest mobile robot to date, having a rectangular shape with a side of only 20 mm.It also has a modular hardware design and multiple robots can be collectively monitored through a radio link.Several other mobile robot designs are relevant to our own: S-bot [2], JL-I [7], ZeeRO [4], Kobot [12], Centibots [5], Bebot [20], E-Puck [10][16] [22].These platforms have processing power ranging from 20MHz -400 MHz, provide range and local communication capabilities using IR sensors, have wireless or Bluetooth for long range communication and multi-robot monitoring, are equipped with a vision sensor and have sizes ranging from 120 mm to approximately 350mm in diameter.Some of the designs also have modular hardware architecture which may provide an increased robustness in the face of various hardware failures.
More recent robot designs leverage key desirable featuresmodularity, processing power, sensor variety communication mechanisms and energy consumption -against cost and size.MarXbot [21] is a design that features some improvements over its predecessor the s-bot [2].It has more processing power, more energy -with its higher capacity battery and "hotswap" systemand an increased bandwidth for inter-module communication.These improvements are leveraged over the size of the robotbeing with 50 mm larger than the s-bot.The platform was used in "Swarmanoid" project [25] and other related projects [23].Flockbots [30] is a low cost design (approximately 500$) that uses off-the-shelf components and is built around two of the most popular embedded boards: Raspberry PI [31] and Arduino [38].The sensory system is composed of a pan-tilt camera system and 5 IR sensors.In the extreme of low cost is Kilobot [24] with a manufacturing price of only $14 in parts.The robot size is only 33 mm and it uses a slip-stick locomotion system based on vibration motors.Communication and sensing is limited and is accomplished through a single IR sensor.Wolfbot [28] is another low cost robot design ($550 in parts) with an approximate diameter of 178 mm that is built around the popular Beaglebone embedded board [32].The design incorporates an accelerometer, a vision sensor with integrated microphone, 5 IR sensors and wireless communication.Navigation with the Wolfbot is achieved through an omni-directional drive system.Finally, in designing the AIR platform we also considered selfreconfigurable robot designs such as those presented in [17] [19].Design challenges for this type of systems are presented in [14] and a review of architectures and existing platforms to date was done by Yim, Mark et al. in [8].

DESIGN GOALS
In order to provide the robustness, flexibility and scalability required by multi-robot research applications, as well as ease of use, versatility and maintainability for use in education at a low cost, we considered design aspects along three directions, namely: multi-agent system engineering, educational requirements and the manufacturing process.

Multi-agent System Engineering
In swarm robotic research applications, multi-agent system engineering plays a crucial role, as it shapes key aspects of the robotic swarm, such as: what are the underling physical mechanisms used in self-coordination and task allocation, what schemes of interaction and/or communication are required, what are the characteristics of the environment in which robots will act and many others.To support the research endeavors for these systems in designing our platform we made the fowling considerations: 1.The physical environment in which the robotic swarm will act is: partially observable, stochastic, dynamic and continuous.This assumption is based on the several key facts, namely: real sensors and actuators present inherent imperfections, the state of the environment may change both with and without the swarm acting upon it and evolves over time according to laws of physics with some degree of randomness.
2. Robots are multipurpose, have a variety of skills, are able to interact using some form explicit and/or implicit (direct or indirect [36][37]) communication and are not intentionally adversarial.In order to support various tasks, such as: collaborative manipulation, multi-robot localization and mapping, search and rescue, robots within the swarm must possess a variety of perceiving mechanisms and must be able to communicate to achieve coordination.
3. Individual robot failures can be detected and communicated to the swarm with a probability greater than zero.This is a very desirable characteristic, as it directly influences the robustness of the swarm.Thus, a state of the art robot design should include mechanisms for detection and communication of sub-system failures and execution of actions.
4. Robots within the swarm must be able to act in a real-time manner according to the application specification in order to successfully meet the application goals according to some optimization criteria (e.g.lowest possible energy consumption, achieve a certain goal in a given time, etc.).Thus, the platform should be equipped with a considerable amount of processing power in order to support processing intensive algorithms employed by agents that run on the robots.
5. The individual robots must have a relatively small size in order to be able to accommodate a large number of them in a relatively limited space.
6.The design must support tools for multi-robot programming and monitoring in order to facilitate the development of multiagent applications.

Educational Requirements
For educational purposes our robot design assumptions were based on maximizing the students experience while providing a broad range of engineering applications, namely: 1.The software tools and middleware for the robot platform should provide a comprehensive and easily accessible interface for the students.This feature is aimed at providing a self contained programming environment and easy access to robots hardware while imposing minimal limitations for use of other software tools.

Manufacturing Process
From the manufacturing stand point our design goals are based on cost, ease of assembly and maintainability: 1.The design should be modular in order to facilitate easy assembly and/or modification.
2. The composing modules must have a simple enough design in order to allow easy repair and maintainability.
3. The design should be as low cost as possible in order to be affordable even for single unit manufacturing.This also guarantees low costs for repair or unit replacement.

AIR PLATFORM
The Ant Intelligent Robot (AIR) in Fig. 1 is a miniature platform of rectangular shape with a side of 100 mm.The platform is composed of several modules, namely: main processing unit, range and local communication, vision, audio and navigation.Each module represents a single independent unit that has its own processing power, communication interface and power regulation.This distributed architecture (see Fig. 2) is essentially different from the classical single processing unit approach • Periodic and preemptive tasks necessary for signal processing, motion control and many others can be distributed among the composing modules reducing the computational load for the main processing unit.
• It provides the ability to sense and communicate individual module malfunctions and action execution faults improving the robustness of the robotic swarm (see Software subsection).
• It has a higher degree of flexibility for assembly and maintenance related tasks.In the order to achieve a low cost in the implementation of our platform we used both off the shelf and custom made components.
Inter-module communication is provided through a serial UART connection (see fig 2).Although higher data rates can be achieved through CAN-bus, which our platform supports, we used serial communication in order to maintain flexibility in choosing off the shelf components.Future extensions of our platform such as adding a gripper is supported through GPIO, ADC, I2C, UART and CAN busses.
The base of our robot (Fig. 3) is a low cost solution of only $4.It is composed of six acrylic plastic parts corresponding to the sides of the robot, interconnected through metallic angled brackets.This base houses all components required by our design and facilitates easy access to hardware components for repairing and maintainability purposes.

Main Board
The main board in Fig. 4 is a custom made printed circuit board (PCB) that holds the main processing unit, the audio module and the communication interfaces for the other modules and extensions.It also provides the necessary circuitry for battery management, signal conditioning and status LED's.For the main unit we used the Beaglebone [32] single board computer (SBC) which comes in two versions.Both of these versions are supported by our mother board.The choice of Beaglebone over similar SBC's such as the Raspberry Pi [31] was based on its more powerful CPU (ARM Coretex-A8), lower power consumption and available interfaces.Table I shows a comparison between the two boards.

Perception
Perception capabilities of the Ant Intelligent Robot are distributed among four modules, namely: range and local communication, vision, audio and navigation.Each module maintains up-to-date sensed information that is provided to the main processing unit on a request basis.
For vision we used an off the shelf Linksprite camera [40] equipped with a 90 degree lens that can capture 640x480 JPEG encoded images at 30 fps.The audio module is an EasyVR [41] voice recognition board.This board allows both speaker dependent and independent commands to be trained.Thus, it provides support for easy development of human-robot interaction applications.
The range and local communication module is composed of a custom standalone acquisition board (see Fig. 5), eight custom IR sensors and two Maxbotix EZ0 [39] sonar range finders.The acquisition board integrates the interface for managing both sensor types and all signal filtering and post-processing functionality.The IR sensors are mounted along the circumference of the platform (two on each side), while the sonar sensors are mounted in front.Our custom IR (see Fig. 5) sensors have emitters and receivers that are modulated at 38 kHz to avoid ambient light interference and feature two modes of operation: active and passive.In active operation the sensors perceive proximity of objects within 100 mm, while in passive operation the sensors are used for local communication that is detailed later in this section.From the perception stand point, the navigation module provides odometry sensing capabilities.These capabilities are discussed next.

Navigation
AIR's navigational module (see Fig 6) is composed of a differential drive motion control board (MCB), a two stage Hbridge and geared DC motors with magnetic quadrature encoders.
The module provides a command interface for controlling the speed and position of the robot and includes capabilities such as: traveling on a straight line with a specific speed, traveling on an arc of specific length and radius at a certain speed, maintaining a certain ratio between the two motor speed, rotating in place to a specific angle and many others.The module also acts as a position sensor for the main unit.The position is maintained in odometric form (x, y, θ) and is updated at a rate of 1 ms by the control loop.In order to support applications where more torque is needed (e.g.collaborative box pushing) versus application where more speed is needed (e.g.collaborative target tracking) the geared motors we selected have a maximum torque of 0.91 Nm and maximum speed of 130 rmp at the gear output shaft.The motors are equipped with low resolution magnetic encoders (only 48 counts per revolution) in order to keep the costs low for our navigation solution.Due to this choice of low resolution encoders, to accurately control the differential drive, we designed a real-time closed-loop control algorithm that runs at rate of 1 KHz. Figure 7 shows the navigation block diagram for the control and odometry sensing scheme.

Figure 7. Navigation block diagram.
The algorithm greatly improves the resolution with which the speed is sensed through a sensor fusion scheme allowing us to smoothly control the platform.It also minimizes the effects of robot skid and slip through a cross-coupling method.Further details about our control algorithm are presented in [42].

Communication
Communication -local and global -is of special interest to swarm robotics because it is employed by a vast majority of collective robot algorithms.It is also the underling mechanism through which the behavior of the multi-robot system is monitored and analyzed.Therefore, it is critical that the AIR platform supports both local and global communication mechanisms.
Multi-robot programming and monitoring are provided through three interfaces, namely: USB, Ethernet and Wi-fi.The first two are included by our Beaglebone main unit, while the last is achieved by using an Edimax Wi-fi [43] dongle.The dongle is mounted on the primary USB port of the Beaglebone.Wi-fi communication is also used as a global communication mechanism and is made available through our middleware described in the Software subsection.
Local communication is achieved by using the IR sensors in passive mode.When in this mode, the IR's can sense the signals emitted by other sensors.This mechanism equips AIR with implicit (via sensing) communication abilities [44] and increases the robustness of our platform in face of global communication failures.Explicit communication through the IR sensors is also possible, but it is reserved for future work at the time of this writing.

Power Management
AIR's energy consumption is distributed among its modules.At full load (all modules are running, all sensors are enabled and the motors run continuously at full speed) AIR draws a maximum current of 0.697 A. In order to minimize the down time of the platform we selected a three cell lithium polymer battery with a capacity of 1.5 Ah and a 3 A high charge current rate.This enables AIR to have over 2 hours of running time under continuous full load and a charge time of only 30 minutes.
Charging a single unit is accomplished by using an off the shelf tree cell balanced charger, while charging multiple units is accomplished by using the same single unit charger and an off the shelf parallel charge adaptor.This setup enables us to easily charge up to six robots in the same amount of time that a single unit would be charged.

Software
The goal of providing comprehensive software tools in order to maximize AIR's accessibility and facilitate easy application development has been realized through our middleware.The middleware is divided in three parts: operating system, development environment and AIR's standard development kit (SDK).For the operating system, we use a custom real-time Linux 3.8 kernel with an Ubuntu 14.04 root file system which is deployed on the Beaglebone.This setup provides a wealth of software packages and libraries, such as OpenCV [46] or CMU Sphinx [47], with minimal impact on the main unit processing power.The development environment is based on Eclipse [45] with additional plugins for monitoring (remote access, image visualization) and a suite of cross-platform development tools (compilers, linkers and debuggers).This environment can be deployed on a wide range on Linux enabled machines and offers an integrated development solution for users, as well as the ability to easily deploy software on multiple targets and real-time debugging capabilities over a Wi-fi connection.Both development host and robot installation setups (either single or multiple) are managed by custom automated shell scripts.As a result, increasing the number of robots or changing the development host is completely transparent.In order to facilitate easy access to AIR's hardware a C/C++ SDK was written.The SDK is structured in five components: video, audio, range and local communication, navigation and Wi-fi.The five components are managed internally in a distributed manner by five threads of execution, where each thread acts as a client for the five components.The threads are responsible for providing up-to-date information to the main unit and checking module fault condition status.This scheme enables an agent running on AIR to immediately sense both command execution and module failures.
It also enabled us to implement all of the user interface functions for each module in a non-blocking manner.As a result, processing intensive agent loops are not stalled due to hardware delays and are able to have immediate access to the most recent precepts.To illustrate, the following piece of code: #include <iostream> #include <Robot.h>int main(int argc, char *argv[]){ Robot::init(); std::cout<< "x = "<<Robot::motors->getX() <<" , "<< "y = "<< Robot::motors->getY() << std::endl; Robot::close(); return 0; } displays the robot relative coordinates at the console: $ x = 0 , y = 0 and represents an example of how a user would normally use the platform SDK.In this example, the navigation module is accessed through the motor object and the measured (x, y) relative coordinates are requested.The reader is correct to assume that the getX() and getY() methods return immediately, and that any module on the AIR platform can be accessed in the same manner as the navigation module (e.g.range and local communication accessed through the sensors object).Thus, the requirements for a user to start using the AIR platform are knowledge the of C\C++ programming language and a basic description of the sensory and actuation system.

Cost
To allow manufacturing of large AIR collectives, one of our design goals was to achieve a low price for single unit manufacturing.When manufactured in single units AIR costs $390.This cost is distributed among the parts of the composing modules.Table II shows a summary of the overall costs for these parts which include logistic costs.Dissemination of the data files (hardware and software), building instructions and the list of materials is acomplished through our group website [50].

PLATFORM COMPARISON
A wide range of mobile robots are available both commercially and open-source.In this section we consider a subset of them that we find relevant to our own design.This subset is presented in Table III.Most of the platforms have a modular architecture, are equipped vision, range and position perception capabilities, use a differential drive for navigation and provide an interface for developing software for the robots.
Commercially available robots, such as Khepera IV, Amigo or E-Puk, feature a compact design and can be easily equipped with additional extensions.However, the prices of these robots are in range of thousands of us dollars in parts, which drastically limits there use in swarm robotics applications.In comparison, AIR, has a significantly lower price in parts, is equipped with more processing power, features a fault-tolerant distributed design and supports a integrated multi-robot development environment.
Similar -perception, processing, communication and ease of use -capabilities are provided by the WolfBot platform.While this platform has an increased autonomy provided by its larger battery and a modular design, its size is with 78% larger than AIR and all processing is done by the Beaglebone main unit.WolfBot also relies on a less accurate navigation solution than AIR that is based on an omni-directional drive and inertial measurements.Diverging from the classical single processing unit approach is ZeeRO with a clear modular and distributed design.Nonetheless, AIR has significantly more processing power, smaller size and a lower cost.On the other hand, MarXbot, the predecessor of s-bot, has more perception capabilities than AIR.It also has provides self-assembly capabilities through a custom designed gripper and increased autonomy through a hotswap system.Both s-bot and MarXbot are larger in size and have with more than 50% less processing power.A more compact design is BeBot, with 10% smaller in size than AIR.However, AIR has both explicit and implicit communication capabilities and more processing power at its disposal.
Other platforms such as the JL-I, Kobot or Flockbot, in comparison with AIR, achieve higher costs with less processing power at an increased size.AIR, also has a more accessible user interface, offloads the main unit by distributing processing tasks to composing modules and provides fault-tolerant capabilities through fault condition status checking for each of its components.

CONCLUSION
In this paper we presented the Ant Intelligent Robot (AIR), a miniature mobile robot platform designed for swarm robotic research and education.AIR's modular and distributed architecture is essentially different from the single processing unit approach and provides key features required by both research and educational applications: versatility of perception and communication mechanisms, accurate motion estimation and navigation, increased fault-tolerance and processing power capabilities, ease of use and multi-robot software development tools support.Furthermore, it facilitates easy assembly and maintenance while achieving a low cost.
[1][3][5][16][24][28][49] and has several advantages:•It provides the ability to physically change the skill set of the robots without the need to for hardware redesign by simply adding or removing certain modules.

Figure 5 .
Figure 5. Range and local communication acquisition boardleft; IR sensor front and back side -right.

Figure 6 .
Figure 6.Motor control board: and back side.