Overview

Each programmable matter pebble is a 12mm per side, and together they are able to form complex 2D shapes using four electropermanent magnets able to hold over 80 times the individual module weight. The pebbles are formed by wrapping a flexible circuit around a brass frame. An energy storage capacitor hangs between two tabs occupies the center of the module.

The Robot Pebbles are our newest programmable matter system, which is capable of forming shapes through self-disassembly. In general, programmable matter systems are
composed of small, intelligent modules able to form a variety of macroscale objects in response to external commands or stimuli. We aim to create a system of sand grain sized modules that can form arbitrary structures with a variety of material properties on demand.

The Robot Pebbles are the second generation of the Miche: Modular Self-Disassembly system. While the Miche system was composed of modules measuring 45mm per side, the Robot Pebbles are only 12mm per side. Not only can the Robot Pebbles self-disassemble to form shapes from an initial block of material, the individual modules can, when shaken or vibrated, self-assemble to form a close-packed initial block of material. We envision that the Robot Pebbles, when made slightly smaller, will form a universalSmart Sand toolkit allowing anyone with strict weight or size constraints to produce almost any object on demand. Given a bag of Smart Sand, the user conveys the desired object to the modules and then begin shaking the bag. As the modules in the bag come into contact and exchange information, they decide when to bond with their neighbors. After this selective bonding process, the user opens the bag, grabs the object, brushes off the extra material, and can then use the object for the task at hand. When the user is done with the object, he places it back in the bag where it disintegrates so that the modules can be reused indefinitely.

Hardware

Each module is composed of a flex circuit (a), a brass frame (b), four electropermanent magnets (c), and an energy storage capacitor (d) which mounts to the bottom of tabs labeled (e).

Each Robot Pebble is a 12mm cube capable of autonomously communicating with and latching to four neighboring cubes in the same plane to form 2D structures. Each module weighs 4.0g. The major functional components of each cube are power regulation circuitry, a microprocessor, and four electro-permanent magnets, which are responsible for latching, power transfer, and communication. The Robot Pebbles are formed by wrapping a 2-layer flexible circuit around an investment-casted brass frame. Stiffeners integrated into the flex circuit ensure the rigidity of all six faces.

Electro-permanent (EP) Magnet Connectors

The four electro-permanent (EP) magnets in each module form the cornerstone of the module's capabilities. The magnets are able to draw in other modules from a distance, mechanically hold modules together against outside forces (with zero power dissipation), communicate data between modules, and transport power from module to module. The EP magnets are soldered directly to the flex circuits so that their pole pieces protrude slightly through four sets of holes in the cube faces.

The top view of an electropermanent (EP) magnet used for latching, communication, and power transfer. Each EP magnet assembly is composed of two pole pieces (a,b) which sandwich cylindrical Alnico (c) and NdFeB (d) magnets. The entire assembly is wrapped with 80 turns of #40 AWG wire (e) and held together using epoxy (f) (which makes the Alnico magnet appear larger than its NdFeB counterpart).

As shown in the photo, each EP magnet consists of rods of two different types of permanent magnet materials, capped with soft-iron poles, and wrapped with a copper coil. One of the permanent magnets is neodymium-Iron-Boron (NdFeB), and the other is Alnico V. Both of these materials have essentially the same remnant magnetization, about 1.2 Tesla, but very different coercivity; it takes about 100 times less applied magnetic field to switch the Alnico magnet than the neodymium magnet. A current pulse through the coil in the positive direction switches the polarization of the Alnico magnet so it is aligned with the polarization of the neodymium magnet. In this case, magnetic flux from both flows through the soft iron poles and to the other magnetic object, attracting it. The attraction continues after the current in the coil is returned to zero. We call this the “on” state of the connector. A current pulse through the coil in the negative direction switches the polarization of the Alnico magnet so it is opposite the polarization of the neodymium magnet. The polarization of the neodymium magnet is unchanged because it has a much larger coercivity. With the two magnets having opposite polarization, magnetic flux circulates inside the device but does not leave the poles, and thus does not exert force on the other connector or external ferromagnetic objects. Once again, this flux pattern continues after the current is returned to zero. We call this the “off” state of the connector.

When energized, two adjacent EP magnets can withstand 3.18N of normal force--almost 325g or 0.75lbs. A single module weighs only 4.0g, so one module is capable of supporting a chain of over 80 neighbors. When turned off, the remnant force exerted by the EP magnets is undetectable. Two energized EP magnets can also attract and latch over distances up to 4.3mm--or 33% of a Robot Pebble linear size.

