The Millibots Project

[ Project at a Glance ]

[ Size and Power | Architecture | Subsystems ]
[ Localization | Mapping and Exploration | Example Scenario ]


Size and power considerations

The primary factors that determine what a robot can do are size and power. The most obvious advantage of a smaller robot is that it can access spaces restricted by its larger counterparts. Small robots can crawl through pipes, inspect collapsed buildings, or hide in small inconspicuous spaces. For surveillance and exploration tasks, this increased accessibility dramatically impacts the overall functionality of the robots. However, with the small size also come the disadvantages of limited mobility range, limited energy availability, and possibly reduced sensing, communication and computation ability.

Our approach to overcoming these disadvantages is specialization and collaboration. To increase the mobility range of small robots, they could be carried to a particular deployment location by larger robots on the team. These larger robots could also serve as proxy-communication and proxy-computation nodes to communicate with the user over larger distances and to perform high-level planning and coordination tasks. Another possibility would be to have specialized small robots perform these tasks. For instance, a small robot could be specialized in communication, carrying two radio links, one for local communication with other small robots in its vicinity, another more powerful one for communication with the user. Specialization can also be used to provide a wide range of sensing capabilities to small robots. Different robots may carry different sensor payloads, such as a camera, sonar, or chemical sniffers. By sharing the sensor data with each other, the team as a whole can obtain a better image of the environment than can be achieved by a single large robot.

Though smaller robots can access areas unreachable by their larger counterparts, they are simultaneously limited by obstacles previously considered trivial. For example, a small robot may be able to access tight areas such as an air vent but become totally ineffective when climbing stairs. However, just as a group of cooperating robots can pool information to extend their utility beyond a single robot, multiple robots could come together to overcome physical obstacles. One of the avenues being explored by the Millibot group is mobility platforms that will allow a group of robots to dock with each other like a train in which all robots collaborate to push the lead robot over an obstacle.

The last significant issue facing robots on this scale is power. Current battery technology significantly limits the amount of energy that can be carried by a small robot. Alternate forms of energy sources are under development but have not yet proven viable at this scale. Currently, the Millibots are powered by two 3.2volt NiMH batteries that are capable of delivering a run time of about 90 minutes. NiMH batteries where chosen primarily because they are safe and easy to charge and provide an acceptable energy density. NiMH batteries also do not suffer from a memory problem allowing them to be recharged at any time during there run cycle.

Modular Architecture

As pointed out in the previous section, robot specialization is one way to build small robots that still have sufficient capabilities to perform useful tasks. One can assemble a team that consists of robots with specifically those capabilities that are required for a given task. By omitting the capabilities that are unnecessary in a particular task scenario, one can significantly reduce power, volume, and weight requirements. However, specialization has the disadvantage that many different robots need to be available to address the specific requirements of a given task.

To attain robot specialization without creating an unacceptably large pool of robots, we are building the Millibots in a modular fashion. Modularity allows one to assemble a large variety of robots from a small number of modular components

As is shown in Figure 2, each Millibot is composed of a main processor with optional communication and sensor modules housed on a mobility platform. The modules interface with each other through a standardized bus for power and inter-module communication. Each module contains its own microprocessor that implements the inter-module communication protocol and performs low-level signal processing functions for sensor and actuator control.



Figure 2: The Millibot's architecture and subsystems.

We are considering two different implementations of inter-module communications. Currently, each main processor provides a set of dedicated slots that are capable of servicing up to six sensor or actuator modules. Each module is assigned slots on the main processor in which timing and information are shared. The choice of module and slot is made by the operator and configured in software. All information is passed back and forth in the form of serial communications. A second possible implementation that we are adopting for future generations of the Millibots is based on I2C. I2C is a bus design and communications protocol that allows multiple modules to be connected to a common two-wire bus. One wire provides a high speed, synchronous clock while the other provides a two way data line. All messages on the data line are pre-appended with an address header identifying the target module. This interface is less restrictive than the dedicated slot method because it allows more modules to be connected to the same processor without having to designate separate pins.

The Millibot Subsystems


Once the interface between the main processor and its modules has been defined, the necessary sub-systems can be iterated. Currently the Millibots can be composed from a suite of seven subsystems: the main processor module, a communication module, an IR obstacle detection module, two types of sonar modules, a motor control module, and a localization module.

Communications is essential in a coordinated team. Without explicit communications, a robot can only interact with team members using its sensors (e.g. vision-based "follow the leader" behavior). However, collaborative mapping and exploration requires the exchange of detailed and abstract information that cannot be easily conveyed implicitly. Therefore, to provide two-way communications within the group, each Millibot is equipped with a radio frequency transmitter and receiver. These units can exchange data at 4800 bps at a distance of up to 100 meters. The choice of units is based primarily on size and power considerations. We expect that smaller more powerful transmission units will become commercially available in the future as miniaturization in solid state progresses.

