Title: Genetic and developmental computing architectures: Modular robotics, Lecture 3
1Genetic and developmental computing
architecturesModular robotics, Lecture 3
Auke J. Ijspeert Biologically Inspired Robotics
Group (BIRG) Swiss Federal Institute of
Technology, Lausanne
30 January 2006
2Content of lecture 3 control of reconfiguration
- Overview of challenges
- Metrics
- Centralized planning approach
- Decentralized approaches
- Growing rules
- Cellular automata
3Challenges
- Reconfiguration a sequence of moves,
attachment, and detachments for changing a
structure A into a structure B - Note the previous lecture only covered sequences
of moves for locomotion (not attachments and
detachments)
4Challenges
- Finding the right and shortest sequences of
moves, attachments and detachments is very hard
because - The number of options to explore is usually huge
(grows exponentially), and systematic exploration
is not feasible - The moves must be valid, e.g. avoid inter-module
collisions, avoid splitting the system in
different parts, respect torque-limit
constraints, - Therefore heuristics are needed for searching
good solutions - Ideally, the approach should be decentralized and
use a limited amount of computation and
intermodule communication
5Challenges
- In todays lecture we will review four articles
that address these challenges - A theoretical paper on metrics
- A paper presenting a centralized planning
approach - And two papers presenting decentralized
approaches
6Content of lecture 3 control of reconfiguration
- Overview of challenges
- Metrics
- Centralized planning approach
- Decentralized approaches
- Growing rules
- Cellular automata
7Metrics
- Metrics are very important for quantatively
measuring how different one configuration is from
the other - Interesting article Useful Metrics for Modular
Robot Motion Planning, Pamecha et al, IEEE
Transactions on Robotics and Automation, VOL. 13,
NO. 4, 1997, pp 531-545
8Metrics
- Metrics for two-dimensional systems
9Metrics
- Possible application creating arbitrary
structures, e.g. for encapsulating dangerous
materials
10Metrics
Metrics for two-dimensional configurations a
quantitative measure of the difference between
two configurations
Difference?
Note the paper assumes that the total number of
modules n is a constant
11Metrics
12The discrete metric
- Trivial example the discrete metric
- The distance between two configurations is zero
if the two configurations are identical,
otherwise it is one. - Example
13The overlap metric
- Another example the overlap metric
- The distance between two configurations is the
number of modules that do not overlap between the
two configurations (n is the number of modules). - Example
14The overlap metric
- In other words, the overlap metric tells you the
number of modules that need to be moved to go
from one configuration to the other. - The overlap metric is useful but it does not tell
how many moves need to be made to change one
configuration into the other.
15The minimal-number-of-moves metric
- Another example the minimal-number-of-moves
metric - Where Mmin is the fewest moves needed to go from
A to B - Example
16The minimal-number-of-moves metric
- The minimal-number-of-moves metric is a very
useful metric since it is directly provides the
information needed to make optimal
reconfigurations - Unfortunately it has no representation other than
explicitly solving a computationally explosive
problem and recording the sum of moves which is
minimal. - This is not practical in most applications
17The optimal assignment metric
- Another example the optimal assignment metric
- Where f is the cost function of an assignment
between A and B
18The optimal assignment metric
- Example of different assignments
- Intuitively the second assignment is better
19The optimal assignment metric
- An assignment is determined by the variable mij,
which is 1 if the module ai is assigned to module
bj, and 0 otherwise. - It is given a cost dij which is the lattice
distance between module ai and bj. - Hence the cost function for a given assignment
- The optimal assignment metric is the minimal cost
of all possible assignments
20The optimal assignment metric
- The optimal assignment metric can be computed
with several algorithms, e.g. the Hungarian
algorithm - The computational cost is far less than for the
minimal-number-of-moves metric
21Combining metrics
- Interestingly, metrics can be combined and still
form metrics. - Indeed
- A possible interesting metric combines the
overlap metric and the optimal assignment metric,
the combined metric
22Testing metrics
- The authors tested these different metrics using
a simulated annealing (SA) algorithm - A SA is a stochastic algorithm that finds a
(local) minimum of a function (here a metric) - It uses a process similar to a heated metal that
is slowly cooled down into a specific shape - It is used by the authors to evaluate which of
the metrics performs best with three different
problems
23Problem 1
- Results
- Overlap metric performs poorly
- Optimal-assignment metric and combined metric
perform (equally) well
24Problem 2
- Results
- Overlap metric performs poorly
- Optimal-assignment metric and combined metric
perform (equally) well
25Problem 3
base
obstacle
- Results
- Overlap metric performs very poorly
- Optimal-assignment metric performs OK
- Combined metric performs best
26Metrics summary
- Defining metrics is very important for
quantatively measuring how different one
configuration is from the other - There are multiple different metrics available,
but they are not all good for finding the
shortest number of moves for the reconfiguration - On the particular problems tested, the optimal
assignement metric and the combined metric
systematically produce better results than the
optimal overlap metric.
27Content of lecture 3 control of reconfiguration
- Overview of challenges
- Metrics
- Centralized planning approach
- Decentralized approaches
- Growing rules
- Cellular automata
28Planning-based approach
Article A self-reconfigurable modular robot
reconfiguration planning and experiments, E.
Yoshida et al, The International Journal of
Robotics Research, 2002. The article presents a
method for continuously reconfiguring a group of
MTRAN modules in order to do locomotion It is a
centralized planning-based approach
29Planning
- The method is designed for the MTRAN II modules
- Each module has two servo motors with aligned
axis - The modules can attach to each other on a regular
orthogonal grid of size a. - Constraint each module has one active part and
one passive part, and only passive-action
connection are feasible
a
movie
30Planning
- The planner will use three types of atomic
motion - pivot motion,
- forward-roll motion and
- mode conversion.
31Atomic motion Pivot motion
Note it is assumed that the environment, i.e.
the grid, has active and passive connectors
Attached to grid
32Atomic motion Forward-role motion
33Atomic motion Mode conversion
34Planning
- The goal of the planning algorithm is to enable
of group of modules to trace a 3D trajectory in
the lattice grid. - The desired 3D trajectory is provided.
- Example
35Planning
- The planning algorithm simplifies the
problem by doing the planning
for 4-module blocks - A block is useful because it is the smallest
group of modules that has an isotropic shape that
can be connected at any of its faces. - This isotropic geometry enables one to easily
configure various sizes of 3D structures and to
maintain the connectivity of all the modules in a
cluster composed of these blocks. - This block also has the advantage that it is
simple to plan a global motion along a 3D
trajectory.
36Planning
- In addition to blocks, the planning algorithms
will use converters a couple of modules that
have different rotation axis directions - The converter modules are used to change the
direction of the rotation axis of the modules in
the chain cluster.
2 converter modules
3 blocks
37Planning
- Goal of the planning algorithm
- Given the block-based trajectory of locomotion as
the input, the motion of each module must be
planned. - Difficulties
- The modules non-isotropic geometrical
properties make it difficult to obtain the motion
sequence in a straightforward manner. - 3D motion usually requires a combined
cooperative motion sequence with other
surrounding modules. - The cooperative motion sequence must be
carefully chosen in each individual local
configuration to avoid collisions between modules
or loss of connectivity during the motion.
38Planning
- The authors propose a two-layered motion planner
consisting of - the global flow planner and
- the local motion scheme selector.
- The global flow planner searches possible module
paths and motion orders to provide the global
cluster movement, called flow, according to the
desired trajectory. - The local motion scheme selector verifies that
the paths generated by the global planner are
valid for each member module of the block
according to the possible motion orders, by
repeatedly applying rules from the database.
39Planning
40Example
41Global flow planner
- The global flow planner is designed for serial
clusters composed of four-module cubic blocks. - It computes the motion of a block such that the
tail block is transferred toward the given
heading direction. - The motion of a block is done by sending
individual modules towards destination positions
(mainly with forward-role motions). - For each module, the global flow planner will
produce different possible paths towards
different possible target positions - The motion scheme selector will decide which one
is chosen
42Example of different possible paths
43Motion scheme selector
- The motion scheme selector
- Checks that paths proposed by the global flow
planner are feasible (e.g. checks that all
modules remain connected, and that collisions are
avoided) - It generates all the moves and cooperative moves
necessary (e.g. movement of other modules to
rotate the moving module) using a database of
possible local reconfigurations - The database has 30 hand-coded if-then rules
- It computes which of the possible paths require
the lowest number of moves
44Planning
- Example of a rule for the local reconfiguration
45Results example
46Results example
47Results example
48Planning summary
An approach using planning algorithms for
reconfiguration The approach is centralized,
i.e. there is a master doing all the computation
and telling modules what to do. Two-layered
approach one global flow planner for blocks, one
planner for local moves (the motion scheme
selector) The method allows continuous
reconfiguration for locomotion Can be adapted for
other reconfiguration tasks by modifying the
global flow planner
49Content of lecture 3 control of reconfiguration
- Overview of challenges
- Metrics
- Centralized planning approach
- Decentralized approaches
- Growing rules
- Cellular automata
50Growing rules
- Creating modular robotic structures with growing
rules - Emergent Structures in Modular Self-reconfigurable
Robots, H. Bojinov, A. Casal, T. Hogg,
Proceedings of the 2000 IEEE International
Conference on Robotics Automation (ICRA2000) - Motivation
- it is sometimes difficult to know in advance the
desired final structure of the modular robotic
system. - E.g. it can be difficult because the environment
is complex and stochastic - It is sometimes easier to determine desirable
properties.
51Growing rules
- The paper uses Proteo modules in the shape of a
rhombic dodecahedron, a three dimensional shape
(polyhedron) with 12 identical sides in the shape
of a rhombus. - The simulated proteo module moves by rotating
around edges - The shape is useful to make dense structures
movie
52Growing rules
- Idea
- Determine a set of growing rules which lead to
desirable properties, not a specific structure - Concepts used in the approach
- Growth the process that influences the motion of
modules and the creation of structures - Seeds modules that attract other modules in
order to grow structures - Scents signals that are transmitted between
modules. - Modes the mode of a module is its present
finite-state machine state. Possible modes
include sleep, seed, search, node, and final.
53Growing rules
- Transmission of scents
- scent signals are transmitted between modules.
- Each module keeps a number in its memory
representing the strength of the scent at its
location. - At each time step, modules look at their
neighbors and update this number to be the
minimum value plus one. - Scent values are therefore an approximation of
the distance to a scent-emitting module. - Experiments typically use one or two different
scents
54Example Growing Chains
- All modules are initially in SLEEP mode except
one that is randomly set to SEED. - Control rules for each module
- If in SLEEP mode, if a scent is detected, go to
SEARCH mode. - If in SEARCH mode, propagate scent and move along
scent gradient. - If in SEED mode, emit scent, and if a module has
appeared in the direction of growth, set that
module to SEED mode, and go to FINAL mode. - If in FINAL mode, propagate scent.
55Example growing chains
56Example Growing Recursive Branching
- All modules are initially in SLEEP mode except
one that is randomly set to NODE. - Control rules for each module
- If in SLEEP mode, if regular scent is detected,
go to SEARCH mode. - If in SEARCH mode, propagate both scents and move
along the regular scent gradient. - If in SEED mode, propagate the node scent, and
emit a regular scent if there is a neighboring
module in the direction of growth of the branch,
set that module to be a seed, and go to FINAL
mode. - If in FINAL mode, propagate both scents if the
node scent is weak (high value), go to NODE mode. - If in NODE mode, emit both scents, spawn seeds in
random directions, until a certain count is
reached, then go to INODE mode. - If in INODE mode, emit a node scent and propagate
the regular scent.
57Example Growing Recursive Branching
These type of structures are useful to create
limbed robots, or hands, etc. Note humans show
only two levels of branching (limbsfingers), but
sometimes having more could be useful
58Growing rules
- Other examples lattice behavior
59Growing rules
- Other examples Sponge structures
60Growing rules
61Growing rules grasping an object
- Initially all modules are in SLEEP mode, except
for eight modules that are set to SEED mode (to
create eight branches to grow toward the object).
- Two types of seeds are used SEED modules, and
TOUCHSEED modules. - Initially growth is caused by SEED modules, but
once the object is reached, seeds transfer to the
TOUCHSEED state. The two types of seeds allow
modules in SEARCH mode to know whether to grow in
the direction of the object (to reach it) or to
grow the structure around the object (to grasp
it). - The modules are assumed to know the approximate
direction to the object and to have contact
sensors to detect when the object has been
reached.
62Growing rules
- Note the system grasps the object despite the
fact that has no knowledge of the exact direction
of the object, how far it is, or what shape and
size it has.
63Growing rules
- Dynamically adapting to external forces
- Scents for growing legs (and switches to disband
mode) are generated depending on load sensors. - The system can adapt to slowly varying weight
shifts
64Growing rules summary
- Use of local rules to grow structures
- No global planning, it is a decentralized method
- Rules are designed for generating desirable
properties - Desired configuration is not explicitly defined
- Stochastic process
- Requires insights for designing the local rules,
no well defined methodology - An optimization algorithm (e.g. a GA) could be
used for designing the rules - Constraint all modules need to remain connected
all the time - Since only local information is used, there is a
risk of getting stuck in suboptimal structures
65Content of lecture 3 control of reconfiguration
- Overview of challenges
- Metrics
- Centralized planning approach
- Decentralized approaches
- Growing rules
- Cellular automata
66Reconfiguration with Cellular automatas
- Controlling Self-reconfiguration using Cellular
Automata and Gradients, K. Stoy, proceedings of
IAS8, 2004 - Two-step process
- Generate a CA representation from a CAD model of
the desired configuration - Do the self-reconfiguration process using local
interactions and local communication about
gradient information
67Reconfiguration with CAs example
Light gray Wandering mode
Dark gray Final mode
Black Seed mode
Movie
68Cellular automata
- The basic module has the shape of a cube
- It can connect to neighbors on any facet
- It can sense for each facet if the is a neighbor
or not - It can communicate with neighbors (exchange
information about states and gradients) - It is capable of sliding along the facets of
other cubes - The whole system is assumed to be in a
gravity-free environment or to have one fixed
element (the first seed)
69Cellular automata
70Cellular automata
71Cellular automata
72Cellular automata
- Transforming a CAD model of the desired
configuration into a cellular automata - Use a special scaffold structure that can fill
the desired shape without dead-ends - Note that this creates only an approximation of
the structure (e.g. it has many holes)
73Cellular automata
- Transforming a CAD model of the desired
configuration into a cellular automata - The structure is approximated with a complete set
of modules - Modules are removed such that an approximate
structure can be constructed with a chain of
scaffolds - Each module i is assigned a unique number s(i)
- For each neighboring pair of modules i, j a rule
is generated. This rule is of the form if the CA
of the module in direction i to j is in state
s(j) then this CA should change to state s(i).
74Cellular automata
- Example
- Each module has the complete CA rule table
- Modules can be in different modes wandering,
seed, and final - All modules start in the wandering mode, except
one which is in the seed mode.
75Cellular automata
- The self-reconfiguration algorithm has three
components - a state propagation mechanism,
- a mechanism to create gradients in the system,
and - a mechanism for moving the modules.
76Cellular automata
- The state propagation mechanism
- Initial random configuration
- One arbitrary module becomes a seed is given a
state number randomly chosen from the set s(i) - Neighbor modules change their state according to
the CA rules - If neighbor modules are missing, the seed module
attracts a wandering module with a gradient
signal - This module will act as a new seed.
- A module stops acting as a seed when all the
neighbor relationships, described by the cellular
automaton rules, are satisfied. It is then in
final mode.
77Cellular automata
- Creating a gradient using local information
- A seed module sends out a constant integer (the
concentration of an artificial chemical) to all
its neighbors. - A receiving module calculates the concentration
of the artificial chemical at its position by
taking the maximum received value and subtracting
one. - This value (as well as the direction towards
climbing the gradient) is then propagated to all
neighbors and so on. - When the concentration reaches zero the gradient
is not further propagated. - This means that the source can decide the range
of the gradient.
78Cellular automata
- Mechanisms for moving the modules
- Wandering modules climb the vector gradient to
reach unfilled positions. - Thanks to the scaffold desired structure, there
are no local optima (i.e. no dead-ends) - Note, the wandering modules cannot move
independently of each other, because they depend
on each other for connection to the robot. There
is a risk of splitting the system in different
parts. - The problem can be avoided by following these
rules
79Results
- This algorithm was tested with different initial
and final configurations - It converged systematically to the final
configurations - The number of moves to reach the final
configuration is reasonable - Not significantly more than the theoretical
minimum
80Results
81Results
Movie of a complex example
82Cellular automata summary
- This approach allows the generation of specific
desired structures, with only local interactions
and local communication. It is a decentralized
approach. - The system converges because of how the CA is
encoded (no possible dead-ends), and the number
of moves is reasonable - The CA rule table can be quite large (up to
62N), i.e. modules should have enough memory - The system is meant to generate one particular
structure, not to switch from one to another
83End of this lecture