HAL Thalamy Piranda Bourgeois
HAL Thalamy Piranda Bourgeois
Abstract
While researchers envision exciting applications for metamorphic systems like
programmable matter, current solutions to the shape formation problem are
still a long way from meeting their requirements. To dive deeper into this
issue, we propose an extensive survey of the current state of the art of self-
reconfiguration algorithms and underlying models in modular robotic and
self-organizing particle systems. We identify three approaches for solving this
problem and we compare the different solutions using a synoptic graphical
representation. We then close this survey by confronting existing methods
to our vision of programmable matter, and by discussing a number of future
research directions that would bring us closer to making it a reality.
Keywords: Self-Reconfiguration, Modular Robots, Programmable Matter,
Distributed Algorithms, Self-Organizing Particle Systems
1. Introduction
Modular robots are robotic systems composed of interconnected individ-
ual electro-mechanical modules that can rearrange in order to best adapt
to their task-environment or recover from failures. Their promise is to re-
alize robotic systems that are more versatile, affordable, and robust than
their conventional counterparts, at the cost of a probable reduced efficacy
for specific task. This concept was first introduced in the late 1980’s as
∗
Corresponding author.
Email addresses: [email protected] (Pierre Thalamy),
[email protected] (Benoı̂t Piranda), [email protected] (Julien Bourgeois)
2
2008), or self-repair (Stoy and Nagpal, 2004), our analysis will focus solely
on the problem of shape formation. While great efforts have been produced
to solve the Self-Reconfiguration Problem (SRP) since its inception in the
mid-1990’s, we want to make the point that realistic solutions having all
the desirable properties of a self-reconfiguration algorithm have yet to be
introduced.
3
broadly focused on the software challenges of these systems, giving an exten-
sive review of existing methods and algorithms for reconfiguration planning,
locomotion control, and synchronization. Though many details were given
on the topic of SR and current abstraction and solution methods, we con-
tend that a more in-depth review and comparison of existing methods on
this particular topic ought to be proposed.
This paper therefore aims to deliver a detailed account of the current
research on modular robotic self-reconfiguration for shape formation espe-
cially in its three-dimensional lattice-based variant as well as more theoretical
works. We proceed by outlining the various high-level methodologies present
in the literature, then dive down into the specifics of the algorithms and
their underlying models, before focusing on their application towards PM.
This translates into the following paper organization: First, we identify three
different approaches that researchers in the field have adopted to tackle the
self-reconfiguration problem. For each approach, we outline its inherent char-
acteristics and constraints, and briefly mention the main models and works
that it encompasses. Then, in Section 3 and based on Figure 7, we provide
an in-depth summary and comparison of the self-reconfiguration algorithms
from the previous section. Finally, we re-frame the self-reconfiguration prob-
lem within the context of programmable matter, discuss properties particu-
larly relevant for this applications, and point out promising opportunities for
future research.
4
Bottom-Up Top-Down Theoretical
Algorithms Algorithms Algorithms
Contextual
Contextual
Contextual Knowledge
Knowledge
Knowledge
Ease of
Ease of
Ease of Movement
Movement
Movement Simulator
Simulator
Hardware Hardware Simulator
5
• Roboticists have the exclusivity of the Bottom-Up approach because of
their hardware expertise.
6
System Self-Organizing Particle Systems Modular Robot Self-Reconfiguration Platforms
Dimensions 2D 3D
M-TRAN Roombot
Equilateral
Graph Generic + Convex Rotation Catom
Triangular
at all times. Several techniques for achieving holonomy at the cost of the
granularity of the system have been devised, through the use of module ag-
gregates with higher holonomy (meta-modules) (Ünsal and Khosla, 2001) or
by having the system organized into a porous structure (Kotay and Rus,
2000) through which modules can flow unconstrained (a scaffold ). While the
kinematics are usually more complex in the Bottom-Up approach, modules
are likely to assume a wider knowledge of their environment. These environ-
mental facts come from sensor information about their orientation, position
in the system, neighborhood, etc. Generally, as in the old saying knowledge
is power, extensive environmental knowledge in individual modules allows for
more straightforward algorithmic solutions, as learning the necessary facts
could otherwise require a massive amount of communication.
7
Figure 4: A snake-like formation of Roombot modular robots. (Courtesy of Prof Auke
Jan Ijspeert, Biorobotics Laboratory, École Polytechnique Fédérale de Lausanne)
environments.
Kotay and Rus (2000) proposed a centralized solutions for their bipar-
tite Molecule robot based on a hierarchical planner consisting of three levels.
Task-level planning stands as the highest level of planning and selects a con-
figuration that suits the task at hand. It then uses configuration planning
to decide on a motion plan for Molecules to transform the initial configura-
tion into the goal one. On the lower level, trajectory planning is used by
the configuration planner to move individual modules to their goal position.
They also introduced the aforementioned concept of scaffolding, to ensure
that Molecules would converge into the goal configuration, though it made
the granularity of their system extremely high as 54 modules constituted a
single scaffold tile.
A similar approach was proposed by Ünsal and Khosla (2001) for the I-
Cubes bipartite system, consisting of three-degree-of-freedom links used for
communication and actuation, and passive cubes for the modules. They used
a centralized two-level planner in which the high level planner decides on the
position of modules in the goal configuration by using the low level planner
to search for a feasible plan of individual link motions, that would move the
module to the desired location. Several iterative improvements were later
made on this approach, by introducing meta-modules to simplify planning
and therefore adding another layer of planning on top of the existing two,
at the meta-module level. Another work with I-Cubes used a centralized
divide and conquer approach, where the problem of planning the motion of
8
a module from a position to another was divided into a sequence of local
subproblems. They also used a two-level hierarchical planner in this work,
where (1) solutions to subproblems were searched on the low level planner
while (2) the high level planner was concerned with the actual motion of the
module, combining solutions from the lower level (Ünsal et al., 2001).
Although these early works using centralized planner laid the ground-
work for much of the field and introduced valuable problem simplification
techniques, they are inherently lacking the robustness, scalability, and au-
tonomy that is so critical in self-reconfiguration. Therefore, and as we will
see below, researchers eventually turned to decentralized SR method, and
thus also had to face the challenges of distributed algorithm design.
Yoshida et al. (1998) proposed a distributed algorithm based on local in-
formation for 3D reconfigurable structures with star-shaped modules. They
put forward a description of the goal shape using connection types, as pre-
viously used in some of their works on 2D hardware. Their approach used
local rules with added randomness, in the form of stochastic relaxation based
on simulated annealing.
Spröwitz et al. (2010) designed the Roombot hybrid modular robot, which
relaxes some of the strong constraints imposed on MSR that greatly compli-
cated planning. Roombots can communicate with other modules through
broadcast instead of the traditional neighbor-to-neighbor communication,
and does not require the robot to remain connected at all times (which is a
major constraint of nearly all other systems), though it requires the presence
of a structured ground surface with passive connectors. They proposed a de-
centralized self-reconfiguration algorithm using meta-modules made of two
stacked Roombots, which guarantees that individual modules can always
move. Their approach relies on the locomotion of disconnected structures of
Roombot meta-modules that converge into the desired configuration thanks
to the attraction of a force-field and a predetermined assembly order.
Finally, a number of self-reconfiguration methods for unit-compressible
modules—square or cubic (in 3D) modules that can contract and expand
on each of their sides— have been proposed. However, MSR made of unit-
compressible modules can somewhat both be thought of as specific hardware
(e.g., Crystalline in 2D and Telecube in 3D) and a class thereof. We de-
cided to consider the later and cover SR algorithms for these systems under
the Top-Down approach in Section 2.2.4, as they could potentially be used
generically on any future hardware with a similar actuation mechanism.
9
2.2. Top-Down Approach
Begin Revision
10
Architecture. Finally, there are number of different architectures that can be
used for modular robotic systems. The first main distinction to be made
is between centralized systems, in which all computation is performed on a
single module of the system or on an external computer, and distributed sys-
tems, where the computation is performed distributedly across all modules
in the system. If a distributed architecture is in use, the system can either be
synchronous or asynchronous, depending on whether or not the modules rely
on a global synchronization of the system to perform their tasks. Further-
more, communication between modules can be either local, in which case
modules can only communicate with their immediate neighbor, or global,
where any module can communicate with any other module, through unicast
or broadcast communications. Finally, memory access can also be local to
the module or their immediate neighbors, or global to the whole system.
Most of the works that will receive the focus of this paper assume dis-
tributed systems using local communications and memory accesses.
End Revision
2.2.2. Overview
With versatility being a major concern of researchers when designing
self-reconfiguration algorithms, the Top-Down approach has a crucial role:
creating shape formation methods that are not tied to a specific hardware
implementation, and that can be applied to various MSR in a generic fash-
ion. Moreover, a software-first approach where algorithms can help point
out interesting requirements to include in the hardware platforms. These
algorithms usually operate on models with particular kinematic capabilities
and constraints that represent classes of robots, as can be observed on the
map of usual models and select hardware systems on Figure 3.
Due to geometrical and mechanical attributes of robots being more generic,
motion planing for these models tends to be slightly less demanding than for
the specific hardware platforms found in the Bottom-Up approach. Con-
versely, these models have weaker assumptions about the environmental
knowledge of the modules on average, and computation therefore tends to be
heavier.
11
Figure 5: A sample configuration of modules from the Sliding-Cube model performing
reconfiguration into a 2D A shape. (From the Smart Blocks project (Piranda et al.,
2013))
12
to be filled by modules—which is relative to the number of faces of the
modules; A is the set of actions, represented by the disconnection of connector
from a neighbor module and the reconnection to another, potentially using
a different connector; T is a stochastic or deterministic transition function
that decides on the next action to perform; R is the expected reward, set to
−1 as a way to minimize the number of moves. The authors solve this MDP
using a distributed implementation of dynamic programming using message
passing. The MDP operates on the higher level of the planner, determining
for each mobile module (i.e., that can move) on which other module and
connector it should attach during the next time-step. Then the low level
planner computes the sequence of individual module motions that the moving
module should follow in order to disconnect from its current neighbor and
reconnect at its new anchor point. Modules search through the structure to
ensure that they are not an articulation point of the system’s graph to decide
whether or not they are mobile—so as to satisfy the connectivity constraint—
and lock a portion of it during their motion if mobile. As several modules can
lock the same portion of the structure, they can also move in parallel, hence
quickening the reconfiguration process. In this scenario, the complexity lies
in designing an efficient kinematic planner to act as the transition function
T.
13
tions. An interesting aspect of this work is its high parallelism and efficiency,
though it requires all modules to be have a unique label.
In a similar work, Vassilvitskii et al. (2002) also used an algorithm in two
phases, this time to reconfigure systems of Telecube unit-compressible mod-
ules. Their method had not only local decision-making, but also some degree
of parallelism and completeness. Distributed planning was performed on cu-
bic meta-modules made of eight Telecube modules, with: (1) a path planning
phase inspired by the original PacMan algorithm for 2D unit-compressible
modules with an exponential deepening search to find a mobile module as
close to the goal as possible; (2) an execution phase where meta-modules
would translate their motion plan into a sequence of individual meta-module
motion primitives and execute it. The whole reconfiguration could be per-
formed in worst-case O(n2 ) time.
14
subsequent motion; (2) a motion that would result in a collision or deadlock;
(3) a motion that would result in a violation of the connectivity constraint.
As we will later discuss, these are quite strong assumptions, as preventing
collisions, deadlocks, and preserving the connectivity of the systems through
communication or coordination greatly hinder motion planning.
In the same paper, Yim et al. proposed a distributed self-reconfiguration
algorithm for their class of modules based on local information and a coordi-
nation mechanism that they name goal-ordering. Two methods for attracting
modules to goal positions are put forward. In both of them, the mechanism of
goal ordering ensures that modules avoid overcrowding around a single goal
position by allowing them to reserve one if they satisfy a set of constraints,
and implements some coordination mechanisms to help nearby modules get
into position. In the distance-based method, modules are attracted to the
closest unfilled goal position using Euclidean distance, whereas the heat-based
method uses a heat flow technique with accessible unfilled positions acting
as heat sources, and modules not yet in position acting as sinks. Modules
climb the gradient by moving towards positions with higher temperature.
Furthermore, in order to prevent modules from getting trapped, randomness
is used as a temperature tiebreaker and for adding noise to the goal ordering
process—by regularly picking the second-best open position. A combination
of the two gradient methods is shown to provide the best results, where the
algorithm defaults to the distance-based method and switches to heat-based
when stuck. Experiments show that reconfiguration time scales roughly lin-
early with the number of modules, albeit never converging into the goal shape
in some cases, generally because of overcrowding issues.
15
mented on varied hardware systems, potentially leveraging meta-modules to
achieve cube-like structures with the proper kinematics. Some of the existing
compatible hardware systems include UCM such as Telecube (Vassilvitskii
et al., 2002) and Crystal (Butler and Rus, 2003), Molecule (Kotay and Rus,
2000), hexagonal lattice systems such as Fracta (Yoshida et al., 1998), and
the M-TRAN hybrid MSR (Fitch and McAllister, 2013).
This model was first introduced by Fitch et al. (2003), in which they also
proposed the MeltSortGrow algorithm, that can reconfigure an heterogeneous
MSR in an out-of-place manner, through sequential module motions. The
algorithm consists of three phases: (1) in the Melt phase, the initial configura-
tion is disassembled into a line, used as intermediate configuration to simplify
planning; (2) during the Sort phase, the line is sorted according to the type of
the heterogeneous modules and their position in the goal configuration. The
line is folded in two so as to avoid breaking the connectivity constraint; (3)
with the final Growth phase, the goal configuration is sequentially assembled
from the sorted line configuration, by repeatedly moving the module at the
tail of the line into its goal position. Both a centralized and decentralized ver-
sion of the algorithm were proposed. In the decentralized version, distributed
planning is used to find a path for mobile modules to and from the interme-
diate configuration. A surprising finding they made is that reconfiguration
planning for heterogeneous modular robots is not asymptotically harder than
homogeneous reconfiguration as previously thought, as they achieved O(n2 )
and O(n3 ) reconfiguration time for the centralized and decentralized versions,
respectively. Clearly, the main problem with this approach—aside from the
sequential motion of modules—is the amount of free space that it requires.
Therefore, the authors decided to investigate the effect of free space restric-
tion on the self-reconfiguration of heterogeneous Sliding-Cube modules. In
(Fitch et al., 2007), they introduced the TunnelSort algorithm for solving
SR problems among obstacles in O(n2 ) time. Modules navigate on the inte-
rior of the structure through tunneling and on a one-module thick crust on
its surface. This assumption on the presence of a free space crust is aban-
doned in (Fitch et al., 2005), in the ConstrainedTunnelSort algorithm, hence
enabling reconfiguration in environments consisting of arbitrary obstacles,
forming what they refer to as a bounding region around the system. Both
algorithms consist of an homogeneous phase, in which modules organize into
the desired goal shape independently of their module type, and a module
swapping phase, wherein individual modules in the goal configuration are
swapped through tunneling in order to attain the correct type specifications
16
of the goal shape. While ConstrainedTunnelSort is not complete, its homo-
geneous phase shows O(n2 ) reconfiguration time and moves and O(n4 ) time
and moves (Θ(n2 ) in practice for common cases) in the second phase.
Moreover, Zhu et al. (2017) combined Cellular Automata (CA) and Linden–
mayer-systems (L-Systems) in order to efficiently reconfigure a Sliding-Cube
modular robot into a class of goal shapes that can be described by branch-
ing structures, in a robust, distributed, and highly parallel manner. The CA
rules are used to control the movements of the modules and enable the growth
of the goal reconfiguration, from the turtle interpretation of the L-system.
The desired structure is grown from an initial seed module, and a new seed
module is added at each branching in the growing structure and can initi-
ate the growth of a substructure in parallel. Their approach demonstrates
a linear increase in reconfiguration time with the number of modules. As
with many other algorithms experimenting with unconventional shape rep-
resentation techniques, a major drawback of this approach is the difficulty
of designing the L-system rules that correctly describe the desired configura-
tion. It is nonetheless a clear example of a self-reconfiguration algorithm that
is highly specialized and efficient for a specific class of goal configurations.
Additionally, Støy used unspecified modules with kinematics similar to
those of the Sliding-Cube in (Støy, 2006) and (Støy and Nagpal, 2007). His
first approach was to use a two-step approach based on a CA, scaffolding, and
attraction gradients. It consists of an off-line preliminary step, wherein CA
rules are generated from a Computer Aided Design (CAD) model or mathe-
matical description of the goal shape. This description is first made porous so
as to build a scaffold to ease reconfiguration. The self-reconfiguration starts
from a seed module controlled by the CA, that attracts wandering modules
(i.e., not in goal shape) by the means of attraction gradients for them to de-
scend. Collisions are avoided thanks to the scaffolding structure and a local
distributed algorithm is used for connectivity-checking. Their algorithm is
convergent and reconfiguration time grows linearly in the number of modules.
The main drawback of this method is that it is not systematic: a different
cellular automaton needs to be generated for every goal configuration. To
circumvent this problem, (Støy and Nagpal, 2007) proposed to replace the
CA-based shape description method by a volume approximation of the goal
shape using a set of overlapping bricks of different sizes, while still form-
ing a scaffolding structure. The resolution of the volume approximation is
adjustable, with higher resolutions requiring more modules. Local rules are
used to replace the CA from their previous algorithm, and need only to be
17
created once, as they are not tied to any particular reconfiguration problem.
They show that different kinds of attraction gradients can be used depending
on whether one is seeking to minimize time and number of messages or the
number of individual module motions.
18
reconfiguration problem into two partly disjoint subproblems: (1) trajectory
planning from the current to the goal configuration (i.e., deciding how the
boundaries of the current shape should evolve in order to reach the goal con-
figuration); (2) finding an optimal flow of modules between the boundaries
of the current shape and through its volume. Their algorithm is remarkably
efficient as the number of module
√ movements is proportional to the resolution
of the robot, that is to say O( n) movements. There are a few caveats in
3
19
set of particle may assume. However, it is the infinite equilateral triangu-
lar graph that is generally used in algorithms for practical purpose, where
particles are arranged on a 2D triangular lattice. Besides, some important
properties of the model must be highlighted. For instance, all particles have
constant memory size, modest computational power and do not store any
identifier. Furthermore, particles do not have access to global information
and all their decision-making happens at the local level, in a synchronous
fashion. Particle motions are constrained in a more traditional manner how-
ever, with individual units unable to carry another because of their limited
physical strength. More importantly, all particles in the system are required
to form a single connected component at all times—which is equivalent to the
connectivity constraint. This motivates the choice of movement capability of
the particles, where they perform motion through expansion and contraction
primitives, effectively occupying either one or two adjacent graph positions
at all times. More complex forms of motions are also introduced, such as
handovers, where a particle contracts out of a node while another expands
into it simultaneously.
While it is true that other theoretical models of Programmable Matter
exist besides Self-Organizing Particle Systems as the Amoebot model, espe-
cially a number of works emerging from the DNA computing and molecular
programming communities, we believe that the lack of real reconfigurability
of these models implies that they are too far removed from modular robotic
systems to be pertinent to this survey. This is because this models are either
passive systems that cannot autonomously decide on their motion but are
instead pre-set to reach a desired configuration such as for instance DNA Tile
Assembly models (Doty, 2012; Patitz, 2014), Population Protocols (Angluin
et al., 2006), or in the case of Hybrid Programmable Matter systems of active
robots acting on passive tiles (Gmyr et al., 2017). We may nonetheless note
that the NuBot active model has been used to perform simple shape for-
mation through self-assembly by Woods et al. (2013), which makes it more
pertinent than the aforementioned works to the topic of this survey, and can
be of interest to the reader. Furthermore, programmable matter can take
the form of programmable self-folding molecules, able to transform into any
shape by folding, though these systems resemble more chain-type modular
robots than lattice-based modular robots. This has been even realized in
hardware (Knaian et al., 2012), therefore shifting this particular work to-
wards the Top-Down class.
20
2.3.1. Shape Formation in Self-Organizing Particle Systems (SOPS)
In this section we will exclusively focus on works concerning the geomet-
ric version of the Amoebot model, due to its similarities with lattice-based
modular robots. A number of distributed and local algorithms have been
proposed for the purpose of shape formation, which will be mentioned be-
low. For simplicity, early works on the problem of shape formation in SOPS
have focused on having particles self-organize into primitive shapes. It was
first demonstrated by Derakhshandeh et al. (2015b) with the example of a
line. The particles had to self-organize to form a line on the triangular grid,
with an additional condition: all the particles constituting the line have to
be in a contracted state. Their approach assumes the existence of a seed
particle (for which the authors also propose a leader-election algorithm in
the same paper) that defines the starting point of the line. Other parti-
cles organize themselves into a spanning forest—essentially a spanning set
of disjoint trees. The root of each tree represents a leader that will rotate
around the goal shape in a predetermined direction, while followed by all
particles in the tree, in a snake-like manner. Trees of particles hence rotate
around the growing line until they reach one of the ends on each side of the
seed, and add themselves to it one at a time. This process is guided by
local rules determining the next valid position and be filled, and can recon-
figure any connected set of particles into a line with worst-case O(n) rounds
(where a round involves a single motion from all particles) and O(n2 ) moves
(contractions and expansions). The spanning forest component used for im-
plementing leader-follower motions is one of the fundamental components of
all the shape formation works in SOPS mentioned below.
Based on this work, a general framework for shape formation in SOPS
was later proposed in (Derakhshandeh et al., 2015a), wherein the authors
demonstrate shape formation into scale adjustable triangular and hexago-
nal structures from any connected set of particles in O(n2 ) moves. This
algorithms also relies on a leader-follower approach, with particles rotating
around the shape being formed (initially only made of the leader particle, or
seed ) in a snake-formation, until they reach the next position to be filled in
the growing shape.
This is later extended to support the formation of any shape, with a gen-
eral SOPS shape formation framework in (Derakhshandeh et al., 2016). This
framework relies on a few assumptions however: (1) the particles initially
form a connected set arranged in a not-necessarily-complete triangle; (2) the
21
Figure 6: Shape formation of a triangle (left) and of an hexagon (right) on a 2D triangular
lattice with the Amoebot model. (Courtesy of Prof Andrea Richa, Self-organizing Particle
Systems Lab, Arizona State University)
22
compression for a given set of particles, solved using a stochastic approach
based on Markov chains in (Cannon et al., 2016). Then, the problem of
shape recovery, in which particles are assembled in an arbitrary shape and
some defective particles in the system must be discarded while maintaining
the current shape. It was demonstrated in (Di Luna et al., 2018a), with a
line recovery technique resulting in a scaled-down version of the line after
defective particles have been removed.
23
2017), where the authors present a distributed procedure for predicting if the
next reconfiguration step will cause a structural failure. Ideally, procedures
of this sort could be added to the planning process of self-reconfiguration
algorithms so as to further constrain possible motions to mechanically safe
ones exclusively.
24
deadlock. The former relates to the presence of one module preventing an-
other to move, either while moving or simply by having a disadvantageous
position. (This is especially a problem in rotating modules.) The latter can
happen when two modules attempt to concurrently enter the same lattice
position, and either results in a collision or requires additional coordination
measures to be solved. Researchers have come up with several ways to tackle
this collision avoidance problem.
A first solution is to use what we name kinematics simplification methods.
One of these methods is scaffolding, which consists in having modules in the
configuration organize into a porous structure through which modules can
flow to their destination without blocking, at the cost of a higher granularity.
An additional consequence of using a scaffolding structure is that hollow,
solid, and concave shapes become no harder to build than regular shapes, by
suppressing local minima issues thanks to the free passage of modules across
the whole system.
Another method aggregates modules into logical units named meta-modules.
If carefully designed, meta-modules can have holonomic properties that greatly
simplify planning. SR frameworks using meta-modules usually perform mo-
tion planning at the meta-module level, and use local rules to realize the
transitions between meta-module states at the level of individual modules.
Depending on their function, using meta-modules can have a negative im-
pact on granularity, as shape description is also done at the meta-module
level: while one voxel normally one voxel equals one module, then one voxel
equals one meta-module when they are in use. It is common to have cu-
bic 2 × 2 × 2 meta-modules in 3D algorithms, but they can also be much
larger as envisioned in (Dewey et al., 2008). As can be seen on Figure 7, the
use of scaffolding and meta-modules in self-reconfiguration methods is now
commonplace.
A complementary approach is to have modules rely on sensor information—
thus assuming the presence of potentially very powerful sensors on modules—
or communication to avoid collisions. Modules can either adopt a proactive
collision solving mechanism, in which they detect movements that will results
in collisions and abort or avoid planning them at all; or a reactive mechanism,
in which the modules wait for a collision to occur and decide a-posteriori the
way forward. A proactive stance involving sensors is often assumed, as in the
Proteo and Sliding-Cube SR algorithms (Yim et al., 2001). Proactive detec-
tion through communication is never used in practice, because this process
could be extremely costly in term of time and messages exchanged as query-
25
ing every module to ensure it is not blocking to the current motion would
necessarily result in a complete flooding of the configuration graph on each
verification. Reactive deadlock resolution is also avoided, as collisions could
potentially put at risk the regularity of the lattice and jeopardize the entire
self-reconfiguration.
In hardware models based on rotation-only primitives and surface mo-
tion, such as the quasi-spherical Catom3D (Piranda and Bourgeois, 2018),
the problem of detecting potentially blocking modules becomes even more es-
sential. Indeed, if sensor detection is not available, ensuring the safe rotation
of a module must imply a full-traversal of the network to detect potential
collisions, which is time- and message-prohibitive. This is an instance of a
hardware requirement for relaxing collision avoidance computations, as dis-
cussed in Section 4.2.
26
bricks in order to reflect the desired resolution. This approach has the ad-
vantage of not having the size of the description increase with the number of
modules, but rather with the complexity of the goal shape. It contrasts with
a previous work by Støy (2006), where the shape description was embedded
into the rules, and whose number would grow linearly in the number of mod-
ules. Lengiewicz and Holobut (2019) also used a variable resolution of the
goal shape in their max-flow algorithm, though using a grid representation
at the meta-module level.
Though it has not yet been used in a SR algorithm per se, a promising
vectorial method for compact shape representation was introduced by Tucci
et al. (2017), inspired by a common technique in image synthesis. It uses
Constructive Solid Geometry (CSG) to describe an object as a tree of prim-
itive geometrical objects, transformations, and set operations, thus having
the size of the representation scale with the complexity of the shape and
allowing for adjustable resolution at a negligible cost.
Goal shape representation can also be absolutely central to the algorithm,
such as in the self-reconfiguration algorithm for branching structures by Zhu
et al. (2017), which relies on a recursive description based on L-Systems,
defining the goal shape with a rewriting system and formal grammar. A
strong advantage of this approach is the compactness of the description,
which comes at the expense of a lack of generality of the algorithm, which is
narrowly specialized in self-reconfiguration for branching structures.
27
3.6. Surface Movements vs. Internal Movements
Two paradigms for module movements exist: surface movements and in-
ternal movements—i.e., through the volume of the object. Sometimes a com-
bination of both is used as demonstrated in some Sliding-Cube algorithms.
Internal movements currently exist in three flavors which are: (1) compres-
sion / decompression with UCM, (2) tunneling, and (3) motion through a
scaffold. According to Rus and Vona (2001), this second mode of movement is
advantageous compared to surface relocation because SR through the volume
of the robots generally requires O(n) fewer moves than by surface motions.
The literature seems to evidence that internal motions allow for higher de-
grees of parallelism, at least using scaffolding or unit-compression, as it eases
the avoidance of motion blocking and collisions. The difficulty then becomes
trajectory planning through the volume of the object and avoiding internal
collisions. It however remains an open question whether metamorphic sys-
tems involving a very large number of modules and using internal movements
of any sort could be physically realized in practice, as it might turn out to
be impracticable to maintain a perfect module alignment for tunneling in
massive ensembles, or build modules with sufficient elasticity and connector
strength to safely allow motions through a scaffold.
28
the method that is being used, reconfiguration works based on scaffolding
techniques specifically tailored for massively parallel internal motions show
great promise in allowing the parallel and collision-free motion of modules,
as Lengiewicz and Holobut (2019) and Thalamy et al. (2019) have shown.
The only sequential modular robot self-reconfiguration algorithms covered
here were proposed by Fitch et al. in the context of heterogeneous SR. While
MeltSortGrow (Fitch et al., 2003) is truly sequential, TunnelSort (Fitch et al.,
2007) and ConstrainedTunnelSort (Fitch et al., 2005) both could easily have
modules move in parallel during their tunneling phase.
29
planning process and prevent physical collision and other undesirable events
from occurring, which is likely to still cause a massive energetic overhead
due to the sheer volume of transmiting messages. Furthermore, because of
the immense size of such distributed systems in conjunction with the limited
memory size of modules, excessive communications could quickly overload
the message queues of the modules and therefore have a dramatic effect on
reconfiguration as a consequence of the subsequent message losses (Naz et al.,
2018).
30
reconfiguration cases vary greatly across the presented algorithms, therefore
making any attempt at comparison cumbersome.
There are two sets of SR instances that are commonly used to evaluate
algorithms. The first serves more as a proof-of-concept and consists in the
reconfiguration of an initial shape into a chair or table shape Støy (2006);
Spröwitz et al. (2010); Vassilvitskii et al. (2002); Fitch et al. (2003); Kawano
(2015, 2017), while the other is a set of reconfiguration problems introduced
by Yim et al. (2001) and used in Støy (2006). It involves three reconfigura-
tion cases from a plane into a disk, solid ball, hollow ball, or cup. The initial
plane represents a maximal constraint-free connected overlap with the goal
configuration, providing a maximal overlap between initial and goal shape
without blocking constraints on exterior modules. These reconfigurations can
be performed at various numbers of modules and cover all possible classes of
goal shapes—i.e., convex, concave, solid, and hollow shapes. Finally, works
on heterogeneous reconfiguration by Fitch et al. were evaluated with hetero-
geneous volumes made of a gradient of module types, that they would reverse
under various environmental constraints (Fitch et al., 2003, 2005, 2007). As
discussed previously on the topic of complexity (Section 3.8), researchers
have been mainly interested in quantifying the number of individual mod-
ule movements required by the aforementioned reconfigurations, as well as
total reconfiguration time; alas, very few works mentioned the number of
messages.
In term of the scale of experiments, most works used hundreds to dozens
of hundreds modules. Few works have demonstrated simulations involving
thousands to million of modules. Nonetheless, Dewey et al. (2008) did so
by assembling a trumpet made from 1 million meta-modules and a complex
building consisting of 10 millions meta-modules, from an initial cuboid.
31
Table 1: Summary of complexity analyses and proofs provided in Top-Down works. Miss-
ing works did not provide any item. (partial) means that completeness was proved for a
limited class of reconfigurations.
32
4.1. Self-Reconfiguration Criteria
There are a number of essential properties that we argue self-reconfigu-
ration algorithms for PM should have:
33
construction tasks where convergence is assured at the cost of a re-
duced building speed. Building objects made of programmable matter
would nevertheless require a high degree of confidence in the success of
the reconfiguration. A high fidelity and resolution is also important,
potentially with a very slight tolerance for misplaced modules in some
applications of the technology.
34
small as possible, and informs other communities of what can be expected in
term of the capabilities of the models and their mode of motion. Finally, the
researchers interested in software methods for these metamorphic systems
can compose solutions according to this set of information.
4.3. Perspectives
We hint below at some open problems related to modular robot self-
reconfiguration that will need to be tackled in the coming years in order to
progress towards practical reconfiguration solutions.
Firstly, we suspect that there may be no one-size-fits-all self-reconfig-
uration solution, where a single method can offer both completeness and
near-optimal performance. Perhaps the best approach to self-reconfigura-
tion could involve having a large set of algorithms specifically tailored for
a very particular class of reconfiguration problems, that are autonomously
selected depending on the characteristics of the current problem. If that is
the case, designing software methods for classifying reconfiguration problems
35
(based on common features between initial and goal configurations, or lack
thereof) as well as for dynamically selecting the best method for solving this
problem among a library of methods, will certainly be a challenging issue.
This is similar to the concept of hyper-heuristics, that defines algorithms for
autonomously selecting the most efficient heuristic for the current problem,
usually using artificial intelligence approaches.
Also, while Yim et al. (2001) have proposed the maximal constraint-free
connected overlap between initial and goal configurations, additional over-
lapping patterns could be designed in order to simplify the subsequent re-
configuration process, or optimize for some predetermined metric—e.g., mo-
tion parallelism for minimizing reconfiguration time, number of movements
and/or messages for minimizing the energetic impact.
It has also been pointed out that mechanical constraints—gravity and
connector stress in particular—will have to be carefully considered in future
reconfiguration methods before large metamorphic systems can be physically
realized. These additional constraints would potentially limit the range of
possible reconfigurations (depending on the underlying hardware), while also
greatly reducing the size of the search space due to impractical intermedi-
ate configurations and unsafe module motions. It would be interesting to
see how distributed mechanical computation methods such as in (Holobut
and Lengiewicz, 2017) could be sensibly integrated into the reconfiguration
process, and at what cost.
Then, algorithms with built-in robustness and fault recovery abilities
should be further studied, as these are also essential properties required by
practical applications of SR. Some approaches might require a pool of ad-
ditional modules ready to be summoned into the reconfiguration process to
replace faulty units (as well as procedures for discarding them), or emer-
gent ways to approximate a desired configuration with a reduced number of
resource modules.
Furthermore, though current SR methods already offer attractive perfor-
mance bounds, solutions often rely on possibly impractical assumptions—
e.g., the presence of powerful embedded sensors on modules for collision and
deadlock avoidance, scaffold-less tunneling, a disregard for low-level planning,
or virtual modules communicating with physical modules in the vicinity of
unfilled goal positions. Finding out if the current level of performance can
be preserved when some of these assumptions are relaxed is essential.
Finally, we find that present experimental evaluations used in the litera-
ture are unsatisfying for clearly reporting on the capabilities of the proposed
36
methods (e.g., classes of shapes that can or cannot be formed, scalability,
convergence reliability), which makes comparison between methods cumber-
some and inaccurate. Therefore, we argue that there is a need for a standard-
ized benchmark for self-reconfiguration algorithms with a common purpose,
that covers a wide-range of carefully chosen reconfiguration scenarios under
varying constraints (and possibly random configurations). We can already
identify a number of pitfalls to its design, as self-reconfiguration can be de-
fined in various ways, depending on whether or not the positioning of the
goal configuration is constrained, whether an initial overlap between con-
figurations is required, etc. These initial assumptions have a considerable
impact on reconfiguration and make for additional parameters to be taken
into account.
5. Conclusion
In this paper, we examined the literature on self-reconfiguration meth-
ods in three-dimensional lattice-based modular robotic and self-organizing
particle systems. From this analysis, we attempt to provide an extensive
survey of the current state of the art on these topics, with a thorough study
of its strengths and weaknesses from the standpoint of its application to pro-
grammable matter. From more than two dozens of those published works,
that we classified into three different approaches to the self-reconfiguration
problem, we aim to dispense a comprehensive understanding of current chal-
lenges and directions to present and future research on this problem. Al-
though several areas of improvement have been proposed, the inclusion of
mechanical constraints and an emphasis on the robustness of reconfiguration
methods stand out as particularly important for the prospect of realizing
practical robot-based programmable matter systems. Furthermore, from the
assessment that the hardware and software problems of self-reconfiguration
cannot be considered in isolation, we argue that the three different approaches
uncovered in Section 2 will have to merge in order to converge into practical
solutions. Lastly, we contend that any progress in the field can only be the
result of meaningful comparisons between proposed solutions, hence support-
ing the necessity for a unified evaluation system for existing and future self-
reconfiguration algorithms.
37
Acknowledgment
This work was partially supported by the ANR (ANR-16-CE33-0022-02),
the French Investissements d’Avenir program, ISITE-BFC project (ANR-15-
IDEX-03), Labex ACTION program (ANR-11-LABX-01-01), and the Mo-
bilitech project.
Angluin, D., Aspnes, J., Diamadi, Z., Fischer, M.J., Peralta, R., 2006. Com-
putation in networks of passively mobile finite-state sensors. Distributed
Computing 18, 235–253. URL: http://link.springer.com/10.1007/
s00446-005-0138-3, doi:10.1007/s00446-005-0138-3.
Bojinov, H., Casal, A., Hogg, T., 2000. Emergent structures in modular self-
reconfigurable robots, IEEE. pp. 1734–1741. URL: http://ieeexplore.
ieee.org/document/844846/, doi:10.1109/ROBOT.2000.844846.
Bourgeois, J., Piranda, B., Naz, A., Boillot, N., Mabed, H., Dhoutaut,
D., Tucci, T., Lakhlef, H., 2016. Programmable matter as a cyber-
physical conjugation, in: Systems, Man, and Cybernetics (SMC), 2016
IEEE International Conference on, IEEE. pp. 002942–002947. URL:
http://ieeexplore.ieee.org/document/7844687/, doi:10.1109/SMC.
2016.7844687.
Butler, Z., Rus, D., 2003. Distributed Planning and Control for Modu-
lar Robots with Unit-Compressible Modules. The International Jour-
nal of Robotics Research , 699–715URL: https://doi.org/10.1177/
02783649030229002, doi:10.1177/02783649030229002.
38
Campbell, J., Pillai, P., 2008. Collective Actuation. The International Jour-
nal of Robotics Research 27, 299–314. URL: http://journals.sagepub.
com/doi/10.1177/0278364907085561, doi:10.1177/0278364907085561.
Cannon, S., Daymude, J.J., Randall, D., Richa, A.W., 2016. A Markov Chain
Algorithm for Compression in Self-Organizing Particle Systems, in: Pro-
ceedings of the 2016 ACM Symposium on Principles of Distributed Com-
puting, ACM Press. pp. 279–288. URL: http://dl.acm.org/citation.
cfm?doid=2933057.2933107, doi:10.1145/2933057.2933107.
Daymude, J.J., Hinnenthal, K., Richa, A.W., Scheideler, C., 2019. Com-
puting by Programmable Particles, in: Flocchini, P., Prencipe, G., San-
toro, N. (Eds.), Distributed Computing by Mobile Entities. Springer In-
ternational Publishing, Cham. volume 11340, pp. 615–681. URL: http:
//link.springer.com/10.1007/978-3-030-11072-7_22, doi:10.1007/
978-3-030-11072-7_22.
39
Robots and Systems, 2008. IROS 2008. IEEE/RSJ International Confer-
ence on, pp. 1338–1345. doi:10.1109/IROS.2008.4651094.
Di Luna, G.A., Flocchini, P., Prencipe, G., Santoro, N., Viglietta, G.,
2018a. Line Recovery by Programmable Particles, in: Proceedings of the
19th International Conference on Distributed Computing and Networking,
ACM Press. pp. 1–10. URL: http://dl.acm.org/citation.cfm?doid=
3154273.3154309, doi:10.1145/3154273.3154309.
Di Luna, G.A., Flocchini, P., Santoro, N., Viglietta, G., Yamauchi, Y., 2018b.
Shape Formation by Programmable Particles, in: Aspnes, J., Bessani,
A., Felber, P., Leitão, J. (Eds.), 21st International Conference on Prin-
ciples of Distributed Systems (OPODIS 2017), Schloss Dagstuhl–Leibniz-
Zentrum fuer Informatik, Dagstuhl, Germany. pp. 31:1–31:16. URL:
http://drops.dagstuhl.de/opus/volltexte/2018/8637, doi:10.4230/
LIPIcs.OPODIS.2017.31.
Fitch, R., Butler, Z., 2007. Scalable locomotion for large self-reconfiguring
robots, in: Robotics and Automation, 2007 IEEE International Conference
on, IEEE. pp. 2248–2253. 00000.
Fitch, R., Butler, Z., Rus, D., 2003. Reconfiguration planning for heteroge-
neous self-reconfiguring robots, in: Intelligent Robots and Systems, 2003.
(IROS 2003). Proceedings. 2003 IEEE/RSJ International Conference on,
pp. 2460–2467. doi:10.1109/IROS.2003.1249239.
Fitch, R., Butler, Z., Rus, D., 2005. Reconfiguration Planning Among Ob-
stacles for Heterogeneous Self-Reconfiguring Robots, in: Robotics and Au-
40
tomation, 2005. ICRA 2005. Proceedings of the 2005 IEEE International
Conference on, pp. 117–124. doi:10.1109/ROBOT.2005.1570106.
Fitch, R., Butler, Z., Rus, D., 2007. In-Place Distributed Heterogeneous
Reconfiguration Planning, in: Distributed Autonomous Robotic Systems
6, pp. 159–168. doi:10.1007/978-4-431-35873-2_16.
Fukuda, T., Kawauchi, Y., 1990. Cellular robotic system (CEBOT) as one
of the realization of self-organizing intelligent universal manipulator, IEEE
Comput. Soc. Press. pp. 662–667. URL: http://ieeexplore.ieee.org/
document/126059/, doi:10.1109/ROBOT.1990.126059.
Gmyr, R., Kostitsyna, I., Kuhn, F., Scheideler, C., Strothmann, T., 2017.
Forming Tile Shapes with a Single Robot. Technical Report.
Holobut, P., Kursa, M., Lengiewicz, J., 2014. A class of microstructures for
scalable collective actuation of Programmable Matter, IEEE. pp. 3919–
3925. URL: http://ieeexplore.ieee.org/document/6943113/, doi:10.
1109/IROS.2014.6943113.
41
Kawano, H., 2015. Complete reconfiguration algorithm for sliding cube-
shaped modular robots with only sliding motion primitive, in: Intelligent
Robots and Systems (IROS), 2015 IEEE/RSJ International Conference on,
pp. 3276–3283. doi:10.1109/IROS.2015.7353832.
Lengiewicz, J., Holobut, P., 2019. Efficient collective shape shifting and
locomotion of massively-modular robotic structures. Auton. Robots 43,
97–122. URL: https://doi.org/10.1007/s10514-018-9709-6, doi:10.
1007/s10514-018-9709-6.
Michail, O., Skretas, G., Spirakis, P.G., 2017. On the Transformation Capa-
bility of Feasible Mechanisms for Programmable Matter. arXiv:1703.04381
[cs] URL: http://arxiv.org/abs/1703.04381. arXiv: 1703.04381.
Naz, A., Piranda, B., Tucci, T., Copen Goldstein, S., Bourgeois, J.,
2018. Network Characterization of Lattice-Based Modular Robots with
Neighbor-to-Neighbor Communications, in: Distributed Autonomous
42
Robotic Systems, Springer International Publishing, Cham. pp. 415–429.
URL: http://link.springer.com/10.1007/978-3-319-73008-0_29.
Pinciroli, C., Trianni, V., O’Grady, R., Pini, G., Brutschy, A., Brambilla,
M., Mathews, N., Ferrante, E., Di Caro, G., Ducatelle, F., Birattari,
M., Gambardella, L.M., Dorigo, M., 2012. ARGoS: a modular, parallel,
multi-engine simulator for multi-robot systems. Swarm Intelligence 6, 271–
295. URL: http://link.springer.com/10.1007/s11721-012-0072-5,
doi:10.1007/s11721-012-0072-5.
Piranda, B., Laurent, G.J., Bourgeois, J., Clévy, C., Möbes, S., Fort-Piat,
N.L., 2013. A new concept of planar self-reconfigurable modular robot
for conveying microparts. Mechatronics 23, 906–915. URL: http://
linkinghub.elsevier.com/retrieve/pii/S0957415813001633, doi:10.
1016/j.mechatronics.2013.08.009.
Rubenstein, M., Ahler, C., Nagpal, R., 2012. Kilobot: A low cost scal-
able robot system for collective behaviors, in: 2012 IEEE International
Conference on Robotics and Automation, IEEE, St Paul, MN, USA. pp.
3293–3298. URL: http://ieeexplore.ieee.org/document/6224638/,
doi:10.1109/ICRA.2012.6224638.
Rus, D., Vona, M., 2001. Crystalline Robots: Self-Reconfiguration with Com-
pressible Unit Modules. Autonomous Robots 10, 107–124. URL: https:
//doi.org/10.1023/A:1026504804984, doi:10.1023/A:1026504804984.
43
Spröwitz, A., Laprade, P., Bonardi, S., Mayer, M., Moeckel, R., Mudry,
P.A., Ijspeert, A.J., 2010. Roombots—Towards decentralized reconfigura-
tion with self-reconfiguring modular robotic metamodules, in: Intelligent
Robots and Systems (IROS), 2010 IEEE/RSJ International Conference on.
doi:10.1109/IROS.2010.5649504.
Stoy, K., Nagpal, R., 2004. Self-repair through scale independent self-
reconfiguration, in: Intelligent Robots and Systems, 2004.(IROS 2004).
Proceedings. 2004 IEEE/RSJ International Conference on, IEEE. pp.
2062–2067. URL: http://ieeexplore.ieee.org/abstract/document/
1389701/.
Tucci, T., Piranda, B., Bourgeois, J., 2017. Efficient Scene Encoding for
Programmable Matter Self-reconfiguration Algorithms, in: Proceedings of
the Symposium on Applied Computing, pp. 256–261. URL: http://doi.
acm.org/10.1145/3019612.3019706, doi:10.1145/3019612.3019706.
Vassilvitskii, S., Yim, M., Suh, J., 2002. A complete, local and parallel
reconfiguration algorithm for cube style modular robots, in: Robotics and
44
Automation, 2002. Proceedings. ICRA ’02. IEEE International Conference
on, pp. 117–122 vol.1. doi:10.1109/ROBOT.2002.1013348.
Woods, D., Chen, H.L., Goodfriend, S., Dabby, N., Winfree, E., Yin, P., 2013.
Active Self-Assembly of Algorithmic Shapes and Patterns in Polylogarith-
mic Time. arXiv:1301.2626 [cs] URL: http://arxiv.org/abs/1301.2626.
arXiv: 1301.2626.
Yim, M., Zhang, Y., Lamping, J., Mao, E., 2001. Distributed Control for
3d Metamorphosis. Autonomous Robots 10, 41–56. URL: https://doi.
org/10.1023/A:1026544419097, doi:10.1023/A:1026544419097.
Yoshida, E., Murata, S., Kurokawa, H., Tomita, K., Kokaji, S., 1998. A dis-
tributed method for reconfiguration of a three-dimensional homogeneous
structure. Advanced Robotics 13. doi:10.1163/156855399X00234.
Zhu, Y., Bie, D., Wang, X., Zhang, Y., Jin, H., Zhao, J., 2017. A dis-
tributed and parallel control mechanism for self-reconfiguration of modu-
lar robots using L-systems and cellular automata. Journal of Parallel and
Distributed Computing 102, 80 – 90. URL: http://www.sciencedirect.
com/science/article/pii/S0743731516301824, doi:https://doi.org/
10.1016/j.jpdc.2016.11.016.
45
Type Architecture System Movements Free-Space Dimensions Supported Hardware Platform / Model
Solution Method
Bounding Region
Sliding Cube
Using:
Distributed Search
Meta-modules
(MM)
Obstacles
Consider
(Fitch, 2007)
Sequential
Scaffold
Crust
(Fitch, 2005)
Both
(Fitch, 2003)
Out-Of-Place
Neither
Gradient
Descent
(Stoy, 2007)
Local Rules
Homogeneous
CA
(Stoy, 2006)
Heterogeneous
Top-Down
L-Systems
CA and
(Zhu, 2017)
Parallel
Limited Sliding Cube
Local Rules
Parallel Movements
Hybrid Architecture
(Kawano, 2017)
Obstacles
Consider
[Centralized]
(Kawano, 2015)
[Centralized]
Hybrid
(Kawano, 2016)
[Centralized]
Unit-Compressible Modules
Distributed Search
3D
(Vassilvitskii, 2002)
Consider
Mechanical
Sequential
(Kotay, 2000)
[Centralized]
Lattice Architecture
Hierarchical
Planning
Deterministic
(Unsal, 2002)
Parallel
[Centralized]
Bottom-Up
(Unsal, 2000)
[Centralized]
Relaxation
Stochastic
(Yoshida, 1998)
In-Place
Hybrid / Parallel
Hybrid / Parallel
Force Field
Guidance
(Sprowitz, 2010)
Chain Architecture
Stochastic
(Fitch, 2013)
Intra-MM
Flow
(Dewey, 2008)
Top-Down
(Lengiewicz, 2019)
Proteo
Heat Flow
Sequential Movements
(Yim, 2001)
Geometric Amoebot
Leader-Follower
SOPS Shape-Formation
Theoretical / SOPS
2D (Derakhshandeh, 2016)
(Derakhshandeh,
Sequential
Sequential
2015a)
(Derakhshandeh,
2015b)