Professional Documents
Culture Documents
ECNICA DE MADRID
ESCUELA T
ATICA, INGENIER
IA ELECTR
ONICA E
INFORM
ATICA INDUSTRIAL
ESCUELA T
to 150
to 30
loaded . . . . . . . . . . . . . . . . . . . . . 116
4.30 Snake-like conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.31 Snake movements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.32 Snake-like congurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.33 Snake-like microrobot inside pipes . . . . . . . . . . . . . . . . . . . . . . . 119
4.34 Graphical User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.35 Worm-like module: Sequence of movement . . . . . . . . . . . . . . . . . . . 121
4.36 Helicoidal conguretion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.37 Multi-modular conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.1 Simulation Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.2 Mathematical model of the servomotor . . . . . . . . . . . . . . . . . . . . . 127
5.3 Rotation Module and Helicoidal Module . . . . . . . . . . . . . . . . . . . . 130
5.4 Inchworm Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.5 Touch Module and Traveler Module . . . . . . . . . . . . . . . . . . . . . . 133
5.6 Accelerometer axis sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.7 Class diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.8 Class interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
5.9 Elbow Negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.1 Experimental setup of iGPS . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
6.2 Behavior of the system for irregular oors . . . . . . . . . . . . . . . . . . . 149
6.3 NorthStar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
6.4 Indoor positioning network . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.5 Illustration of time dierence of arrival (TDOA) localization . . . . . . . . . 151
6.6 Example of wireless ethernet distribution of ve base stations (enumerated
small circles) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
6.7 MotionStar system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.8 Smart Floor plate (left) and load cell (right) . . . . . . . . . . . . . . . . . . 154
6.9 Ego-positioning system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
6.10 Position and orientation calculation (a) and Alice robot (b) . . . . . . . . 155
6.11 Ego-positioning extension to chained modular robots . . . . . . . . . . . . . 156
6.12 BPW34 main features (a) and photodiodes board (b) . . . . . . . . . . . . . 157
6.13 Optimal RC Filter (a) and Spectral sensitivity of aSi:H (b) . . . . . . . . . 158
6.14 Current comparator for I-SWARM . . . . . . . . . . . . . . . . . . . . . . . 158
6.15 Color wheel of the DLP beamer . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.16 Response of the beamer to a white image . . . . . . . . . . . . . . . . . . . 159
6.17 Response of the beamer (without color wheel) to a white image . . . . . . . 160
6.18 Response of the photodiode to a red image (a) and a yellow image (b) . . . 160
6.19 Response of the photodiode to a projection of sequences of black and white
images at 60 Hz (a) and 85 Hz (b) . . . . . . . . . . . . . . . . . . . . . . . 161
6.20 Response of the photodiode to a grey image . . . . . . . . . . . . . . . . . . 161
xxi
6.21 Response of the photodiode to a projection of sequences of 3 (a) and 4 (b)
dierent grey scale images at 60 Hz . . . . . . . . . . . . . . . . . . . . . . . 162
6.22 Distribution of intensity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
6.23 Output voltage for a black and white sequence at the point of higher (a)
and lower (b) illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
6.24 Binary (a) and Gray (b) code . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.25 Sampling time to get the RGB values of the projected image . . . . . . . . 165
6.26 Interruption Service Routine Photodiodes (a) and function SequenceTest
(b) pseudocode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.27 Sampling procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
6.28 Function EGO Position (a) and Main program (b) pseudocode . . . . . . 170
6.29 Gray to Binary conversion scheme . . . . . . . . . . . . . . . . . . . . . . . 171
6.30 Success - error rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
7.1 Control Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
7.2 Control Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
7.3 Behavior sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
7.4 HLC and LLC commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
7.5 Communication Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.6 I
2
C frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
7.7 Behavior scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.8 Heat dissipation sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
7.9 Maximun servomotor consumption with blocking . . . . . . . . . . . . . . . 189
7.10 Extension module at its higher and lower position . . . . . . . . . . . . . . 190
7.11 Behavior fusion scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
7.12 Conguration check sequence diagram . . . . . . . . . . . . . . . . . . . . . 196
7.13 Ext / Contraction capabilites: a) grade 3 and b) grade 1 . . . . . . . . . . . 198
7.14 Behavior fusion scheme for Central Control behaviors . . . . . . . . . . . . 205
7.15 Roulette probabilty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
7.16 Single point crossover example . . . . . . . . . . . . . . . . . . . . . . . . . 214
7.17 Mutation example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
8.1 Images taken form the camera inside a pipe . . . . . . . . . . . . . . . . . . 220
8.2 Camera Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
8.3 Helicoidal module inside a pipe . . . . . . . . . . . . . . . . . . . . . . . . . 221
8.4 Worm module tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
8.5 Snake-like movement over undulated terrain . . . . . . . . . . . . . . . . . . 223
8.6 Corner negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
8.7 30
to 120
to 120
to 120
to 120
to 120
to 120
to 30
to 30
to 30
to 30
to 30
to 30
Os point
of view. Example:
IF obstacle is close THEN avoid collision
IF NOT (obstacle is close) THEN follow target
62
3.3. Behavior-Based Architectures
Figure 3.7: Fuzzy command fusion example
Superposition
The most straightforward type of behavior superposition is a simple linear combination of
behaviors, with behaviors being weighted and combined. The most popular is the potential
eld approach which has been extensively used, where agents move under the inuence
of a simulated potential eld which treats goals as attractors and obstacles as repellers
(gure 3.5).
U(q) = U
att
(q) +U
rep
(q) (3.3)
Movement towards the lowest energy conguration of the system. There can be prob-
lems with local minima (the usual formulation of potential elds does not preclude the
occurrence of local minima other than the goal). An example of this architecture is Po-
tential Fields [Khatib, 1986].
Other architecture is Motor Schemas [Arkin, 1987], that will be covered further on.
3.3 Behavior-Based Architectures
The concept of behavior appeared with Reactive Architectures. Some common charac-
teristics of these architectures are:
emphasis on the importance of coupling sensing and action tightly
avoidance of representational symbolic knowledge
decomposition into contextually meaningful units (behaviors)
63
CHAPTER 3. Review on Control Architectures for Modular Microrobots
Figure 3.8: Example of structure in subsumption architecture
Behavior-based architectures were based on reactive architectures, but are not the
same, as it was explained before. In the following sections some of these architectures will
be described.
3.3.1 Subsumption Architecture
Brooks subsumption architecture [Brooks, 1986], is one of the best known implementations
of behavior that does not include a world model. Subsumption architecture systems are
incrementally built up of competences, where a new competence can subsume behavior
generated by the already existing competences, thereby altering the behavior of the system.
The competences all run simultaneously, and each can react on the present sensor state,
which gives a reactive behavior. The subsumption architecture is illustrated in gure
3.6. This gure shows how the higher levels can overwrite (subsume) the output of the
lower levels. The gure does not show that the higher levels can also change the behavior
generated by the lower levels. The system can be partitioned at any level, and the layers
below form a complete operational control system.
Several dierent robotic systems have been built using this approach. However, the
adding of new competences to a subsumption architecture system becomes increasingly
dicult as the system gets larger, because of the many dierent possibilities of connecting
the new competence, and because the generated behavior is an emergent property of the
interaction between all the competences
At the lowest level, each behavior is represented using an augmented nite state ma-
chine (AFSM), as shown in gure 3.8. Stimulus or response signals can be suppressed or
inhibited by other active behaviors.
There is no global memory, bus or clock. Each behavioral layer is mapped onto its own
processor. No central world models. Figure 3.9 shows an example of three layered robot.
Coordination in subsumption has two primary mechanisms:
Inhibition: to prevent a signal from reaching the actuators
Suppression : prevents a signal from being transmitted and replaces it with a sup-
pressing message.
The lowest level layer of control makes sure that the robot does not come into contact
with other objects. If something approaches the robot it will move away. The rst level
layer of control, when combined with the zeroth, imbues the robot with the ability to
64
3.3. Behavior-Based Architectures
Figure 3.9: Subsumption AFSM of a Three Layered Robot
Subsumption
Background Well-known early reactive architectures
Precursors Braitemberg 1984; Walter 1953; Ashby 1952
Principal design method Experimental
Developer Rodney Brooks (MIT)
Response encoding Predominantly discrete (rule based)
Coordination method Competitive (priority-based + inhibition and suppression)
Programming method AFSMs, Behavior Language
Robots elded Allen, Genghis, Squirt, Toto, Seymour, Polly ...
Table 3.1: Subsumption Architecture
wander around aimlessly without hitting obstacles. Level 2 is meant to add an exploratory
mode of behavior to the robot, using visual observations to select interesting places to visit.
3.3.2 Motor Schemas
Schemas are parameterized potential functions which give a generic specication of inde-
pendent process that are specialized for a specic task and domain.
There are two types of schemas:
motor schemas: concerned with control of actuators
perceptual schemas: concerned with goal-directed sensing of features in the environ-
ment
The agent-based structure of the Arkins Schema-Based architecture [Arkin, 1987] (g-
ure 3.10) allows that each element can be instantiated or killed at any time, according
to the task at hand and environment state, which endows the architecture with an inter-
esting run-time exibility. Each behavior is implemented as a motor-schema, which acts
according to the information provided by a set of perceptual-schemas.
65
CHAPTER 3. Review on Control Architectures for Modular Microrobots
Figure 3.10: Structure of Motor Schemas
Motor schemas are similar to animal behaviors. The may have internal parameters that
provide additional exibility. Each of them has an output (action vector) that denes the
way the robot should move. Perceptual schemas are embedded in each motor schema,
and provide the environmental information specic for that particular behavior. They
are recursively dened, that is, there can be perceptual subschemas providing information
that will be processed by the perceptual schema.
Many dierent motor schemas have been dened, including:
Move-ahead: move in a particular compass direction
Move-to-goal: move towards a detected goal object. Two versions exist of this
schema: ballistic and controlled
Avoid-static-obstacle: move away from passive or non threatening navigational bar-
riers
Dodge: sidestep an approaching ballistic projectile
Escape: move away from the projected intercept point between the robot and an
approaching predator
Stay-on-path: move toward the center of a path, road, or hallway. For three-
dimensional navigation, this becomes the stay-in-channel schema
Noise: move in a random direction for a certain amount of time
Follow-the-leader: move to a particular location displaced somewhat from a possibly
moving object. (The robot acts as if it is leashed invisibly to the moving object.)
Probe: move toward open areas
66
3.3. Behavior-Based Architectures
Motor Schemas
Background Reactive component of AuRA Architecture
Precursors Arbib 1981; Khatib 1985
Principal design method Ethologically guided
Developer Ronald Arkin (Georgia Tech)
Response encoding Continuous using potential eld analog
Coordination method Cooperative via vector summation and normalization
Programming method Parameterized behavioral libraries
Robots elded HARV, George, Ren and Stimpy, Buzz ...
Table 3.2: Motor Schemas Architecture
Dock: approach an object from a particular direction
Avoid-past: move away from areas recently visited
Move-up, move-down, maintain-altitude: move upward or downward or follow an
isocontour in rough terrain
Teleautonomy: allows human operator to provide internal bias to the control system
at the same level as another schema
The cooperative coordination mechanism is based on weighted vectorial sum, where
weights allow to distinguish motor-schemas in terms of priority. Modularity is provided
by its agent-based nature and standard vectorial form for motor-schemas output. In this
line, a set of motor-schemas and respective coordination nodes can be aggregated into a
single motor-schema, also called of assemblage behavior. An external entity, a sequencer,
can select which behavioral assemblages are active according to the task/environment. In
gure 3.10 it would be situated between the VECTOR and the Robot motors.
Arkin: The task of robot programming is fundamentally simplied through the use
of a divide and conquer strategy.
Example: an obstacle avoidance motor schema can control the robot away from the
obstacle. In order to detect obstacles several obstacle detection perceptual schemas can
be instantiated to keep track of obstacles and feed the obstacle positions to associated
obstacle avoidance motor schemas.
3.3.3 Activation Networks
It is a combination of traditional planners and reactive systems developed by Maes [Maes,
1990]. The architecture consists of a set of behaviors or competence modules which are
connected to form a network (gure 3.11). Action-selection is modeled as an emergent
property of an activation/inhibition dynamics among these modules. The set of behaviors
reduce the dierence between the systems present state and a goal state. Arbitration
among modules is a run-time process, which changes according to goals and current situ-
ation.
In the network each behavior is represented by a tuple (ci, ai, di, i) describing:
1. the preconditions under which it is executable (i.e. can be applied)
67
CHAPTER 3. Review on Control Architectures for Modular Microrobots
Figure 3.11: Activation Networks
2. the eects after successful execution in form of an add-list ai and delete-list di
3. activation level i which is a measure of applicability of the behavior
External sources of activation are: activation by the state, activation by the goals and
inhibition by protected goals.
Internal sources of activation are: activation of successors, activation of predecessors
and inhibition of conictors.
This ASM deals only with selection of behaviors and not with motor actions. When a
behavior is selected it will perform the most appropriate action from its point of view (it
is a winner-take-all mechanism).
The internal mechanisms of a competence model are independent of the architecture.
A competence model has a condition list, which aggregates all conditions to be met before
the module becomes executable, an add list and a delete list, which are the eects of
the module. Successor links connect add list items of one competence to condition list
of another competence. A predecessor link from module X to module Y exists for each
successor link from Y to X. A conicter link connects delete list items of one competence
to condition list of another competence. Provided that, a competence is executable, its
activation value is above a certain threshold, and it is greater than all other competence
modules activation, the competence is allowed to perform real actions (i.e. actuate directly
in the actuators). Briey, activation is increased every time an item in the condition list is
met and by the achievement of a global goal. Then, activation ows between competence
modules via successor, precessor, and conictor links. A decay function ensures that the
overall activation level remains constant.
68
3.3. Behavior-Based Architectures
Activation Networks
Background Dynamic competition system
Precursors Minsky 1986; Hillis 1988
Principal design method Experimental
Developer Pattie Maes (MIT)
Response encoding Discrete
Coordination method Arbitration via action-selection
Programming method Competence modules
Robots elded Only simulation
Table 3.3: Activation Networks Architecture
Figure 3.12: DAMN architecture
3.3.4 DAMN
DAMN is a Distributed Architecture for Mobile Navigation [Rosenblatt, 1995] which con-
sists of a set of asynchronous behaviors that pursue the system goals based on the current
state of the environment. Each behavior votes for or against the set of actions constituting
the possible set of actions of the agent. The best action is the one with the maximum
weighted sum of the received votes. Each behavior is assigned a weight. These weights
reect the relative importance or priority of the behavior in a given context. The arbiter
is then responsible for combining the behaviors votes and generating actions which re-
ects their objectives and priorities. A behavior can be a reactive behavior as well as a
planning module. Well suited for integration of high level deliberative planners with low
level reactive behaviors.
3.3.5 CAMPOUT
CAMPOUT is a Control Architecture for Multi-robot Planetary Outposts [Pirjanian et al.,
2000] [Pirjanian et al., 2001] by the Jet Propulsion Lab in Pasadena, CA. It is a three
layer behavior-based system:
69
CHAPTER 3. Review on Control Architectures for Modular Microrobots
DAMN (Distributed Architecture for Mobile Navigation)
Background Fine-grained subsumption-style architecture
Precursors Brooks 1986; Zadeh 1973
Principal design method Experimental
Developer Julio Rosenblatt (CMU)
Response encoding Discrete vote sets
Coordination method Multiple winner-take-all arbiters
Programming method Custom
Robots elded DARPA ALV and UGV vehicles
Table 3.4: DAMN Architecture
Low level control routines.
Middle behavior layer that uses either the BISMARC (Biologically Inspired System
for Map-based Autonomous Rover Control) or MOBC (Multi-Objective Behavior
Control) action selection mechanisms.
Hierarchical task planning, allocation and monitoring
CAMPOUT includes the necessary group behaviors and communication mechanisms
for the coordinated and cooperative control of heterogeneous robotic platforms. It is a dis-
tributed, hybrid, behavior-based system because it couples reactive and local deliberative
behaviors without the need for a centralized planner.
Control architectures closest to CAMPOUT are ALLIANCE, DAMN, BISMARC and
MOBC.
Its main characteristics are:
Cognizant of failure and Fault tolerant
Distributed control
Scalable and Ease of integration
Rational decision making
Explicit knowledge
Uncertainty handling
Adaptivity and Learning capabilities
Hybrid
Formal framework
Small overhead
Behaviors are divided in the following classes:
Primitive Behavior Library: behavior producing module (behavior). A behavior is
a perception to action mapping module that based on selective sensory information
produces actions in order to maintain or achieve a given, well specied task objective.
Ex. AvoidObstacle and GotoTarget
Composite Behaviors: combination of lower-level behaviors. Example: SafeNaviga-
tion
70
3.3. Behavior-Based Architectures
Figure 3.13: CAMPOUT: block diagram
Communication Behaviors: interaction with other robots
Shadow Behaviors (s-behaviors): a remote behavior (including for example state
information) running on a separate robot
Cooperation/Coordination Behaviors: coordination between c-behaviors and s-behaviors
CAMPOUT uses the following control mechanisms:
Arbitration mechanisms
Suitable for arbitrating between the set of active behaviors in accord with the
systems changing objectives and requirements.
CAMPOUT implements
priority-based arbitration, where behaviors with higher priorities are al-
lowed to suppress the output of behaviors with lower priorities;
state-based arbitration which is based on the discrete event systems (DES)
formalism, and is suitable for behavior sequencing.
Command fusion mechanisms
Voting: interpret the output of each behavior as votes for or against possible
actions and the action with the maximum weighted sum of votes is selected
(DAMN-style based on BISMARC);
Fuzzy command fusion mechanisms that use fuzzy logic and inference to for-
malize the action selection processes;
Multiple objective behavior fusion mechanisms that select an action with the
best trade-o between the task objectives and which satises the behavioral
objectives as much as possible based on multiple objective decision theory
71
CHAPTER 3. Review on Control Architectures for Modular Microrobots
CAMPOUT
Background ALLIANCE, DAMN, BISMARC and MOBC
Precursors DAMN, ALLIANCE
Principal design method Experimental
Developer JPL
Response encoding Both discrete and continuous
Coordination method Several: priority-based, state-based, voting, fuzzy, etc.
Programming method Distributed
Robots elded Campout Rover
Table 3.5: Control Architecture for Multi-robot Planetary Outposts (CAMPOUT) Archi-
tecture
Communications infrastructure: Provides a set of tools and functions for intercon-
necting a set of robots and/or behaviors for sharing resources (e.g., sensors or actuators),
exchanging information (e.g., state, percepts), synchronization, rendezvous etc.
Synchronization: Signal (destination, sig) and Wait (source, sig) can be used to send
and wait for a signal to and from a given robot
Data exchange: SendEvent (destination, event) and GetEvent (source, event) can
be used to send and receive an event structure
Behavior exchange: SendObjective (destination, objective) and GetObjective (source,
objective) can be used to send and receive objective functions (multivalued behavior
outputs)
3.4 Hybrid Deliberate-Reactive Architectures
Everybodys got plans... until they get hit (M. Tyson)
There is a need to solve the drawbacks of reactive and deliberative systems. And those
are the hybrid architectures. Some strategies to do this are:
Selection: Planning is viewed as conguration. Planner determines the behavioral
composition
Advising: Planning is viewed as advice giving. Planner suggests and reactive level
may or may not use it.
Adaptation: Planning is viewed as adaptation. Planner modify reactive components
depending on environment changes
Postponing: Planning is viewed as a least commitment process. Plans are elaborated
only as necessary.
Modern robot control architectures are hybrid, i.e., they contain dierent layers for
reactive and for deliberative control components. Typically, a middle layer (sometimes
called sequencing layer) mediates between the reactive and the deliberative components,
resulting in a three-layer architecture.
72
3.4. Hybrid Deliberate-Reactive Architectures
3.4.1 3-Tiered (3T)
3T is a three-layered (tiered) architecture [Bonasso et al., 1995], with skills, sequencing
and planning layers (gure 3.14).
Planner constructs partially ordered plans, listing tasks for the robot to perform
according to some goals. It can reason in depth about goals, resources, and timing
constraints by using a system, Adversarial Planner (AP). It is the Planners job to
select a RAP (Reactive Action Packages) to execute the corresponding task.
Sequencing tier includes RAPs, each of the tasks that are constructed by Planner,
corresponds to one or more sets of sequenced actions or RAPs. The job of the
Sequencing tier is to decompose selected RAP into other RAPs, and when it is
indivisible, corresponding set of skills are activated in Skills tier. Additionally, a
set of event monitors are activated in skills tier to notify sequencing layer of the
occurrence of certain conditions.
Skills (Reactive) tier includes dynamically reprogrammable set of reactive skills
coordinated by a skill manager. Sequencing tier will terminate or replace actions,
according to enabled event monitor or timeouts.
Skills for the robot-specic interface with the world, handling the real-time transforma-
tion of desired state into continuous control of motors and interpretation of sensors. Skill
development should be robot-independent because physical properties of robots change
and all interface between Skills and Sequencing tier should remain same. Skills should
be capable of being enabled and disabled in any combination from sequencing tier. To
provide this, skill manager is employed.
Sequencer is the RAPs interpreter, where RAP is simply a description of how to
accomplish a task in the world under a variety of conditions using discrete steps. Some
statements may cause RAP interpreter to block a branch (while expanding) of the task
execution until a reply is received from skills manager. Replies are produced by special
skills, called events (event monitors).
Planner should operate at the highest level of abstraction possible so as to make its
problem space as small as possible. Thus it should not have to deal with tasks that can
be routinely specied as sequences of common robotic skills.
Applications of 3T: A mobile robot that recognizes people, and a trash-collecting robot
without any planner, but recovery mechanisms in RAP and memory in RAP enables robot
not to stuck or shock in any situation. A mobile robot that navigates oce buildings where
planner is used for i.e.. nding a path to elevator, or re-plan its own path if a doorway is
blocked and reevaluated plan if no deadlines are violated.
3.4.2 Aura
It stands for Autonomous Robot Architecture and was developed by Arkin in 1986 [Arkin
and Balch, 1997]. It is based on hierarchical components:
Mission planner: interface to human commander
73
CHAPTER 3. Review on Control Architectures for Modular Microrobots
Figure 3.14: 3T intelligent controll architecture
Spatial Reasoner (Navigator): cartographic knowledge stored in memory to con-
struct paths. A*
Plan Sequencer (Pilot): translates the path into motor behaviors
It uses schemas as reactive component. Once reactive execution begins, the deliberative
component is not reactivated until failure (lack of progress). Some of its principles are:
modularity, exibility, generalizability.
3.4.3 Atlantis
Atlantis (Three-Layer Architecture for Navigating Through Intricate Situations) [Gat,
1992], like the subsumption architecture, is built in layers as shown in gure 3.16. In
Atlantis, however, all instantiations of the architecture have the same three layers, each of
which always performs the same duty. This architecture is both asynchronous and hetero-
geneous. None of the layers is in charge of the others, and activity is spread throughout
74
3.4. Hybrid Deliberate-Reactive Architectures
Figure 3.15: Aura Architecture
the architecture.
The Control Layer directly reads sensors and sends reactive commands to the eectors
based on the readings. The stimulus-response mapping is given to it by the sequencing
layer. It is implemented in ALFA, a LISP-based programming language
The Sequencing Layer has a higher-level view of robotic goals than the control layer.
It tells the control layer below it when to start and stop actions.
The Deliberative Layer responds to requests from the sequencing layer to perform
deliberative computations. It consists of traditional LISP-based AI planning algorithms
specic to the task at hand. The planners output is viewed only as advice to the sequencer
layer: it is not necessarily followed or implemented verbatim.
3.4.4 Saphira
The Saphira architecture [Konolige et al., 1997] is an integrated sensing and control system
for robotics applications (gure 3.17). Perceptual routines are on the left, action routines
on the right. The vertical dimension gives an indication of the cognitive level of processing,
with high-level behaviors and perceptual routines at the top. Control is coordinated by
PRS-Lite, which instantiates routines for navigation, planning, execution monitoring, and
perceptual coordination. At the center is the LPS (Local Perception Space), a geometric
representation of space around the robot. Because dierent tasks demand dierent repre-
sentations, the LPS is designed to accommodate various levels of interpretation of sensor
information, as well as a priori information from sources such as maps. The LPS gives
the robot an awareness of its immediate environment, and is critical in the tasks of fusing
sensor information, planning local movement, and integrating map information.
Saphira architecture is an integrated sensing and control system, which includes Local
Perception Space (LPS) at its center containing dierent levels of representation (from
occupancy grids, to geometric representation to high level artifacts of the world). Internal
75
CHAPTER 3. Review on Control Architectures for Modular Microrobots
Figure 3.16: Atlantis Architecture
artifacts (like it is a chair, doorway etc.) are viewed as beliefs of robot about the envi-
ronment. Perception and action modules in levels of complexity, all interact with LPS.
As another central module, Procedural Reasoning System (PRS) is used in more complex
behaviors and in interaction with modules like speech input, schema library, topological
planner.
At control level Saphira is behavior based, behaviors are written and combined us-
ing techniques based on fuzzy logic. These rules produce desirability function for each
behavior, the fuzzy connectives are used to combine dierent behaviors based on their
contexts (context depending blending), and defuzzication is used to choose preferred
control among selected behaviors, generally taking average.
Basic behaviors take their inputs from the LPS and use information like occupancy
data. Some behaviors like goal-seeking behaviors take input from artifacts. For example,
the behavior cross-door uses the coordinates of a door artifact in the LPS as an input.
Basic behaviors are combined to form complex behaviors, where outputs of desirability
functions for behaviors are combined (for example through a minimum operation as dened
by context dependent blending and defuzzication). In such a way for example if there
is an obstacle ahead, and there are two choices, turn left or right, the selection is done
according to the overall goal position.
The coordination mechanism is very similar to potential elds method.
PRS-Lite: Management process involves determining when to activate/deactivate be-
haviors as part of execution of a task, as well as coordinating them with other activities
in the system. It provides the smooth integration of goal-driven and event-driven activity,
while remaining responsive to unexpected changes in the world. The representational basis
of PRS-Lite is the activity schema, a parameterized nite-state-machine whose arcs are
labelled with goals to be achieved. Each schema embodies procedural knowledge of how
to attain some objective via sequence of subgoals, perceptual checks, primitive actions,
and behaviors.
76
3.4. Hybrid Deliberate-Reactive Architectures
Figure 3.17: Saphira system architecture
Reactive behaviors take their inputs directly from sensor readings and more goal-
directed behaviors such as wall-following can often benet from using artifacts (corridor
artifact). This is especially true when sensors give only sporadic and uncertain information.
3.4.5 DD&P
DD&P [Schonherr and Hertzberg, 2002] is a hybrid, two-layered architecture, composed
of a reactive layer based on DD (Dual Dynamics), which is a set of conceptually inde-
pendent behaviors; and a planning component which gives directions to behaviors located
in dierent levels, as well as it should dene the way in which a chosen operator from
the currently active plan inuences the current working of the DD&P part, and it should
dene how information from DD and the sensors goes into the planners world model.
In Dual Dynamics, behaviors are leveled and interact through shared variables. Every
individual behavior is regulated by its activation dynamics, which describes its degree of
activation, is calculated by some sensor values, some other behaviors and the inuence
from planning (in major or minor way). Only behaviors at the bottom level are allowed to
directly inuence actuators by output of their target dynamics. For every control variable
of some actuator, the product term combines target and activation dynamics for all level-0
behaviors. Activation of a motor is done by summation of the control variables, where
product term is used as gain. Direct inuence from higher level is restricted to next lower
level, behaviors are regulated by input from peers and next-higher level.
In DD&P, plan modules can aect any behavior in any level. Even highest behaviors
should obey the structure of activation, target dynamics. But there is no restriction for
77
CHAPTER 3. Review on Control Architectures for Modular Microrobots
Figure 3.18: DD&P Controller
planning. O-the-shelf propositional planner is used here: IPP. Given a set of mission
goals by human user, the planner is supposed to generate and keep updated an ordered
set of abstract actions as the current plan and to determine at each of its time cycles
the operator of that plan that proposes to execute, given its current knowledge about
the environment (in the KB - Knowledge Base). Executing an operator means biasing
behaviors rather than exerting hard control. An operator chosen for execution stimulates
(++) or mutes (). Information ow from the DD part to the deliberative part in form of
the activation history of the behaviors, yielding an image of the environment as perceived
through the eyes of the useful behavior.
Figure 3.18 shows the schema of an DD&P controller. Left part is a two-level DD
behavior set. Arrows among the behavior represent (possible) activation ow; current
activation is represented by the blankness level of behaviors. Arrows meeting behaviors
from the left represent sensor input or input from behaviors of the same level.
3.5 Modular Robot Architectures
3.5.1 CONRO
From the University of Southern California, by P. Will.
CONRO [Shen et al., 2000] [Shen et al., 2002] [Salemi et al., 2004] presents a distributed
control mechanism inspired by the concept of hormones in biological systems.
Hormones are special messages that can trigger dierent actions in dierent modules.
They can be used to coordinate motions and reconguration in the context of limited
communications and dynamic network topologies.
A self-recongurable robot can be viewed as a network of autonomous systems with
communication links between modules.
78
3.5. Modular Robot Architectures
Communication description
Each module has a unique ID and maintains a set of active communication link. To send
a message from a module P to a module Q in this network, P sends the message to all
of its active links. Upon receiving a message, a module will either keep the message, or
relay the message to all of its active links except the link through which the message was
received. Loops must be prevented.
Master vs masterless
Master controlled systems are characterize by
Advantage: synchronization
Disadvantage: communication cost
And masterless control system by
Free from communication, scalable
Loss of robustness, synchronization based on a internal clock
The CONRO control lies between both of them. It reduces the cost of communication
while keeping some degree of synchronization.
Hormones
Formally, a hormone message is a special type of message that has three important prop-
erties:
1. a hormone has no particular destination but oats in a distributed system
2. a hormone has a lifetime
3. the same hormone may trigger dierent actions at dierent receiving sites. For
example:modication and relay of the hormone, execution of certain local actions,
or destruction of the received hormone.
A hormone is terminated in three possible ways:
when it reaches its destination
when its lifetime expires
when it has nowhere to go (e.g., it arrives at a module that has no outlinks).
Since no hormone can live forever, this prevents them from circulating in the network
indenitely.
79
CHAPTER 3. Review on Control Architectures for Modular Microrobots
Hormone classes
Hormone messages are classied into three classes:
1. Hormones for action specication. E.g. h(x) that will cause a receiving module to
relay its current DOF1 position to the next module and then move its DOF1 to the
x position
2. Hormones for synchronization: since hormones can wait at a site for the occurrence
of certain events before traveling further, they can be used as tokens for synchronizing
events between modules. s can be designed to ensure that all modules nish their
job before the next step begins.
3. Hormones for dynamic grouping of modules. In any distributed system, it is often
useful to dene a set of entities dynamically as a special group for certain operations.
Hormones can be used to dene sets on the y. Each module in the self-recongurable
robot has a set of local variables mi that can be marked dynamically by the module
itself.
Hormone management
No module can be the generator of two or more hormone sequences simultaneously. A
module can become the generator of a hormone sequence in two ways:
Self-promoted (i.e. by sensors)
Instructed (i.e. by a hormone)
3.5.2 M-TRAN
From the National Institute of Advanced Industrial Science and Technology (AIST) and
Tokyo Institute of Technology, by S. Murata [Murata et al., 2002] [Kurokawa et al., 2003]
[Kamimura et al., 2004] [Kurokawa et al., 2005] [Yoshida et al., 2003].
The MTRAN II controller is distributed, i.e., the controllers are distributed in all the
modules. However, self-reconguration motion is made by global synchronization. Each
module has its xed role and its own sequence data. One module is selected as a master
and others works as slaves. Global synchronization is maintained by masters polling.
Decentralized controller system: various types of controllers, centralized /decentralized
and synchronous / asynchronous The system consists of three layers.
1. The bottom layer contains several functions of the slave controllers directly related
to the hardware and an interface between the master and slaves. They include
PID/trajectory control of motors, connection control, and data acquisition by several
sensors.
2. The middle layer is for communication among modules and realizes mainly two func-
tions; remote control of other modules and a shared memory. CAN communication
3. In the upper layer, a sequence program designed by the kinematics simulator is
interpreted and executed.
80
3.5. Modular Robot Architectures
Figure 3.19: Control Architecture of M-TRAN
3.5.3 Polybot
From the Xerox Palo Alto Research Center, by M. Yim [Yim et al., 2000] [Yim et al.,
2001].
It describes a software architecture that features a multi-master/ multi-slave structure
in a multithreaded environment, with three layers of communication protocol.
1. The rst layer conforms to the data link communication on the physical media.
2. The second layer provides higher-level data integrity between any two addressable
nodes with network routing
3. The third layer denes the application middleware components and protocol based
on an attribute/service model.
MDCN
MDCN stands for Massively Distributed Control Nets. It is a CANBus-based proto-
col, which means low price, multiple sources, highly robust performance and already
widespread acceptance. Its main features are:
Addressing of up to 254 nodes and groups in standard CAN format and up to 100,000
in extended format.
Three types of communication: individual, group and broadcast, with eight priority
levels.
I/O (node-to-node) and port (point/process-topoint/process) communications, where
I/O type is mostly reserved for system processes with high priorities and short mes-
sage sizes that can be encoded in one data frame, and port type is for user applica-
tions, with lower priorities and possibly large message sizes encoded in many data
frames
81
CHAPTER 3. Review on Control Architectures for Modular Microrobots
(a) Nodes and Segments in Poly-
bot
(b) Service=square and Attributes=ellipse
Figure 3.20: Polybot control scheme
CAN bus has a limitation on the number of CAN controllers on one network - An
MDCN bridging has been implemented to transfer messages between multiple CAN buses
Attribute/Service Model
Multi-threading is essential for ecient handling of multiple hardware requests and com-
putation in real-time. Global tasks such as locomotion and reconguration require com-
munication between dierent modules.
The Attribute/Service model is a general and simple framework for applications that
require programming with multiple tasks/threads on multiple processors.
The Attribute/Service model is a component based architecture, where components
are either attributes or services distributed over the communication network.
Attributes are abstractions for shared memory/resources among multiple threads
located in one or more processors. E.g. desired joint angle. Services are abstractions
of hardware or software routines. In general: hardware services correspond to settings in
registers controlling hardware peripherals and software services are threads that run for
particular tasks. An example of a hardware service can be actuating a latch for docking.
Both attributes and services are accessible either locally or remotely.
Example
In PolyBot G3, masters are running on nodes and slaves are running on segments. Both
masters and slaves are multi-threaded.
Master and slaves run some common components, such as Attribute/Service servers,
IR ranging and other local sensing attached to the module.
Masters also run MDCN routers, global computation such as planning and inverse
82
3.6. Adaptive Behavior
kinematics, global environment sensing etc.
Slaves run motor control and local gait table generation.
PolyBot tasks are divided into three categories: locomotion, manipulation and recon-
guration, where locomotion is essentially a dual of reconguration.
3.6 Adaptive Behavior
3.6.1 Reinforcement Learning
Reinforcement learning (RL) is a class of learning algorithm where a scalar evaluation
(reward) of the performance of the algorithm is available from the interaction with the
environment. The goal of a RL algorithm is to maximize the expected reward by adjust-
ing some value functions. This adjustment determines the control policy that is being
applied. The evaluation is generated by a reinforcement function which is located in the
environment.
In Q-learning, the learning problem is divided into a set of simpler problems each
learned separately by a Q-learning module A Q-learning Action Selection Mechanisms
arbitrates among the modules
In W-learning (W = weight), each module/behavior recommends an action with some
weight. The action with the highest weight is selected and executed. The W-values are
then modied based on the dierence between the winning action and the action desired
by the behavior
3.6.2 Neural Networks
Many roboticist have experimented with Neural Networks for controlling robots [Mad00]
[FN98] [CM96]. The behavior produced by neural networks is an emergent property of
the weights of the connections, and the positions of motors and sensors on the real robot.
One advantage of neural networks is that a robust solution often can be found due to
the neurons natural way of handling noise. One disadvantage is that it is dicult to
set the weights by hand, and that simulation time of the network increases linearly with
the number of connections between nodes, that is O(n
2
) with the number of nodes, and
therefore does not scale too well. Another disadvantage is, that since the output of a
neural network is produced by an interplay of the weights of many dierent connections,
it can be very dicult to read the network, as well as to write a network by hand.
Because of this, dierent machine learning techniques are often used to set the weights,
such as back-propagation and articial evolution. When using neural networks to control
a robot, two dierent methods can be used: the neural network can be directly connected
to the motors, or it can be used to select a preprogrammed action.
Direct control A feed forward neural network can be set up to connect the sensors
of a robot with the motors, as shown in gure 3.21(a). In this approach, the speeds of
the motors are determined by the activation of the output nodes of the neural network.
Some simple transformation is applied to the activation of the neural network, to give
appropriate values for the speeds of the motors, but otherwise the motors are directly
controlled by the neural network. This approach gives a purely reactive behavior by a one
83
CHAPTER 3. Review on Control Architectures for Modular Microrobots
Figure 3.21: Neural Networks Scheme
to one mapping from sensor space to motor space, and can be used to implement simple
Braitenberg vehicles.
Action selection Instead of using the output of the neural network to set the
speeds of the motors directly, the output can also be used to decide which of a set of
pre-programmed actions should be taken, as shown in gure 3.21(b). The action corre-
sponding to the output-node with highest activation gets to control the robot. In this
approach, the role of the neural network is not to control the motors directly, but to select
which action is to control the robot.
Multilayer/recurrent networks Both neural networks with recurrent connections
and multi-layered neural networks can be used for both Direct control and Action selection
instead of feed-forward neural networks. A multi-layered neural network with a recurrent
connection is shown in gure 3.21(c). Using multi-layered networks increases the com-
puting capability of the network, meaning that more complex reactive behaviors can be
represented. Recurrent connections enable the control system to have some internal state,
giving some sort of memory to the neural network.
3.6.3 Fuzzy Behavioral Control
Fuzzy logic eliminates some of the problems from rule-based behavior (a set of if-then
statements) with abrupt changes in the output. The general method is to use fuzzy rules
to produce a fuzzy result. The result produced by the rules is then de-fuzzyed by an
algorithm, producing a non-fuzzy output. The eect is that the resulting output is more
smooth than if a normal rule-based approach was used. Fuzzy logic can be seen as a hybrid
between feed-forward neural networks and rule-based behavior, since the output is a fusion
of the outputs of several rules at one time, potentially giving a more smooth change in
motor-output as input is changed. Figure 3.22 shows a fuzzy logic system architecture.
The input (A) is processed by an array of fuzzy rules, which produces a fuzzy output (B),
which is defuzzifyed into an ordinary (crisp) output. The fuzzy output (B) is calculated
from the fuzzy outputs from each of the fuzzy rules.
84
3.6. Adaptive Behavior
Figure 3.22: Fuzzy Logic
3.6.4 Genetic Algorithms
Genetic Algorithms (GAs) form a class of gradient descent methods in which a high-
quality solution is found by applying a set of biologically inspired operators to individual
points within a search space, yielding better generations of solutions over an evolutionary
timescale. The tness of each member of the population is computed using an evaluation
function, called the tness function, that measures how well each individual performs
with respect to the task. The populations best members are rewarded according to their
tness, and poorly performing individuals are punished or deleted.
It it important to say that this method does nor guarantee an optimal global solution,
but it generally produces high-quality solutions.
Two elements are required for any problem before a genetic algorithm can be used to
search for a solution: First, there must be a method of representing a solution in a manner
that can be manipulated by the algorithm. Traditionally, a solution can be represented by
a string of bits, numbers or characters. Second, there must be some method of measuring
the quality of any proposed solution: the tness function.
A GA is composed of the initialization, selection, reproduction and termination steps.
Initialization: Initially many individual solutions are randomly generated to form an
initial population. The population size depends on the nature of the problem, but typically
contains several hundreds or thousands of possible solutions. Traditionally, the population
is generated randomly, covering the entire range of possible solutions (the search space).
Occasionally, the solutions may be seeded in areas where optimal solutions are likely to
be found.
Selection: During each successive epoch, a proportion of the existing population is
selected to breed a new generation. Individual solutions are selected through a tness-
based process, where tter solutions (as measured by a tness function) are typically
more likely to be selected. Certain selection methods rate the tness of each solution and
preferentially select the best solutions. Other methods rate only a random sample of the
population, as this process may be very time-consuming.
85
CHAPTER 3. Review on Control Architectures for Modular Microrobots
Figure 3.23: GA scheme in M-TRAN
Most functions are stochastic and designed so that a small proportion of less t so-
lutions are selected. This helps keep the diversity of the population large, preventing
premature convergence on poor solutions. Popular and well-studied selection methods
include roulette wheel selection and tournament selection.
Reproduction: The next step is to generate a second generation population of so-
lutions from those selected through genetic operators: crossover (or recombination), and
mutation.
For each new solution to be produced, a pair of parent solutions is selected for
breeding from the pool selected previously. By producing a child solution using the
above methods of crossover and mutation, a new solution is created which typically shares
many of the characteristics of its parents. New parents are selected for each child, and
the process continues until a new population of solutions of appropriate size is generated.
These processes ultimately result in the next generation population of chromosomes
that is dierent from the initial generation. Generally the average tness will have in-
creased by this procedure for the population, since only the best organisms from the rst
generation are selected for breeding.
Termination: This generational process is repeated until a termination condition has
been reached. Common terminating conditions are:
A solution is found that satises minimum criteria
Fixed number of generations reached
Allocated budget (computation time/money) reached
The highest ranking solutions tness is reaching or has reached a plateau such that
86
3.7. Conclusions
successive iterations do no longer produce better results
Manual inspection
Combinations of the above
GAs can be found in many robots to develop its controllers or algorithms. In M-TRAN
( [Kamimura et al., 2003]) it is used an automatic locomotion generation method (called
ALPG) aimed at making locomotion of arbitrary module congurations using neural oscil-
lator as a model of CPG (Central Pattern Generator) and Genetic Algorithm for evolving
parameters (gure 3.23).
ATRON makes also use of GAs to see how well the collective of modules performs
a given task when articial evolution was applied to develop the individual controllers
[Ostergaard and Lund, 2003]. The evolutionary algorithm was a simple GA working on
a string of bytes. Each byte is considered one gene, and mutation operations can either
replace the byte with a random byte, ip a bit, or add a truncated gaussian distributed
random byte to the gene. A population size of 500 is used with the best 50% of the
individuals used as candidates for reproduction (rank based), mutation rate of 5% per
gene, two-parent 10 point crossover and one elite individual.
The tness function (for maximization) was simply the sum of x-coordinates of the
modules integrated over time (200 time steps), to make the modules perform a simple
locomotion task along the x-axis.
3.7 Conclusions
This chapter has been dedicated to describe control systems and algorithms suitable for
modular microrobots. In this way, several control architectures have been presented, with
especial emphasis in the behavior based architectures. Its main characteristics have been
explained and the dierences with deliberative, reactive and hybrid architectures have
been pointed out.
Behavior-based architectures are especially suited for microrobots because they include
the possibility to react in real-time to the unforeseen (very important in eld robotics), to
be coded in simple procedures that dont need a big hardware to run (very important in
a microrobot), and to still be able to perform high level control.
A review of the most important behavior-based architectures has been given, from
pure reactive architectures like subsumption, to more hybrid like motor schemas, activation
networks or DAMN. Also state of the art architectures like CAMPOUT has been reviewed.
The subsumption architecture is very interesting from the point of view of fast response
to external events, since it is a pure reactive architecture. Motor schemas introduces the
concepts of motor and perceptual schemas, separating actuator related functions (motor
schemas) and sensor related functions (perceptual schemas), and presenting the use of
perceptual schemas as recursive information generation process that may lead to a kind of
high level control. Activation networks presents the concept of activation preconditions
of behaviors, that is, the situations that have to be fullled for the behavior to take con-
trol. DAMN introduces the concept of an arbiter between the behaviors votes that takes
into consideration the objectives and priorities. Thus, it is well suited for integration
87
CHAPTER 3. Review on Control Architectures for Modular Microrobots
of high level deliberative control with low level reactive behaviors. Finally, CAMPOUT
is a very interesting architecture because integrates dierent types of behaviors (primi-
tive, composite, communication, coordination, etc.), and dierent arbitration mechanisms
(priority-based, state-based, voting, fuzzy, etc.), a clear example of the great exibility
that provides the use of behavior-based architectures.
Most of the hybrid architectures included in this section are based on three layers:
reactive, middle (sequencer), and deliberative. There is a clear tendency in the control
design to this three layer scheme. This underlines the importance of a layer that links the
reactive and deliberative parts of the architecture. Although the architecture proposed
in this thesis does not follow an architecture with a dened three layer scheme, there is
also a middle layer that interconnects (translates) the embedded control with the central
control.
Regarding modular robot architectures, three of them have been reviewed: CONRO,
Polybot and M-TRAN. CONRO presents the concept of hormones, special messages that
can trigger dierent actions in dierent modules. This is similar in Microtub, because
some commands are send to all modules, but each of them adapt the command to its
characteristics. M-TRAN shows two interested features: one is that although it uses a
distributed control, for some tasks like recongurations, central control is used, showing
how complicated (or even impossible) it is to have a pure distributed mechanism. The
other feature is the three layer architecture similar to Microtub, with low-level, middle
layer for communication and high level control. Polybot presents the attribute/service
model, especially design for complex tasks that require communication between dierent
modules.
Finally, a brief summary of adaptive behavior techniques has been given, including
reinforcement learning, neural networks and fuzzy control. An extended description of ge-
netic algorithms (with examples of the use in modular robots like M-TRAN and ATRON)
has been done since they are used in this thesis.
88
Chapter 4
Electromechanical design
Design can be art. Design can be aesthetics. Design is so simple, thats why it is so
complicated
Paul Rand
In this chapter, the microrobotic modules used in this thesis will be described. Their
mechanical principles, their electronics, their concepts of work, the dierent versions they
have been through and the reasons why they have been designed will be covered in the
next sections.
Some modules have been designed and built. They are the rotation module (indeed it
is a double rotation module, but for simplicity it will be called rotation module) v1 and
v2, the helicoidal module v1 and v2, the support module v1, v1.1 and v2, the extension
module v1 and v2, the camera module v1 and v2, the contact module (it is included
in the camera module v2) and the battery module. Some others are still in the design
or conceptual phase, they are being designed but they have not been built yet. They
are the SMA-based module (there is already a prototype), the traveler module (in the
design phase) and the sensor module (in a conceptual phase). Table 4.1 shows the main
characteristics of the developed modules.
The most important characteristic of all modules is its tiny diameter, 27mm, the
smallest diameter found in a robot like this. Some parts thickness are thinner than 1mm.
As an example, a detail of one of the wheels made for the helicoidal modules can be seen
in g. 4.1
The reason why there have been build so many dierent modules is to implement
dierent locomotion gaits, depending on the environment the robot is moving in. These
gaits are: helicoidal (with the helicoidal module), snake-like (with the rotation module),
inchworm (with the support and extension modules) and a combination of all or some of
them.
Due to the narrowness of the pipes, it is not possible to rearrange the position of
the modules, so it is important that the microrobot can choose amongst dierent gaits
depending on the stretch.
89
CHAPTER 4. Electromechanical design
Module Length[mm] Diameter[mm] Weight[g]
Camera v2 25 27 6,5
Support v1 23,7 27 10,5
Support v2.1 27 27 12,5
Extension v2.1 30 27 16
Rotation v1 47 27 13
Rotation v2 64 27 27
Helicoidal v1 45 27 25
Helicoidal v2 28 27 15
Batteries 19,5 27 16,4
Table 4.1: Modules main characteristics
Figure 4.1: Detail of a wheel of the helicoidal module
In the next sections the modules will be described: rst the hardware, then the elec-
tronics, and nally the congurations in which they can work.
4.1 Developed modules hardware description
4.1.1 Rotation Module
The rotation module has been designed with two purposes: the rst one is to be used as
a rotation module for chain multi-congurable robots. The second one is for snake-like
robots.
Each module is composed of two servomotors (Cirrus CS-4.4), two connectors (one
male and one female) and the electronics for control, sensing and communication. Each
motor provide one degree of freedom. Both together provide rotation in two perpendicular
planes.
Rotation module V1
In this rst version (g. 4.3 a)), the servomotors come from commercial ones but have
been redesigned to have a more compact size. The gearset of the servomotors has been
rearranged (see g. 4.2) and placed in a new cover to save space. The torque given for
90
4.1. Developed modules hardware description
(a) Default conguration (b) Rearranged conguration
Figure 4.2: Gearhead design
each degree of freedom is 0.43Kg cm, down shifting the torque given by the servomotors
(1.3Kg cm) by 50%, an acceptable result. Each module is able to raise up to two other
modules of the same weight.
The work area of this module is shown in g. 4.3 b).
One of the requirements in the design of the rotation module was to be light. Its parts
have been made in resin by stereolithography (that is enough resistant for a prototype)
and will be fabricated in a more resistant material in the future. The weight of each
module is about 57g.
The diameter of the module is less than 27mm and the total length, including connec-
tors is 46mm.
Rotation module V2
In order to make the rotation module as robust as possible for the second version, a
commercial servomotor has been chosen as opposed to previous modules in which a mod-
ied gearset was used (the modication made it more compact but there was a lack of
torque [Brunete et al., 2005]) (g. 4.4). It is a CS-101 servomotor with a torque of 0.7
kg cm at 4.8 v. The chassis protects the electronics improving the robustness of the
module.
The concepts and work area of this module are similar to the previous one.
Several of this modules put together can emulate the movement of a snake (g. 4.5).
The principles of motion will be described later on this chapter.
For more information about these modules see [Torres, 2006].
Kinematics
The homogeneous transformation matrix of the module has been dened following the
Denavit Hartenberg convention [Denavit and Hartenberg, 1955] [Sciavicco and Siciliano,
91
CHAPTER 4. Electromechanical design
(a) Model (b) Work area
Figure 4.3: Rotation module V1
Figure 4.4: Rotation module v2 plus camera
1996] (see eq. 4.1 to 4.3), according to the reference system shown in g. 4.6 and the
parameters dened in table 4.2.
A
0
1
(
1
) =
cos
1
0 sin
1
L
2
cos
1
sin
1
0 cos
1
L
2
sin
1
0 1 0 0
0 0 0 1
(4.1)
A
1
2
(
2
) =
cos
2
0 sin
2
L
1
cos
2
sin
2
0 +cos
2
L
1
sin
2
0 1 0 0
0 0 0 1
(4.2)
92
4.1. Developed modules hardware description
Figure 4.5: Snake conguration plus camera
Table 4.2: Denavit-Hartenberg parameters
a
i
d
i
i
i
q
1
L
2
0 /2
1
q
2
L
1
0 /2
2
A
0
2
= A
0
1
(
1
) A
1
2
(
2
) =
=
c
1
c
2
s
1
c
1
s
2
L
1
c
1
c
2
L
2
c
1
s
1
c
2
c
1
s
1
s
2
L
1
s
1
c
2
L
2
s
1
s
2
0 c
2
L
1
s
2
0 0 0 1
(4.3)
To refer the system to the coordinate system XYZ situated at the origin, it is just
enough to apply a translation in the X axis, obtaining the matrix (4.4)
93
CHAPTER 4. Electromechanical design
Figure 4.6: Reference system for Denavit-Hartenberg
T =
1 0 0 L
1
0 1 0 0
0 0 1 0
0 0 0 1
A
0
2
=
=
c
1
c
2
s
1
c
1
s
2
L
1
c
1
c
2
L
2
c
1
L
1
s
1
c
2
c
1
s
1
s
2
L
1
s
1
c
2
L
2
s
1
s
2
0 c
2
L
1
s
2
0 0 0 1
(4.4)
Thus, the coordinates of the end-eector (connector) would be:
x = L
2
cos(
1
) L
1
cos(
1
)cos(
2
) L
1
(4.5)
y = L
2
sin(
1
) L
1
sin(
1
)cos(
2
) (4.6)
z = L
1
sin(
2
) (4.7)
94
4.1. Developed modules hardware description
from where it is possible to easily obtain the inverse kinematics equations :
2
= arcsin(z/L
1
) (4.8)
1
= arcsin(x L
1
/(L
2
+L
1
cos(
2
))) (4.9)
The coordinate systems have been chosen in order to have the same orientation in the
end-eector and in the reference system. In this way, if several modules are connected
together, the homogeneous transformation matrix of the whole system can be computed
by multiplying the homogeneous transformation matrix of every single module (eq. 4.10).
T
0
n
= T
0
1
T
1
2
... T
n1
n
(4.10)
4.1.2 Support and Extension modules
Although these modules can be used separately, the expansion and support modules (g-
ures 4.7 and 4.10) were designed to work together to simulate the movement of an inch-
worm. The support module is used to x the microrobot to the pipe, avoiding the mi-
crorobot to slide, while the extension module is used to extend the robot (make it go
forward), and to turn to right and left. A drive unit is composed of two support modules
and one expansion module (g. 4.7). An advantage of this kind of motion is that the robot
manages to maintain a rm grip on the surface at all times while other types of motion,
for example helicoidal motion, could show a tendency to slip as the slope increases.
The support module can be used together with others modules, as for example the
helicoidal and the rotation modules, to provide a rm grip while the robot is turning.
Support and Extension modules V1
The rst prototypes were design to test the locomotion principle and how small the micro-
robot could be made. In this prototype all modules use a 21x13x9mm microservomotor
(Cirrrus LS-3.0). It is a linear servo which weights 3.0g, has a maximum deection of
14mm in 0.15 sec and provides a maximum output force of 200g. The support modules
use one servo and the expansion module uses two.
The support module consists of three rubber bands positioned around the module at
120
o
from each other, which are bent when the servomotor is activated, exercising a force
against the walls of the pipe that allows the module to be still.
The extension module consists of two arms (each of them drove by a servo) that allows
expansion-contraction movements, as well as turns, depending on the relative position
between arms (g 4.7 b)).
When designing the mechanism, in a very rst time it was thought to use two per-
pendicular bars that lean in a base panel where they can rotate. If any of the bars push
95
CHAPTER 4. Electromechanical design
the plane, it turns. The panel can turn around an axis that is the perpendicular bisector
of the segment joining the two contact points of the bars. If both push, the panel goes
forward, and if they pull, it goes back.
However, there is a problem with this design: if the ends are not rigidly connected in
the servo end, the system would have one dof free, and if they are, the system will break
because the distance between the bars should be shorter when the panel turns, but it is
not possible since the connection is rigid.
Thus, the rst idea was change into the mechanism shown in g. 4.7 b). Having four
bars make it possible. There are two straight bars and two driver bars. All the joints
have one dof (rotation). All together confer the base panel two dof: one rotational and
one translational. The straight bars are used to move and turn the base panel. The driver
bars are used to avoid lateral displacement of the base panel.
The module has been tested in dierent pipes. The results obtained are shown in the
following table:
Minimum pipe diameter: 22mm
Maximum pipe diameter: 35mm
Maximum angle of rotation of the expansion module: 40
o
Maximum lengthening: 7.5mm
Average speed at 0
o
- 90
o
: 2mm/seg
The main advantage of the servomotor used in this prototypes is its small size and its
good torque. On the other hand, it is very fragile and some parts are weak, breaking very
easily under stress circumstances. Also, the position sent by PWM to the servo remains
saved until a new one is sent, even after power switch o. This is a problem if the servo
gets stuck because switch o the power would not be enough, it would be necessary to
send a new PWM position command. Finally, it does not have a cover and the gears can
touch the walls or others parts and break.
Support module V1.1
In order to improve the robustness of the 1.0 support module, a new support module was
created (g. 4.8). The servomotor was replaced by a rotational one (Cirrus CS-4.4) that
was linked to two racks xed to two plates. By turning the servomotor, the two plates
can be expanded or contracted.
The mechanism works properly, but it slides when it is in the pipe, due to the resin
the plates are made of. The plates must be covered by non slippery material in order to
use them.
The module was not used because its big size. Since it is a support module with no
self propulsion nor turning possibilities it was necessary to make it smaller.
Support and Extension modules V2
In order to solve the problems of previous versions, another prototype was created with
a new design and parts, but the same principle of movement. The second prototypes
incorporate rotational servomotors instead of the linear ones, increasing the robustness.
96
4.1. Developed modules hardware description
(a) Worm-like drive module (b) Detail of servomotor and
parallel arms
Figure 4.7: Worm-like microrobot V1
Figure 4.8: Support module 1.1
At a rst moment it was created the support and extension modules 2.0, and afterwards
the support 2.1.
The support module 2.0 (g. 4.9) is based on the cameras diaphragm mechanism. It
is composed of three legs that can be folded or unfolded as seen in the g. 4.9 a). This
module presented one problem: the force that the leg exercise against the wall was not
uniform (one of them was linked directly to the servo and had more power) and thus the
grip was not enough to keep the module xed to the pipe and the module slides.
Thus a new support module was needed. The support module 2.1 (g. 4.10) consists
of four rubber bands positioned around the module at 90
o
from each other. In order to
expand, the servomotor of the module pushes a ring where all the bands end, and as a
result of this movement the bands are bent and xed to the pipe, so that the module gets
a grip to the pipe. This module was the most satisfactory of all, and due to the rubber
bands the grip was really good.
The extension module 2.1 (see g. 4.11) is based on a parallel robot composed of a four
97
CHAPTER 4. Electromechanical design
Figure 4.9: Support module v2.0
Figure 4.10: Inchworm conguration based on v2.1 modules plus camera
bar linkage (two crank-connecting rod mechanisms with a common slide bar) between the
base and the top end, and a sliding bar in the center to eliminate one degree of freedom
as in the previous module, the lateral displacement. The relative movement of each arm
(driven by a servomotor) changes the length of the module and the orientation of the top
end. Consequently the module can extend and also turn. It is a similar design to the
previous one but with rotational servos instead of linear ones.
For more information about these modules see [Santos, 2007].
Kinematics
The kinematics of the support module are very simple but it is good to know them in
order to calculate the kinematics for the whole robot chain. It can be calculated with the
eq. 4.11 according to the axis shown in g. 4.12, being L3 the length of the module.
T =
1 0 0 L
3
0 1 0 0
0 0 1 0
0 0 0 1
(4.11)
98
4.1. Developed modules hardware description
(a) Model (b) Work area
Figure 4.11: Extension module detailed mechanism
The kinematics of the extension module are a bit complex to calculate using Denavit
Hartenberg, and they have been calculated using a geometrical approach based on gure
4.13.
First of all, two new links are dened as the sum of the links of each arm, obtaining
Y
A
and Y
B
. The coordinates of the rst link (on the left, Y
A
) are:
A
0
= (A
0x
, A
0y
) = (
L
6
2
, 0) (4.12)
A
1
= (A
1x
, A
1y
) = (
L
5
cos
F
2
, Y
F
+
L
5
sin
F
2
) (4.13)
and the coordinates of the second link (on the right, Y
B
) are:
B
0
= (B
0x
, B
0y
) = (
L
6
2
, 0) (4.14)
B
1
= (B
1x
, B
1y
) = (
L
5
cos
F
2
, Y
F
L
5
sin
F
2
) (4.15)
Thus it is possible to calculate the module and argument of each vector:
|Y
A
| =
(A
1x
A
0x
)
2
+ (A
1y
A
0y
)
2
(4.16)
A
= arctan
A
1y
A
0y
A
1x
A
0x
(4.17)
|Y
B
| =
(B
1x
B
0x
)
2
+ (B
1y
B
0y
)
2
(4.18)
B
= arctan
B
1y
B
0y
B
1x
B
0x
(4.19)
99
CHAPTER 4. Electromechanical design
Figure 4.12: Coordinate system for the kinematics of the support module
It is important not to forget that the central point of the end connector (C in 4.13 a))
moves always in a line due to the mechanism to which it is attached (a bar that moves
between the two servos and thus it can only move upwards and backwards). It holds that:
|Y
A
| cos
A
= |Y
B
| cos
B
(4.20)
And nally the inverse kinematic equations can be obtained applying the law of cosines
in triangle
L
1
, L
2
, Y
A
and
L
3
, L
4
, Y
B
:
q
1
=
A
arccos
L
2
1
L
2
2
|Y
A
|
2
2 L
1
|Y
A
|
(4.21)
q
2
=
B
arccos
L
2
4
L
2
3
|Y
B
|
2
2 L
3
|Y
B
|
(4.22)
Direct kinematics are a little more complicates to obtain. In order to make computation
faster, an approximation has been done: considering that the argument of Y
A
and Y
B
is
always 90
L
2
2
L
2
1
sin
2
(90 q
1
) (4.23)
Y
B
= L
3
cos(90 q
2
) +
L
2
4
L
2
3
sin
2
(90 q
2
) (4.24)
100
4.1. Developed modules hardware description
Figure 4.13: Kinematics diagrams of the extension module
Making use of equation 4.20, it is obtained:
Y
A
cos
A
+L
5
cos
F
+Y
B
cos
B
= L
6
(4.25)
Y
A
sin
A
+L
5
sin
F
Y
B
sin
B
= 0 (4.26)
And thus the direct kinematic equations are obtained:
F
= tan
1
Y
B
sin
B
Y
A
sin
A
L
6
Y
B
cos
B
Y
A
cos
A
(4.27)
Y
F
=
Y
B
sin
B
+Y
A
sin
A
2
(4.28)
4.1.3 Helicoidal drive module
The helicoidal module is so called because of the placement of its front wheels making an
helix (g. 4.14 a)). This module was designed to be a fast drive module. It is composed
of two parts: the body and the rotating head. The wheels in the rotating head are
distributed along the crown making a 15
o
angle with the vertical. When the head turns, it
goes forward in a helicoidal movement that pulls the body of the microrobot. The wheels
101
CHAPTER 4. Electromechanical design
Figure 4.14: Helicoidal module v1
of the body help to keep the module centered in the pipe.
The fact that the head of the robot rotates around the robot axis involves the necessity
to design a channel for electrical wires that goes through the entire robot to interconnect
the front and the rear part of the robot.
Helicoidal module V1
In the rst design (g. 4.14 b)), the head is linked to a 3 phase brushless Maxon micro-
motor (model EC20, 20mm) through a gearhead (g. 4.14 c)), which has been designed
in order to get the appropriate reduction (eq. 4.30, showing the combination of reduction
stages) and speed . The wheels, its axis and the support system have been manufactured
by micromachining, and the other parts (except for the gears) have been made using
stereolithography.
ratio = (ratio
stage1
) (ratio
stage2
) (ratio
stage3
) (4.29)
ratio = (
26
14
) (
27
9
) (
44 + 13
13
) = 24, 43 (4.30)
The control of the motor was performed by a Maxon motor control board AECS 35/3.
This board supplies the 3 phase signals that the motor demands.
The advantages of the motor are its shape, that ts perfectly into the cylindrical body,
its small size and its high torque. One of the main problems that the motor has is the
power consumption. It operates at a range of 8 to 30 V, and requires up to 5A. This is
a huge power demand, too high for the purpose of autonomous robots. Also, the fact of
using a especial control board with a 4 wires cable makes it unsuitable for interconnection
to other modules. Thus, another module was created further on.
This module was tested in a 30 cm straight pipe with dierent slope angles. The mi-
crorobot was able to go forward even when the pipe was set to a 90
o
vertical position. The
helicoidal approach shows itself as a very interesting mean of locomotion for microrobots.
102
4.1. Developed modules hardware description
Angle (
) 0 15 30 45 60 75 90
Velocity (mm/s) 30 27 22 19 15 13 12
Table 4.3: Velocity in a 30cm pipe at dierent angles (helicoidal module)
Figure 4.15: Helicoidal module V2 plus camera
The results obtained for this module are shown in table 4.3.
For more information about these modules see [del Monte Garrido, 2004].
Helicoidal module V2
A second prototype was developed in order to solve the problems of the previous one
(especially the consumption)(g. 4.15 a)). The design principles were the same, but two
modications were made: the Maxon motor was replaced by a servomotor (Cirrus CS-3)
and the gearser was simplied (eq. 4.31). Although the torque was reduced by the motor
change, so it was the gear reduction (g. 4.15 b) and c)), being in this way compensated.
Thus, it was enough to go forward, but the consumption was considerably decreased. Also
the size was smaller due to the reduction of the motor and the gearset.
ratio = (
44 + 13
13
) = 4, 38 (4.31)
In table 4.3 the results of the second prototype are shown. They are slower than in
the previous prototype, but this is due not only to the new motor and gearset but also
to the some assembling problems that let some parts a bit loose, probably because of the
tolerance of the stereolitography process.
Angle (
) 0 90
Velcity (mm/s) 10 4
Table 4.4: Velocity in a 30cm pipe at dierent angles (2nd helicoidal module)
103
CHAPTER 4. Electromechanical design
(a) Detail of camera parts (b) Detail of the rotation axis
Figure 4.16: Camera module v1
(a) Detail of module (b) Detail of the pin-hole cam-
era
Figure 4.17: Camera module v2
Kinematics
The kinematics of the helicoidal module are very simple and similar to the kinematics of
the support module. They can be calculated from eq. 4.11 according to the axis shown in
g. 4.12, being L3 the length of the module.
4.1.4 Camera module
The camera module plays a very important part in environment information acquisition,
in order to detect holes, breakages or cracks in the pipes. The module is provided with
a CMOS B&W camera which allows to visualize the inner part of the pipe and, in the
second version, with contact sensors which allow to detect obstacles (i.e. turns) inside the
pipe. The reason for using a B&W camera is that it was the smallest one available at that
moment.
Camera module V1
This module (4.16) is a 2 degrees of freedom structure composed of two servomotors
(Cirrus CS3), a camera (FR220 CMOS B&W) and two leds for illumination. Thanks to
the common interface, it can be assembled to any of the previous modules. Ideally the
two rotation axis should be aligned with the centre of mass, but it was not possible due
to the small size of the module, and one of the rotation axis had to be moved. This is the
reason why the camera is not symmetric.
104
4.1. Developed modules hardware description
Figure 4.18: Batteries Module
The camera used is a 8x8x20mm CMOS black and white camera, whose main charac-
teristics are: 320x240 pixels composite video, 20mA@9V, 7-12V. The main characteristics
of the servomotors are: 6.3mm x 22.25mm x 10.10 mm, 2.85 g, 400g/cm and 0.18 s/60o
at 4.8V.
For more information about these modules see [Le nero, 2004].
Camera module V2
This second module (4.17) presents some new features in respect to the previous one. The
two degrees of freedom have been suppressed to make the module shorter. And a bumper
detection mechanism has been incorporated (three contact sensors). Also the camera has
been replaced by a similar one of smaller dimensions (8, 5mm 8, 5mm 10mm), the
FR220P. The number of LEDs has been increased from 2 to 4 to increase the luminosity.
The camera is switched on and o through a MOSFET. Additionally, the 4 LEDs for
illumination are controlled by 2 MOSFET diodes (each diode controls two leds), allowing
the micro-controller to vary light intensity by means of a PWM signal.
For more information about these modules see [Santos, 2007].
4.1.5 Batteries module
The purpose of this module is to act as the power supply of the microrobot. It is base on
6V watch batteries giving 640mAh. They were the most powerful batteries that could be
foung having the size restriction of 27mm diameter and light weight.
The module was designed to keep the batteries, so it was very simple (g 4.18). The
length is 19.5mm and its weight is 16.4g.
The tests were not very successful due to the discharge curve, that went down to 2V at
the demanded intensity, voltage that was not enough to move the servomotors (although
good enough to keep the microcontroller on).
105
CHAPTER 4. Electromechanical design
Due to the problem mentioned above, the module has to be redesigned, and we are
waiting to nd a proper power supply unit.
Kinematics
The kinematics of this module are very simple and similar, as well of all pig-type modules,
to the support module, but it is good to know them in order to calculate the kinematics of
the whole robot chain. It can be calculated with the eq. 4.11 according to the axis shown
in g. 4.12, being L3 = 19, 5mm.
4.2 Other modules
This section describes some modules that are still in a conceptual phase and has not been
built yet (traveler module and the sensor module) and the SMA-based module.
4.2.1 SMA-based module
This module uses Shape Memory Alloys (SMA) to achieve a worm-like system of locomo-
tion, based on contraction and expansion of the SMAs. Each module is composed of a
support board, a control boards (act as support boards that additionally holds the elec-
tronics), SMAs wires to make the contraction and springs to make the expansion when
the SMAs releases (g. 4.19).
The onboard electronic for this microrobot is based on a PIC SMD of just 5x5 mm. It
is possible to put up to 32 modules together. Each module has three degrees of freedom.
There are also 4 wires that go through the entire microrobot carrying the control signals.
The main advantages of this module are a simple electronic circuit and a great ver-
satility (it can both contract-expand and rotate). The main disadvantages are the power
consumption, too high, the assembling diculty and the lack of robustness. Thus this
type of microrobot has not been used as a locomotion module for the heterogenous robot.
However, it could be interesting as a manipulator for an end-eector module that does not
need to handle heavy weights. For it used in combination with other modules it would be
necessary to add the common connector to its ends.
4.2.2 Traveler module
The purpose of this module is to measure the traveled distance inside a pipe.
The traveler module (g. 4.20) is still a concept and has not been manufactured yet.
It has been designed and tested in the simulation environment. It is composed of three
wheels provided with encoders that detects the distance that the microrobot has traveled.
The module is designed so that at least one wheel is in touch with the pipe in every
moment. But it is possible that two or three wheels are in contact at the same time, so the
measures of the encoders may dier at the end of the trajectory. That is why algorithms
must be applied in order to obtain useful data. Data coming from other sensors (like
accelerometers) of the microrobot can also be integrated in order to get useful information.
106
4.2. Other modules
Figure 4.19: SMA-based modules
4.2.3 Sensor module
The sensor module is a module conceived to carry several types of sensors, like proximity,
accelerometer, humidity and temperature. It is still in a conceptual phase.
Accelerometer sensors have already been placed in some of the modules and they will
be described in section 4.3.7. Proximity sensors will be used to navigate, by detecting
bifurcations. Temperature and humidity measurement and log can be obtained incorpo-
rating a chip like the Maxim DS1923.
Figure 4.20: Traveler Module
107
CHAPTER 4. Electromechanical design
Figure 4.21: Common interface
4.3 Embedded electronics description
The electrical design of the modules have been done under two premises: simplicity and
low-consumption. For that reason a low consumption microcontroller has been chosen
(NanoWatt technology).
Every module is provided with an electronic control board (with a low consumption
PIC microcontroller PIC16F767) which is able to perform the following tasks:
1. Control of actuators (servomotors)
2. Communications via I
2
C
3. Communications with adjacent modules via synchronism lines
4. Manage several types of sensors
5. Auto-protection and adaptable motion
6. Self-orientation detection
7. Low-level embedded control
The low-level control will be described in chapter 7. The remaining features will be
described next.
4.3.1 Common interface
A common interface (g. 4.21) has been designed to connect all modules and to allow a
bus carrying all necessary wires and signals to go from one another. This electrical bus
carries 8 wires:
Power (5v) and ground
I
2
C communication: data and clock
2 synchronism line
2 auxiliary line (for video signal for example)
4.3.2 Actuator control
The electronic board is ready to control dierent types of actuators, like servomotors and
leds. The servomotors are controlled by PWM signals sent from the microcontroller (g.
4.23).
108
4.3. Embedded electronics description
(a) Led control circuit (b) Bump detection circuit
Figure 4.22: Camera electronic circuits
The leds in the camera module can also be controlled through the electronic circuit
shown in g. 4.22(a). In the camera module there are two circuits, and each of them is
able to control 2 leds.
4.3.3 Sensor management
The electronic board is capable of controlling dierent types of sensors, as for example:
bumpers, accelerometers, power consumption.
The bumper detection system is implemented in the circuit of the camera module
shown in g. 4.22(b). Thanks to this circuit the servo can read the output of each of
the three bumpers placed in the front part of the camera module. It is a basic circuit
composed of a button and a lter to avoid bouncing of the signal.
Accelerometers will be covered in section 4.3.7.
4.3.4 I
2
C communication
I
2
C has been chosen as opposed to other protocols because it is already integrated in small
microcontrollers, only two bus lines are required and no terminators are needed, amongst
others. I
2
C is a very well known bus and information can be found over the internet. A
brief summary is included in Annex ??.
4.3.5 Synchronism lines communication
The synchronism lines are used for low level communication between adjacent modules.
It is a kind of peer to peer communication, unidirectional in each line. Since there are
two lines, the communication is bidirectional. The communication along the microrobot
is from module to module, and it seems like passing a baton. Thanks to these lines, every
module can be aware of which other modules are close to it, and the central control of the
robot is able to know which is the conguration of the microrobot.
Synchronism lines are connected from the digital output of one module to a digital
input of the next.
109
CHAPTER 4. Electromechanical design
Figure 4.23: Auto-protection control scheme
(a) Rotation modules (b) Other modules(support and extension)
Figure 4.24: Auto-protection circuits
4.3.6 Auto protection and adaptable motion
The auto-protection control is based in the control scheme shown in g. 4.23.
Actuators control is based in two feedback loops, position and consumption. This
allows the module to prevent harms to its servomotors if they try to reach an impossible
position, for example due to obstacles. Additionally, thanks to these feedback loops, it is
possible to implement a torque regulation to avoid high consumption when it is no needed.
This is very useful, since the modules require more energy when climbing a vertical pipe
than when moving horizontally.
Rotation module
To sense the current position of the servomotor, the potentiometer itself of the servomotor
is connected to the microcontroller by means of a cable connected from the variable part
of the potentiometer to the analog-to-digital converter. It is very important that the
potentiometer is linear to be able to get the current position from the measured voltage.
A small circuit has been designed to sense the consumption of the servomotor by means
of a resistor of low value (1) and a capacitor (470F) in parallel to stabilize the voltage.
The voltage at the resistor will be measured through the analog-to-digital converter (see
g. 4.24(a)) [Torres, 2006].
If by any cause a servomotor gets stuck, the consumption remains at his top value for
a long period, as it is shown in g. 4.25(a), as opposed to g. 4.25(b) that shows a normal
output. Thus, it is possible to detect these problems and send the servomotor to a safe
110
4.3. Embedded electronics description
Single Module Single Module Loaded
At Rest (mA) 10-15 30-35
Peak (moving 1 servo) (mA) 500 500
Peak (moving 2 servo) (mA) 1000 1000
Average (1 servo) (mA) 200 250
Average (2 servo) (mA) 400 500
Table 4.5: Power Consumption
position or to stop sending position commands (so the servomotor turns loose) to avoid
its damage.
Power consumption for rotation module v1 is shown in table 4.5. It is very important
to have low consumption in order to make robots more autonomous or avoid overheating.
As it is possible to see, the consumption of the module at rest is very low.
Other modules
Newer modules starting from the support and extension v2 were equipped with IC MAX4372.
It is used to sense the current. The connection diagram is shown in g. 4.24(b). The
concept is the same as the previous one, but the resistor and capacitor were replaced by
the MAX4372. The output of the IC was taken to a low pass lter to lter the noise made
by the PWM of the servomotor, and then to the A/D converter of the microcontroller.
The lter has a cuto frequency of f
c
= 0.33Hz [Santos, 2007].
4.3.7 Self orientation detection
Modules are equipped with three-axis accelerometers. With these new sensors inside the
micro-robot, it is possible to know how the robot is oriented in relation to the ground
(measuring the acceleration vector of gravity) and in which direction it is moving (and
how fast).
The three-axis accelerometer used is the MXR9150. This sensor can measure 5g with
a sensitivity of 150mV/g at 3.0V . It is also able to detect both dynamic (e.g. movement)
and static accelerations (e.g. gravity). The MXR9150 provides three radiometric analog
outputs set to 50% of the power supply voltage at 0g, 1.5V in this case [Torres, 2006]
[Santos, 2007].
In gure 4.26 it is possible to see the measurement of the gravity when the module is
placed with its Z axis down (a) and X axis down (b).
Figures 4.27, 4.28 and 4.29 show the results of some experiments. Figure 4.27 shows
the output of the accelerometers when the module is moving along a linear trajectory in
the XY plane, forward and backwards. The signals are very clear. In the Z axis there is
no variation while in the X and Y axis the signals rise and fall when the module moves
forward and backward.
In gure 4.28 the rotation module is moving one servomotor from 30 to 150
with no
load (about 0,35 kg*cm). The top gure shows the rotated angle. In the middle gure,
111
CHAPTER 4. Electromechanical design
(a) With servo blocking
(b) Normal consumption (non blocking)
Figure 4.25: Consumption output
112
4.4. Chained congurations
it is possible to see that the consumption increases (peaks) every time the servo moves,
but it is stable when the servo is still. In the bottom gure the output of each axis of
the accelerometer is drawn, showing a transition every time the servo moves. Thus the
direction of movement can be computed.
Figure 4.29 shows the results obtained moving the rotation module from 150 to 30
degrees loaded with the camera module. Apart of some stabilization problems in the
beginning it can be observed that the results are similar to the test without load.
In both gures 4.28 and 4.29 the period of the PWM signals varies (decreases) each
time the servo moves from the start position to the end position. Results show that the
lower the period is, the higher the torque is, but also the consumption and the noise.
4.4 Chained congurations
There are two main types of congurations in which the modules can be attached: ho-
mogeneous (if there is only one locomotion gait) and heterogeneous (if there are several
locomotion gaits that the robot can implement).
4.4.1 Homogeneous congurations
Homogenous congurations are those composed of one type of module. In this thesis it
will be considered as homogenous congurations those composed of only one drive unit
(meaning that it is able to perform only one locomotion gait). There are three main
types of homogenous conguration that the robot can implement: helicoidal, inchworm
and snake-like.
Snake-like conguration
A snake-like or serpentine conguration (g. 4.30) can be obtained by connecting several
rotation modules together. The dierence between snake-like and serpentine robots is that
in serpentine robots the propulsion is made out wheels or tracks, while in snake-like it is
made out of own body motions. For a detail classication the reader can consult [Gonzalez
et al., 2006]. Snake-like and serpentine robots oer a variety of advantages over mobile
robots with wheels or legs, apart from their adaptability to the environment. They are
robust to mechanical failure because they are modular and highly redundant. They could
even perform as manipulator arms when part of the multilink body is xed to a platform.
On the other hand, one of the main drawbacks is their poor power eciency for surface
locomotion. Another is the diculty in analyzing and synthesizing snake-like locomotion
mechanisms, which are not as simple as wheeled mechanisms (but nowadays a lot of
research has been done in this eld [Sato et al., 2002]). For big diameter pipes, wheeled
robots are much more convenient. But for narrow pipes with curves and bends, snake-like
robots can be a very interesting solution.
Snake-like movements are mainly based on CPG (Central Pattern Generator), sinu-
soidal waves that go along the modules. The position of the actuators follow a sinusoidal
wave. By changing its parameters, dierent movements can be achieved (see [Gonzalez
et al., 2006]).
113
CHAPTER 4. Electromechanical design
(a) Z axis pointing down
(b) X axis pointing down
Figure 4.26: Accelerometer tests: still module
114
4.4. Chained congurations
Figure 4.27: Module moving along a linear trajectory in the XY plane
Figure 4.28: Servo moving from 30
to 150
with no load
115
CHAPTER 4. Electromechanical design
Figure 4.29: Servo moving from 150
to 30
loaded
Figure 4.30: Snake-like conguration
116
4.4. Chained congurations
(a) Turning (1), rotating (2) and rolling (3)
(b) Serpentine, side-winding, concertina and rectilinear
Figure 4.31: Snake movements
With CPG it is possible to simulate some of the movements of the snakes (see g.
4.31(b)):
Serpentine locomotion: is the most common method of travel used by snakes. Each
point of the body follows along the S-shaped path established by the head and
neck, much like the cars of a train following the track. The key property of snakes
in achieving serpentine locomotion is the dierence in the friction coecients for
the tangential and the normal directions with respect to the body. In particular,
the normal friction tends to be much larger than the tangential friction, leading to
avoidance of side slipping.
Caterpillar (vertical serpentine or rectilinear): This slower technique also contracts
the body into curves, but these waves are much smaller and curve up and down
rather than side to side. When a snake uses caterpillar movement, the tops of each
curve are lifted above the ground as the ventral scales on the bottoms push against
the ground, creating a rippling eect similar to how a caterpillar looks when it walks.
The friction parameters are not so important.
Sidewinding: in environments with few resistance points, snakes may use a variation
of serpentine motion to get around. Contracting their muscles and inging their
bodies, sidewinders create an S-shape that only has two points of contact with the
117
CHAPTER 4. Electromechanical design
(a) Conguration 1 (b) Conguration 2
(c) Conguration 3 (d) Conguration 4
Figure 4.32: Snake-like congurations
ground; when they push o, they move laterally. Using this gait, the robot moves
parallel to its body axis.
Another common mode (gait) of locomotion in snakes that cannot be achieved by CPGs
is concertina [Gray and Lissmann, 1950] [Lissmann, 1950], see gure 4.31(b). Concertina
is the method used to climb. The snake extends its head and the front of its body along the
vertical surface and then nds a place to grip with its ventral scales. To get a good hold,
it bunches up the middle of its body into tight curves that grip the surface while it pulls
its back end up; it then springs forward again to nd a new place to grip with its scales.
This movement can be achieved by especial sequences of preprogrammed movements.
There are some other movements that can be created that are not inspired by real
snakes (gure 4.31(a)):
Rolling: The robot can roll around its body axis. The same sinusoidal signal is
applied to all the vertical joints and a 90
i(t) (5.5)
loss
(t) = J
m
(t) +B
m
(t) = J
m
d
2
(t)
d
2
t
+B
m
d(t)
dt
(5.6)
effective
(t) = (t)
loss
(t) (5.7)
[rad/s
2
] is the angular acceleration.
It is necessary to transform these equations to compute them. Starting from 5.1, it
can be expressed in the Laplace domain as:
(s) = (s) s (5.8)
where s C . Applying the transformation s =
1z
1
T
, where T is the sampling period,
it is obtained in the Z domain:
(z) = (z)
1 z
1
T
(5.9)
where z C. Thus:
(z) =
(z) (z) z
1
T
(5.10)
and thus, applying the inverse transform, the discrete time equation is obtained:
128
5.1. Physics and dynamics simulator
[n] =
[n] [n 1]
T
(5.11)
where n is the discrete time. To simplify, the process is the following:
x(t) X(s) X(z) x[n] (5.12)
Doing the same process to all the equations, the following equations are obtained:
e
a
[n] = K
p
(
r
[n]
m
[n]) (5.13)
e
m
[n] = K
m
[n] (5.14)
i[n] =
(e
a
[n] e
m
[n]) T +L
m
i[n 1]
L
m
+R T
(5.15)
[n] = K
i[n] (5.16)
loss
[n] =
J
m
T
2
([n] 2 [n 1] +[n 2]) +
B
m
T
([n] [n 1]) (5.17)
effective
[n] = [n]
loss
[n] (5.18)
E
a
must be limited to 5V, because that is the maximum voltage provided by the
power supply. In g. 5.2 it is the block before e
a
. In the real modules, the control of the
servomotor is done by PWM.
There is a range [0..I
threshold
] where the intensity does not produce any torque due to
the friction static coecient. This is represented in g. 5.2 with the block before K
t
.
5.1.3 Modules physical model
For the purposes of better performance and stability, the model of the modules were sim-
plied to a set of standard geometrical primitives (such as spheres, cubes, cylinders..etc)
connected by degrees of freedom, which were dened as (powered) joints. This simpli-
cation of changing odd shapes into standard shapes was necessary to make simulation
scalable (collision detection with odd shapes are very expensive in ODE). However, di-
mensions and masses were the values of the real modules.
The created geometric morphology model was assigned dynamic properties that corre-
spond to the modules design specications. Masses for each body part were assigned real
values. Degrees of freedom were limited by maximum torque and speed available from
specications of servomotors selected to be deployed in each module. To ensure proper
interaction of modules with the simulated environment, friction coecients were set to
values estimated for materials to be used for module manufacturing and possible surface
materials. These values were adjusted and validated experimentally in a last step, as it
129
CHAPTER 5. Simulation Environment
(a) Rotation Module (b) Helicoidal Module
Figure 5.3: Rotation Module and Helicoidal Module
will be shown in section 8.2.
To be capable of producing behaviors with dierent functionalities, modules should be
able to dock to each other forming dierent conguration shapes. In design specication,
modules have two docking faces, one on each side. In the simulated environment, the
docking capability was implemented by using a xed joint that is created connecting two
sides of dierent modules. This allows the modules to be attached to each other and
maintain the relative positions xed.
All modules try to keep as highly as possible the most possible similarities with the
real ones, either in mechanics (joints, dof, shape, mass...etc) or in electronics.
Each module model will be described in more detail in the following sections.
Rotation Module
The rotation module (g. 5.3 a)) is simulated by a capsule and two cylinders as connectors.
It has two servomotors to provide the two degrees of freedom.
Each servomotor is limited to 180
..90
C]
T
e
is the temperature of the environment in [
C]
R
th
is the thermal resistance [
C/W]
C
th
is the thermal capacitance [W s/
C]
186
7.5. Onboard control
Figure 7.8: Heat dissipation sketch
P
dissipated
= P
transmitted
+P
absorbed
(7.1)
R
I
2
(t) =
T
m
(t) T
e
(t)
R
th
+C
th
dT
m
(t)
dt
(7.2)
In the Laplace domain, eq. 7.2 is expressed as eq. 7.3. In order to do the Laplace
transform, a variable change has been done, being (t) = I
2
(t)
R
(s) =
T
m
(s) T
e
(s)
R
th
+C
th
T
m
(s) s (7.3)
Thus, T
m
, the temperature of the motor, that is the variable that should be under
supervision, can be obtain as in eq. 7.4.
T
m
(s) =
T
e
(s) +R
th
R
(s)
1 +R
th
C
th
s
(7.4)
Applying the transformation s =
1z
1
T
, where T is the sampling period, it is obtained
in the Z domain:
T
m
(z) =
T
e
(z) +R
th
R
(z)
1 +R
th
C
th
(
1z
1
T
)
(7.5)
And solving equation 7.5 for T
m
(z):
T
m
(z) =
T T
e
(z) +T R
th
R
(z) +R
th
C
th
T
m
(z) z
1
T +R
th
C
th
(7.6)
Applying the inverse transform, the discrete time equation is obtained:
187
CHAPTER 7. Control Architecture
Behavior: Avoid overheating
Activation conditions None (always running)
Inputs (Stimuli) Internal variables: I
1
, I
2
, etc.
Outputs (Actions) Block M
1
, Block M
2
, etc.
Table 7.7: Behavior encoding: Avoid overheating
Behavior: Avoid actuator damage
Activation conditions None (always running)
Inputs (Stimuli) Internal variables: I
1
,
1
,I
2
,
2
,etc.
Outputs (Actions) Block M
1
, Block M
2
, etc.
Table 7.8: Behavior encoding: Avoid actuator damage
T
m
[n] =
T T
e
[n] +T R
th
R
[n] +R
th
C
th
T
m
[n 1]
T +R
th
C
th
(7.7)
T
m
[n] =
T T
e
[n] +T R
th
R
I
2
[n] +R
th
C
th
T
m
[n 1]
T +R
th
C
th
(7.8)
The temperature of the environment is measured by a temperature sensor, the electrical
current is calculated as in equation 5.15 and the electrical and thermal resistance, and
thermal capacitance are constants.
The behavior is monitoring continuously the temperature and intensity, and in case
that overheating in the servomotors is detected, they are stopped immediately.
Avoid actuator damage
The purpose of this behavior is to control that the torque of the motors in under certain
limits that dont damage the motors / actuators. If it is too high the servomotors are
stopped immediately.
This is achieved by controlling that the current intensity is under a certain limit. This
limit has been obtained experimentally. In gure 7.9, the servomotor is trying to move
from 100
to 180
(limit of the
workspace). The smaller value cannot be reached because of the mechanical conguration
(see g. 7.10 a)), but it has to be avoided to send that position to the servomotor because
it could break itself or the module trying to reach it. The higher value could only be
avoided by software (See g. 7.10 b)).
Since the movement of the end connector of the extension module is limited by the
sliding bar placed at the center, there are several combinations of the angles of the two
actuators that are not physically reachable. These positions should also be avoided.
In the support module it happens the same thing, singular points occur when the two
links are aligned. And as in the extension module, the mechanical design avoids reaching
that place, but should also be avoided.
189
CHAPTER 7. Control Architecture
(a) Lower position (b) Higher position
Figure 7.10: Extension module at its higher and lower position
Behavior: Avoid mechanical damages
Activation conditions None (always running)
Inputs (Stimuli) Internal variables:
1
,
2
, etc.
Outputs (Actions) Block M
1
, Block M
2
, etc.
1
,
2
, etc.
Table 7.9: Behavior encoding: Avoid mechanical damages
In other modules it avoids high stress positions that may break some parts. For
example in the rotation module.
Self diagnostic
The purpose of this behavior is to check if everything is working ne in the module. If the
actuators can move, if the levels of intensity and torque are ok, if the communication bus
is ok, if the synchronism line is ok, if the sensors are working ne, etc.
It records the setpoints (desired positions) of the actuators, and compares them with
their real position. If they are not approaching (and there is no problem with the torque
and intensity, meaning it is not blocked), there may be a problem with the actuator and
an alarm is sent.
To verify the synchronism lines, in a conguration check phase it checks if the signals
Sin and Sout have been activated in any time. If not, there may be a problem and an
alarm is sent.
190
7.5. Onboard control
Behavior: Self diagnostic
Activation conditions No low battery
Inputs (Stimuli) Internal variables:
1
,
2
, etc.
I
2
C Communications state
Synchronism line communications state
Sensors state
Outputs (Actions) Module state [OK,PROBLEM]
Table 7.10: Behavior encoding: Self diagnostic
Behavior: Situation awareness
Activation conditions No low battery
Inputs (Stimuli) Contact sensor
IR sensors
Internal variables:
1
,
2
,etc.
Outputs (Actions) Module situation [narrow pipe, wide pipe, open space]
Touch detected
Table 7.11: Behavior encoding: Situation awareness
Situation awareness
This behavior tries to know where is the module/microrobot: inside a narrow pipe, a wide
pipe, open air. It makes use of the contact sensors, IR sensors, and the intensity and
torque control system of the servomotors, amongst other sensors.
Thanks to the IR sensors, the module is capable to know if it is in the open environment
or inside a pipe. If it is inside a pipe, it can detect if it is a wide pipe or a narrow one.
Thanks to the contact sensor it can detect if has crashed into something and thus other
behaviors may act consequently: if it is in an open environment, it may go around the
obstacle, if it is inside a pipe, the IR will tell if it is an elbow or a bifurcation, and it will
be able to negotiate the elbow or choose a path in the bifurcation.
The touch (and camera) module plays a very important role because it is the one that
has touch sensors to detect obstacles, in this case elbows and bifurcations. When the
touch module detects an obstacle sends a message to the CC, and the CC distributes the
information to all the modules.
Environment diagnostic
This behavior is in charge of gathering information from the sensors (contact, IR, temper-
ature, humidity, etc.) and taking images. It is continuously computing the data coming
from its sensors (whatever they are) and storing them.
It is capable of doing an historical record of these values to use them whenever it is
necessary:
if the temperature or the humidity is increasing dangerously
if it is approaching the end of a pipe by analyzing the pictures taken from the camera
If the module is running down on battery it may stop working.
191
CHAPTER 7. Control Architecture
Behavior: Environment diagnostic
Activation conditions No low battery
Inputs (Stimuli) Data form sensors: temperature, humidity
pictures
Outputs (Actions) Temperature alert
Humidity alert
Historical of temperature, humidity, etc.
Image processing data
Table 7.12: Behavior encoding: Environment diagnostic
It can detect if the module has touched something, it if close to an object (wall, pipe),
etc.
Vertical sinusoidal movement
This behavior is found in modules with one rotation dof. By moving the rotation actua-
tor following a sinusoidal wave, the module help the microrobot to perform a snake-like
movement:
Pos = A sin( t +) (7.9)
All parameters are constant but the time t. There are two ways to synchronize t:
t is reseted at the same time for all modules when a start sequence message is
received from the CC. This is the easiest way but the drawback is that they can lose
synchronization. To avoid this a synchronization message is sent every 2 seconds.
using the synchronism line:
the rst module steps t and activates the output synchronism line
the second detects the input line activated, steps t and activates the output
line
and so on, until the last module detects the input line activated, steps t,
activates its input line
the penultimate module detects the output line activated, steps t and acti-
vates the input line
etc.
Both ways have been implemented. In chapter 8 they will be analyzed and some results
will be given.
Horizontal sinusoidal movement
This behavior is in charge of two things: movement with horizontal joints and turning
movements.
Forward movement can be achieved performing, for example, serpentine movements,
and it is similar to the one described in the Vertical sinusoidal movement section.
192
7.5. Onboard control
Behavior: Vertical sinusoidal movement
Activation conditions Command
Mission
Inputs (Stimuli) Synchronism lines
1
,
2
, etc.
Outputs (Actions)
1
,
2
, etc.
Table 7.13: Behavior encoding: Vertical sinusoidal movement
Behavior: Horizontal sinusoidal movement
Activation conditions Command
Mission
Inputs (Stimuli) Synchronism lines
1
,
2
, etc.
Outputs (Actions)
1
,
2
, etc.
Table 7.14: Behavior encoding: Horizontal sinusoidal movement
Regarding turns, in open spaces, turns are achieved by putting horizontal joints at a
xed position all the time. The robot has the shape of an arc. The radius of curvature
of the trajectory can be modied by modifying the degree of rotation of the horizontal
joints.
Inside pipes, it is also possible to go forward by pushing against the pipe walls. The
sequence is as follows (g. 8.34):
The rst module (M1) turns 90 degrees.
M1 turns up the synchronism line with module M2.
When M2 detects the synchronism line up, M2 turns 90 degrees.
When M2 has turn a predetermined angle (about 60 degrees), M2 turns downs the
synchronism line with M1.
M1 gets back to the initial 0 degrees position.
When M2 has turned 90 degrees turns up the synchronism line with M3 and so on.
Passive modules have nothing to do but to pass the token to the next module
(through the synchronism line).
This solution includes P2P communication between adjacent modules besides the I
2
C
communication. An slave module can only communicate with adjacent modules.
Worm-like movement
This behavior can be found in modules with extension-contraction capabilities. Each
module knows if it has support or extension capabilities. Worm like movement is
performed by combination of extension-contraction mechanisms.
The mechanism is the following:
the rst module with support capabilities (S1) expands, and activates the output
synchronism line
193
CHAPTER 7. Control Architecture
Behavior: Worm-like movement
Activation conditions Command
Mission
Inputs (Stimuli) Synchronism lines
1
,
2
(Extension/Contraction state), etc.
Outputs (Actions)
1
,
2
(Extension/Contraction), etc.
Table 7.15: Behavior encoding: Worm-like movement
Behavior: Push-Forward movement
Activation conditions Command
Mission
Inputs (Stimuli) Synchronism lines
Outputs (Actions) Push, Stop, etc.
Table 7.16: Behavior encoding: Push-Forward movement
the next module with extension capabilities (E) contracts and activates the output
line
the next module with support capabilities (S2) expands and activates the input line
E activates the input line
S1 releases and activates the output line
E expands and activates de input line
Everything is repeated
A sketch of this procedure can be seen in former g. 4.35.
Push-Forward movement
This behavior can be found in modules which has self-propulsion capabilities, like the
helicoidal module. This behavior is in charge of activating the actuator to move forward
or backwards as demanded.
7.5.2 Behavior fusion
Behavior coordination is a complex task. Some behaviors collaborate to achieve its goal
(cooperation), some others compete (competition) and some others act independently form
each other. In gure 7.11 the scheme is explained.
Behaviors are divided in sets of priorities and tasks.
Walking behaviors (vertical sinusoidal, horizontal sinusoidal, etc.) control the actu-
ators of the module, some of them control one actuator, other two, etc. They may be
complimentary, and thus, its output is combined to achieve its goal. Its output is subject
to LLC1 commands coming directly from the CC.
Perceptual behaviors act independently since they only inform and they have no ac-
tuator control. But its output feeds back the other behavior with information regarding
broken actuators, current situation, etc.
194
7.6. Heterogeneous layer
Figure 7.11: Behavior fusion scheme
Survival behaviors have the highest priority (if they compete with other behaviors they
will win) since they try to keep the module up and running. They can inhibit the output
of the other behavior if they put in danger the integrity of the module. For example, if the
output of a behavior is to move a servomotor to an specic position and in this position
the consumption is too high, the position is released.
7.6 Heterogeneous layer
The heterogeneous layer is in charge of several tasks that take place between the module
and the CC and/or other modules, amongst which it is the communication. Every time
a command is received by the module, it is processed by the heterogenous layer and
translated into specic instructions for the module. On the other hand, when the module
needs to send a message, it is done by the heterogenous layer.
For example, when an action has to be done (i.e. go straight forward), the CC sends
an I
2
C message to every module with the command to follow. The heterogeneous layer of
each module translate this message to proper commands of the module. It is important
to remark that all messages are the same, no matter which module they are aimed to, and
thus it is the module that knows what actions it has to perform.
The heterogenous layer is in charge of the following tasks:
1. Communications
2. Conguration check
195
CHAPTER 7. Control Architecture
Figure 7.12: Conguration check sequence diagram
3. MDL phase
7.6.1 Communications
The heterogenous layer receives commands and send them when the CC asks if there is
something to say (polling).
Every certain time, the CC sends a message to all the modules demanding if they
have something to say (polling). That is the way in which the modules can communicate
with the CC or with other modules. This is the inverse procedure: the module sends a
command to the CC and if it necessary the heterogeneous layer translates the message.
7.6.2 Conguration check
The purpose of this task is to know the conguration of the microrobot and which position
in the chain the module is in. Normally, the rst time this behavior acts is after mechanical
connection of modules and power up, when the phase of awareness starts: every module
gets to know its position in the modular chain. After that the behavior can act any time
196
7.7. Central control
it is necessary to know the conguration (after split up, if a module is broken, etc.)
This procedure is as follows (see g. 7.12):
The CC sends an GPS message to all modules.
All modules activate their synchronism lines.
The one which is the rst (it knows that it is the rst because its S
in
synchronism
line is down) replies with a PC1 message (this message is sent to the CC and includes
the ID of the module: r for rotation, s for support, etc.).
The rst module puts the S
out
synchronism line down, so the second module knows
it goes next (because now its S
in
synchronism line is down).
The second module sends a PC1 message and puts its S
in
synchronism line down,
so the rst module knows it has nished.
The CC keeps collecting all the messages.
It goes the same way for all modules.
When it is the turn of the last module (it knows it is the last because its S
out
synchronism line is down) it sends a PCL message
The CC send a GPF message, so the last module knows it has nished.
7.6.3 MDL phase
MDL phase follows a similar mechanism as the conguration check phase, but instead
of sending the id, the module sends the MDL string showing its capabilities.
7.7 Central control
The central control (CC) is in charge of the most complicated calculations, as it is running
in a more powerful processor (either in an external PC -nowadays- or in a specic module
-in the future- ).
Central control represents the high control layer in the control architecture. It takes
care of the main decisions of the robot, what it is going to do and how, independently of
the module composition of the microrobot.
Central control is also based in behaviors, but in this case the behaviors have the whole
microrobot as its target.
In order to know what the robot is capable of, the central control makes use of an
expert system based on rules that takes the MDL commands coming from each of the
modules and outputs a set of capabilities of the whole microrobot.
Each module has several features that denes what it can do. But a set of modules
together can have newer features. Modules can be grouped in units to have dierent
capabilities, units can in turn be grouped in super-units to have newer capabilities. For
197
CHAPTER 7. Control Architecture
Figure 7.13: Ext / Contraction capabilites: a) grade 3 and b) grade 1
example, the rotation module doesnt have extension/contraction capabilities, but a unit
composed of three rotation modules together do have that feature (eq. 7.10 and 7.11).
Rot mod+Rot mod+Rot mod+Open air => Extension/Contraction (grade 3) (7.10)
Rot mod +Rot mod +Rot mod +Pipe => Extension/Contraction (grade 1) (7.11)
It is possible to see that the same combination of modules may have dierent results
depending if the microrobot is inside the pipe or in the open air (g. 7.13).
This expert system is based on a set rules and an Inference Engine. The rules are
already pre-charged, but new rules could be added by learning.
7.7.1 Rules
The capabilities of the whole microrobot are the consequence of the combination of the
capabilities of all the modules and its position in the chain. It is not the same having a
extension module in between two support modules, that having the extension module at
the side of two support modules in a row. In the rst case the chain could perform an
inchworm movement while in the second one it is not possible.
As we have seen, the functionalities of the modules can be useful or not for a determined
task depending on where they are placed. This importance is linked to three possible
location of the modules:
198
7.7. Central control
Anywhere Sequential Adjacent Robot
Bat Rot + Rot + Rot Ext
Bat Sup + Ext + Sup Forward/Backward
Movement (inch-
worm)
Bat Sup + .. + Sup Sup Unit
Bat Ext + .. + Ext Ext Unit
Bat Sup unit + Ext Unit
+ Sup Unit
Forward/Backward
Movement (inch-
worm)
Bat + Rot +
Push pipe
Turning
Bat + Push pipe Forward Movement
Bat + Push pipe Backward Movement
Bat Rot + Rot + Rot Forward Movement
(snake)
Table 7.17: Table of Rules
Anywhere: they can develop it capabilities independently of where are they placed
In sequential order (but not adjacent)
Adjacent: One after each other
To know what are capabilities of the microrobot, a set of rules has been implemented.
This rules can be extended either by writing new rules when new features appear or by
developing new rules by learning.
In a general way, rules can be described as:
MDL(left) +
MDL(right) +
MDL(anywhere) =>
MDL(robot) (7.12)
The set of rules are shown in table 7.17
7.7.2 Inference Engine
The inference engine has two functions:
It can deduce or infer what the robot is capable of. It goes through all of the rules
and select those which are fullled. Then the procedure is repeated including into
the premises the conclusions obtained previously. And so on until there are no new
rules fullled in a cycle.
It can deduce or infer which modules are needed for a specic task. For example if
the robot needs to split, it can decide which is the optimal point to split in order
that each part keeps the necessary modules to accomplish the task under execution.
As an example, the iterative process will allow to infer that a conguration like:
199
CHAPTER 7. Control Architecture
Sup mod + Rot mod + Rot mod + Rot mod + Sup mod
can move as a worm.
7.7.3 Central control Behaviors
Continuing with the classication made in section 7.5.1 the behaviors that have been
dened for the central control are shown in the following bullets. As explained before,
some behaviors perform simpler tasks, while others are based in them to perform more
complex tasks.
1. Postural behaviors
Balance / Stability
2. Walking behaviors
Move straight forward/backwards
Turn to left/right
Move laterally
Rotate
3. Path following behaviors
Edge following
Pipe following
Stripe following
4. Protective behaviors
Obstacle negotiation
5. Exploration behaviors
Wandering
6. Goal Oriented behaviors
Reach a landmark
Reach a place
Find a pipe break
Repair
200
7.7. Central control
Behavior: Balance / Stability
Activation conditions No low battery
Mission
Recharge possible
Inputs (Stimuli) Orientation [a
x
, a
y
, a
z
]
1
,
2
, etc.
Outputs (Actions)
1
,
2
, etc.
Table 7.18: Behavior encoding: Balance / Stability
Balance / Stability
It is very important for some tasks to be in the right position in order to know where is
the right and the left sides. To turn, to understand data from IR sensors, etc. Thanks to
the this behavior it is possible to know the orientation. This behavior is also in charge to
change the orientation when necessary to be facing upward, for example.
The information of the orientation of the module is taken from the accelerometer, from
the servomotors or from information received from other modules or the CC.
For example, in a module with two rotational DOF, if it wants to turn to the right,
depending on its orientation it will use one of the DOF or the other. If none of of them is
in the right position, the behavior will make the necessary movements to put the module
in the right position.
Move straight forward/backwards
This behavior is in charge of making the microrobot go forward or backwards. There are
several types of movements it can perform, like serpentine, caterpillar, inchworm, etc. The
use of one or another depends on which type of modules the robot is composed of, which
are the predominant modules, which environment it is moving on and the state of the
module (in terms of power supply, mechanical viability, etc.).
If the predominant modules are rotation modules, a snake-like gait is performed.
If the sinusoidal wave is propagated in a horizontal plane is called serpentine, while in
a vertical one it is called caterpillar locomotion. Serpentine is more suitable for open
spaces, while caterpillar is for pipes. Other possible gaits in open spaces are rolling and
sidewinding, but rst it is necessary to change the orientation of the microrobot.
If the predominant modules are the support and the extension modules, an inch-
worm gait is performed.
If the predominant modules are the rotation modules, it is also possible to perform
an inchworm locomotion. A group of three of them has contraction-extension capabilities
and could act as a unit similar to support or extension module, following the previous
procedure.
The helicoidal module has only one degree of freedom. It is able to go forward or back-
wards pushing other modules. Thus, an helicoidal module can be added to other modules
and its push will be added to the other modules push. If other modules locomotion is
not possible or desired, modules would acquired a conguration of minimum friction that
would easy the straight forward movement.
201
CHAPTER 7. Control Architecture
Behavior: Straight forward / backwards
Activation conditions CC Command
Operator command
Inputs (Stimuli) Orientation [a
x
, a
y
, a
z
]
Desired position [x,y,z]
Global State
Number and type of modules
Outputs (Actions)
1
,
2
, etc.
Table 7.19: Behavior encoding: Straight forward / backwards
Behavior: Edge Following
Activation conditions IR sensor
Touch sensor
Inputs (Stimuli) Orientation [a
x
, a
y
, a
z
]
Global State
Outputs (Actions) Direction [x, y, z]
Table 7.20: Behavior encoding: Edge Following
Other modules that have no actuators act as pig modules, they are carried out by the
drive modules. They only have to pass on the signals coming from the synchronism line.
Move laterally
It is possible to move laterally with the sidewinding and rolling gaits. For these movements,
modules need to have two dof, at least some of them.
Rotate
Rotation can only be performed with module that have one rotation dof by performing
the rotation gait described in section .
Turn left/right
In order to turn there are several possibilities
turning gait: caterpillar locomotion combined with rotation in the other dof actuator
stop, rotate in a rst place and go forward
Edge Following
This behavior makes use of the distance sensors (IR) and the touch sensor. It tries to
keep the microrobot not too close to a wall or object. Depending on the measures of the
IR sensors received from the modules, the behavior will output the coordinates the robot
should go.
202
7.7. Central control
Behavior: Pipe Following
Activation conditions IR sensor
Touch sensor
Inputs (Stimuli) Orientation [a
x
, a
y
, a
z
]
Global State
Outputs (Actions) Direction [x, y, z]
Table 7.21: Behavior encoding: Pipe Following
Behavior: Obstacle negotiation
Activation conditions Touch sensor
IR sensor
Inputs (Stimuli) Orientation [a
x
, a
y
, a
z
]
Global State
Outputs (Actions) Direction [x, y, z]
Table 7.22: Behavior encoding: Obstacle negotiation
Pipe Following
This behavior governs the movement of the robot inside a pipe, trying to keep the best
movement gait, and negotiating elbows and bifurcations.
Obstacle negotiation
Obstacle negotiation is one of the most important behaviors, and more complex also.
When something is detected in the path of the microrobot it is in charge of selecting the
appropriate actions to get around it.
If the robot is in a pipe, it is probably an elbow or bifurcation. Then it selects the
actions to negotiate the turn.
In the open air, it is a little bit more complicated because there are a lot of options.
The easiest way is to go back, then turn a little bit and go forward. It the object is
detected again, perform the same algorithm.
Wandering
This behavior controls the movement of the robot when there is no specic task selected.
It is especially indicated for pipes.
The robot is moving around looking for possible damages trying not to collide. It also
may follow the pipes making a map of the path, using the traveled distance measuring
system.
Goal Oriented behaviors
These behaviors are the highest level ones. They make use of other behaviors in order to
complete their tasks.
The behaviors reach a place and reach a landmark work in a similar way. Starting
203
CHAPTER 7. Control Architecture
from its own position, it estimates where is the objective and move the robot in that
direction. In a pipe, the objective could be
go to the next bifurcation
go forward/backwards 2 meters
go up/down
In open air, objectives can be:
go to position (x,y)
go to the next corner
get into the pipe in front
The behavior nd a pipe break makes use of the wandering behavior to move inside
the pipe while looking for breaks or holes with he camera and IR sensors.
The repair behavior is not implemented, but it is an example of what it will be possible
to do when repairing tools were developed and added to the robot. The behavior will be
in charge of the movement of the robot while repairing the damaged pipe.
7.7.4 Behavior fusion
A behavior fusion scheme for the CC algorithms can be found in gure 7.14. Higher
level behaviors (i.e. path following, obstacle negotiation, exploration (wandering) and
goal oriented) follow a subsumption-like procedure to coordinate. If no one wants to take
control, wandering is the active behavior, but it can be subsumed by path following,
which in its turn can be subsumed by goal oriented, and nally this one by obstacle
negotiation. Thus, obstacle negotiation is the behavior with the higher level.
Each of the path following and goal oriented behaviors contribute to the selection of
the place to go. Thus, it is shown in the bottom part of the gure 7.14 as a summation of
all the individual outputs.
The output of all of the previous behaviors is the coordinates or directions where they
want to go. This output is received by the walking behaviors, which compete amongst
them for the control of the modules. The output of the action selection mechanism can
be suppressed by the balance/stability behavior, which is in charge of keeping the mi-
crorobot in the most appropriate position.
Action Selection Mechanism
The outputs of the four walking behaviors (go forward, turn, move laterally and rotate)
have to be merged into a unique output. Since they are all competing behaviors, there
should be a winner that takes the decision to follow. The selection criteria depends on
two factors: the situation and the place the microrobot is going to.
The situation is very important because it is not the same to move inside a pipe than
in the open air, or to move in a plain terrain / pipe than in an uphill terrain / vertical
pipe.
204
7.8. Oine Control
Figure 7.14: Behavior fusion scheme for Central Control behaviors
The place where the robot has to go has the biggest importance: if the robot has to
go to a place that is in front or to the left / right or in diagonal, if it is near or far, etc.
Depending on all of this one behavior or another will be chosen to take the control.
7.8 Oine Control
Oine control refers to the control algorithms that takes place when the microrobot is
not running. They are aimed to select the best conguration of the modules (regarding
both module positioning and parameters) for later use in the online control.
One of the use cases proposed is the conguration demand, in which, for a specic
mission, the CC selects the modules to use and its position. This is not done in real time,
and so it is referred as oine control.
This task is achieve by using a genetic algorithm (GA) and it is described in the next
205
CHAPTER 7. Control Architecture
sections.
GAs can also be used to optimize parameters in the microrobot. For example, in a
snake-like conguration, the microrobot is composed of rotation modules that moves one
of its dof following a sinusoidal wave:
Pos = A sin( t +) (7.13)
All the parameters, A, and can be optimized to make the microrobot faster, to
have lower consumption or anything else.
For the rest of this section, two options for GA will be considered:
conguration demand: in heterogenous congurations, for a given task, the GA has
to determine the modules to use to have an optimal conguration.
parameter optimization: for a given conguration, the GA has to determine the opti-
mum parameters for the best performance. This is especially useful in homogeneous
congurations when the microrobot is performing a snake or inchworm movement.
7.8.1 Brief on genetic algorithms
A GA is a search technique used in computing to nd exact or approximate solutions to
optimization and search problems. Genetic algorithms are categorized as global search
heuristics. Genetic algorithms are a particular class of evolutionary algorithms (EA) that
use techniques inspired by evolutionary biology such as inheritance, mutation, selection,
and crossover.
Genetic algorithms are implemented in a computer simulation in which a population of
abstract representations (called chromosomes or the genotype of the genome) of candidate
solutions (called individuals, creatures, or phenotypes) to an optimization problem evolves
toward better solutions. Traditionally, solutions are represented in binary as strings of 0s
and 1s, but other encodings are also possible. The evolution usually starts from a popu-
lation of randomly generated individuals and happens in generations. In each generation,
the tness of every individual in the population is evaluated, multiple individuals are
stochastically selected from the current population (based on their tness), and modi-
ed (recombined and possibly randomly mutated) to form a new population. The new
population is then used in the next iteration of the algorithm. Commonly, the algorithm
terminates when either a maximum number of generations has been produced, or a satis-
factory tness level has been reached for the population. If the algorithm has terminated
due to a maximum number of generations, a satisfactory solution may or may not have
been reached.
A typical GA requires:
1. a genetic representation of the solution domain
2. a tness function to evaluate the solution domain
A standard representation of the solution is as an array of bits. Arrays of other types
and structures can be used in essentially the same way. The main property that makes
206
7.8. Oine Control
these genetic representations convenient is that their parts are easily aligned due to their
xed size, which facilitates simple crossover operations. Variable length representations
may also be used, but crossover implementation is more complex in this case.
The tness function is dened over the genetic representation and measures the qual-
ity of the represented solution. The tness function is always problem dependent. For
instance, in the knapsack problem one wants to maximize the total value of objects that
can be put in a knapsack of some xed capacity. A representation of a solution might be
an array of bits, where each bit represents a dierent object, and the value of the bit (0 or
1) represents whether or not the object is in the knapsack. Not every such representation
is valid, as the size of objects may exceed the capacity of the knapsack. The tness of the
solution is the sum of values of all objects in the knapsack if the representation is valid,
or 0 otherwise.
Once genetic representation is done and the tness function dened, GA proceeds to
initialize a population of solutions randomly, then improve it through repetitive application
of mutation, crossover, inversion and selection operators.
Example of a simple generational genetic algorithm
A simple GA can be described with the following pseudocode:
BEGIN /*Simple GA*/
Generate initial population
Evaluate the fitness of each individual in that population
WHILE NOT finished DO
BEGIN /*Produce new generation*/
FOR (population_size / 2) DO
BEGIN /*Reproduction cycle*/
Select 2 individuals (based on fitness function probability)
Crossover the 2 individuals with a probability
Mutate the 2 individuals with a probability
Evaluate the new individuals
Insert new individuals into population
END
IF population_has_converged THEN /*time limit, convergence, etc.*/
finished:=true
END
END
The algorithm proposed in this thesis starts from this algorithm to build a more com-
plex and evolved GA.
207
CHAPTER 7. Control Architecture
Phases of a GA
More advanced GA are divided in dierent phases:
1. Initialization: individual solutions are randomly generated to form the initial pop-
ulation. The population is generated randomly, covering the entire range of possible
solutions (the search space).
2. Evaluation: consists on applying the tness function on every individual of the
population. The result of the evaluation will help to select the best individuals for
reproduction.
3. Selection: during each generation, a proportion of the existing population is selected
to breed a new generation, what is called the mating pool. Individual solutions are
selected through a tness-based process, where tter solutions are more likely to
be selected. Most functions are stochastic and designed so that a small proportion
of less t solutions are selected. This helps keep the diversity of the population
large, preventing premature convergence on poor solutions. Popular and well-studied
selection methods include roulette wheel selection and tournament selection.
4. Reproduction: it is aimed to generate a new population through the application
of genetic operators: single/two/uniform/arithmetic point crossover, mutation (bit
inversion, order changing, adding a number ).
It is very important to dene the probability of crossover and mutation to nd
reasonable settings for the problem being worked on. A very small mutation rate may
lead to genetic drift. A recombination rate that is too high may lead to premature
convergence of the GA. A mutation rate that is too high may lead to loss of good
solutions unless there is elitist selection.
5. Termination: when the terminating condition has been reached, the GA ends.
Common terminating conditions are:
A solution is found that satises minimum criteria
Fixed number of generations has been reached
Allocated budget (computation time/money) has been reached
The highest ranking solutions tness is reaching or has reached a plateau such
that successive iterations no longer produce better results
Manual inspection
Combinations of the above
Remarks
One problem that may appear is that GAs may have a tendency to converge towards
local optima or even arbitrary points rather than the global optimum of the problem.
The likelihood of this occurring depends on the shape of the tness landscape: certain
problems may provide an easy ascent towards a global optimum, others may make it easier
for the function to nd the local optima.
This problem may be alleviated by using a dierent tness function, increasing the
rate of mutation (called triggered hypermutation), occasionally introducing entirely new,
208
7.8. Oine Control
Parameter Value
Rotation module 1
Helicoidal module 2
Support module 3
Extension module 4
Touch/Camera module 5
Traveler module 6
Table 7.23: GA Conguration demand genes value range
randomly generated elements into the gene pool (called random immigrants) or by using
selection techniques that maintain a diverse population of solutions. Diversity is important
in GAs because crossing over a homogeneous population does not yield new solutions.
It is very important to choose a good codication of the genotype and a good tness
function to have satisfactory results.
7.8.2 Codication and set up
Due to the dierent nature of the two considered problems, the way to resolve each phase
/ operator will be distinguished in the implementation of the algorithm. As a reminder,
the two purposes the algorithm is used for are:
Parameter optimization: to nd the optimum parameters to perform a specic
movement: amplitude, phase or frequency in snake movements, times of extension /
contraction in inchworm.
Conguration demand: to nd the best combination of modules to perform a
specic task: to cover a stretch of pipe, to negotiate an elbow, to have the lowest
consumption.
The rst thing to do in the GA is to dene the parameters (codication): chromosomes,
population, number of generations, tness function, termination condition, etc.
The chromosome is one of the most important parts to dene. If the chromosome is
not well chosen it will be impossible to achieve good results.
The codication for each of theGAs explained before will be completely dierent, and
thus it will be explained separately.
Conguration demand
For this case, the chromosome is an array of the types of modules of the robot (i.e.
genes, parameter numgenes). If the robot has 6 modules, the chromosome will be an
array of 6 elements, each of them representing the type of modules (rotation, helicoidal,
support, extension, touch/camera, traveler), according to table 7.23.
For example, for a microrobot composed of 1 touch module, 5 rotation modules and 1
helicoidal modules, the chromosome would be 5111112. For a microrobot composed of
1 touch, 1 support, 1 extension, 1 support, 1 rotation, 1 support, 1 extension, 1 support,
209
CHAPTER 7. Control Architecture
Parameter Value
Population 16
Number of genes 6
Maximum number of generations 20
Maximum number of chromosomes selected for reproduction 16
Maximum number of times that a chromosome can be selected not dened
Crossover probability 0.8
Mutation probability 0.05
Table 7.24: GA Conguration demand parameters
1 rotation, it would be 534313431.
The population is the set of chromosomes. It may vary between 16 to 500, depending
on the experiments (it will be shown in chapter 8).
The tness function may vary. It can be related to the time the microrobot takes
to perform a task (i.e. to cover a part of the pipe -the smaller it is, the better) or the
distance covered in an amount of time (the bigger the better).
The probabilities experimentally chosen for this algorithm are:
Crossover probability = 0.8
Mutation probability = 0.05
A standard set of parameters is shown in table 7.24.
Parameter Optimization
For this case, the chromosome is an array of parameters. If the robot is composed of
rotation modules to perform a snake-like movement, this parameter could be:
Amplitude (A)
Angular velocity (V)
Phase (P)
Oset (O)
Phase between vertical and horizontal modules (D)
The range of the values for these parameters can be seen in table 7.25.
The chromosome will be composed of AV POD. For example it could be: 60.0; 1.0; 2/3; 0; 0.
Then, since each gene has a dierent value range, it is neither possible to exchange the
genes inside the chromosome nor mix them. Thus, the values have to be converted to a
common range. The range that has been selected is [0..63]. Then this value is converted
into binary code (7 digits for each value, 2
7
) and it is ready to be used.
The previous example would turn into:
21; 6; 21; 0; 0 but now, all values in [0..63]
210
7.8. Oine Control
Parameter Value
Amplitud [90
..90
]
Angular velocity [0..10]
Phase [0..2]
Oset [0..90
]
Phase between vertical and horizontal modules [0..2]
Table 7.25: GA Parameter optimization genes value range
that in binary is: 0010101; 0000110; 0010101; 0000000; 0000000
And so the individual is: 00101010000110001010100000000000000
If the robot is composed of support and extension modules to perform an inchworm
movement, this parameter will be:
Extension time (T)
Expansion time (P)
Extension lenght (L)
Support servo angle (S)
The chromosome is TPLS, and it would follow the same transformation as before.
7.8.3 Phases of the GAs
Initialization
Initially many individual solutions are randomly generated to form the initial population
specied previously. The population size depends on the nature of the problem, but
typically contains several hundreds or thousands of possible solutions. The population
is generated randomly, covering the entire range of possible solutions (the search space).
Occasionally, the solutions may be seeded in areas where optimal solutions are likely to
be found, but this is not the case.
In the conguration demand, genes are random number between 0 and 6. In the
parameter optimization, genes are random number selected from the possible values, as
seen in table 7.25.
Evaluation
The evaluation consists on applying the tness function on every chromosome of the
population.
The tness function is a function that evaluates the performance of the chromosome.
For that reason, it transforms the chromosome into the modules that represents and run
the simulator with these modules.
The tness function is a procedure that follows the next steps:
starts the simulation
211
CHAPTER 7. Control Architecture
creates the modules specied by the genes
runs the simulation (faster than in normal simulation) to achieve the specied ob-
jective. Several objectives have been specied:
terminates the simulation when:
1. either the objectives are completed
2. or the maximum number of iterations have been reached
returns a value (depending on the goal):
cover a part of the pipe in as little time as possible: the tness function returns
time[s].
cover a part of the pipe with the lowest possible consumption: the tness
function returns intensity[A].
negotiate an elbow: the tness function returns time[s].
cover a distance in open air: the tness function returns time[s].
The values return for the tness function are stored for later use in selection phase.
For example, lets suppose that we have 6 chromosomes composed of 6 modules:
C1:RRRRRR=111111
C2:CRRRRH=511112
C3:RRRHHH=111222
C4:CRSEST=513436
C5:SESSES=343343
C6:RSRSRS=131313
and the tness function calculates the distance it covers in a straight pipe in 20s. The
following results are obtained:
C1:0.4m
C2:0.6m
C3:1m
C4:0.45m
C5:0.8m
C6:0.2m
Selection
After all the population has been evaluated, the selection phase starts. During each
generation, a proportion of the existing population is selected to breed a new generation,
what is called the mating pool. Individual solutions are selected through a tness-based
process, where tter solutions are more likely to be selected.
212
7.8. Oine Control
Figure 7.15: Roulette probabilty
The basic part of the selection process is to stochastically select from one generation to
create the basis of the next generation. The requirement is that the ttest chromosomes
have a greater chance of transmitting their genetic information than weaker ones. This
replicates nature in that tter individuals will tend to have a better probability of survival
and will go forward to form the mating pool for the next generation. Weaker individuals
are not without a chance. In nature such individuals may have genetic coding that may
prove useful to future generations.
In this theses the roulette wheel selection, a stochastic sampling done with replacement,
has been used.
This sampling method selects parents according to a spin of a weighted roulette wheel
(g. 7.15). The roulette wheel is weighted according to the tness values obtained pre-
viously. A high-t value will have more area assigned to it on the wheel and hence, a
higher probability of ending up as the choice when the biased roulette wheel is spun. The
roulette wheel selection is a high-variance process with a fair amount of scatter between
expected and actual number of copies.
Taking the example of the distance covered in 20s, the previous chromosomes have the
following selection probabilities:
C1:0.12, 12\%
C2:0.17, 17\%
C3:0.29, 29\%
C4:0.13, 13\%
213
CHAPTER 7. Control Architecture
Figure 7.16: Single point crossover example
C5:0.23, 23\%
C6:0.06, 6\%
Thus, selecting a random number from 0 to 1, the chromosomes selected would be:
C1: From 0 to 0.12 [0, 0.12]
C2: From 0.12 to 0.29, (0.12, 0.29]
C3: From 0.29 to 0.58, (0.29, 0.58 ]
C4: From 0.58 to 0.71, (0.58, 0.71]
C5: From 0.71 to 0.94, (0.71, 0.94]
C6: From 0.94 to 1, (0.94, 1]
Obtaining the random numbers: 0.08, 0.4, 0.68, 0.45, 0.015, 0.9, C3 is elected twice,
C6 none, and the rest one time for reproduction.
Reproduction
The next step is to generate a second generation population of solutions from those selected
in the selection phase through genetic operators: crossover (also called recombination),
and/or mutation.
For each new solution to be produced, a pair of parent solutions is selected for
breeding from the mating pool selected previously. By producing a child solution using
the above methods of crossover and mutation, a new solution is created which typically
shares many of the characteristics of its parents. New parents are selected for each new
child, and the process continues until a new population of solutions of appropriate size is
generated.
214
7.8. Oine Control
Figure 7.17: Mutation example
These processes ultimately result in the next generation population of chromosomes
that is dierent from the initial generation. Generally the average tness will have in-
creased by this procedure for the population, since only the best organisms from the rst
generation are selected for breeding, along with a small proportion of less t solutions, for
reasons already mentioned previously.
In this thesis, it is used single point crossover (gure 7.16): one crossover point is
selected, the genes from the beginning of the chromosome to the crossover point is copied
from one parent, and the rest is copied from the second parent.
The crossover point is selected randomly and could be any number between 1 and the
length of the chromosome - 1.
Afterwards mutation is being performed. Each gene of each chromosome may be
changed based on the mutation probability. For each gene a random number is selected,
and if it is smaller that the mutation probability the gene is changed for another number
obtained randomly (gure 7.17).
In the same example as before, we take two parents for the crossover, 111222 and
343343. Then a number from 1 to 5 is selected randomly, obtaining 3, so the rst 3
genes of parent 1 go the rst ospring, and the last 3 genes go to the second ospring.
The opposite with parent 2.
In the case of mutation, if the chosen parent is 513436, a random number from 0 to
1 is obtained for each gene. If it is smaller than the mutation probability, the gene change.
In this case, the only gene that changes is the fourth one. Another random number is
selected from 1 to 6 (the number of modules) that will replace the gene. In this case it is
the 1.
Termination
This generational process is repeated until a termination condition has been reached.
In our case the conditions used are when a xed number of generations has been
reached (50) or the highest ranking solutions tness is reaching or has reached a plateau
such that successive iterations no longer produce better results.
215
CHAPTER 7. Control Architecture
7.9 Conclusions
In this chapter a control architecture for chained modular robots composed of hetero-
geneous modules has been presented. This architecture is not limited to the modules
developed in chapter 4 but to any kind of chained module able to work and interact with
the others.
Amongst all possible choices stated in 3.1 a behavior-based architecture has been
chosen because:
it is specically appropriate for designing and controlling semi-autonomous articial
microrobots based on biological systems
it is suitable for modular systems
it integrates both low and high level control
The control architecture is structured in three levels. It is similar to an hybrid archi-
tecture, and indeed it has many features of them, but behaviors can be found both in low
and high level control layers, not only in the reactive layer.
The lower level is entirely based on behavior and includes behaviors related to the
module, as for example reactive behaviors that take care of the health of the module,
walking behaviors in charge of the movement of the robot and perceptual behaviors in
charge of gathering information about the module and its environment.
On the contrary, the higher level has two main parts: one is also behavior-based,
composed by behaviors related to the whole microrobot. The other is an inference engine
in charge of taking decisions based on the information provided by the modules. Behaviors
in this layer take care of the stability of the robot, of its movement, reaching goals and
avoiding obstacles, etc.
Behavior fusion is a very important part at both low and high levels. Both coordination
and competition are selected depending on the behaviors. Also noteworthy on their own
are the the coordination of walking behaviors, since the combination of heterogenous drive
movements is one the distinguishing elements of this thesis.
It is important to highlight the role of the intermediate layer, that allows the central
control to treat all modules in the same way, since the heterogenous layer translates its
commands into module specic commands.
In order to communicate all actors, a communication protocol based on I
2
C has been
developed. It allows to send messages from the operator to the central control, from
central control to the modules and between behaviors.
Another important part of the control architecture is the Module Description Language
(MDL), a language that has been developed to allow modules to transmit their capabilities
to the central control, so it can process this information and choose the best conguration
and parameters for the microrobot.
The architecture includes as well an oine genetic algorithm aimed at optimizing the
conguration of the modules and its locomotion parameters in order to achieve the best
conguration for a set of modules and the best locomotion gait for a conguration.
To conclude, the control architecture described in this chapter presents a new solution
to control chained modular microrobots composed by several drive units, contributing
216
7.9. Conclusions
with a new research line to the world of modular robots, mainly composed of homogenous
modules.
217
CHAPTER 7. Control Architecture
218
Chapter 8
Test and Results
Dont be afraid to give your best to what seemingly are small jobs. Ever time you
conquer one it makes you that much stronger. If you do the little jobs well, the big ones
tend to take care of themselves
Dale Carnegie
In this chapter some of the tests performed are presented. It is divided in three parts:
the rst part shows experiments with the real modules. Due to the limitations of the real
modules, these experiments cover locomotion tests of snake-like, worm-like and helicoidal
congurations separately.
The next section is dedicated to validation tests aimed at proving the suitability of
the simulated modules with respect to the real ones. Several tests have been performed
regarding consumption, torque and speed.
The goal of the nal section is to show the experiments carried out in the simulator to
prove the concepts presented in this thesis, regarding heterogenous modular robots, that
couldnt be tested in real modules.
8.1 Real tests
It is not possible to perform the same tests with real modules than with simulated ones,
due to several reasons: not all modules have been build, some modules are not robust
enough to do some movements, some modules features does not work as expected...etc.
But nevertheless, many test can be done to prove some of the concepts of the hardware
and software design.
In order to compare the characteristics of each type of drive module, several tests
have been performed to prove each type of locomotion: helicoidal, inchworm (two support
modules plus one extension module) and snake-like. Table 8.1 shows the speed of the
robot at dierent angles and with dierent congurations.
219
CHAPTER 8. Test and Results
Slope Speed[cm/s] Modules involved
0
2,5 Inchworm
30
2 Inchworm
45
3 Helicoidal v1.0
90
to 120
and from 90
to 30
.
Position and intensity have been measured through the A/D converter. The maximum
223
CHAPTER 8. Test and Results
Figure 8.6: Corner negotiation
K
p
K
m
K
t
R L B J
Parameter (V/rad) (V/rad/s) (Nm/A) () (H) (Nm/rad/s) (Nm/rad/s
2
)
Values 12 0.14 0.14 12 0.0075 0.00000035 0.0000007
Table 8.2: Parameters for the servomotor tests
static torque at 0
to 120
unloaded
Figure 8.7: 30
to 120
to 120
unloaded: intensity
225
CHAPTER 8. Test and Results
Figure 8.9: 30
to 120
unloaded: torque
30
to 120
loaded
Figure 8.10: 30
to 120
to 120
loaded: intensity
Figure 8.12: 30
to 120
loaded: tau
227
CHAPTER 8. Test and Results
90
to 30
unloaded
Figure 8.13: 90
to 30
to 30
unloaded: intensity
228
8.2. Validation tests
Figure 8.15: 90
to 30
unloaded: tau
90
to 30
loaded
Figure 8.16: 90
to 30
to 30
unloaded: intensity
Figure 8.18: 90
to 30
unloaded: tau
An additional test has been performed for the rotation module v1. The test consist of
moving with only one servomotor the maximum number of similar modules. With the
real rotation module V1, it was possible to move two modules, as shown in the g. 8.19.
With more than two it is not able to move. The same results have been obtained in the
simulation.
230
8.2. Validation tests
(a) Real (b) Simulated
Figure 8.19: Rotation module v1 torque test
8.2.2 Inchworm tests
The inchworm conguration (two support modules and one extension module) was tested
as a drive unit. A comparison between the real modules and simulated ones is shown in
table 8.3. The real tests are obtained from [Santos, 2007])
It is possible to note that in the simulation it is possible to achieve similar results than
in reality.
The reason why the module is slower in pipes with slopes (apart from the gravity force)
is that expansion and contraction in the front and rear modules cant be done at the same
time (because the module would slip down), while in horizontal pipes it is possible.
Angle (
) 0 30 90 45
2
Speed (cm/s) (Real) 2,5 1,5 0,6 0,5
Speed (cm/s) (Simulation) 1,5 1,3 0,3 0,8
Table 8.3: Speed test of the inchworm conguration
2
Carrying the camera module
231
CHAPTER 8. Test and Results
8.2.3 Helicoidal module test
The helicoidal module was tested in dierent slopes with the characteristics shown in table
8.4.
Angle (
) 0 30 60 90
Speed (cm/s) (Real) 3 2,1 1,5 1,2
Speed (cm/s) (Simulation) 3 - - -
Table 8.4: Speed test of helicoidal module
8.2.4 Snake-like gait tests
When the locomotion is performed by rotation modules, the movements are similar to those
of a snake (4.5). They are based on CPG (Central Pattern Generator). The position of
the actuators follow a sinusoidal wave (eq. 7.9).
i
= A sin( t + (i 1)) +O (8.3)
Since rotation modules have two degrees of freedom, there will be two sinusoidal waves,
vertical and horizontal
v
i
= A
v
sin( t + (i 1)
v
) +O
v
(8.4)
h
i
= A
h
sin( t + (i 1)
h
+
vh
) +O
h
(8.5)
By playing with the parameters of eq. 8.4 and 8.5, dierent movements can be achieved
(as covered in [Gonzalez et al., 2006]). These movements can be fully implemented in the
simulation environment. In the next paragraphs some of these movements are going to be
described. These experiments proved the reliability of the simulator.
Going forward/backwards (1D sinusoidal gait)
For the locomotion in 1D, forward and backward movements are achieved by means of
variations only in vertical joints. The horizontal modules are kept in their home position
all the time.
v
i
= A
v
sin(
2
0.5
t + (i 1)
2
3
) (8.6)
h
i
= 0 (8.7)
232
8.2. Validation tests
Figure 8.20: 1D sinusoidal movement
Figure 8.21: Turning movement
Turning
The robot can move along an arc, turning left or right. The vertical joints are moving
as in 1D sinusoidal gait and the horizontal joints are at xed position all the time. The
robot has the shape of an arc. The radius of curvature of the trajectory can be modied
by modifying the oset of the horizontal joints.
v
i
= 60 sin(
2
0.5
t + (i 1)
2
3
) (8.8)
h
i
= 0 (8.9)
In the example shown in gure 8.21 it has been used a value h
i
= 30
. Experimentally,
it has been proof that this conguration is able to stand for h
i
> 24
. If h
i
< 24
the
microrobot would fall down.
Rolling
The robot can roll around its body axis. The same sinusoidal signal is applied to all the
vertical joints and a ninety degrees out of phase sinusoidal signal is applied to horizontal
joints.
233
CHAPTER 8. Test and Results
Figure 8.22: Rolling movement
v
i
= 30 sin(
2
0.5
t) (8.10)
h
i
= 30 sin(
2
0.5
t +
2
) (8.11)
Rotating gait
The robot can also rotate parallel to the ground clock-wise or anti-clockwise. The robot
can change its orientation in the plane. This is achieved by using two sinusoidal signals
with dierent phase.
v
i
= 30 sin(
2
0.5
t + (i 1)
2
3
) (8.12)
h
i
= 30 sin(
2
0.5
t + (i 1)
2
7.2
) (8.13)
Lateral shift
Using this gait, the robot moves parallel to its body axis. A phase dierence of 100 degrees
is applied both for the horizontal and vertical joints. The orientation of the body axis
does not change while the robot is moving.
v
i
= 30 sin(
2
0.5
t + (i 1)
2
3.6
) (8.14)
234
8.2. Validation tests
Figure 8.23: Rotating movement
Figure 8.24: Lateral shifting movement
235
CHAPTER 8. Test and Results
h
i
= 30 sin(
2
0.5
t + (i 1)
2
3.6
) (8.15)
8.3 Simulation tests
The simulator has been used to carry out several experiments concerning new locomotion
gaits combining dierent types of modules, the performance of the dierent behaviors
used, the control algorithms and the evolution through the genetic algorithms, amongst
others. In the following subsections these tests are presented.
8.3.1 Locomotion tests
In section 8.2 it has been proven that the simulator is able to successfully simulate the
snake-like, inchworm and helicoidal gaits. In this section new types of movements devel-
oped using the simulator are described.
These new types of movements have been achieved by combining all modules in dier-
ent ways.
In the experiments, it will be mentioned the use of passive modules, meaning modules
without drive capabilities. Passive modules will be represented by battery or traveler
modules.
Rotation plus helicoidal modules
Rotation modules can perform several types of snake-like movement. Although these
movements can be quite fast in open air, inside pipes this movement can be quite slow.
By combining rotation modules with helicoidal modules, it is still possible to do snake-like
movements while increasing the speed of movement.
Helicoidal modules push forward trying to make the robot go forward while the rotation
modules perform a snake-like gait that also helps to go forward, reduces the friction (less
parts are touching the pipe) and allow rotations.
The inner diameter chosen for the experiments is usually 36mm. This is enough for
rotation modules to negotiate elbows. But when including helicoidal modules in the chain,
depending on the position of the helicoidal modules, the robot will be able to negotiate
the elbow or not. In gure 8.25 it is possible to see that for the 36mm diameter the robot
gets stuck in the elbow (a) and b)). With a higher diameter of 40mm, it negotiates the
elbow without problems (c) and d)).
But if the helicoidal modules are placed in the front and the back, the robot is able to
negotiate the 36mm elbow, as shown in gure 8.25.
The simulator is very useful to identify the dimensions of the modules to t in a specic
pipe.
Rotation plus passive modules
In section 8.2.4 several movements achieved with the rotation modules have been shown.
This movements can still be performed if there are other modules placed between the
236
8.3. Simulation tests
Figure 8.25: R+H elbow negotiation
237
CHAPTER 8. Test and Results
Figure 8.26: R+H elbow negotiation depending on pipe diameter
238
8.3. Simulation tests
Figure 8.27: Rotation + passive modules in a vertical sinusoidal movement
rotation modules.
In gure 8.27, the importance of the position of the passive modules in the chain can
be observed. In gures a) and b) the movement of the microrobot is almost negligible.
However, if the passive modules are placed symmetrically, the robot can perform the same
movement. This is extensible to many snake-like movements.
In gure 8.28 it is possible to observe that the negotiation of elbows depends in an
important way on the overall drive force of the microrobot. In gures a) and b) the robot
composed of touch, rotation and passive modules gets stuck in an elbow. With the help
of an helicoidal module, in gure c) and d) the microrobot is able to manage the elbow.
Several support plus extension modules
It is possible to combine several support modules to create support units, and several
extension modules to create extension units. After the MDL phase, the CC is able to
detect the support and extension modules and to identify support and extension units.
These units can be composed of a dierent number of modules, from one to several.
In gure 8.29 it is possible to see an example of unit composed of 2 modules (a) and
b)), three modules (c) and d)) and a combination (e) and f)). In g), an example of two
dierent inchworm drive units working together, to show that modules are aware of their
position (although this conguration does not work because the support modules of one
unit avoids the movement of the extension module of the other unit).
239
CHAPTER 8. Test and Results
Figure 8.28: Rotation + passive modules negotiating an elbow with and without helicoidal
module
240
8.3. Simulation tests
Figure 8.29: Inchworm locomotion composed of several extension and support modules
241
CHAPTER 8. Test and Results
Figure 8.30: Example of heterogenous conguration
Rotation plus support plus extension plus helicoidal modules
By combining several types of movements, several types of movements work together:
snake-like, worm-like and helicoidal. Each of them t better for each situation in pipes or
open air.
Figure 8.30 shows an example of the touch, rotation, helicoidal, extension and support
modules working together and performing simultaneously vertical sinusoidal, helicoidal
and worm-like movements.
8.3.2 Control tests
Conguration check
The conguration check phase is used to determine which modules are connected and
in which order, as explained in section 7.6.2. This information is used by modules and
especially the CC to specify types of movements and patterns.
This phase starts when the button PowerUp is pressed in the simulator, or the
modules are powered up in real life. An example of the results can be seen in picture 8.31.
242
8.3. Simulation tests
Figure 8.31: Conguration check example
Orientation
For certain movements It is important to keep a specic posture. For example, in the
vertical sinusoidal wave movement, if the robot lays down, it is necessary to recover the
position before continue with the vertical sinusoidal move.
In gure 8.32 an example of the performance of the orientation behavior is shown. In
a) it is possible to see that the rst degree of freedom is horizontal. In b) the robot makes
an arc, and consequently in falls down as shown in c). Then it puts back straight, leaving
the rst degree of freedom vertical.
Wandering
Figures 8.34 and 8.33 show an example of the microrobot executing the wandering
behavior. This includes going forward and negotiating an elbow when a bifurcation is
detected by the contact module.
In the rst case (gure 8.34), the micro-robot is composed of one contact and several
rotation modules. The micro-robot goes forward in a snake-like movement (using one of
the DOF). When it reaches the elbow, the micro-robot uses the other DOF of the module
to make the turn.
In the second case (gure 8.33), the micro-robot is composed of the following modules:
one contact, two rotation, one helicoidal, two rotation and one passive. The main drive
force is made by the helicoidal module. The rotation modules help a little bit in going
forward, but their main task is to turn.
Split
If the microrobot is composed of enough modules it may split (at a bifurcation for example)
in order to explore several stretches at the same time.
243
CHAPTER 8. Test and Results
Figure 8.32: Example of orientation behavior
Figure 8.33: Contact, Rotation, Helicoidal and Passive
244
8.3. Simulation tests
Figure 8.34: Contact and rotation modules
245
CHAPTER 8. Test and Results
Figure 8.35: Example of chain splitting
Figure 8.35 shown an example of splitting. In a) the robot is a chain composed of 6
modules. In b) it splits in two parts, and in c) each part composed of three modules moves
as an independent unit.
246
Chapter 9
Conclusions and Future Works
Un libro, como un viaje, se comienza con inquietud y se termina con melancola
(A book, like a journey, begins with concern and ends with melancholy)
Jose de Vasconcelos
9.1 Conclusions
Along the previous chapters a description of the work that has been done designing and
constructing an heterogeneous modular multi-congurable chain-type microrobot has been
given.
Starting from an analysis of the state of the art on modular, pipe inspection and
microrobotic systems, it has been determined a lack of a microrobotic system as the one
described in this thesis. This is the reason that has motivated the start of this thesis.
Several modules have been developed to perform dierent types of movements (some
of them new), and what is more important, a combination of all of them.
A simulator has been developed to go beyond the limits of the mechanical modules and
to develop modules with more capacities and abilities. This simulator has been developed
over a physics dynamic engine (ODE) to maintain the veracity in all the experiments.
The simulator has been tested and validated through comparison with the real modules
tests and some examples have been given. New locomotion gaits have been presented and
explained.
On top of all of this, a behavior-based control architecture specically designed for
heterogenous chain-type modular robots has been developed. While inspired by the phi-
losophy of reactive control, behavior-based systems are fundamentally more expressive and
powerful, enabling representation, planning, and learning capabilities. Distributed behav-
iors are used as the underlying building blocks for these capabilities, allowing behavior-
based systems to take advantage of dynamic interactions with the environment rather
than rely solely on explicit reasoning and planning. As the complexity of robots continues
247
CHAPTER 9. Conclusions and Future Works
to increase, behavior-based principles and their applications in robot architectures and
de- ployed systems evolve as well, demonstrating increasingly higher levels of situated
intelligence and autonomy.
Although the architecture is generally behavior-based, it has also a central control that
is model-based and takes decisions for the whole robot and provides behaviors with useful
information.
In order to control the modules already designed and some other that may come in
the future, a Module Description Language (MDL) has been developed for the modules to
communicate their capabilities (push, rotate, extend, measure temperature, sense proxim-
ity, etc.).
Another important point in the control architecture is the oine genetic algorithm,
that allow the microrobot to optimize the modules layout and its locomotion parameters
for specic tasks.
Finally, some test presenting the results and the feasability of the algorithms have been
included.
9.2 Main contributions of the thesis
This thesis presents the following original contributions:
Electromechanical design and construction of an heterogeneous multi-congurable
chain-type microrobot
The main contribution of this thesis lies in its contribution to the chain-type modular
microrobots with the inclusion of heterogeneous multicongurables modules to achieve
the combination of dierent types of movements. As opposed to the literature reviewed
in chapter 2, where most of the designs are homogeneous, it has been decided to choose a
heterogeneous conguration to allow the inclusion of dierent types of modules.
A common mechanical interface has been designed to physically connect the modules
and to carry the control signals and the power supply to all modules.
An original mechanism has been presented for the extension module v1.
Control architecture for chain-type heterogenous modular robots
The control architecture is itself, an original contribution, because there is no architecture
for this kind of heterogenous robots. One of the most familiar is the CONRO control
based in hormones, but it is designed for homogenous modules, not for heterogenous.
The heterogenous agent placed between the embedded control and the central control
is a contribution. Although it is similar to the medium layer in three layers architectures,
it is new in the sense that it acts as an interpreter between the CC and dierent modules.
Thus the CC can send global commands to all modules and the heterogenous agent will
translate them to the modules.
The Module Description Language (MDL) has been especially designed for this archi-
tecture, allowing modules to send their capabilities to the CC.
248
9.3. Publications and Merits
Several behaviors have been designed, both for the CC and the embedded control. It
is especially new the behaviors related to gait control, since modules can perform several
types of movements.
An oine genetic algorithm has been developed to optimize the conguration of the
layout of the modules and its parameters. It has been integrated with the simulator.
Simulation environment for chain-type heterogenous modular robots
The simulation has been a very important part in the thesis, and although similar de-
velopments can be found (like in [Salemi et al., 2006]), this one presents a very powerful
model of the servomotor model integrated in the physical dynamic simulator based on
ODE. As in previous points, it is unique in the sense that it allows the simulation of the
combination of heterogenous gaits
The electronic and control simulation, together with the fact that the code written in
the simulator for the modules is ready to be transferred to the real microprocessors (with
minor changes) are very important contributions, although not original, and may inspire
future deigns.
A traveled distance measurement system for chain-type heterogenous robots has been
designed (the traveler module) based on the combination of several encoders.
Enhancement of the ego-positioning system
The ego-position concept developed for the I-SWARM robots has been enhanced in order
to use dierent codes (binary, gray) and scales (levels of intensity or grey scales).
Although rst conceived for self detection of the position and rotation, the ego-positioning
system has been enhanced to allow the transmission of commands and the programming
of the robots.
9.3 Publications and Merits
Throughout these years of research, the following publications related to the theses have
been produced.
9.3.1 Publications
Journal Articles
A Proposal for a Multi-Drive Heterogeneous Modular Pipe-Inspection Micro-
robot. Brunete, A.; Torres, J.; Hernando, M. and Gambao, E. (2008). International
Journal of Information Acquisition, Vol.5, Issue 2, pp 111 126
249
CHAPTER 9. Conclusions and Future Works
Book Chapters
Arquitectura para robots modulares multicongurables heterogeneos de tipo
cadena. Brunete, A.; Torres, J.; Hernando, M. and Gambao, E. (2007). Arquitecturas
de control para robots. Escuela Tecnica Superior de Ingenieros Industriales (ETSII), Uni-
versidad Politecnica de Madrid (UPM).pp 151167. ISBN:978-84-7484-196-1.
Conference Proceedings
Multi-Drive Control for In-Pipe Snakelike Heterogeneous Modular Micro-
Robots. Brunete, A.; Torres, J.; Hernando, M. and Gambao, E. (2007). Proceedings of
the 2007 IEEE International Conference on Robotics and Biomimetics (ROBIO 2007).
A 2 DoF Servomotor-based Module for Pipe Inspection Modular Micro-
robots. Brunete, A.; Torres, J.; Hernando, M. and Gambao, E. (2006). Proceedings of
the 2006 IEEE International Conference on Intelligent Robots and Systems (IROS).
Solar Powering with Integrated Global Positioning System for mm3 Size
Robots. Boletis, A.; Brunete, A.; Driesen, W. and Breguet, J. M. (2006). Proceedings
of the 2005 IEEE International Conference on Intelligent Robots and Systems (IROS).
Multicongurable Inspection Robots for Low Diameter Canalizations.
Gambao, E.; Brunete, A. and Hernando, M. (2005). International Symposium on Au-
tomation and Robotics in Construction (ISARC).
Modular Multicongurable Architecture for Low Diameter Pipe Inspec-
tion Microrobots. Brunete, A.; Hernando, M. and Gambao, E. (2005) Proceedings of
the 2005 IEEE International Conference on Robotics and Automation (ICRA).
Drive Modules for Pipe Inspection Microrobots. Brunete, A.; Hernando,
M. and Gambao, E. (2004) Proceedings of the 2004 IEEE International Conference on
Mechatronics and Robotics (MECHROB), pp. 925 - 930.
Conference Video Proceedings
Drive Modules for Low Diameter Pipe Inspection Multicongurable Micro-
robots. Brunete, A.; Hernando, M. and Gambao, E. (2006). Video Proceedings of the
2006 IEEE International Conference on Robotics and Automation (ICRA)
250
9.4. Future Work
Conference Poster Sessions
Drive Modules for Low Diameter Pipe Inspection Multicongurable Micro-
robots. Brunete, A.; Hernando, M. and Gambao, E. (2006). Proceedings of the 2006
IEEE International Conference on Robotics and Automation (ICRA)(Poster)
9.3.2 Merits
Nominations to best paper in a conference
Multi-Drive Control for In-Pipe Snakelike Heterogeneous Modular Micro-
Robots. Brunete, A.; Torres, J.; Hernando, M. and Gambao, E. (2007). Proceedings of
the 2007 IEEE International Conference on Robotics and Biomimetics (ROBIO 2007).
Campus de Excelencia
Elected for participacipation in the 2005 Campus de Excelencia, by the ANECA (Agencia
Nacional de Evaluacion de la Calidad y Acreditacion), based on the thesis interests and
merits.
http://www.campusdeexcelencia.info/index.php
9.4 Future Work
Several ideas that will be researched in the future are:
Embedding of the Central Control in a specic module
In stead of having the central control in a PC, it can be embedded in a specic module
with a more powerful processor.
Development of new modules
Some ideas regarding new modules are already being considered:
Centipede: legs can be simulated with piezoelectric actuators (i.e. I-Swarw) or
similar to [Valdastri et al., 2009]
Module with two drive wheels (especially for open spaces)
Newer versions of the modules more robust
Construction of the modules traveler and sensor
251
CHAPTER 9. Conclusions and Future Works
Learning of new rules by the Central Control based on the experience acquired
The design of the central control and its inference engine leads in the future to include
learning algorithms to develop new rules online, i.e. while the robot is moving and not in
the simulation (oine).
Coordination between several microrobots
Moving a little bit into the swarm robotics, and interesting line of research would be to
have several microrobots to explore the environment and the way they coordinate to share
tasks out.
Split and rejoining tasks would be of a lot of interest for those purposes.
Visual control
The inclusion of visual control would give the camera module another very interesting
sensorial capability to auto-detect obstacles.
252
Appendix A
Fabrication technologies
A.1 Stereolithography
The stereolithography process was rst developed in the eld of rapid prototyping, which
was capable of generating physical parts with features and renements that made it at-
tractive and useful as an aid in the development of new products. The generation system
discussed here was patented in 1986 by the company 3Dsystem.
Basically the system relies on the possibility for certain resins, especially designed for
it, to solidify when attacked by a laser beam of very specic frequency and power.
As usual in the various rapid prototyping techniques currently existing, aimed at the
generation of physical parts, these parts are made by horizontal laminated of theoretical
geometry made by 3D design software. Together, all of them should lead to the desired
piece. The starting point in all cases is a le in STL format.
A.1.1 Part generation mechanics
The work area consists of a vat containing liquid resin, an elevation plate in which the
support for the parts and the parts themselves are generated, a stabilizing bar, the laser
transmitter and a set of mirrors that enable to project the laser beam precisely on the top
sheet of the resin tray where it draws the outline of the dierent horizontal slices of the
part, as well as the inner padding.
The tray that supports the columns (required for the overhangs of the part not to
collapse at the bottom of the tray) and the part, get down in the resin, immersing the
whole set a distance of typically 0.15mm, which denes the layer hop of the part to
generate. To avoid surface deformations to the top layer that could be caused due to
surface tension of the liquid resin, a stabilizing bar that will ensure a completely at and
smooth surface is moved over the surface.
At this point, the laser beam is directed by the mirrors to the surface of the resin,
drawing the outline and the inner padding to be solidied. This process will be more
or less hardworking in terms of the total area that the laser has to cover. It may be
necessary to stop the process a few seconds to ensure that all resin attacked by the beam
253
CHAPTER A. Fabrication technologies
(a) General description (b) Laser
Figure A.1: Stereolithography process
Figure A.2: Support columns removal
is suciently solidied.
If there are new layers to do, the tray would submerge again a new layer hop and
repeat the process until the end of the upper bound of the piece. (Note that the geometry
is generated from bottom to top)
Once the last layer of the piece is done, the tray rises, so it can be easily removed. At
this point the support columns are mechanically removed in order to leave the part clean.
As a nal process, a post-cured of the part is performed in a light furnace in order to cure
the resin to achieve better mechanical properties.
A.1.2 Images from real work process
Through this sequence of photos, some of the most important stages in the process of
generating stereolithography parts are illustrated.
In the rst photograph, made at the beginning of a work tray, it is shown the path
the laser performs to generate the support columns that will support the various parts.
In this case the beam does not sweep the inner of the outlines, because it is intended to
254
A.1. Stereolithography
Figure A.3: Laser trajectory
get a fragile support that is easy to remove later.
In the second picture, the solidication process of the resin has been nalized and
therefore the tray is located in its uppermost position to proceed with removal.
In the next image it is shown the column removal process, in order to release the parts.
They have to be scrupulously cleaned to remove any residue that may contain liquid resin.
Finally, in the following pictures, it is shown the post-curing furnace and the parts
inside it.
A.1.3 Advantages, drawbacks and limitations
It may be noted as advantages:
1. It is one of the rapid prototyping techniques more accurate from a dimensional point
of view, making it particularly suitable for parts in which this feature has a special
relevance. As a rule, it is generally considered a good technique to apply in small
parts with many details.
2. The parts obtained are pleasant to touch and sight, can be polished and/or paint
with ease, resulting in excellent surface nishes. They are therefore very suitable to
be used as models, in the case of wanting to subsequently create silicone molds and
then make vacuum casting in materials with similar characteristics to the nal ones.
3. The nal material is translucent, making it likely to be particularly suitable for
certain sets where you want to appreciate (or at least imply), internal interferences.
And as drawbacks it can be pointed out that, although progress has being made in
the development of new photosensitive resins with better mechanical properties, the most
255
CHAPTER A. Fabrication technologies
Figure A.4: Solidication process
Figure A.5: Post-cure oven
commonly used are fragile and inexible, and once cured, the parts are very sensitive to
both humidity (including the atmosphere) and temperature. These two parameters may
easily cause the lost of their mechanical characteristics and suer dimensional changes
over time.
As limitations it is possible to say:
1. The work process of stereolithography causes the dierent layers of the solidied
part to require support columns to avoid collapsing and nishing at the bottom of
the tray. These columns should be generated in parts of the part it would be easy to
extract from, so that the orientation of the piece in the tray cannot be free. If this is
not taken into account, geometries that are aected by interior columns that cannot
be removed and that make it partially or completely lose their usefulness might have
been generated.
256
A.2. Micro-milling
Figure A.6: Detail of some parts of the rotation module v1
2. Within the working area of the tray it is possible to place dierent pieces, but always
at the same level. It is not possible, or at least appropriate, try to nest parts on
each other.
3. Although the level of detail is established by the precision set by the layer hop (which
allows for extrusions or indentations on the surfaces), generally is not desirable to
make wall thicknesses below 1 mm because of the fragility of the material. In extreme
cases, depending on the size of the potential overhang, it is possible to obtain vertical
walls of 0.6 mm and horizontal of 0.8 mm thickness.
A.2 Micro-milling
Micro-milling is a process that becomes more important as sectors such as medicine,
telecommunications, and aerospace demand parts increasingly smaller. Unlike what hap-
pens with conventional milling, in micro-milling there is a lack of recommendations for
process operation and cutting conditions selection. One of the tasks in which a lot of
research is being done is the development of recommendations obtained by several pro-
cedures based on empirical methods, or contrasted with those provided by the limited
literature in this eld. Most of the work carried out in this area comes from extrapolat-
257
CHAPTER A. Fabrication technologies
Figure A.7: Micro-milling system
Figure A.8: Fixation System
ing the knowledge gained in conventional and high speed milling, with the use of very
small diameter tools on small pieces, as well as dening the needs of measurement and
verication procedures in this type of parts.
The micro-milling imposes restrictions on the machines and tooling used:
1. The machines should be equipped with high speed cutting spindles to reach the
appropriate cutting speed with the small dimension tools used.
2. Due to the small part dimensions, it is required a very accurate axis positioning.
3. The fastening of the part is a new challenge to be solved, given the lack of fastening
systems adapted to the new sizes similar to the conventional ones.
The achievable dimensional characteristics will be limited by the minimum size of the
available tool. In known commercial tools (named sintering carbide microgram), those
dimensions are on the order of 20 m.
258
A.2. Micro-milling
Figure A.9: Contouring machining
The system developed in the manufacturing division of the Department of Mechanical
and Manufacturing Engineering of the ETSII of Madrid, in the framework of its project
INDUS-MST to perform micro-milling process, consists of a diabase bed with a full spec-
ication of 1 m, which supports units designed to achieve a displacement of less than
1m repeatability in each axis. The units of displacement have been mounted with a
specication of perpendicularity 50rad.
One of the great advantages of using this manufacturing process is that you can get
steel parts much stronger than the pieces obtained by stereolithography. The precision
obtained is very high. In some trials have been achieved walls as thin as 25 m.
The drawbacks that can be pointed out are the formation of burrs (dicult to elim-
inate), the need to use dierent tools depending on the material in which you want to
machine and the precision required, and the high cost of micro-milling tool.
The main limitations are that the parts generated by micro-milling should be relatively
simple geometric parts. Comparing this method with stereolithography, the result is that
in the latter there is more freedom when designing parts. In this project micro-machining
has been used mainly in the manufacture of axles and wheels.
The dimensional quality of the parts is closely related to the machining material, as
well as the supercial nished on which there is also a determining inuence of the feed
rate used.
There are applications that are complicated to conduct due to the diculty in holding
the piece in the micro-milling system. Especially during the experiments several parts
have been broken while trying to machine them.
259
CHAPTER A. Fabrication technologies
Figure A.10: Helicoidal module leg generated by micromachining
260
Appendix B
Terms and Concepts
Robustness
The ability to handle imperfect inputs, unexpected events and sudden malfunctions.
Reliability
The ability to operate without failures or performance degradation over a certain period.
Modularity
The ability of control system of autonomous vehicles to be divided into smaller subsystems
(or modules) that can be separately and incrementally designed, implemented, debugged
and maintained.
Flexibility
Experimental robotics require continuous changes in the design during the implementation
phase. Therefore, exible control structures are required to allow the design to be guided
by the success or failure of the individual elements.
Expandability
A long time is required to design, build and test the individual components of a robot.
Therefore, an expandable architecture is desirable in order to be able to build the system
incrementally.
Adaptability
As the state of the world changes very rapidly and unpredictably, the control system must
be adaptable in order to switch smoothly and rapidly between dierent control strategies.
261
CHAPTER B. Terms and Concepts
Classication of Modular Robots
Modular robotic systems can be generally classied into several architectural groups by
the geometric arrangement of their unit (lattice vs. chain). Several systems exhibit hybrid
properties.
Lattice architectures have units that are arranged and connected in some regular,
space-lling three-dimensional pattern, such as a cubical or hexagonal grid. Con-
trol and motion are executed in parallel. Lattice architectures usually oer simpler
computational representation that can be more easily scaled to complex systems.
Chain/tree architectures have units that are connected together in a string or tree
topology. This chain or tree can fold up to become space lling, but underlying
architecture is serial. Chain architectures can reach any point in space, and are
therefore more versatile but more computationally dicult to represent and analyze.
Tree architectures may resemble a bush robot
Modularity and Recongurability
Modularity is a general systems concept, typically dened as a continuum describing the
degree to which a system components may be separated and recombined. It refers to both
the tightness of coupling between components, and the degree to which the rules of the
system architecture enable (or prohibit) the mixing and matching of components.
Modular robots are composed of dierent copies of simple modules. Modules cant
do much by themselves, but when many of them are connected together, a system that
can do complicated things appears. In fact, a modular robot can even be recongured in
dierent ways to meet the demands of dierent tasks or dierent working environments.
Each module is virtually a robot in itself having a computer, a motor, sensors and the
ability to attach to other modules.
Multicongurability vs self-recongurability
Recongurable robots present the ability to change its conguration either manually or
autonomously. If the reconguration is done autonomously, it is called self-reconguration.
On the other hand, if the reconguration has to be done manually, we talk about multi-
conguration. Modules attach together to form chains (which can be used like an arm, a
leg or a nger), caterpillar, double-thread caterpillar, wheel, 4/6 leg walker, sidewinder,
spider, etc.
In the development of inpipe robots, autocongurability is not an essential charac-
teristic due to the lack of space inside the tube to change conguration. It is better
to talk about multiconguration: the robot presents dierent congurations prior task
development. Once the task is started, the conguration must be kept.
Homogeneous vs Heterogeneous modules
Depending on the type of modules that the robot is compound of, the robot can be
classied in homogeneous (all the modules are the same) and heterogeneous (dierent
262
modules). Modular robots can be dened as in [Yim et al., 2001] as a n-modular robots,
being n the number of dierent modules. The main advantage of homogeneous robots
is that they are easy to build. On the contrary they are limited in the movement gaits.
Heterogeneous robots are more versatile and can perform other tasks and several movement
gaits.
Miniaturization
The term microrobot appears nowadays in many articles referring to mini-robots, robots
of very small dimensions (millimeters). This is because we are still far from seeing a
real micro robot (m). Keeping in mind that for most of the researches it is not pos-
sible to build a real microrobot, it is necessary to miniaturize its components and to
make the mechanical and electronic design together to minimize the space (mechatronics).
This work is what has been carried out, and it is what makes the design so expensive.
Miniaturization can be seen in many microrobots too, as in the microrobot of DENSO
Corporation [Nishikawa et al., 1999], the Micro Modular Robot of AIST [Yoshida et al.,
2002], and the three microrobots of the French CNRS: LMS, LAB and LAI [Anthierens
et al., 2000]. SMAs are extensively used in microrobots because they give a good torque in
small displacements. It is used for example in the former robots. Polybot and M-TRAN
use shape memory alloy as latches and docking of modules together with infrared emitters
and detectors aid. SMAs could be very useful too for grippers and connecting pads. The
main disadvantage is the great power consumption.
Energy supply
Energy supply is a big problem in mobile microrobots because the available supplied
power is very limited. Most of developers adopt batteries or cable as the solution to
transfer power supply to the robot. In autonomous micro-robots the solution is limited
to onboard batteries. A very innovative solution is presented by DENSO Corporation,
which has solved this problem in its Microrobot [Nishikawa et al., 1999] by developing a
wireless energy supply system (together with a low power consumed actuator, high ecient
energy conversion device and power management system). The microrobot functions as a
complete wireless link system traveling in small pipes at 10mm per second with wireless
data communication of 2.5Mbps and wireless energy supply of 480mW. It includes devices
such as CCD camera, locomotive actuator, control circuit, wireless energy supply device,
and RF circuit installed into a small body of 10mm diameter and 50mm length. To send
energy through radio frequency is a very interesting solution but it is limited to low power
devices.
Centralized vs Distributed control
Generally most of the robots use centralized control: one agent (PC, one of the modules)
tells every module what it has to do in every moment. A distributed system is a collection
of (probably heterogeneous) automata whose distribution is transparent to the user so
that the system appears as one local machine. It is possible to consider the microrobot as
a distributed system, in which every module do their job but it looks like a whole entity
263
CHAPTER B. Terms and Concepts
to an external observer. This is the case of M-TRAN: the robot motion is controlled by
all the modules CPUs. Either if it is a PC (as it is now) or one of the modules (in the
future), a great intelligence centralized control makes the control much more powerful and
easy to implement.
Statically Stable Locomotion
Locomotion is dened to be the act or power of moving from place to place. Statically
stable locomotion has the added constraint that the moving body be stable at all times.
In other words, if the body were to instantaneously stop all motion, the body would still
be standing. More specically, the vertical projection of the center of gravity will be
contained within the convex hull of the bodys points of contact with the ground at all
times.
Gaits
A gait is dened to be one cycle of a repeated pattern of motion that is used to move from
one place to another. Simple gaits are those which cannot be broken down into separate
gaits. This is as opposed to compound gaits which are combinations of simple gaits. One
example of two simple gaits being combined into a compound gait is a (1) person walking,
(2) a small toy 4-wheeled car, (1+2) a person roller skating.
Servomotors
Servomotors are a special type of motor characterized by their ability to position imme-
diately in any position within its operating range.
Servos are composed of an electric motor mechanically linked to a potentiometer.
Pulse-width modulation (PWM) signals sent to the servo are translated into position com-
mands by electronics inside the servo. When the servo is commanded to rotate, the motor
is powered until the potentiometer reaches the value corresponding to the commanded
position.
Due to their aordability, reliability, and simplicity of control by microprocessors, RC
servos are often used in small-scale robotics applications.
The servo is controlled by three wires: ground (usually black/orange), power (red) and
control (brown/other color). This wiring sequence is not true for all servos, for example the
S03NXF Std. Servo is wired as brown (negative), red (positive) and orange (signal). The
servo will move based on the pulses sent over the control wire, which set the angle of the
actuator arm. The servo expects a pulse every 20 ms in order to gain correct information
about the angle. The width of the servo pulse dictates the range of the servos angular
motion.
A servo pulse of 1.5 ms width will set the servo to its neutral position, or 90
. For
example a servo pulse of 1.25 ms could set the servo to 0
. The physical limits and timings of the servo hardware varies between
brands and models, but a general servos angular motion will travel somewhere in the
range of 180
- 210
ED
ERALE DE LAUSANNE.
[Chen, 1994] Chen, M. (1994). Theory and Applications of Modular Recongurable Robotic
Systems. PhD thesis, Division of Engineering and Applied Science, California Institute
of Technology, Pasadena, CA, USA.
[Chirikjian, 1994] Chirikjian, G. S. (1994). Kinematics of a metamorphic robotic system.
In Proceedings of the 1994 IEEE International Conference on Robotics and Automation,
pages 449455.
[Conradt and Varshavskaya, 2003] Conradt, J. and Varshavskaya, P. (2003). Distributed
central pattern generator control for a serpentine robot. In Proceedings of the Interna-
tional Conference on Articial Neural Networks (ICANN), pages 338 341, Istanbul,
Turkey.
[Cox and Wilfong, 1990] Cox, I. J. and Wilfong, G. T. (1990). The stanford cart and the
cmu rover. Autonomous Robot Vehicles, 1:407419.
[Dardari and Conti, 2004] Dardari, D. and Conti, A. (2004). A sub-optimal hierarchical
maximum likelihood algorithm for collaborative localization in ad-hoc networks. In
First Annual IEEE Communications Society Conference on Sensor and Ad Hoc Com-
munications and Networks, pages 425 429.
[Darrell et al., 1998] Darrell, T., Gordon, G., Harville, M., and Woodll, J. (1998). Inte-
grated person tracking using stereo, color, and pattern detection. In Proceedings of the
Conference on Computer Vistion and Pattern Recognition, pages 601 609.
[del Monte Garrido, 2004] del Monte Garrido, S. (2004). Dise no y construccion del modulo
tractor de un microrobot para inspeccion de tuberias. Masters thesis, E.T.S.I.I. - UPM.
[Denavit and Hartenberg, 1955] Denavit, J. and Hartenberg, R. (1955). A kinematic no-
tation for lower-pair mechanisms based on matrices. Transactions of the ASME Journal
of Applied Mechanisms, 23:215221.
[Eltaher et al., 2005] Eltaher, A., Ghalayini, I., and Kaiser, T. (2005). Towards uwb self-
positioning systems for indoor environments based on electric eld polarization, signal
strength and multiple antennas 5-7 sept. 2005 page(s):. In 2nd International Symposium
on Wireless Communication Systems, pages 389 393.
[Flynn, 1987] Flynn, A. M. (1987). Gnat robots (and how they will change robotics. In
Proceedings of the IEEE Micro Robots and Teleoperators Workshop, Hyannis, MA.
276
BIBLIOGRAPHY
[Fukuda and Kawauchi, 1990] Fukuda, T. and Kawauchi, Y. (1990). Cellular robotic sys-
tem(cebot) as one of the realization of self-organizing intelligent universal manipulator.
In Proceedings of the 1990 IEEE International Conference on Robotics and Automation,
pages 662667.
[Gat, 1992] Gat, E. (1992). Integrating planning and reacting in a heterogeneous asyn-
chronous architecture for controlling real-world mobile robots. In Proceedings of the
National Conference on Articial Intelligence (AAAI), pages 809815.
[Gonzalez et al., 2006] Gonzalez, J., Zhang, H., Boemo, E., and Zhang, J. (2006). Locomo-
tion of a modular robot with eight pitch-yaw-connecting modules. In 9th International
Conference on Climbing and Walking Robots.
[Gray and Lissmann, 1950] Gray, J. and Lissmann, H. (1950). The kinetics of locomotion
of the grass-snake. J. Exp. Biology, 26:354 367.
[Hada and Takase, 2001] Hada, Y. and Takase, K. (2001). Multiple mobile robot naviga-
tion using the indoor global positioning system (igps). In Proceedings. 2001 IEEE/RSJ
International Conference on Intelligent Robots and Systems, volume 2, pages 1005
1010.
[Haeberlen et al., 2004] Haeberlen, A., Flannery, E., Ladd, A. M., Rudys, A., Wallach,
D. S., and Kavraki, L. E. (2004). Practical robust localization over large-scale 802.11
wireless networks. In Proceedings of the Tenth ACM International Conference on Mobile
Computing and Networking (MOBICOM04).
[Hamlin and Sanderson, 1996] Hamlin, G. J. and Sanderson, A. C. (1996). Tetrobot mod-
ular robotics: prototype and experiments. In Proceedings of the 1996 IEEE International
Conference on Intelligent Robots and Systems, volume 2, pages 390395.
[Hernandez et al., 2003] Hernandez, S., Morales, C., Torres, J., and Acosta, L. (2003).
A new localization system for autonomous robots. In Proceedings. ICRA 03. IEEE
International Conference on Robotics and Automation, volume 2, pages 1588 1593.
[Hightower and Boriello, 2001] Hightower, J. and Boriello, G. (2001). Localization sys-
tems for ubiquitous computing. IEEE Computer, 34(8):5766.
[Hightower et al., 2000] Hightower, J., Want, R., and Borriello, G. (2000). Spoton: An
indoor 3d location sensing technology based on rf signal strength. Technical Report
2000-02-02, University of Washington, Computer Science and Engineering.
[Hirose, 1993] Hirose, S. (1993). Biologically Inspired Robots: Snake-Like Locomotors and
Manipulators. Oxford University Press, New York, USA.
[Hirose et al., 1999] Hirose, S., Ohno, H., Mitsui, T., and Suyama, K. (1999). Design
of in-pipe inspection vehicles for 25, 50, 150mm pipes. In Proceedings. 1999 IEEE
International Conference on Robotics and Automation, volume 3, pages 2309 2314.
[Horodinca et al., 2002] Horodinca, M., Doroftei, I., Mignon, E., and Preumont, A.
(2002). A simple architecture for in-pipe inspection robots. In International Collo-
quium on Mobile and Autonomous Systems, Magdeburd.
277
BIBLIOGRAPHY
[Ikuta et al., 1988] Ikuta, K., Tsukamoto, M., and Hirose, S. (1988). Shape memory
alloy servo actuator system with electric resistance feedback and application for active
endoscope. In Robotics and Automation, 1988. Proceedings., 1988 IEEE International
Conference on, pages 427430 vol.1.
[Inou et al., 2003] Inou, N., Minami, K., and Koseki, M. (2003). Group robots forming a
mechanical structure. In Proceedings 2003 IEEE International Symposium on Compu-
tational Intelligence in Robotics and Automation, Kobe, Japan.
[Jantapremjit and Austin, 2001] Jantapremjit, P. and Austin, D. (2001). Design of a mod-
ular self-recongurable robot. In Australian Conference on Robotics and Automation.
[Jorgensen et al., 2004] Jorgensen, M., Ostergaard, E., and Lund, H. (2004). Modular
atron: Modules for a self-recongurable robot. In Proceedings of the 2004 IEEE/RSJ
International Conference on Intelligent Robots and Systems, Japan.
[Kamimura et al., 2003] Kamimura, A., Kurokawa, H., Toshida, E., Tomita, K., Murata,
S., and Kokaji, S. (2003). Automatic locomotion pattern generation for modular robots.
In IEEE International Conference on Robotics and Automation, 2003. Proceedings.
ICRA 03., volume 1, pages 714 720.
[Kamimura et al., 2004] Kamimura, A., Kurokawa, H., Yoshida, E., Tomita, K., Kokaji,
S., and Murata, S. (2004). Distributed adaptive locomotion by a modular robotic
system, m-tran ii. In Proceedings of IEEE/RSJ International conference on Intelligent
Robots and Systems, pages 23702377.
[Kawahara et al., 1999] Kawahara, N., Shibata, T., and Sasaya, T. (1999). In-pipe wireless
microrobot. Proc SPIE, Microrobotics and Microassembly, 3834:166171.
[Khatib, 1986] Khatib, O. (1986). Real-time obstacle avoidance for manipulators and
mobile robots. The International Journal of Robotics Research, 5:90 98.
[Kim et al., 2002] Kim, B., Jeong, Y., Lim, H., Kim, T. S., Park, J., Dario, P., Menci-
assi, A., and Choi, H. (2002). Smart colonoscope system. In Proceedings of the 2002
IEEE/RSJ Int. Conf. on Intelligent Robots and Systems.
[Klaassen and Paap, 1999] Klaassen, B. and Paap, K. (1999). Gmd-snake2: a snake-like
robot driven by wheels and a method for motion control. In Proceedings of the 1999
IEEE International Conference on Robotics and Automation, volume 4, pages 3014
3019.
[Konolige et al., 1997] Konolige, K., Myers, K., Ruspini, E., and Saotti, A. (1997). The
saphira architecture: A design for autonomy. Journal of Experimental and Theoretical
Articial Intelligence, 9:215235.
[Kosecka and Bajsy, 1993] Kosecka, J. and Bajsy, R. (1993). Discrete event systems for
autonomous mobile agents. In Proceedings of the Intelligent Robotic Systems Conference,
pages 21 31.
[Kotay and Rus, 2005] Kotay, K. and Rus, D. (2005). Ecient locomotion for a self-
reconguring robot. In Proc. of IEEE Intl. Conf. on Robotics and Automation,
Barcelona, Spain.
278
BIBLIOGRAPHY
[Kotay et al., 1998] Kotay, K., Rus, D., Vona, M., and McGray, C. (1998). The self-
reconguring robotic molecule. In Proceedings of the 1998 IEEE International Confer-
ence on Robotics and Automation, pages 424431.
[Kristensen, 1997] Kristensen, S. (1997). Sensor planning with bayesian decision theory.
Robotics and Autonomous Systems, 19:273286.
[Krumm et al., 2000] Krumm, J., Harris, S., Meyers, B., Brumitt, B., Hale, M., and
Shafer, S. (2000). Multi-camera multi-person tracking for easy living. In Third IEEE
International Workshop on Visual Surveillance, pages 3 10. IEEE Press, Piscataway,
N.J.
[Kurokawa et al., 2003] Kurokawa, H., Kamimura, A., Yoshida, E., Tomita, K., Kokaji,
S., and Murata, S. (2003). M-tran ii: metamorphosis from a four-legged walker to a
caterpillar. In Proceedings of the 2003 IEEE/RSJ International Conference on Intelli-
gent Robots and Systems, 2003, volume 3, pages 2454 2459.
[Kurokawa et al., 2005] Kurokawa, H., Tomita, K., Kamimura, A., Yoshida, E., Kokaji,
S., and Murata, S. (2005). Distributed self-reconguration control of modular robot
m-tran. In IEEE International Conference on Mechatronics and Automation, volume 1,
pages 254 259.
[Ladd et al., 2004] Ladd, A., Bekris, K., Rudys, A. P., Wallach, D., and Kavraki, L.
(2004). On the feasibility of using wireless ethernet for indoor localization. IEEE
Transactions on Robotics and Automation, 20:555 559.
[Le nero, 2004] Le nero, M. (2004). Sistema de control para robot de inspeccion de tuberas.
Masters thesis, E.T.S.I.I. - UPM.
[Lissmann, 1950] Lissmann, H. (1950). Rectilinear locomotion in a snake (boa occiden-
talis). J. Exp. Biol, 26:368 379.
[Maeda et al., 1996] Maeda, S., Abe, K., Yamamoto, K., Tohyama, O., and Ito, H. (1996).
Active endoscope with sma (shape memory alloy) coil springs. In Micro Electro Me-
chanical Systems, 1996, MEMS 96, Proceedings. An Investigation of Micro Structures,
Sensors, Actuators, Machines and Systems. IEEE, The Ninth Annual International
Workshop on, pages 290295.
[Maes, 1990] Maes, P. (1990). Situated agents can have goals. In Maes, P., editor, De-
signing Autonomous Agents, pages 4970. MIT Press.
[Mataric, 1994] Mataric, M. J. (1994). Interaction and Intelligent Behavior. PhD thesis,
Massachissetts Institute of Technology (MIT).
[McCarthy, 1958] McCarthy, J. (1958). Programs with common sense. In Proceedings of
the Symposium on the Mechanization of Thought Processes, National Physical Labora-
tory, Teddington, England. H. M. Stationery Oce.
[McCarthy, 1960] McCarthy, J. (1960). Recursive functions of symbolic expressions and
their computation by machine, part i. Commun. ACM, 3(4):184195.
[Murata and Kurokawa, 2007] Murata, S. and Kurokawa, H. (2007). Self-recongurable
robots. Robotics & Automation Magazine, IEEE, 14(1):7178.
279
BIBLIOGRAPHY
[Murata et al., 1998] Murata, S., Kurokawa, H., Yoshida, E., Tomita, K., and Kokaji, S.
(1998). A 3-d self-recongurable structure. In Proceedings of the 1998 IEEE Interna-
tional Conference on Robotics and Automation, pages 432439.
[Murata et al., 2002] Murata, S., Yoshida, E., Kamimura, A., Kurokawa, H., Tomita,
K., and Kokaji, S. (2002). M-tran: self-recongurable modular robotic system. In
Proceedings of the IEEE/ASME Transactions on Mechatronics, volume 7.
[Nishikawa et al., 1999] Nishikawa, H., Sasaya, T., Shibata, T., Kaneko, T., Mitumoto, N.,
Kawakita, S., and Kawahara, N. (1999). In-pipe wireless micro locomotive system. In
Micromechatronics and Human Science, Proceedings of 1999 International Symposium
on, pages 141147, Japan.
[Orr and Abowd, 2000] Orr, R. and Abowd, G. (2000). The smart oor: A mechanism
for natural user identication and tracking. In Proceedings of the 2000 Conference on
Human Factors in Computing Systems. ACM Press, New York.
[Ostergaard and Lund, 2003] Ostergaard, E. H. and Lund, H. H. (2003). Evolving control
for modular robotic units. In Proceedings. 2003 IEEE International Symposium on
Computational Intelligence in Robotics and Automation, 2003., volume 2, pages 886
892.
[Paperno et al., 2001] Paperno, E., Sasada, I., and Leonovich, E. (2001). A new method
for magnetic position and orientation tracking. IEEE Transactions on Magnetics,
37:1938 1940.
[Peirs et al., 2001] Peirs, J., Reynaerts, D., and Brussel, H. V. (2001). A miniature manip-
ulator for integration in a self-propelling endoscope. Sensors and Actuators A, 92:343
349.
[Pirjanian, 1999] Pirjanian, P. (1999). Behaviour coordination mechanisms. Technical
report, University of Southern California.
[Pirjanian et al., 2001] Pirjanian, P., Huntsberger, T., , and Schenker, P. (2001). De-
velopment of campout and its further applications to planetary rover operations: A
multirobot control architecture. In In Proc. SPIE Sensor Fusion and Decentralized
Control in Robotic Systems.
[Pirjanian et al., 2000] Pirjanian, P., Huntsberger, T. L., Trebi-Ollennu, A., Aghazarian,
H., Das, H., Joshi, S. S., and Schenker, P. S. (2000). CAMPOUT: a control architecture
for multirobot planetary outposts. In Proceedings of SPIE, pages 221230.
[Priyantha et al., 2000] Priyantha, N., Chakraborty, A., and Balakrishnan, H. (2000). The
cricket location-support system. In Proceedings of the 6th International Conference on
Mobile Computing and Networking, pages 32 43. ACM Press, New York.
[Raab et al., 1979] Raab, F., Blood, E., Steiner, T., and Jones, H. (1979). Magnetic posi-
tion and orientation tracking system. IEEE Transactions on Aerospace and Electronic
Systems, AES-15(5):709717.
[Roh and Choi, 2004] Roh, S. and Choi, H. (2004). Dierential-drive in-pipe robot for
moving inside urban gas pipelines. IEEE Transactions on Robotics.
280
BIBLIOGRAPHY
[Roh et al., 2008] Roh, S., Choi, H., Lee, J., Kim, D., and Moon, H. (2008). Modularized
in-pipe robot capable of selective navigation inside of pipelines. In Proceedings of the
2008 IEEE International Conference on Intelligent Robots and Systems.
[Rosenblatt, 1995] Rosenblatt, J. K. (1995). Damn: A distributed architecture for mobile
navigation. In AAAI Spring Symposium on Lessons Learned from Implemented Software
Architectures for Physical Agents, MEnlo Park, CA. AAAI Press.
[Rus and Vona, 2000] Rus, D. and Vona, M. (2000). A physical implementation of the
self-reconguring crystalline robot. In IEEE International Conference on Robotics and
Automation, pages 17261733.
[Salemi et al., 2006] Salemi, B., Moll, M., and Shen, W.-M. (2006). Superbot: A deploy-
able, multi-functional, and modular self-recongurable robotic system. In Intelligent
Robots and Systems, 2006 IEEE/RSJ International Conference on, pages 36363641.
[Salemi et al., 2004] Salemi, B., Will, P., and Shen, W.-M. (2004). Autonomous discovery
and functional response to topology change in self-recongurable robots. In Intelligent
Robots and Systems, 2004. (IROS 2004). Proceedings. 2004 IEEE/RSJ International
Conference on, volume 3, pages 26672672 vol.3.
[Santos, 2007] Santos, L. (2007). Dise no y construccion de un micro-robot modular mul-
ticongurable. Masters thesis, E.T.S.I.I. - UPM.
[Sato et al., 2002] Sato, M., Fukaya, M., and Iwasaki, T. (2002). Serpentine locomotion
with robotic snakes. Control Systems Magazine, IEEE, 22:64 81.
[Schonherr and Hertzberg, 2002] Schonherr, F. and Hertzberg, J. (2002). The dd&p robot
control architecture (a preliminary report). In Revised Papers from the International
Seminar on Advances in Plan-Based Control of Robotic Agents,, pages 249269, London,
UK. Springer-Verlag.
[Sciavicco and Siciliano, 1996] Sciavicco, L. and Siciliano, B. (1996). Modelling and Con-
trol of Robot Manipulators. McGraw-Hill.
[Serrano et al., 2004] Serrano, O., J.M.Ca nas, Matellan, V., and Rodero, L. (2004). Robot
localization using wi signal without intensity map. In Proceedings of V Workshop de
Agentes Fsicos, Universitat de Girona,.
[Shen et al., 2000] Shen, W.-M., Lu, Y., and Will, P. (2000). Hormone-based control
for self-recongurable robots. In Proceedings of the International Conference on Au-
tonomous Agents, Barcelona, Spain.
[Shen et al., 2002] Shen, W.-M., Salemi, B., and Will, P. (2002). Hormone-inspired adap-
tive communication and distributed control for CONRO self-recongurable robots. EEE
Transactions on Robotics and Automation, 18(5):700712.
[Shibata et al., 2001] Shibata, T., Sasaya, T., and Kawahara, N. (2001). Development of
in-pipe microrobot using microwave energy transmission. Electronics and Communica-
tions in Japan (Part II: Electronics), 84:1 8.
281
BIBLIOGRAPHY
[Suh et al., 2002] Suh, J., Homans, S., and Yim, M. (2002). Telecubes: mechanical de-
sign of a module for self-recongurable robotics. In IEEE International Conference on
Robotics and Automation, volume 4, pages 40954101.
[Suzuki et al., 2006] Suzuki, Y., Inou, N., Kimura, H., and Koseki, M. (2006). Recong-
urable group robots adaptively transforming a mechanical structure (crawl motion and
adaptive transformation with new algorithms). In Proceedings of the 2006 IEEE/RSJ
International Conference on Intelligent Robots and Systems, pages 22002205.
[Suzuki et al., 2007] Suzuki, Y., Inou, N., Kimura, H., and Koseki, M. (2007). Recong-
urable group robots adaptively transforming a mechanical structure (numerical expres-
sion of criteria for structural transformation and automatic motion planning method).
In Proceedings of the 2007 IEEE/RSJ International Conference on Intelligent Robots
and Systems, pages 23612367.
[Tomita et al., 1999] Tomita, K., Murata, S., Kurokawa, H., Yoshida, E., and Kokaji, S.
(1999). Self-assembly and self-repair method for a distributed mechanical system. IEEE
Transactions on Robotics and Automation, pages 10351045.
[Torres, 2006] Torres, J. (2006). Dise no mecatronico de un micro-robot serpiente modular.
Masters thesis, E.T.S.I.I - UPM.
[Torres, 2008] Torres, J. (2008). Dise no mecatronico de un sistema micro-robotico. Mas-
ters thesis, Universidad Politecnica de Madrid (UPM).
[Unsal and Khosla, 2000] Unsal, C. and Khosla, P. K. (2000). Mechatronic design of
a modular self-recongurable robotics system. In IEEE International Conference on
Intelligent Robots and Systems, pages 17421747.
[Valdastri et al., 2009] Valdastri, P., Webster, R., Quaglia, C., Quirini, M., Menciassi, A.,
and Dario (2009). A new mechanism for mesoscale legged locomotion in compliant
tubular environments. IEEE Transactions on Robotics, 25:1047 1057.
[Worst and Linnemann, 1996] Worst, R. and Linnemann, R. (1996). Construction and
operation of a snake-like robot. In IEEE International Joint Symposium on Intelligence
and Systems, pages 164169, Japan.
[Xiao et al., 2004] Xiao, J., Xiao, J., Xi, N., Tummala, R. L., and Mukherjee, R. (2004).
Fuzzy controller for wall-climbing microrobots. IEEE Transactions on Fuzzy Systems,
12(4):466480.
[Yim, 1994] Yim, M. (1994). New locomotion gaits. In Proceedings of the 1994 IEEE
International Conference on Robotics and Automation, pages 25082514.
[Yim et al., 2000] Yim, M., Du, D., and Roufas, K. (2000). Polybot: A modular recon-
gurable robot. In Proceedings of the 2000 IEEE International Conference on Robotics
and Automation, pages 514520.
[Yim et al., 2001] Yim, M., Du, D., and Roufas, K. (2001). Evolution of polybot: A mod-
ular recongurable robot. In COE/Super-Mechano-Systems Workshop, Tokyo, Japan.
282
BIBLIOGRAPHY
[Yim et al., 2007] Yim, M., Shen, W.-M., Salemi, B., Rus, D., Moll, M., Lipson, H.,
Klavins, E., and Chirikjian, G. S. (2007). Modular self-recongurable robot systems
[grand challenges of robotics]. Robotics & Automation Magazine, IEEE, 14(1):43
52.
[Yoshida et al., 1999] Yoshida, E., Kokaji, S., Murata, S., Kurokawa, H., and Tomita, K.
(1999). Miniaturised selfrecongurable system using shape memory alloy. In Proceedings
of the 1999 IEEE International Conference on Intelligent Robots and Systems, pages
15791585.
[Yoshida et al., 2002] Yoshida, E., Murata, S., Kamimura, A., Kokaji, S., Tomita, K.,
and Kurokawa, H. (2002). Get back in shape! a hardware prototype self-recongurable
modular microrobot that uses shape memory alloy. IEEE Robotics and Automation
Magazine, 9(4):5460.
[Yoshida et al., 2003] Yoshida, E., Murata, S., Kamimura, A., Tomita, K., Kurokawa, H.,
and Kokaji, S. (2003). Evolutionary synthesis of dynamic motion and reconguration
process for a modular robot m-tran. In Proceedings of the 2003 IEEE International
Symposium on Computational Intelligence in Robotics and Automation, 2003., volume 2,
pages 1004 1010.
[Zhang and Zhao, 2005] Zhang, Y. and Zhao, J. (2005). Indoor localization using time
dierence of arrival and time-hopping impulse radio. In 2005 IEEE International Sym-
posium on Communications and Information Technology ISCIT, volume 2, pages 964
967.
[Zykov et al., 2007] Zykov, V., Chan, A., and Lipson, H. (2007). Molecubes: An open-
source modular robotics kit. In IROS.
[Zykov et al., 2005] Zykov, V., Mytilinaios, E., Adams, B., and Lipson, H. (2005). Self-
reproducing machines. Nature, 435:163164.
283