Communication

The EP magnets form an inductive communication channel between neighboring modules. In short, when two EP magnets are in contact, they behave just like a 1:1 isolation transformer. We utilize this fact to transfer data between modules without affecting their ability to latch together. All inter-cube communication occurs at 9600bps using a series of 1μs magnetic pulses induced by the coil of one EP magnet and sensed by the coil of the neighboring EP magnet assembly. The presence of a single 1μs pulse during a bit period signifies a logical ‘1’ while the lack of any pulse signals a ‘0’. Neighboring modules transfer data using pulses of the same polarity as the pulses used to latch the EP magnets. As a result, there is no risk of the latching strength decreasing over time during intensive communication.

Power Transfer

The modules in our programmable matter system do not contain their own power sources. Instead, electrical power is distributed from one or more centralized sources and then transferred from one cube to the next. Power is transferred between units via Ohmic conduction of DC power through the soft magnetic poles of the connectors.

All of the magnetic materials used in the connector are good conductors of electricity, so it was necessary to coat the rods of Alnico and NdFeB separating the two poles with Parylene to electrically isolate the two poles. Each module contains a 100μF low ESR, reservoir capacitor. These capacitors, one of which is labeled (d) in the figure above, are responsible for sourcing the high-current demands of the EP magnets when they are switching on or off. These capacitors fill the interior of each cube and can only be installed once the flex circuit is partially folded around the brass frame. Instead of being mounted as a traditional surface mount capacitor would, the storage capacitor is soldered by its ends to the bottoms of two tabs labeled (e) in figure above.

Algorithms

To form shapes through subtraction, modules initially self-assemble into a close-packed block of material (a). Once this initial structure is complete, and all modules are fully latched to their neighbors (b), the modules not needed in the final structure detach from the neighbors (c). Once, these extra modules are removed, we are left with the final shape (d).

We propose a new approach that eliminates many of the complexities of shape formation by program-driven self-assembly which aims to form complex shapes in a single pass. Using this approach, the structure grows from a single module, surrounded by a sea of modules in stochastic motion. New modules are only allowed to attach to the structure at specific locations, and, over time, the desired structure grows in an organic manner. In contrast, our Smart Pebble system employs a set of distributed algorithms to perform two discrete steps: 1) rely on stochastic forces to self-assemble a close-packed crystalline lattice of modules and 2) use the process of self-disassembly to remove the extra material from this block leaving behind the goal structure. By approaching shape formation in this manner, we hope to speed up the entire process, eliminate any global information that must be distributed throughout the system, and simplify the computing requirements of each module.

Self-Assembly

During the self-assembly process, we want to ensure that no gaps are formed in the growing structure. By preventing gaps, the self-disassembly process is able to form the widest variety of shapes. Additionally, gaps weaken the structure and reduce the available communication paths. If we allow new modules to be accreted at any location on the growing structure, it is easy to create concavities in the structure that are theoretically difficult and practically impossible to fill. For example, a loose module will never fill a spot in the crystalline lattice that is already surrounded on three sides. To avoid holes in the self-assembled structure, we propose a simple distributed algorithm that only requires local information. Based on this information, each free module coming into contact with a potential bonding site on the solidified structure must decide whether to permanently bond with the structure or move on and look for another bonding site.

The algorithm makes two assumptions. First, all modules know the location of the root module. This is easy to hard-code into each module’s process as location (0,0), for example. Second, once each module is added to the structure, it can determine it’s (x,y) position. The user informs the one module anchored to the assembly platform that it is the root and therefore at location (0,0) and that it is rotated 0◦ . Using this information, the root can inform the module added to its right that the new module’s location is (1,0). Likewise, the module added below the root is at location (0,-1), etc. Based on which of its faces the new module receives this message, it can determine its orientation. Now that the newest module knows is location and orientation, it inform its newest neighbors of their location.

The algorithm begins as the free module receives power when it comes into contact with a module already a part of the crystallized structure. Immediately, the module queries its neighbor to determine its location. Based on this location, the module then constructs a root vector pointing back to the root module. The vector may have x- and y-components. The new module permanently bonds with the structure if it detects that it has neighbors in both the x- and y-directions of the root vector, if they exist. If the new module does not detect neighbors in the appropriate locations, it informs whatever neighbors it is contacting, and they deactivate their connectors allowing the pebble to continue moving under the influence the table’s vibrations. The already solidified module keeps this connector deactivated for a fixed period of time to allow the rejected module to move out of range of its attractive force. Eventually, the connector is reactived in hopes that the bonding site will have become valid.

