MICAbot: A Robotic Platform for Large-Scale Distributed Robotics M. Brett McMickell∗ Bill Goodwine∗ Luis Antonio Montestruque+
[email protected] [email protected] [email protected] ∗ Deptartment of Aerospace and Mechanical Engineering + Deptartment of Electrical Engineering University of Notre Dame Notre Dame, Indiana 46556, USA Abstract— This paper presents a novel robotic platform for experimental research in large-scale distributed robotics and mobile sensor networks. The MICAbot is both inexpensive and flexible making it useful for a wide range of experimental goals. In this paper, we provide a description of the MICAbot design. Furthermore, we also discuss general design considerations involved in designing large-scale distributed robots focusing on cost, size, and functionality.
I. INTRODUCTION This paper presents a novel centimeter-scale robotic platform for research in large-scale distributed robotics and mobile sensor networks. The high cost and the large size of available platforms made experimentation in largescale distributed robotics infeasible. The MICAbot is a small low-cost robot that provides the functionality needed for useful experimentation. MICAbots are small enough that experiments involving large groups of robots can be preformed in a standard laboratory. Furthermore, they can host a wide range of modular sensors making it attractive for a range of experimental goals. New technological progress toward smaller devices has spurred interested in large-scale networks and has shown that new research in this area is needed. Currently, there are several government and industry sponsored research programs aimed at developing large-scale distributed robots and sensor networks [5], [6], [15]. A robust and flexible robotic platform is needed to test theoretical results in this area and provide a basis for further exploration. There have been several efforts toward building small distributed robots [4], [3], [2], [16], [14], [11]. There are even some commercially available small robots, such as the Khepera II [13]. Most of these devices are too expensive for large-scale distributed robotic research. For example, the Khepera II cost approximately $1, 800 for a base platform. In contrast, the MICAbot costs less than $350 and has many of the functionally capabilities of its counterparts. MICAbots were designed for laboratory experiments; however, a solid experimental platform is needed for repeatable and useful experiments. The MICAbot has a solid polymer base that stably supports batteries, sensors, motors, and the microcontroller.
Fig. 1. The MICAbot platform.
A stable supporting structure ensures connections among various components are maintained throughout an experiment and reduces maintenance of the robots. This paper is organized as follows. Section II describes the design considerations involved with design of distributed robots. In Section III, we present a detailed description of the MICAbot design. This section also provides details about the software construction and information about an additional radio board that was developed to provide further flexibility in the system. A description of the software created for the MICAbot is described in Section IV. Section V provides a brief description of the testing platform designed for the MICAbots. Future research areas using the MICAbots is given in Section VI. II. DESIGN CONSIDERATIONS Small distributed robot designs have different design constraints than larger robotic systems. In [2], the need for a new design philosophy for distributed robotic design was identified. Millibots were designed with modularity and cost in mind [2], [14]. The Robomote design followed a similar design philosophy as the Millibot; however, emphasized the importance of size and cost. The MICAbot uses a similar design philosophy as the Robomote;
e
however, we attempt to further increase modularity, functionality and structural stability without increasing cost. This section presents the design consideration used in developing the MICAbot. A. Size Small robots have severe constraints on available power and sensors. This section presents the design considerations used during the development of the MICAbot and discusses general issues involved in developing large-scale distributed robotic systems. MICAbots were designed for experimental investigation of large-scale distributed control and network algorithms in a laboratory setting. In order to use a large number of robots in this environment, the robots must be small. Robots commonly used for experiments are much too large to test even 20 robots in a standard size laboratory. For example, although designed for different tasks than the MICAbot, the dimensions of a standard PIONEER robot are approximately 44 cm × 38 cm × 22 cm [1]. In contrast, the dimensions of the MICAbot base are only 8.6 cm× 6.1 cm × 2.1 cm. B. Cost There is a trade-off between cost and size. For miniature robots, custom made parts are required making the design expensive and not practical for large-scale production. In order to reduce the overall cost of the MICAbot, most of the components used in the design are commercially available. Custom made components were designed using lowcost materials and manufacturing techniques. For example, the body and wheels of the MICAbot are made using the rapid prototyping method called stereolithography, which provided greater design flexibility and reduced the size of the robot without substantially increasing its cost. The stereolithography technique builds a part by laying down very thin polymer deposits that are cured by a laser. The material is inexpensive, lightweight, strong, and can be formed in complex shapes. This technique allowed us to design mounts for the motors and electrical components and a cavity for the battery pack. Many small robotic platforms use electronic boards as load bearing members. As a result, they are not structurally stable making experimentation difficult and requiring high maintenance. C. Functionality Functionality of the platform is another design parameter that must be considered. A viable experimental robotic system must have flexible sensor platforms for changing experimental needs. MICAbots were created to meet a wide range of experimental goals. Many small robotic platforms lack sufficient memory and processing power to perform complicated tasks. For example, “Ants” [11] is a small robotic platform that was developed for simple tasks with limited sensing. Our design uses an expandable
d
Fig. 2. Error between desired and actual trajectories. Test 1 2 3 4 5 6 7 8 9 10 Average
e (cm) 15.0 3.00 0.25 2.00 2.50 6.50 11.0 1.50 12.0 3.50 5.73
% Error 1.20 2.40 0.020 1.60 2.00 5.20 8.80 1.20 9.60 2.80 4.58
TABLE I. Odometry error of the MICAbot with a desired distance of 125 cm.
sensor board with a large array of sensing capabilities, which provides a flexible basis for changing experimental needs. MICAbot uses the Berkeley MICA platform [7], [10] for its central processing and communication. The MICA platform contains several commercially available sensor boards and is currently being used in several largescale projects [15]. MICAbots interface board provides a separate I/O expansion port for easily adding and removing these sensor boards. The interface board offers four additional isolated digital inputs and two additional non-isolated analog inputs. Furthermore, a radio board was designed for the MICAbot, which uses an additional microcontroller. This board also provides an expansion port for additional sensors. Low drift odometry is very important for distributed robots; however, most commercially available odometry sensors are either too expensive or too large for use on robots in the centimeter scale. The MICAbot uses Halleffect sensors to its position and velocity. Details of this system are presented in Section III. The odometry error for the MICAbot platform is shown in Table II-C and Figure 2.
Fig. 3. Magnets and Hall-effect sensor used for odometry.
MICAbots have two separate power supplies, one powers the MICA platform and another separate power supply for the motors and sensors. A separate power supply is used in the MICAbot design for several reasons. Most importantly, DC motors require high currents that cannot normally be handled by microcontroller ports. In addition, the use of high currents usually generates transients on the power supply. High current spikes can easily propagate through a circuit with the help of parasitic capacitance normally found on diodes and transistors. These transients and current spikes can have adverse effects on the operation of a microcontroller. The most common problem is data and register corruption, which causes the microcontroller to enter an unknown state. III. MICA BOT DESIGN DETAILS In this section, we provide a detailed description of the MICAbot design. This includes both mechanical and electrical aspects of the design. Following this discussion, the design of an additional radio board is discussed. The radio board was designed to enhance the networking capabilities of the MICAbot and provide resources for additional sensors. A. Mechanical Design The body of the MICAbot is one single unit and supports the interface board, battery pack, and motors. We designed the body as single piece of material to increase the stability and reliability of the robot. As mentioned earlier, the body is constructed out of a lightweight polymer using a stereolithography. The wheels of the MICAbot are also made from the same material. The MICAbot is a two wheeled robot, where each wheel is 3.3 cm in diameter. We use larger wheels than other comparable designs to provide additional torque. Each wheel has 12 evenly space magnets embedded in its interior face (see Figure 3). These magnets are used, in conjunction with two HallEffect sensors, one on either side of the robot’s base, for
the robot’s odomentry. Since the magnets are used for odometry, their spacing is critical. The stereolithography technique allowed us build holes for the magnets in the wheels without additional machining, which reduces cost and development time. During assembly, the magnets are epoxied in the holes for a secure fit. The Hall-effect sensors are connected to interrupts 0 and 1 on the MICA’s central processor through two isolated digital inputs. These inputs were designed for typical sensors with NPN open collector or switched type outputs. The Hall-effect sensors are very sensitive to noise from the DC motors. An additional low-pass filter was added to the board to eliminate this noise and provide an accurate measure of position. O-rings stretched around the circumference of the wheel have been added to provide better traction. The rear of the robot is supported by a circular glass ball. This was used to provide a solid low friction support. MICAbots are actuated using two modified sub-micro servomotors that provide 25 oz-inches of torque. This is 7 times more torque than comparable designs [16]. These modified servomotors function as direct drive DC gearheaded motors that drive the MICAbot at a maximum velocity of 30 cm/s. Each motor is controlled by a pulse-width-modulated (PWM) signal, which allows us to control the angular direction and velocity of each wheel. Actuating the robot with separate motors makes it difficult to travel in a straight line, but allows the robot to turn at nearly a zero degree radius. We correct the trajectory problem with a PD software controller. B. Electrical Design The MICAbot uses the MICA platform for its central processing and communication. Its central processor is an ATMEGA103L running at 4 MHz. This microcontroller has 128 KB of memory and 4 KB of RAM [7]. We use two PWM channels provided by the microcontroller, PWM1A and PWM1B, to control the DC motors. The PWM frequency is 4 kHz with 2048 steps between the maximum positive and negative voltages. Additionally, it has an AT90LS2343 flash-based microcontroller which can be used for wireless reprogramming. Communication is accomplished via an RF Monolithic TR1000 transceiver at rates up to 115 KB [8], [7]. The MICA platform also has an external UART and SPI port. A DS2401 silicon serial number provides each MICA platform with a unique identification number [7]. The MICA platform is responsible for all communication, sensor processing, data storage, actuator control, and computation for the MICAbots. An interface board was developed to connect the motor driver and sensors to the MICA platform. The MICA is connected to the interface board through a 51 pin connector. The interface board contains a quadruple half H-bridge driver, which
Fig. 4. The MICAbot interface board with sensor boards.
can drive up to 1A of current through each of its bridges and can operate at voltages up to 24 V. Two TLP2530 optical isolators decouple the MICA from the motor driver to protect the microcontroller from current spikes. Sensors can be quickly added to the MICAbot through a 51 pin I/O expansion connection on the interface board. The connection is identical to that of the MICA platform, so that sensor boards designed for this platform can be directly used with the MICAbot (see Figure 4). Commercially available sensor boards have accelerometers, photo sensors, 2 axis magnetometers, microphones, etc.. There are four additional inputs available on the interface board, two isolated digital inputs (used by the Hall-effect sensors) and two non-isolated analog inputs. The analog inputs have a low-pass filter and voltage divisor for signal conditioning. The MICAbot is powered by two separate power sources. The MICA platform is powered by two 1.2 V AA batteries, which last for approximately 3.5 hours at full duty cycle. Motors, Hall-Effect sensors, and external sensors are powered by a 4.5 V NIMH rechargeable battery. This battery can power the Hall-effect sensors and motors running at full speed for approximately 2.45 hours. A recharging station has been constructed that can charge two MICAbots simultaneously in approximately 2 hours. C. Radio Board The radio board was designed to enhance the networking capabilities of the existing MICAbot. The objective was to construct a radio board that can transmit and receive radio data packets in a reliable way without affecting the performance of the MICAbot. To achieve minimal impact over the MICA, we decided to include a separate processor on the radio board. This processor can handle most of the time consuming networking tasks for the MICA such as error checking, bit manipulations,
channel monitoring, and message retransmission. An ATMEGA103L microprocessor is used as the main processor on the radio board, which is the same processor as the main processor on the MICA. This was done so programs developed for the MICA can be used on the radio board. A separate radio transmitter and receiver are used to send and receive packets. The transmitter module is a TXM-900-HP-II by Linx Technologies and the receiver module is a RXM-900-HP-II. They operate using frequency modulation in the 902-928 MHz band and can establish a radio link for different channels or frequencies for added flexibility. This will allow the construction of complex protocols that can jump between channels depending on the traffic encountered, message priority, and cluster alignment. The receiver can monitor the strength of the radio signal received, which could be used to estimate distances or assign transmission costs on a routing algorithm. Data received and transmitted through the radio board is handled by the UART and a time interrupt. Transmission of a data packet starts by first sending a square signal followed by a synchronization signal. The square signal is used to initialize and bias the receiver circuits. The synchronization signal marks the end of this first part of the preamble. Both signals are generated by the time interrupt. After the synchronization, control of the data ports is relinquished to the UART module in the microcontroller. Advantages of using the UART are that it synchronizes itself to incoming data for each byte transmitted and it includes a start and stop bit for switching of the data transmission in order to keep the receiver circuits well biased. Furthermore, all these operations, including error detection, are handled by hardware freeing the processor for other tasks. An additional 51 pin connector provides access to all unused microcontroller ports, further increasing the flexibility of the MICAbot platform. The radio board was designed to work using only the MICA platform; however, this also eliminates some of the functionality of the radio board and eliminates the additional I/O ports. IV. SOFTWARE DESIGN MICAbot is programmed using TinyOS [8]. TinyOS is a component-based software environment that is designed for deeply embedded systems. The MICAbot uses a finite state machine to control the robots actions. A finite state machine reacts to its input and the current state in order to determine its next action (see Figure 5). Inputs to the finite state machine are generated by software or hardware events. Each state is constructed with one initiating command and two exit events (see Figure 6). The exit events are a timeout event and a completion event. The timeout indicates that the event failed to complete successfully and reached a present maximum number of attempts. The
B. Dormant State
Dormant State
Finite State Machine
Authentication State
Motion Calculation State
Motion Execution State
Localization State
Fig. 5. Diagram of program structure. Execute Command
State Complete Event
State Timeout Event
State
Fig. 6. Schematic of a general state.
completion event indicates that the state completed its task successfully. Completion events usually set variables allowing for the execution of subsequent states. Currently, the MICAbot has three operating states, which are the dormant, authenticating, or motion calculation states. A localization state is planned for future use, but has not been implemented yet. We will now discuss states used by the MICAbot. A. Authentication State Authentication establishes an initial neighborhood (HOOD) for each node. The neighborhood is a set of trusted nodes that have a direct link to the MICAbot. A neighbor is authenticated only when it has exchanged enough packets to ensure a clock model has been constructed on MICAbots. There are several clock synchronization algorithms for distributed systems. For this application, we use a model-based clock synchronization algorithm based on [9]. In their paper, Lemmon and Ganguly consider the synchronization of networks with drifting clocks using a diffusion type algorithm. Their algorithm supports clustering of nodes; however, clustering will not be used on the MICAbot. Each MICAbot stores its own neighborhood, which consists of its neighbors identification numbers, drift, and offset. MICA motes are each given unique identification numbers. Once the neighborhood has been established on a MICAbot, it will only respond to requests from trusted neighbors.
The dormant state is a power conservation state in which the processor sleeps most of the time to conserve energy. A MICAbot can remain in the dormant state for approximately 4 hours before its batteries have completely discharged. The dormant state is slightly different from the other states in that it is only possible for it to exit on a timeout. C. Motion Calculation State The Motion Calculation state is triggered by a neighboring robot or leader robot. The initiating message gives a new location for the MICAbot. In this state, the MICAbot creates a motion plan that will move it to its next desired position using a rigid body motion [12]. When complete, it signals neighboring MICAbots and initiates the motion plan. D. Low-level Controllers A TinyOS component has been built to handle the Hall-effect sensors interrupts. This component creates a software event for every Hall-effect interrupt. Higher level programs act on these events to determine the position or estimate the velocity of a MICAbot. A low-level proportional-derivative (PD) controller has been developed to correct trajectory errors in the MICAbot. This is a discrete PD-controller operating at 10 Hz. V. EXPERIMENTAL PLATFORM This section describes the experimental platform created for the MICAbots. This platform was created to explore formation control of large-scale distributed robots. A. The MICAbot Arena A 2.44 m × 2.44 m square platform has been as an experimental testbed for the MICAbots. The testbed was designed to test formation control of approximately 15 robots. A 1GHz Pentium III command computer running Linux is located next to the table. The command computer simulates the formation algorithm and monitors the MICAbots performance. A MICA platform connected via a programming board to the command computer’s serial port provides the command computer with RF communication to the MICAbots. The experimental testbed is also equipped with a vision system for acquiring state information. B. Camera Positioning System There has been many efforts directed toward localization [16], [2], [14]; however, localization of small distributed robotic systems is still an open question. We plan on eliminating this problem by using a CCD camera mounted above the testbed connected to a 650 MHz computer. The camera provides a global coordinate frame
information for the MICAbots. Each MICAbot has cue on top of it, which can quickly be identified by the camera positioning experiment. An algorithm is being developed to determine each robots position relative to a predetermined global coordinate system. MICAbots use their Hall-effect sensors for odometry. The camera simply provides them with an initial coordinate system. VI. RESEARCH APPLICATIONS The MICAbot was designed as a flexible large-scale robotic platform to support a wide range of experimental goals. There is growing research in the area of distribute robotics [2], [14], [6], [5] and large-scale networking [15], [16]. Our current interest is in scalable formation algorithms for large-scale symmetric robotic systems. In an earlier paper [12], we constructed a method for designing formation control on a reduced set of symmetric robots that can be applied to any larger equivalent system. The symmetry considered in this research is with respect to an invariance in the system due to the interchanging identical robots. In order to test this algorithm, a group of 6-20 MICAbots will move in a rigid body formation constructed on a reduced set of robots. Other applications include large-scale ad hoc networks [16], [15] and robotic swarms. The MICAbot is a very flexible robotic platform and should be a useful basis for a wide range of research applications. VII. CONCLUSIONS AND FUTURE WORK We have presented a novel centimeter-scale robot designed for research in large-scale distributed robotics and mobile ad-hoc senor networks. The MICAbot is inexpensive, costing less than $350, and provides enough flexibility for a wide range of experimental goals. The MICAbot has an additional radio board, which increases its networking capabilities and provides additional I/O ports. VIII. ACKNOWLEDGMENTS The authors would like to thank Tommy Ferrara and Daniel Luedtke for their assistance with the MICAbot project. They were responsible for drafting the MICAbot and also helped with programming and assembling the robots. The partial support of the National Science Foundation grant NSF CCR01-13131 is gratefully acknowledged. IX. REFERENCES [1] activrobots. Pioneer technical specifications. http://www.activrobots.com. [2] C. Bererton, L.E. Navarro-Serment, R. Grabowski, C. J.J. Paredis, and P. K. Khosla. Millibots: Small distributed robots for surveillance and mapping. In Government Microcircuit Applications Conference, March 2000.
[3] Sarah Bergbreiter. Cots-bots. http://wwwbsac.eecs.berkeley.edu/∼sbergbre/CotsBots/cotsbots.html. [4] Chris Burroughs. What may be world’s smallest mini-robot being developed at Sandia. www.sandia.gov/media/NewsRel/NR2001/minirobot.htm. [5] Douglas Gage. Mobile autonomous robot software (mars). http://www.darpa.mil/ipto/research/mars/index.html. [6] Douglas Gage. Software for distributed robotics (sdr). http://www.darpa.mil/ipto/research/sdr/index.html. [7] Jason Hill and David Culler. A wireless embedded sensor architecture for system-level optimization. In submitted to ASPLOS, 2002. [8] Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, and Kristofer Pister. System architecture directions for networked sensors. ASPLOS, 2000. [9] M.D. Lemmon, J. Ganguly, and L. Xia. Modelbased clock synchronization in networks with drifting clocks. In Proceedings of 2000 Pacific Rim International Symposium on Dependable Computing, December 2000. [10] Alan Mainwaring, Joseph Polastre, Robert Szewczyk, and David Culler. Wireless sensor networks for habitat monitoring. In ACM International Workshop on Wireless Sensor Networks and Applications, June 2002. Intel Research, IRB-TR-02-006. [11] J.D. McLurkin. Using cooperative robots for explosive ordnace disposal. Technical report, MIT. [12] M. Brett McMickell and Bill Goodwine. Reduced order motion planning for nonlinear symmetric distributed systems with robotic applications. In ICRA, page submitted, 2003. [13] F. Mondada, E. Franzi, and Ienne P. Mobile robot miniaturization: a tool for investigation in control algorithms. ISER’93, October 1993. [14] L.E. Navarro-Serment, R. Grabowski, C.J.J. Paredis, and P.K. Khosla. Modularity in small distributed robots. In SPIE conference on Sensor Fusion and Decentralized Control in Robotic Systems II, pages 19–22, 1999. [15] Dr. Vijay Raghavan. Network of embedded software technology (nest). http://www.darpa.mil/ipto/Solicitations/CBD0212.html. [16] Gabriel T. Sibley, Mohammad H. Rahimi, and Gaurav S. Sukhatme. Robomote: A tiny mobile robot platform for large-scale ad-hoc sensor networks. In ICRA, pages 1143–1148, May 2002.