To perceive the world, a robot must have sensors. There are currently three sensor modules available to each Millibot. The first is a set of ultrasonic sonar modules that provide focused range information about obstacles. One sonar module type provides short range distance information for obstacles between 1cm and 0.6m. The second module type provides longer range information for obstacles between 0.15m and 1.8m. The short-range sensor module is ideal for Millibots that have to work in tight or cluttered areas. The long-range sensors are more effective in environments that are more open such as hallways or open office spaces. Because of the size of the sonar detector compared to the robot, Millibots can support only one sonar unit per robot. For some tasks, it may be desirable to have both short and long-range sonar sensing available. This can still be achieved by equipping some Millibots on the team with short-range and some with long-range sonar modules.

A potential complication with sonar sensors is the interference with sonar modules on other robots. Most sonar elements operate at a fixed frequency determined by their mechanical construction. Therefore, two robots using ultrasonic sensors in the same area may cause interference for each other. To provide continuous rudimentary obstacle detection, a Millibot may opt to carry an infrared proximity module. The proximity module provides an array of five infrared emitter-detector pairs that trigger when an obstacle intrudes within its cone of emission. The proximity elements can be calibrated to provide readings of up to 0.25m. Although the proximity detectors cannot be reliably used for range determination of objects, they can be used very effectively in conjunction with a sonar detector module. The proximity module can be continuously sensing an area around the robot. Upon detection of an object by the proximity detector, the sonar modules can be coordinated carefully to determine a better range measurement.

In some cases, the mission itself may dictate which sensors are needed to achieve a given task. Millibots support the addition of sensor modules that may not be directly used by the robot itself. The temperature module is an example of a unit which is strictly a distributed sensor. This module samples the ambient temperature around the Millibot, comparing it to internal settings and producing an alarm when conditions are exceeded. Like other modules, it is capable of being configured and calibrated via the serial connection with the main processor. Any similar module can act as a mission payload as long as it does not violate the size and power constraints of the Millibots and provides a serial interface for data exchange. Sensor modules of this type include chemical sensors, radiation monitors, magnetic field detectors, and sound analyzers.

Except under the most controlled conditions, the sensors discussed so far cannot provide enough detail to resolve many of the problems facing a real robot. Real situations are fraught with anomalies. A method is needed to provide high bandwidth information during a mission for analysis by a higher level process or operator. To provide this service, Millibots can be equipped with a camera module. The camera module provides an external mini camera, video transmitter and power circuitry. Currently because of the limited processing capabilities of the Millibot, little if any of the video signal can be processed on-board. A small video transmitter is included with the module to transmit the raw video signal to an external processor or remote viewing station. Though not used by the Millibot, the camera module includes circuitry that allows the camera and its transmitter to be switched on and off via control signals from the Millibot. Control of the camera aids in effective power management. The camera need only be powered when an image is desired. The ability to remotely power down an individual transmitter also allows multiple robots to carry similar camera modules while using the same transmitter frequency. Interference is prevented by powering only one transmitter at a time. Additionally resources are minimized since only one receiving station and associated monitoring device is needed per Millibot group. However, though the camera module provides valuable visual information, it operates on the threshold of the Millibot's power budget. The current camera dissipates about 1.5 Watts of power. Due to the limited size of the battery, this type of sensor cannot be used continuously like other sensor packages.

Modularity provides flexibility in both construction and data flow. Each module in the Millibot arsenal is capable of being added to any system implementing the serial interface. This implies that some of the larger Millibots may contain multiple control processors each addressing a set of sensor modules. One such utility may be a Millibot that is designed to carry a second, non-mobile unit. Both robots may share common resources such as power or communications but act as separate logical entities in terms of the system control. Another implication is that some sensor modules may act as interfaces to other sensor modules. This would provide the ability to configure a system in a hierarchical fashion. A proximity module could receive commands from a central processor while producing control signals to a motor control module. This type of system is similar in operation to Brooks' subsumptive architecture.

Not all scenarios will support robots designed with the same modes of propulsion. For example, a small robot equipped with a set of rubber tracks will perform well on a flat, slippery surface, such as a floor or table. However, it may perform poorly on a shaggy rug. Conversely, the same robot may outperform a robot equipped with wheels in another scenario. In the Millibot group, modularity has been extended to the mobility platforms as well. A mobility platform is selected for a particular Millibot and the main processor and its set of support sensors is added to make it a robot. In most cases, the mobility platforms will utilize a similar set of dc motors. Therefore, the same motor control module can be utilized and only the software needs to be changed. For those platforms that differ, they need only to include their own motor control module and define the software interface. Currently the Millibots have implemented only two sets of platforms both utilizing skid steering. Some Millibots are equipped with a plastic tread design which is ideal for rough surfaces like rugs while others are equipped with a rubber tread design which allows it to crawl up smooth inclined surfaces. Designs are underway to provide additional platforms, perhaps with feet or claws, that will allow a robot to climb small obstacles such as air vent joints or to collaborate to push each other over similar obstacles.



[ Size and Power | Architecture | Subsystems ]
[ Localization | Mapping and Exploration | Example Scenario ]