Self-Disassembly

Shape formation by subtraction proceeds through five basic stages: neighbor discovery; localization; virtual sculpting; shape distribution; and disassembly. In the first stage, neighbor discovery, modules are connected to form the initial structure. During this phase, modules detect when they are supplied with power and then attempt to communicate with and latch to their new neighbors. As the structure grows, modules keep track of with which neighbors they are able to communicate. After the initial structure has been assembled, the localization stage commences. All modules in the structure exchange local messages to determine their positions with respect to a root. All modules in the structure are able to to determine their relative coordinates without any concept of the structure as a whole. Each module then sends a reflection message containing its position back to the root. The root forwards these reflection messages to a GUI running on a PC, and the GUI builds a virtual model representing the initial arrangement of modules in the physical structure. Using this GUI model, the user drives the virtual sculpting stage by selecting which modules should be included in the final shape. After this sculpting process is complete, the program generates a sequence of inclusion messages. During the shape distribution stage, the GUI transmits these inclusion messages to a the root module. The structure then propagates these inclusion messages to their proper destinations. As with the localization process, the messages only contain local information. During the disassembly phase, the modules not designated to be in the final structure disconnect from their neighbors to reveal the shape the user sculpted previously. Each of the self-disassembly phases is dependent on a distributed, localized message passing algorithms executing on each module.

Duplication

We have created an algorithm for digital fabrication by shape duplication. In particular, a passive object is buried under, or submerged into, a collection of programmable matter modules. Upon receiving a start signal, the all modules mechanically bond with their neighbors to encase the original object in a solid block of material. Once solidified, the modules execute a novel distributed algorithm that senses the shape of the original object. After the system has captured the shape of the original, it creates one or more, potentially magnified, replicas of the object using the rest of the programmable matter by selectively unlatching the unnecessary modules from the initial block of material. When this self-disassembly is complete, the user can brush away the newly disconnected modules to reveal a replica of the original object.

The algorithm has several important properties. First, it is completely distributed. No external computer is required, and each module in the system is identical. Second, because a complete description of the goal shape is never known by any module, the total storage required by each module remains constant even as both the total number of modules in the system, and the size of object to be duplicated, grow. Third, the algorithm accounts for connection and communication failures and is therefore incredibly robust. We assume that there will be neighboring modules that cannot communicate, as well as voids within the structure that arise, (due to small variations in module size and jamming), while the original object is being encased. Fourth, the distributed shape formation algorithm scales favorably as we form increasingly large shapes. Ignoring the O(log n) scaling associated with storing large numbers, the duplication algorithm presented here only requires constant storage per module. Furthermore, the total number of neighbor-to-neighbor messages exchanged in the process of duplication scales as O(n^2).

Experiments

We've performed numerous experiments designed to test the system's ability to self-assembly and disassemble a variety of shapes. The videos below show the system in action.

In order to test the system's ability to self-assemble, we want show that a collection of modules, when placed in a bag and shaken, are able to form a close-packed block of material that can later be virtually sculpted to form a specific shape. Since the current Robot Pebbles are only capable of forming 2D shapes, we use an inclined vibration table instead of a bag to form the initial block of material. The following video shows a collection of 17 modules placed randomly on a 12.5 x 12.5cm vibration table inclined at seven degrees forming a close-packed lattice in which all neighboring modules are bonded with their neighbors. Using this lattice as a starting point, the system can-self disassemble to form shapes like the humanoid shown in the next video.

This video shows a group of 15 modules being assembled by hand into a 3 x 5 block which then self-disassembles to form a humanoid shape. The video demonstrates that the surplus modules are easy to remove from the initial block and that the final shape is relatively strong. Parts of the video are sped up to five times the recorded speed.

One key aspect of the self-disassembly process not shown in the previous self-disassembly video is the order in which the unnecessary modules detach to form the desired shape. In particular, the outer-most modules disconnect before any internal connections are broken to ensure that each module can disconnect from all of its neighbors before it loses power. Without this strategy, the unused modules would be left in connected clumps making them difficult to reuse.

Future Work

We are actively working to improve both the Robot Pebble hardware and algorithms. To achieve our goal of creating Smart Sand we want to continue miniaturing to achieve a ten-fold reduction in size that results in a single module measuring 1mm per side. This will require a transition from building the modules with discrete components to a lithographic approach that builds hundreds or thousands of modules on a single silicon wafer. In addition to miniaturing the modules, we are pursuing several approaches to create a 3D system.