Professional Documents
Culture Documents
by
Andrew Peter Schmalz
Fall 2006
by
Andrew Peter Schmalz
Approved:
Sunil K. Agrawal, Ph.D.
Professor in charge of thesis on behalf of the Advisory Committee
Approved:
Thomas S. Buchanan, Ph.D.
Chair, Department of Mechanical Engineering
Approved:
Eric W. Kaler, Ph.D.
Dean, College of Engineering
Approved:
Daniel Rich, Ph.D.
Provost
ACKNOWLEDGEMENTS
I would like to thank my advisor, Dr. Sunil Agrawal, for all his support
and guidance throughout this project, as well as Dr. Michael Greenberg and Dr.
Xin-Yan Deng for serving on my thesis committee. I would also like to thank the
Delaware Space Grant Consortium for awarding me the NASA/DESGC Graduate
Fellowship to help fund my research. Thanks to all the members of the Mechanical
Systems Laboratory, especially John Fader and Sean McIntosh, whose friendship
and laugher have made life in a drab, windowless lab a little more bearable. Special
thanks also to John Barbour for dedicating countless hours of his time to assisting
me with adjustments to the experimental setup. Finally, I would like to thank my
parents for their many years of love and encouragement that have taught me the
importance of challenging myself and persevering through to the end.
iii
TABLE OF CONTENTS
Chapter
1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Taxonomy and Nomenclature . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
iv
3 SYSTEM CONTROL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 Negative Tension Problem . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3 Feedback Linearization . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4 Null-Space Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.5 Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2 Analytical Error Solution . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3 Dynamic Workspace Generation Techniques . . . . . . . . . . . . . . 62
4.4 Three-Degree-of-Freedom Tensegrity Structure . . . . . . . . . . . . . 64
5 EXPERIMENTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.2 System Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
v
5.3 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6 CONCLUSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
BIBLIOGRAPHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
vi
LIST OF FIGURES
vii
3.2 T1 R4C12 D12,34 Configuration . . . . . . . . . . . . . . . . . . . . 47
3.6 T1 R4C12 D12,34 Tensions vs. Time with Passive Cables 9, 10,
and 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.7 T1 R4C12 D12,34 Tensions vs. Time with All Cables Actuated . 53
3.9 T1 R4C14 D12,23,34 Tensions vs. Time with Passive Cables 9, 10,
13, 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.1 Planar Tensegrity Structure with One Fixed Rod and One
Free Rod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
viii
4.7 Initial Configuration for y-Motion . . . . . . . . . . . . . . . . 73
ix
4.27 Geometrically Constrained Time-Independent Dynamic
Workspace for Overactuated System . . . . . . . . . . . . . . 91
x
LIST OF TABLES
xi
ABSTRACT
xii
Chapter 1
INTRODUCTION
Tensegrity is not a new idea. In fact, it is a concept that has been around for
over fifty years. It has, however, experienced a recent revival, as an idea that was
purely structural has evolved into one that has promising applications in the areas
of robotics and control. This thesis explores several of these aspects, particularly the
dynamics and control issues involved in governing the movement and shape change
of planar tensegrity structures.
1
it to deform, but when this force is removed, the structure will return to its natural
equilibrium state. The integrity of such a structure relies on prestress in the cables
such that they remain in tension when connected to the rods within a structure.
Snelson has viewed tensegrity strictly as an artistic expression. He does not
incorporate math or physics into his designs other than to ensure they maintain
structural integrity. His main concerns are aesthetic in creating a work that is
attractive as an art piece. Several of Snelson’s sculptures are shown in Figure 1.1
[27].
2
In contrast, Fuller concentrated more on tensegrity as an architectural idea.
His interest in a variety of structural forms, in particular geodesic domes, motivated
his pursuit of a way to incorporate tensegrity into his work. Fuller patented several
of his tensegrity ideas, including a tensegrity dome and tensegrity truss, shown in
Figure 1.2 [5]. Many of his ideas are still used in architecture today.
3
using motors to alter cable lengths or with telescopic struts. If this actuation is
done in a coordinated manner, useful motions and changes to the overall shape of a
structure are possible.
Several characteristics of tensegrity structures make them appealing for robotic
applications. First, these types of structures typically have very little mass but are
considerably strong, possessing an exceptional strength-to-weight ratio. Further-
more, with low mass, rapid motions are feasible, as inertial effects are less prob-
lematic. In addition to being lightweight, these structures also offer space-saving
capabilities, as they can be designed to be collapsed or folded to occupy less volume
while not in use [7]. Also, due to the isolation of rigid elements with a flexible ten-
sile network, tensegrity structures are effective at absorbing shocks. Finally, since
tensegrity systems are parallel mechanisms, individual actuators affect multiple de-
grees of freedom. This fact can be exploited in certain applications to provide fault
tolerance in compensating for a defective actuator [14].
Applications for tensegrity systems continue to emerge. Perhaps the greatest
contributor to the field of tensegrity in robotics is Robert Skelton at the Univer-
sity of California, San Diego. In the last decade, Skelton has explored numerous
tensegrity applications in addition to teaching and writing on the subject. Skelton
has developed his own tensegrity definitions, which allow for two different structural
classes [24]. He describes a tensegrity structure as a “stable system of axially loaded
members” and then goes on to differentiate two classes. A structure is defined as
Class 1 “if the members in tension form a continuous network, and the members
in compression form a discontinuous set of members.” This description matches
the traditional definition of a tensegrity structure. However, Skelton then defines
a Class 2 structure as one in which “the members in tension form a continuous
set of members, and there are at most two members in compression connected to
each node.” This effectively expands the definition of tensegrity structures to allow
4
rods to connect to other rods, a characteristic prohibited in the conventional defi-
nition. Furthermore, it incorporates a whole new class of structures for tensegrity
applications.
Recent work by Skelton’s group includes development of a wrist-mimic robot,
a two-stage Class 1 tensegrity structure that is reconfigurable for deployment and
non-symmetric applications [17]. A similar Class 2 device [18] aimed at lifting
applications is shown in Figure 1.3. Other projects include a tensegrity “Stewart
Platform-like” structure in which rod lengths are pneumatically actuated [22] and
a planar tensegrity locomotor device capable of crawling along a pipe (pictured in
Figure 1.4) [23]. Another appealing application is in the area of robotic arms and
manipulators. Often these devices require rapid motions for applications such as
pick-and-place, where large inertial forces become an issue. Skelton’s group has
begun exploring the use of tensegrity-based devices as robotic manipulators [1]. Be-
cause tensegrity systems have low mass and a high strength-to-weight ratio, they of-
fer an exciting alternative to standard rigid-link robotic manipulators. Furthermore,
tensegrity structures are more flexible and can provide more agility in positioning
objects.
Many others have also conducted research on robotic tensegrity applications.
Chandana Paul et al at Cornell University have concentrated on locomotor tenseg-
rity devices, using genetic algorithms to find actuation cycles which produce favor-
able gaits [14, 15, 16]. In this case, the robot is underactuated but the cycling of
actuation patterns allows the device to create a net forward motion. Paul has also
studied the issue of fault tolerance in her devices. A prototype of one of the walking
robots is shown in Figure 1.5. Etienne Fest et al at the Swiss Federal Institute
of Technology have developed and built a full-scale tensegrity structure capable of
compensating for external loads and maintaining its desired shape through the use
of a predictive model and search algorithm [4]. Such a device (pictured in Figure 1.6)
5
Figure 1.3: Class 2 Tensegrity Boom. Skelton’s Class 2 device deploying.
could be used in building applications where structures must contend with external
conditions such as wind or snowfall accumulation. Matthew Marshall at the Uni-
versity of Florida has developed a tensegrity-based parallel platform in which both
rod and cable lengths are adjustable [6]. It has even been suggested that tensegrity
6
structures may have a place in the medical field, including use in minimally inva-
sive surgical instruments, as well as in space applications for deployable antennas
or radio telescopes [29].
7
1.3 Problem Statement and Scope of the Thesis
In moving from tensegrity as a strictly static, structural idea to one in which
a system must be movable and controllable, certain issues arise. The most important
of these is the fact that typically, the actuated members of a tensegrity structure are
cables, which are effective in tension but cannot supply a compressive force. If one
tries to push on the ends of a cable, it simply collapses. In a typical robotic device,
rigid links are capable of supplying both tensile and compressive forces, so control
is relatively straightforward using well-established control methods. In the case of
tensegrity devices, however, in addition to achieving the desired system motion, a
controller must be developed which maintains positive tensions in the cables.
Planar tensegrity structures are generally simpler to analyze than their spa-
tial counterparts because they are limited to two dimensions. Therefore, individual
rods may possess at most three degrees of freedom (two translational, one rotational)
compared to six for a spatial structure (three translational, three rotational). Dy-
namic analysis in this case is also considerably simpler, especially in deriving inertial
expressions. Nonetheless, planar structures are very useful in providing insight into
the functioning of tensegrity concepts and can still serve as useful practical devices.
Two areas of particular interest are robotic arms or manipulators and deployable
structures. Both of these areas look to be promising arenas for tensegrity devices,
both planar and spatial. With this in mind, investigation of a subclass of planar
tensegrity structures suited for these applications is pursued here. Though only
planar mechanisms are addressed in this thesis, the ideas are extendable to similar
spatial structures as well.
The thesis is organized as follows. Chapter 2 discusses the subclass of planar
tensegrity structures under investigation. A systematic classification and naming
scheme is developed which enables the determination of a particular tensegrity’s
structure simply given its assigned name. A method for uniform numbering of
8
individual structural elements is also established. Then a framework for performing
the structural analysis of such devices is discussed. This section includes physical
assumptions, force modeling, constraint management, and a general procedure for
the derivation of system dynamics.
Chapter 3 develops aspects of control for tensegrity systems. This subject
is crucial due to the additional requirement that positive tensions be maintained
in all cables. A basic discussion of feedback linearization is followed by the de-
velopment of a null-space controller which maintains positive cable tensions while
governing system motion. Results from several simulations are then presented, ver-
ifying the performance of the feedback-linearizing controller for various tensegrity
arrangements.
In chapter 4, a procedure for determining the dynamic workspace of planar
tensegrity structures is detailed. This workspace is composed of configurations a
tensegrity structure may reach from a given initial state while maintaining tensions
which are within a specified range. The process is based on the ability to predict
future system behavior by analytically solving for the error between actual and
desired system states for a given controller. This information is used to find the
necessary tension inputs over all time and, thus, determine which configurations
are dynamically reachable. Two workspace generation techniques are analyzed and
simulations are presented which verify their utility.
Chapter 5 presents experimental results for a planar tensegrity device. Con-
struction of the device is detailed, as well as the instrumentation used for its control.
The dynamic workspace for the mechanism is derived and used to choose feasible
configurations for the device to assume. Results such as system behavior and sources
of error are then discussed.
Finally, the thesis is concluded with chapter 6, which summarizes the work
9
and results presented throughout the previous chapters. A discussion of the con-
tributions of this thesis are also included, followed by suggestions for supplemental
study and future research.
10
Chapter 2
2.1 Introduction
Planar tensegrity structures can be constructed in a variety of different con-
figurations. In order to accommodate this diversity, it is useful to introduce a
generalized classification and naming scheme that enables the determination of the
arrangement of a certain structure simply given its name. This naming scheme is
based on a systematic convention for the numbering of individual elements within
a structure, established to maintain consistency among different examples. After
the naming and numbering procedures are established, the rest of this chapter de-
tails a framework for performing structural analysis for planar tensegrity systems,
including force modeling, constraint management, and derivation of the dynamic
equations of motion.
11
rods whose endpoints connect only to cables. In Class 2 structures, rods connect
to other rods through pivots at their endpoints in addition to cables [18]. Thus, in
Class 1 structures, the X components overlap and are connected by cables, whereas
in Class 2 structures, the X shapes are connected at pivoting endpoints. Figure 2.1
shows an example of each class of tensegrity structure.
Class 1 Class 2
Rods n n
Outer Cables 2n n+2
Nodes 2n n+2
12
The quantity and placement of cables lying within the perimeter of the tenseg-
rity structure may vary. Given a basic structure configured symmetrically about its
horizontal midline, the nodes of the structure will line up vertically in pairs. Each
pair is given an identifying number (explained in more detail in section 2.2.2). Inner
cables may be arranged either vertically or diagonally between nodes. It is assumed
that diagonal cables are always placed in crossing couples between two nodal pairs,
never individually. Though not necessarily essential to the integrity of a structure,
this premise helps restrict the number of configurational permutations while main-
taining vertical symmetry in the structure.
At this point it is worth reemphasizing that the range of structures considered
here is only a subclass of the multitude of achievable planar tensegrity structures.
For example, a planar structure could be composed of repeating crossed rods in
the vertical dimension or both vertically and horizontally, creating a “matrix” of
crossed pairs rather than just a one-dimensional chain. Or rods could be grouped
in configurations other than crossed X’s. However, this subclass was chosen to
facilitate a systematic numbering convention and naming scheme for a group of
structures that could be useful as robotic manipulators, deployable structures, or
other similar devices.
13
horizontal, vertical, and diagonal cables are designated. Horizontal cables are num-
bered first, again in a repeating lower-upper sequence from left to right. Next,
vertical cables are numbered from left to right, continuing the numerical sequence.
Finally, the diagonal cables are numbered in the same pattern used for the rods.
Nodes are denoted by a column number and a row letter. The lower row
of nodes in a structure is denoted A and the upper row is denoted B. Columns
of paired nodes are numbered from left to right. Numbering nodes in pairs helps
simplify the naming scheme described in the next section. So, for example, the lower
leftmost node is labeled n1A and the upper leftmost node is labeled n1B . Figure 2.2
illustrates the numbering convention for a Class 1 planar tensegrity structure.
Figure 2.2: Numbering Convention. Rods, cables, and nodes are numbered as
illustrated.
14
certain numbered cables must connect to different nodes than would be expected
because the typical connecting rods are absent. Finally, the convention does not
accommodate Class 2 structures. These problems are avoided in the convention
developed in this chapter, which also lends itself to the naming scheme discussed
next.
15
for R and C denote the total number of rods and cables, respectively, comprising
the structure. V and D are location identifiers of internal cables. Their subscripts
relate the placement of vertical and diagonal cables based on node numbers. For
instance, V23 means that there are internal vertical cables between nodal pairs 2 and
3, while D12,34 means that their are crossed diagonal cables between nodal pairs 1
and 2, and 3 and 4. If a certain structure contains no internal vertical or diagonal
cables, that placement identifier is omitted. Using this scheme, the name for the
structure in Figure 2.2 is T1R4 C14V23 D12,34. Another example is given in Figure 2.4,
showing a numbered Class 2 structure with the designation T2R6 C10V23 .
16
Each rod is characterized by three variables: the (x, y) coordinates corre-
sponding to a position vector c of its center of mass with respect to a fixed coordi-
nate frame and an orientation angle θ about this center. These variables represent
the three degrees of freedom possessed by an unconstrained rod. The subscript on
each of these variables corresponds to the number of the rod being described, so
rod i is denoted by center of mass position ci = [xi yi ]T and angle θi . The end-
point positions of rod i are denoted by ai and bi , corresponding to the nodal row
to which each endpoint belongs. The orientation angle is always measured from
the horizontal, counterclockwise towards the b end. It is important to distinguish
here that nodal positions in the structure (used for classification and naming) are
denoted by a number followed by a capital A or B, while the endpoints specific to
individual rods (used for dynamic analysis) are denoted by a lower-case a or b with
a subscript corresponding to the rod number. Although nodes and rod endpoints
coincide, they are treated and referenced differently when referring to the structure
in a global sense or to rods as individual bodies. Figure 2.5 shows the description
of a typical rod in a planar tensegrity structure. The endpoint positions are found
from the equations
cos θi cos θi
ai = ci − l , bi = ci + l . (2.1)
sin θi sin θi
17
Figure 2.5: Basic Rod Characterization.
of structure is attached to a rigid surface at one end. End nodes are typically con-
strained to pivot about a fixed point or slide in a single direction. These constraints
introduce additional reaction forces and reduce the number of degrees of freedom of
the affected rods.
Three dynamic equations are used to describe the motion of a single rod i.
These equations are
where m is the rod mass and I is the moment of inertia of the rod about its center
1
of mass I = 12 m(2l)2 . Fxi and Fyi are the total sum of x and y force components
acting on rod i, while Mzi is the sum of moments acting on rod i about its center.
These values are found using the equations
Fyi = fa iy + fb iy − mg (2.6)
18
where g is the acceleration due to gravity.
Individual cable tensions are determined based on an elastic constant k of
their material and the initial rest lengths and stretched lengths of the cables. If
cables are modeled as simple springs, this k is the spring constant. Alternatively,
cables may be modeled as a solid material with a uniform circular cross section. In
this case, k = EA/L0 , where E is Young’s modulus for the cable material, A is the
nominal cross-sectional area of the cable, and L0 is the unstretched cable length. Tj
is the magnitude of the force in cable j. It is determined from the equation
where Lj is the stretched length of cable j and Lj 0 is the initial unstretched length of
the cable. The vector representing the tension of cable j acting on rod i is denoted
Tj i and is found by combining the magnitude of the cable force and the unit direction
vector of that force acting axially along the cable away from the connection point at
the rod. The direction of cable tension is determined by calculating the difference
between the two connection point positions, obtained using equation (2.1). The
direction vector of the force is denoted dj i . It is then necessary to scale this vector
by the cable’s length, yielding a unit direction vector d̂j i . Thus, the overall tension
vector for cable j acting on rod i is given as
dj i
Tj i = Tj = Tj d̂j i . (2.9)
Lj
Aq̈ = F (2.10)
19
where A is the system inertia matrix, q̈ is a vector of the system variables’ second
time derivatives, and F is a vector containing the x- and y-force components, and
moments acting on all rods. System variables are collected in the form
q = [x1 y1 θ1 · · · xn yn θn ]T (2.11)
The set of equations (2.10) represents the generalized system dynamics for a planar
tensegrity structure. This form will typically need to be altered, however, to account
for lost degrees of freedom when constraints are imposed at rod endpoints and, in
the case of Class 2 systems, kinematic restrictions due to revolute joints between
rods. As a result, several system variables may need to be eliminated to reflect the
constrained system and, therefore, the form of q is typically modified as well. A
general procedure has been developed to most efficiently derive the dynamics for
specific planar tensegrity structures. This procedure is slightly different for Class
1 and Class 2 systems, though the basic approach is the same. The procedure is
described below for each class, accompanied by a specific example to clarify.
20
Figure 2.6: T1 R4C12 D12,34 Structure.
are locally defined, it is not yet necessary to define a global reference frame. The
resulting endpoint positions are as follows.
x1 − l cos θ1 x1 + l cos θ1
a1 = b1 = (2.12)
y1 − l sin θ1 y1 + l sin θ1
x2 − l cos θ2 x2 + l cos θ2
a2 = b2 = (2.13)
y2 − l sin θ2 y2 + l sin θ2
x3 − l cos θ3 x3 + l cos θ3
a3 = b3 = (2.14)
y3 − l sin θ3 y3 + l sin θ3
x4 − l cos θ4 x4 + l cos θ4
a4 = b4 = (2.15)
y4 − l sin θ4 y4 + l sin θ4
Next, one must decide how the structure will be constrained and where the
inertial reference frame will be fixed. It is common to attach such a structure to
a rigid surface at one end. For example, node 1B can be fixed such that rod 2 is
constrained to rotate about its left endpoint. It is convenient to place the origin of a
21
Cartesian reference frame at this point. Similarly rod 1 can be constrained to slide
vertically along the line x = 0. This idea is shown in Figure 2.7. These constraints
effectively eliminate three degrees of freedom from the system. Because rod 2’s left
endpoint is now fixed, x2 and y2 are no longer independently variable. Instead they
are automatically determined geometrically as
x2 = −l cos θ2 (2.16)
and
y2 = −l sin θ2. (2.17)
Also, because rod 1’s left endpoint must slide in the vertical direction, x1 becomes
x1 = l cos θ1 . (2.18)
22
Since these three variables no longer appear in the dynamics, equations (2.16-2.18)
must be substituted into the places they appear in (2.12-2.15). After this substi-
tution, the rod endpoints are completely defined in terms of the remaining system
variables.
0 2l cos θ1
a1 = b1 = (2.19)
y1 − l sin θ1 y1 + l sin θ1
−2l cos θ2 0
a2 = b2 = (2.20)
−2l sin θ2 0
x3 − l cos θ3 x3 + l cos θ3
a3 = b3 = (2.21)
y3 − l sin θ3 y3 + l sin θ3
x4 − l cos θ4 x4 + l cos θ4
a4 = b4 = (2.22)
y4 − l sin θ4 y4 + l sin θ4
Now that the positions all rod endpoints are defined, the cable (force) di-
rection vectors can be determined. Since all cables connect to rod endpoints, their
directions are determined by simply subtracting the appropriate endpoint positions.
It is worth noting that each cable supplies a force that acts on two different rod
endpoints, and thus in two opposite directions. There are therefore twice as many
direction vectors as there are cables. The direction can be defined once for each ca-
ble and then reversed to be applied in the opposite direction. The direction vectors
are then normalized by scaling by the cable lengths. The nominal cable direction
23
vectors are as follows.
x3 − l cos θ3
Cable 1 : d1 1 = −
a−→
1 a3 =
= −d1 3 (2.23)
y3 − l sin θ3 − y1 + l sin θ1
−−→ x4 + l cos θ4
Cable 2 : d22 = b2 b4 = = −d24 (2.24)
y4 + l sin θ4
−2l cos θ2 − x3 + l cos θ3
Cable 3 : d33 = −
a−→
3 a2 =
= −d32 (2.25)
−2l sin θ2 − y3 + l sin θ3
−−→ 2l cos θ1 − x4 − l cos θ4
Cable 4 : d44 = b4 b1 = = −d41 (2.26)
y1 + l sin θ1 − y4 − l sin θ4
x4 − l cos θ4 + 2l cos θ2
Cable 5 : d5 2 = −
a−→
2 a4 =
= −d5 4 (2.27)
y4 − l sin θ4 + 2l sin θ2
−−→ x3 + l cos θ3 − 2l cos θ1
Cable 6 : d6 1 = b1 b3 = = −d6 3 (2.28)
y3 + l sin θ3 − y1 − l sin θ1
−−→ 0
Cable 7 : d 7 1 = a1 b 2 = = −d7 2 (2.29)
−y1 + l sin θ1
−−→ x3 + l cos θ3 − x4 + l cos θ4
Cable 8 : d84 = a4 b3 = = −d83(2.30)
y3 + l sin θ3 − y4 + l sin θ4
−−→ x4 + l cos θ4
Cable 9 : d91 = a1 b4 = = −d94 (2.31)
y4 + l sin θ4 − y1 + l sin θ1
−−→ x3 − l cos θ3
Cable 10 : d102 = b2 a3 = = −d103 (2.32)
y3 − l sin θ3
−−→ x3 + l cos θ3 + 2l cos θ2
Cable 11 : d11 2 = a2 b3 = = −d11 3 (2.33)
y3 + l sin θ3 + 2l sin θ2
−−→ x4 − l cos θ4 − 2l cos θ1
Cable 12 : d12 1 = b1 a4 = = −d12 4(2.34)
y4 − l sin θ4 − y1 − l sin θ1
24
The cable lengths are given as follows.
p
L 1 = |−
a−→
1 a3 | = (x3 − l cos θ3 )2 + (y3 − l sin θ3 − y1 + l sin θ1 )2 (2.35)
−−→ p
L2 = |b2b4 | = (x4 + l cos θ4 )2 + (y4 + l sin θ4 )2 (2.36)
L 3 = |−
a− →
3 a2 | (2.37)
p
= (−2l cos θ2 − x3 + l cos θ3 )2 + (−2l sin θ2 − y3 + l sin θ3)2
−−→
L 4 = |b 4 b 1 | (2.38)
p
= (2l cos θ1 − x4 − l cos θ4)2 + (y1 + l sin θ1 − y4 − l sin θ4 )2
L 5 = |−a−→
2 a4 | (2.39)
p
= (x4 − l cos θ4 + 2l cos θ2)2 + (y4 − l sin θ4 + 2l sin θ2 )2
−−→
L 6 = |b 1 b 3 | (2.40)
p
= (x3 + l cos θ3 − 2l cos θ1)2 + (y3 + l sin θ3 − y1 − l sin θ1 )2
−−→ p
L7 = |a1b2 | = (−y1 + l sin θ1)2 (2.41)
−−→
L 8 = | a4 b 3 | (2.42)
p
= (x3 + l cos θ3 − x4 + l cos θ4)2 + (y3 + l sin θ3 − y4 + l sin θ4)2
−−→ p
L9 = |a1b4 | = (x4 + l cos θ4)2 + (y4 + l sin θ4 − y1 + l sin θ1 )2 (2.43)
−−→ p
L10 = |b2a3 | = (x3 − l cos θ3 )2 + (y3 − l sin θ3)2 (2.44)
−−→
L11 = |a2b3 | (2.45)
p
= (x3 + l cos θ3 + 2l cos θ2)2 + (y3 + l sin θ3 + 2l sin θ2)2
−−→
L12 = |b1a4 | (2.46)
p
= (x4 − l cos θ4 − 2l cos θ1)2 + (y4 − l sin θ4 − y1 − l sin θ1)2
25
Now that the cable force vectors are completely defined, the dynamic equa-
tions can be written for each rod using equations (2.2-2.7). Because rods 3 and 4
are unconstrained, their dynamic equations will follow this exact form. The slid-
ing/pivoting constraints placed on rods 1 and 2, however, require their dynamic
equations to be modified slightly (introducing wall reaction forces) and consolidated
to eliminate the equations corresponding to the lost degrees of freedom (x1, x2,
and y2 ). It is helpful to look at a free-body diagram of each rod individually when
writing the dynamic equations. These are shown in Figure 2.8.
The three initial dynamic equations for each rod are listed below.
26
Rod 1 :
Rod 2 :
Rod 3 :
Rod 4 :
Now equation (2.47) must be solved for R1x and substituted into equation (2.49).
However, since x1 is no longer a feasible system variable, ẍ1 must be found by twice
differentiating equation (2.18), x1 = −l cos θ1 . This yields
27
Similarly, (2.16) and (2.17) are twice-differentiated to get
and
ÿ2 = −lθ̈2 cos θ2 + lθ̇22 sin θ2 . (2.61)
R1x = m(−lθ̈1 sin θ1 − lθ̇12 cos θ1) − T11x − T71x − T91x − T41x − T61x − T121x . (2.62)
Solving (2.50) and (2.51) for R2x and R2y , respectively, and incorporating (2.60) and
(2.61) yields
R2x = m(lθ̈2 sin θ2 + lθ̇22 cos θ2) − T32x − T52x − T112x − T22x − T72x − T102x (2.64)
and
R2y = m(−lθ̈2 cos θ2 +lθ̇22 sin θ2)−T32y −T52y −T112y −T22y −T72y −T102y +mg. (2.65)
Note that the force components from cables 2, 7, and 10 drop out since they act at
the fixed end of rod 2 and, thus, cannot contribute to rod 2’s motion.
28
This completes the dynamic analysis for the T1R4 C12D12,34 structure with the
chosen constraints. There are now nine final dynamic equations (2.48, 2.63, 2.66,
2.53, 2.54, 2.55, 2.56, 2.57, 2.58) in terms of the nine system variables (y1, θ1, θ2,
x3, y3, θ3 , x4, y4 , θ4). These equations can now be grouped to construct a particular
form of (2.10) which incorporates the system constraints.
several degrees of freedom. Essentially, every chain of linked rods contains only one
x and one y position variable, and then one orientation angle for each rod. Though
it is possible to assign the (x, y) variables to any of the rods, it is convenient to
place them at the center of mass of the leftmost rod in each chain (c1 and c2) and
29
this convention is assumed throughout this analysis. Therefore, it is possible to
eliminate several system variables before introducing wall constraints simply due
to the standard configuration of Class 2 structures. This immediately simplifies
the system dynamics. For the current T2 R4 C7V2 structure, there are eight system
variables (degrees of freedom) before the structure is constrained at the wall: x1,
y1, θ1 , x2, y2, θ2 , θ3 , and θ4 .
The rod endpoint positions are now defined as follows.
x1 − l cos θ1 x1 + l cos θ1
a1 = b1 = (2.67)
y1 − l sin θ1 y1 + l sin θ1
x2 − l cos θ2 x + l cos θ2
a2 = b2 = 2 (2.68)
y2 − l sin θ2 y2 + l sin θ2
x2 − l cos θ2 x − l cos θ2 + 2l cos θ3
a3 = b3 = 2 (2.69)
y2 − l sin θ2 y2 − l sin θ2 + 2l sin θ3
x1 + l cos θ2 − 2l cos θ3 x + l cos θ1
a4 = b4 = 1 (2.70)
y1 + l sin θ2 − 2l sin θ3 y1 + l sin θ1
Note that the right endpoint positions of rods 3 and 4 must be found using only the
viable system variables rather than with equation (2.1). Now if the same reference
frame placement and wall constraints are imposed as before, restricting rod 2 to
pivot about its left endpoint at the origin and rod 1 to slide in the vertical direction
at x = 0, variables x1 , x2 , and y2 are again lost. Using equations (2.16-2.18), the rod
30
endpoint positions can be rewritten in terms of the remaining five system variables.
0 2l cos θ1
a1 = b1 = (2.71)
y1 − l sin θ1 y1 + l sin θ1
−2l cos θ2 0
a2 = b2 = (2.72)
−2l sin θ2 0
−2l cos θ2 −2l cos θ2 + 2l cos θ3
a3 = b3 = (2.73)
−2l sin θ2 −2l sin θ2 + 2l sin θ3
2l cos θ1 − 2l cos θ4 2l cos θ1
a4 = b4 = (2.74)
2l sin θ1 − 2l sin θ4 y1 + l sin θ1
Before defining the cable direction vectors, it is necessary to discuss the issue of
uncertainty in the location of cable forces. Because cables 1, 2, 3, 4, and 6 each
connect to a joint linking adjacent rods, a decision must be made about which forces
act on which bodies. For instance, the force in cable 1 may be said to act on rod
2, rod 3, or both. This decision is arbitrary, however, since the connection points
all coincide. The same final system dynamics will result regardless of the choice,
but it is important to assign each force explicitly. The easiest method of handling
this uncertainty is to assign all cable forces acting at a joint between rods solely to
the rod on the left. Hence, for this system, T2 , T4, and T6 are assumed to act on
rod 1 and T1, T3, and T6 are assumed to act on rod 2. In addition, there is a force
interaction between the connecting rods. Each rod in a connecting pair applies a
force on the other. These forces are equal and opposite to each other. Free-body
diagrams of each rod illustrate the force distribution in Figure 2.10. Now the cable
direction vectors can be defined as follows.
−2l cos θ2
Cable 1 : d1 1 = −
a−→
1 a2 =
= −d1 2 (2.75)
−2l sin θ2 − y1 + l sin θ1
−−→ h i
Cable 2 : d2 2 = b2 b1 = 2l cos θ1 y1 + l sin θ1 = −d2 1 (2.76)
31
2l(cos θ1 − cos θ4 + cos θ2 )
Cable 3 : d32 = −
a−→
2 a4 =
= −d34 (2.77)
2l(sin θ1 − sin θ4 + sin θ2 )
−−→ 2l(− cos θ2 + cos θ3 − cos θ1 )
Cable 4 : d41 = b1 b3 = (2.78)
2l(− sin θ2 + sin θ3) − y1 − l sin θ1
= −d43
−−→ 0
Cable 5 : d51 = a1 b2 = = −d52 (2.79)
−y1 + l sin θ1
−−→ 2l(cos θ1 + cos θ2)
Cable 6 : d62 = a2 b1 = = −d61 (2.80)
y1 + l sin θ1 + 2l sin θ2
−−→ 2l(− cos θ2 + cos θ3 − cos θ1 + cos θ4)
Cable 7 : d 7 4 = a4 b 3 = (2.81)
2l(− sin θ2 + sin θ3 − sin θ1 + sin θ4)
= −d7 3
32
Figure 2.10: Free-Body Diagrams of Individual T2 R4C7 V2 Rods.
Using equation (2.9) as before, the cable directions are divided by their re-
spective lengths to form normalized direction vectors which are subsequently multi-
plied by the tension magnitudes to give the final force vectors in the form Tj i . The
dynamic equations can now be written. Initially, there are three equations for both
rod 1 and rod 2, which are later combined to eliminate the lost degrees of freedom.
These equations are listed below.
33
Rod 1 :
Rod 2 :
For all Class 2 structures, it is automatically assumed that any rod other
than rods 1 or 2 can only rotate about the joint at its left endpoint. Therefore,
it is simpler to find the one required rotational equation for each of these rods
by taking the moment about its left endpoint (which will avoid having to include
the internal joint reaction forces there), rather than taking the moment about its
center and substituting in the translational equations to account for the loss of the
translational variables. The moment of a rod about its end is Ie = 13 m(2l)2. Though
the translational equations for these rods are not needed directly, they are used later
to solve for the internal reaction forces which constrain the rods at their joints, so
they are still written. For rods 3 and 4, the equations are as follows.
Rod 3 :
34
Rod 4 :
To eliminate the joint reaction forces (Frod1 , Frod2 , Frod3 , Frod4 ), one may
recall that each pair is equal and opposite. This yields the equations
In addition, because the translational variables for rods 3 and 4 must not appear,
the following substitutions must be made.
x −2l cos θ2 + l cos θ3
3 = (2.103)
y3 −2l sin θ2 + l sin θ3
2 2
ẍ 2lθ̈2 sin θ2 + 2lθ̇2 cos θ2 − lθ̈3 sin θ3 − lθ̇3 cos θ3
3 = (2.104)
2 2
ÿ3 −2lθ̈2 cos θ2 + 2lθ̇2 sin θ2 + lθ̈3 cos θ3 − lθ̇3 sin θ3
x 2l cos θ1 − l cos θ4
4 = (2.105)
y4 y1 + 2l sin θ1 − l sin θ4
ẍ4 −2lθ̈1 sin θ1 − 2lθ̇12 cos θ1 + lθ̈4 sin θ4 + lθ̇42 cos θ4
= (2.106)
2 2
ÿ4 ÿ1 + lθ̈1 cos θ1 − lθ̇1 sin θ1 − lθ̈4 cos θ4 + lθ̇4 sin θ4
Now by using equations (2.104), (2.106), (2.101), and (2.102), equations (2.95, 2.96)
and (2.98, 2.99) can be solved in terms of forces Frod3 and Frod4 , respectively. Equa-
tions (2.95) and (2.96) become
Frod3x = −m(2lθ̈2 sin θ2 + 2lθ̇22 cos θ2 − lθ̈3 sin θ3 − lθ̇32 cos θ3) + (T43x + T73x ) (2.107)
Frod3y = −m(−2lθ̈2 cos θ2 + 2lθ̇22 sin θ2 + lθ̈3 cos θ3 − lθ̇32 sin θ3) + (T43y + T73y ) − mg
(2.108)
35
while equations (2.98) and (2.99) become
Frod4x = −m(−2lθ̈1 sin θ1 − 2lθ̇12 cos θ1 + lθ̈4 sin θ4 + lθ̇42 cos θ4) + (T34x + T74x ) (2.109)
Frod4y = −m(ÿ1 + lθ̈1 cos θ1 − lθ̇12 sin θ1 − lθ̈4 cos θ4 + lθ̇42 sin θ4) + (T34y + T74y ) − mg.
(2.110)
These joint reaction forces can now be substituted into the appropriate places
in equations (2.89-2.94), yielding
R1x = −m(3lθ̈1 sin θ1 + 3lθ̇12 cos θ1 − lθ̈4 sin θ4 − lθ̇42 cos θ4 ) (2.111)
R2x = m(3lθ̈2 sin θ2 + 3lθ̇22 cos θ2 − lθ̈3 sin θ3 − lθ̇32 cos θ3) (2.114)
R2y = m(−3lθ̈2 cos θ2 + 3lθ̇22 sin θ2 + lθ̈3 cos θ3 − lθ̇32 sin θ3 ) (2.115)
36
where equations (2.59-2.61) have again been used to replace ẍ1 , ẍ2, and ÿ2 . Finally,
equation (2.111) is substituted into (2.113) to eliminate R1x , giving
ml cos θ1 ÿ1 + I + ml2(5 − 4 cos2 θ1) θ̈1 − ml2(2 sin θ1 sin θ4 + cos θ1 cos θ4)θ̈4 (2.117)
= −(4ml2 sin θ1 cos θ1 )θ̇12 + ml2(2 sin θ1 cos θ4 − cos θ1 sin θ4)θ̇42
Likewise, (2.114) and (2.115) are substituted into (2.116) to eliminate R2x and R2y ,
giving
2ml2(sin θ2 cos θ3 − cos θ2 sin θ3)θ̇32 + 2l sin θ2 (T12x + T32x + T62x + T43x + T73x )
−2l cos θ2(T12y − T32y − T62y + T43y − T73y ) + 3mgl cos θ2.
This completes the dynamic analysis for the T2R4 C7 D2 structure with the
chosen constraints. There are five final dynamic equations (2.112, 2.117, 2.118, 2.97,
2.100) in terms of the five system variables (y1 , θ1 , θ2, θ3, θ4). Like before, these
equations can be grouped to construct a particular form of (2.10) which incorporates
the system constraints.
2.5 Conclusions
This chapter presented a generalized classification and naming scheme for a
subclass of planar tensegrity structures. This procedure allows for the arrangement
of a certain structure to be determined based solely on its assigned name. Further-
more, a convention for the numbering of each component was established to ensure
standardization in referencing structural elements. A basic approach for structural
modeling was then discussed, including a general procedure for the dynamic analysis
of both Class 1 and Class 2 tensegrity systems, illustrated with a specific example
37
for each. With the dynamic analysis completed, the issue of system control becomes
important. This is the subject of the next chapter.
38
Chapter 3
SYSTEM CONTROL
3.1 Introduction
The overall aim of this investigation is to be able to control planar tensegrity
structures so they can achieve useful motions and configurations required in various
robotic manipulator tasks or structural deployment. One of the most important
control issues is the necessity of maintaining positive tensions in all cables while still
governing the desired system motion. If cables become slack, the desired control
inputs cannot be delivered to the system, causing a degradation in performance or
worse, instability. Therefore, a reliable controller must be developed. That is the
subject of this chapter.
39
be actuated. Rather, individual cable tensions may be actively controlled as system
inputs or passively determined by cable stretch. Passive cables are simply treated
as tension springs in the system, with a given initial length and variable stretched
length. If the number of cables in the system exceeds the number of system degrees of
freedom, one or more of the extra passive cables can be made active to aid in ensuring
positive tension control. Sultan and Skelton discuss a method for manipulating the
active cable tensions called “rest-length control,” where cable lengths are treated as
the control inputs rather than the tensions themselves [28]. This method is based
on modification of the active lengths of the cables. Essentially, as a motor winds a
cable onto a pulley, the portion of the cable that wraps around the pulley no longer
contributes to the cable tension, shortening the active length. This is effectively
the same as if the initial rest length (L0 ) of the cable were shortened, increasing the
magnitude of the tension according to equation (2.8). Likewise, unwinding the cable
increases its active length, as if the rest length were made longer. For purposes of
clarity and simplicity in this chapter, however, the tension magnitudes themselves
will be treated as the control inputs for the active cables, rather than the cable rest
lengths.
When working with the control of a tensegrity structure it is useful to rewrite
(2.10) in the modified form
Aq̈ = Bu + Cv + g (3.1)
where now u is the input vector containing the magnitudes of the actuated cables’
tensions with coefficient matrix B, v is a vector containing the remaining passive
cables’ tension values (dictated by equation (2.8)) with coefficient matrix C, and g
is a vector of nonlinear and gravity terms.
40
3.3 Feedback Linearization
Although the system represented by (3.1) is nonlinear, a procedure known as
feedback linearization can be applied to it in order to utilize linear control methods
[26]. Assuming a fully-actuated system for now, in which the dimension of the input
vector u equals that of q̈, (3.1) can be written in the alternate form
u = B −1 (Aw − Cv − g) (3.3)
q̈ = w. (3.4)
Now that a linear equation has been derived, a linear control technique may be used.
For instance, w may be chosen as
where qd (t) and q(t) are the desired and actual states of the system at time t, and Kd
and Kp are positive diagonal matrices containing derivative and proportional control
gains, respectively. Substituting (3.5) into (3.4), and letting e(t) = qd (t) − q(t) be
the tracking error, the final result is the equation
ë + Kd ė + Kp e = 0 (3.6)
s2 + Kd s + Kp = 0 (3.7)
41
with roots p
−Kd ± Kd2 − 4Kp
s1,2 = . (3.8)
2
The analytical solution of the tracking error is then
s2 e(0) − ė(0)
C1 = (3.10)
s2 − s1
ė(0) − s1 e(0)
C2 = (3.11)
s2 − s1
where ζ is the damping ratio and ωn is the undamped natural frequency of the
Kd
p
system. Equating (3.12) and (3.7), it is clear that ζ = √ and ωn = Kp .
2 Kp
Furthermore, (3.8) can then be written as
p
s1,2 = (−ζ ± ζ 2 − 1)ωn . (3.13)
To achieve a nonoscillatory response, the quantity under the square root sign in (3.8,
3.13) must be nonnegative. This is equivalent to having a damping ratio ζ ≥ 1. In
terms of control gains, this restriction requires that Kd2 − 4Kp ≥ 0 or
p
Kd ≥ 2 Kp (3.14)
where use of an equality will yield critical damping and a greater-than inequality
will yield an overdamped system response. As long as the control gains are chosen
satisfying (3.14), the tracking error is guaranteed to converge exponentially to zero
and the system will be exponentially stable.
42
3.4 Null-Space Controller
Oh and Agrawal detail a method of using redundant cables to ensure positive
(or zero) tensions in cable-suspended robots [10]. This idea can be extended to
tensegrity systems. The method is based on feedback linearization theory and can
be used to exponentially stabilize a system to a desired state or trajectory, while
satisfying the property u(t) ≥ 0, t > 0. As described in the previous section, a
feedback law of the form
Bu = Aw − Cv − g (3.15)
q̈ = w (3.16)
where w is chosen as
w = q̈d + Kd ė + Kp e (3.17)
yielding
Bu = A(q̈d + Kd ė + Kp e) − Cv − g. (3.18)
u = ū + N (B)p (3.19)
where
ū = B T (BB T )−1 [A(q̈d + Kd ė + Kp e) − Cv − g]. (3.20)
Here, ū is the minimum norm solution of (3.18), N (B) is the null space of matrix
B, and p is a vector of feasibility parameters chosen to satisfy the condition
ū + N (B)p ≥ 0. (3.21)
43
Vector p will have dimension (n − r) for a system with n actuated cables and a B
matrix of rank r. Essentially, the number of elements in p should match the degree
of overactuation. The dimensions of the null space of B will be n × (n − r) and ū
will have dimension n.
The null space (or kernel) of a matrix is the set of values which map the
matrix to the zero vector. For matrix B, this means
BN (B) = 0. (3.22)
which is equivalent to
Therefore, the null space component can be used to rectify the input u without
altering the system motion.
If all components of ū are positive, it is not necessary to find p and the
solution of u is simply ū. Otherwise, the components of p are determined by solving
(3.21), which contains n linear inequalities. A feasible region of acceptable values is
determined by solving the n inequalities simultaneously. Once the bounded feasible
region is found, any point inside will satisfy (3.21). If all inequalities cannot be
simultaneously satisfied, no feasible region emerges, and the tension constraints are
not achievable.
The degree of overactuation will match the dimension of the feasibility space.
For example, with one extra cable, the feasible region will be a line in one dimension
bounded within the solution points of (3.21). Vector p will contain only one element
and this point can be chosen anywhere along the line. If there are two extra cables,
the feasible region will be a two-dimensional area bounded by intersecting lines, and
44
the elements of p will be any pair of coordinates representing a point within the
region. Three extra cables result in a three-dimensional volume for the feasibility
region, and so on for higher degrees of overactuation. This idea is illustrated in
Figure 3.1 for a simple system with four degrees of freedom and cases of n = 5 and
n = 6 actuated cables.
Figure 3.1: Feasible Regions. Possible feasible regions (shaded in gray) for
choice of p for a four-degree-of-freedom system, with five actuators
(left) and six actuators (right).
The choice of a point within the feasible region can be made using such tech-
niques as linear and quadratic programming. Ideally the chosen point should yield
a solution such that the smallest possible tension values are used in the additional
cables to ensure that all tensions remain positive. Equation (3.21) can be stated
as a linear programming problem with the goal of minimizing cT p subject to the
constraints
−N (B)p ≤ ū, pl ≤ p ≤ pu (3.25)
where c is a constant vector, and pl and pu are the lower and upper bounds placed
on p. The quantity cT p represents a point, line, plane, or higher-order level set that
45
is shifted across the domain of the feasibility space. The resulting solution will occur
at one of the vertices of the feasible region. Likewise, quadratic programming can
be used to find a viable solution. In this case, the goal is to minimize pT Hp subject
to (3.25), where H is a positive definite matrix. The quantity pT Hp represents an
ellipsoid about the origin whose size is increased until it reaches the feasible region.
Here, the solution may or may not occur at a vertex. The MATLAB functions
linprog and quadprog are useful in deriving the desired solutions.
3.5 Simulations
Several simulations were developed to analyze various planar tensegrity sys-
tems and their response to the feedback controller. Different combinations of actu-
ated cables and degrees of actuation were examined. All tensions were monitored
throughout the system motion to determine their magnitude and sign.
46
Figure 3.2: T1R4 C12D12,34 Configuration.
equations were derived in section 2.4.1 and the reader may wish to refer back to
that section. The vector of system variables is written as
where the unused variables have been eliminated from the general form (2.11).
Because this system has twelve cables and only nine degrees of freedom,
several cables may be kept passive. Initially, the system is given nine actuated
cables and three passive cables to investigate the emergence of negative tensions.
47
Cables 3, 4, and 8 are left passive, such that their tensions are determined geo-
metrically by (2.8). The initial lengths of these cables are taken as L30 = .05 m,
L40 = .05 m, and L80 = .10 m. If the distance between the connection points of
any of these cables becomes less than the cable’s initial length, the tension value
becomes zero. The nine actuated cables’ tensions are determined and generated
by the controller. The system is written in the form shown in (3.1) where now
u = [T1 T2 T5 T6 T7 T9 T10 T11 T12]T and v = [T3 T4 T8 ]T . These magnitudes are
factored out of the tension vectors calculated in chapter 2 and the remaining vector
components are inserted into coefficents in the B and C matrices. Because in this
case the system is not overactuated, the feedback linearization procedure described
in section 3.3 is used directly, rather than the null-space controller. The control
p
gains are chosen with (3.14) in mind. Because Kd is slightly larger than 2 Kp ,
the system response will be mildly overdamped, ensuring exponential stability. Fur-
thermore, given these gains, a time interval of only a few seconds is necessary in
simulation because the system will have settled to its desired state within this time.
Of course now there is nothing guaranteeing positive tensions, but this exercise
is to first determine the extent of negative tensions arising before employing the
positive-tension control scheme.
The controller is capable of tracking a reference trajectory or merely moving
the system between set points. Set-point control is simpler, where only initial and
desired configurations are specified, rather than desired velocites and accelerations
as well. Using set-point control, the system motion is governed by the physical
system parameters and the control gains. Because a specific reference trajectory is
unnecessary at this point and set-point control is more straightforward, it will be
used for the simulations. The system is given an initial configuration and desired
final configuration as follows.
q0 = [−.125 30◦ 150◦ .5335 −.125 30◦ .5335 −.125 150◦ ]T (3.27)
48
qd = [−.075 17.46◦ 162.54◦ .6615 −.075 17.46◦ .6615 −.075 162.54◦ ]T (3.28)
0.1
0
y (m)
−0.1
−0.2
−0.3
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x (m)
0.1
0
y (m)
−0.1
−0.2
−0.3
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x (m)
The fully-actuated controller brings the system to the desired state, however,
six of the tensions (T1, T2, T7, T9 , T11, T12) become negative at some point during
the motion. So in reality, this controller would not work, since cables cannot carry a
negative (compressive) force. Figure 3.4 shows the motion of each system variable.
Figure 3.5 shows the resulting cable tension values vs. time for this simulation.
For a point of comparison, a second simulation of this structure is conducted,
this time choosing three of the diagonal cables (9, 10, and 12) to be passive and
49
Figure 3.4: System Variable Motion vs. Time. Each system variable moves
exponentially to its desired state.
making cables 3, 4, and 8 active. In this case the initial length for each of the passive
cables is chosen to be .10 m. All other aspects of the simulation are identical. The
system again transitions to the desired final configuration, but this time, only T1
becomes negative. This, however, is still unacceptable, and confirms the need for
a controller that maintains nonnegative tensions. The cable tension values for this
simulation are shown in Figure 3.6.
Next, the null-space controller is employed in an effort to achieve the same
system motion, but maintain nonnegative tensions. In the first attempt with this
50
15
T6
10 T10
T5
T2
5 T8
T3
T4
0 T7
Tension (N)
T11
T9
−5
T12
−10
−15 T1
−20
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 3.5: T1 R4 C12D12,34 Tensions vs. Time with Passive Cables 3, 4, and
8. Six of the twelve tensions become negative for the fully-actuated
system.
controller, the system is overactuated by one degree, using ten active cables and two
passive cables. This requires a p vector with only one element. First, cables 3 and
4 are left passive with initial lengths of .05 m, and all other cables are actuated. In
this case, no feasible region for the choice of p emerges, meaning it is not possible
to rectify the negative tensions using only one extra actuator. Alternatively, com-
binations of passive cables 9 and 10, 10 and 12, and 9 and 12 are tried, resulting in
the same problem. No feasible region develops for any of these trials.
To bolster the probability of obtaining a feasible region, the system overac-
tuation is next increased to three degrees, and all cables in the structure are made
active. Here, the input vector u contains all twelve cable tensions and C and v are
omitted from the dynamic description (3.1). In this case, a feasible region emerges
51
50
40
T4
30
T3
20
Tension (N)
T9
T10 T12
10 T11 T2 T
6
T5
0 T7 T8
T1
−10
−20
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 3.6: T1R4 C12D12,34 Tensions vs. Time with Passive Cables 9, 10,
and 12. Only one tension becomes negative for this choice of passive
cables.
throughout the entire system motion. Both the linear programming and quadratic
programming techniques are employed to choose the best p values. Now the p vector
is three-dimensional, so three p values must to be chosen at each iteration of the
simulation. For the linear and quadratic programming trials, the cT vector is chosen
as [1 1 1], while the H matrix is chosen as the 3 × 3 identity matrix for the quadratic
programming trial. The MATLAB functions linprog and quadprog are utilized here.
The results of both the linear and quadratic programming trials are identical
in both the choice of the p vectors and, thus, the resulting tensions throughout
the system motion. The controller clearly works, as no tension becomes negative
during the entire simulation, while the system exponentially reaches the desired
state. The system motion is identical to that depicted in Figure 3.4. Three of
the tensions (T1, T8 , T11), are, in fact, kept at zero throughout the system motion.
52
This is acceptable, since a zero force is not a compressive force, and furthermore, is
advantageous because no energy input is required for these cables. This is effectively
the same as removing these three cables entirely. Unfortunately, three tensions also
become relatively high. T4, T9, and T12 reach maximum values of 191.0 N , 88.5 N ,
and 92.9 N , respectively. The tension values resulting from the linear/quadratic
programming schemes for this simulation are shown in Figure 3.7.
200
150
T4
100
Tension (N)
T12
50
T9
0
T1 T8 T11
−50
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 3.7: T1 R4C12 D12,34 Tensions vs. Time with All Cables Actuated.
Both linear and quadratic programming methods for choosing p result
in the same nonnegative tensions. T1, T8 , and T11 are zero for all times.
53
Figure 3.8: T1R4 C14D12,23,34 Configuration.
This system is given the same physical parameters, control gains, and initial
and desired states as the previous system. Again, the time interval is taken to be 3
seconds. One degree of overactuation is used in this case, with cables 3, 4, 7, and 8
left passive. Initial lengths for cables 3 and 4 are set to .05 m, and those for cables
7 and 8 are set to .10 m.
This initial choice of passive cables does not yield a feasible region, so cables
9, 10, 13, and 14 are subsequently chosen as replacements. All initial lengths of these
cables are set to .10 m. This time, a feasible region does arise. Using the same c
and H as with the previous system, the linear and quadratic programming methods
again yield identical results. No tensions become negative at any point during the
system motion. T1 and T13 are zero throughout portions of the simulation and all
other tensions are positive. The maximum tension reached is 58.7 N by T4, which is
significantly lower than the highest tensions reached with the previous system. The
tension values for this simulation are presented in Figure 3.9.
54
60
50 T4
40
T3
30
Tension (N)
T2
20
−10
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 3.9: T1 R4C14 D12,23,34 Tensions vs. Time with Passive Cables 9,
10, 13, 14. With one degree of overactuation, both the linear and
quadratic programming methods for choosing p result in the same
nonnegative tensions.
55
Figure 3.10: T2R4 C7 V2 Configuration.
cables and five degrees of freedom. Initially, the system is given only five actuators,
leaving cables 5 and 7 passive. They are each given initial length of .10 m. Again,
the system dynamics are written in the form of (3.1) and the feedback linearization
procedure of section 3.3 is used. Recall q = [y1 θ1 θ2 θ3 θ4 ]T . Under set-point
control, the initial and desired configuration vectors are taken as
These configurations are shown in Figure 3.11. Using the fully-actuated system, T1
becomes negative, as shown in Figure 3.12. Therefore, the simulation is run again,
actuating all cables and using the null-space controller. As Figure 3.13 depticts,
this time all tensions are kept from going negative. T1 and T3 are zero for the
entire simulation. Both linear programming and quadratic programming methods
for finding p with the null-space controller result in the same tensions. Each system
variable properly moves to its desired state. The tracking of the five variables is
shown in Figure 3.14.
56
0.1
0.05
−0.05
−0.1
y (m)
−0.15
−0.2
−0.25
−0.3
−0.35
−0.4
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x (m)
0.1
0.05
−0.05
−0.1
y (m)
−0.15
−0.2
−0.25
−0.3
−0.35
−0.4
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x (m)
3.6 Conclusions
System control for planar tensegrity structures was addressed in this chapter.
Feedback linearlization methods and null-space control utilizing overactuation were
shown to feasibly allow shape modification of a variety of tensegrity structures while
maintaining positive tensions in the cables. It is apparent that the introduction of
more cables allows the required tensions to drop in magnitude, although a more
thorough analysis of this idea would be appropriate in the future. Furthermore, the
57
20
15
T2
T4
10
T
3
Tension (N)
T6
5
T T7
5
T1
−5
−10
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 3.12: T2R4 C7V2 Tensions vs. Time with Passive Cables 5 and 7. T1
becomes negative during the system motion.
25
20
T2
15
Tension (N)
10
T5
5 T6
T4
T7
0
T1 T3
−5
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 3.13: T2R4 C7 V2 Tensions vs. Time with All Cables Actuated. Both
linear and quadratic programming methods for choosing p result in
the same nonnegative tensions. T1 and T3 are zero for all times.
58
Figure 3.14: System Variable Tracking vs. Time. Each system variable
moves exponentially to its desired state.
choice of the number and placement of actuated cables was somewhat arbitrary. In
certain cases, the choice was not acceptable for the null-space controller. Knowing
ahead of time whether a certain choice of actuated cables is suitable to achieve
a particular configuration would be advantageous. This idea is the focus of the
following chapter.
59
Chapter 4
4.1 Introduction
In general, an n-degree-of-freedom system can be fully controlled with n actu-
ators. The reachable domain, or workspace of allowable configurations of the system,
is typically limited by kinematic constraints. In the case of tensegrity structures,
however, due to the additional requirement that all actuated tensions be positive,
an n-degree-of-freedom system with n actuated cables may have a workspace much
more limited than if the actuators could supply compressive forces. Therefore, a
desired configuration of a tensegrity structure that appears to be acceptable at first
glance, may in fact lie outside the feasible workspace. Complicating matters is the
fact that the static workspace, consisting of all configurations where the structure
can maintain static equilibrium, does not account for integrity of the system during
motion from one configuration to another. In other words, the starting and ending
configurations may both lie within the static workspace, but at some time in the
transition between the two configurations, the tensions may try to become negative.
Therefore, it is necessary to develop the dynamic workspace for a structure, which
accounts for this transition between points. It is possible to develop the dynamic
workspace for a tensegrity system that is fully-actuated and also for one that employs
overactuation and null-space control. Obviously, knowing a priori what configura-
tions of a system are attainable with positive tensions is extremely valuable. This
chapter describes the methods used to generate the feasible workspaces for various
60
planar tensegrity structures, as well as presenting results from simulations utilizing
these workspaces.
Several papers have addressed the issue of deriving a static workspace for
a variety of cable-based systems [20, 21, 30, 31, 32]. Similarly, Skelton et al have
discussed necessary static equilibrium conditions for tensegrity structures [2, 25, 33].
However, for a system that is in motion, it is important to recognize that the con-
figurations a system may maintain statically may not necessarily correlate to those
it may reach dynamically. Oh and Agrawal have developed methods of generating
a dynamic workspace for a cable-suspended robot [8, 9, 11, 12, 13]. They show
that future system behavior can be predicted by solving for the error of the system
states analytically based on a given controller. This incorporates system dynamics
rather than simply finding feasible static equilibrium configurations. The analytical
solution can be used to determine which configurations will be dynamically reach-
able. A similar approach based on feedback linearization is used here to develop the
dynamic workspace for planar tensegrity systems.
61
Recall s1 and s2 are given by equation (3.8). Solving for q(t) yields
This equation can be simplified for the case of set-point control. Using set-point
control, the system begins and ends at rest, such that qd is a constant vector,
independent of time. Under this assumption, q̇(0), q̇d (0) = 0 and qd (0) = qd . Then
(4.2) becomes
s2 (qd − q0 ) s1 t s1(qd − q0) s2 t
q(t) = qd − e + e (4.3)
s2 − s1 s2 − s1
where q(0) has been replaced by q0. Similarly, the solution of q̇(t) under set-point
control is
s2(qd − q0) s1 t s1 (qd − q0 ) s2 t
q̇(t) = − s1 e + s2e . (4.4)
s2 − s1 s2 − s1
Thus, analytical solutions of both q(t) and q̇(t) are available, which is essential in
generating the dynamic workspace.
Using set-point control, where qd is composed of fixed values of the system variables,
this equation simplifies to
−1
u(t) = B A Kd (−q̇) + Kp (qd − q) − Cv − g (4.6)
where B −1, C, and v are functions of q, and q and q̇ are given by (4.3) and (4.4),
respectively. Therefore, given a set of control gains Kd and Kp , initial configuration
62
q0, and desired configuration qd , the control inputs u that will be provided to the
system over all time can be found. The dynamic workspace is composed of all qd
that result in positive u at each time. The range of qd that will result in positive
tension inputs typically shrinks over time, meaning that the tensions under certain
choices of qd begin positive but become negative at some time during the system’s
transition between states. These qd are obviously unacceptable, and therefore, the
time-independent dynamic workspace, composed of qd that generate positive tension
inputs for all time, is more significant.
The structure of the dynamic workspace of a given tensegrity system depends
on time, as well as the dimension of vector qd. As the dimension of qd increases
for systems with higher degrees of freedom, it becomes more difficult to depict the
dynamic workspace graphically. For example, the workspace of any system beyond
two degrees of freedom cannot be graphed directly because it will depend on at
least four parameters (three kinematic variables and time), while only three spatial
dimensions exist for plotting. Therefore, representing the workspace graphically
becomes a challenge. There are several ways to manage this issue, however. The
first is limiting motion to one dimension at a time. In other words, given an initial
configuration in, for example, x, y, and θ, one may first find the feasible xd region,
choose a value from this region, and have the system move there. Then this process
may be repeated for the other two system variables. Another option is plotting the
feasible volume of (xd , yd , θd ) combinations at a number of time samples, and then
finding the intersection of these volumes that span the entire time domain. This will
yield a single, time-independent workspace volume. This second option becomes
rather limited beyond a three-degree-of-freedom system, however, as, again, one
cannot plot greater than three dimensions in a single graph. It is, of course, possible
to still find a higher-dimensional workspace without plotting it. Both approaches
to plotting the dynamic workspace of a three-degree-of-freedom tensegrity structure
63
are discussed in the following sections.
64
Figure 4.1: Planar Tensegrity Structure with One Fixed Rod and One
Free Rod.
−−→ −x − l cos θ
d1 = BD = (4.7)
−y − l sin θ
−−→ 2l − x − l cos θ
d2 = BE = (4.8)
−y − l sin θ
−→ 2l − x + l cos θ
d3 = AE = (4.9)
−y + l sin θ
−−→ −x + l cos θ
d4 = AD = (4.10)
−y + l sin θ
65
The cable lengths are found as follows.
−−→ p
L1 = |BD| = (−x − l cos θ)2 + (−y − l sin θ)2 (4.11)
−−→ p
L2 = |BE| = (2l − x − l cos θ)2 + (−y − l sin θ)2 (4.12)
−→ p
L3 = |AE| = (2l − x + l cos θ)2 + (−y + l sin θ)2 (4.13)
−−→ p
L4 = |AD| = (−x + l cos θ)2 + (−y + l sin θ)2 (4.14)
Then unit vectors are found by scaling the tension direction vectors by their respec-
tive cable lengths.
di
d̂i = (4.15)
Li
mẍ = Fx (4.16)
mÿ = Fy (4.17)
I θ̈ = Mz (4.18)
66
The moments created by the four tensions are summed using
−
−→ −
−→ −→ −→
I θ̈ = (CB × T1d̂1 ) + (CB × T2d̂2 ) + (CA × T3d̂3 ) + (CA × T4 d̂4) (4.21)
−→ −
−→
where CA and CB are defined as
−−→ l cos θ −→ −l cos θ
CB = , CA = . (4.22)
l sin θ −l sin θ
These three dynamic equations can be written in matrix form, as in (3.1). The
system variables are grouped into a vector q = [x y θ]T . T1 , T2, and T3 are taken
as the control inputs, making up the vector u. Cable 4 is unactuated, and T4 found
using
T4 = k(L4 − L40 ). (4.24)
Therefore in this case, vector v has only one element, T4. The final matrix form of
the system dynamics is
−x−l cos θ 2l−x−l cos θ 2l−x+l cos θ
m 0 0 ẍ T
L1 L2 L3 1
−y−l sin θ −y−l sin θ −y+l sin θ
0 m 0 ÿ = T2
L1 L2 L3
xl sin θ−yl cos θ −2l2 sin θ+xl sin θ−yl cos θ 2l2 sin θ−xl sin θ+yl cos θ
0 0 I θ̈ L1 L2 L3
T3
−x+l cos θ
0
L4 h i
−y+l sin θ
+ T4 + −mg (4.25)
L4
−xl sin θ+yl cos θ
L4
0
or, again,
Aq̈ = Bu + Cv + g. (4.26)
67
4.4.4 Simulation
To generate the dynamic workspace of the three-degree-of-freedom tensegrity
structure described above, a simulation was developed using MATLAB. The chosen
simulation parameter values are shown in Table 4.1. Given an initial configuration
q0, the dynamic workspace can be determined. This is done numerically, dividing
the ranges of the system variables into discrete samples, and calculating the input
tensions u at each (x, y, θ, t) combination using (4.6). The points where u ≥ 0 are
mapped to the dynamic workspace, while those where u < 0 are omitted.
68
0.3
0.2
0.1
y (m)
0
−0.1
−0.2
−0.3
Figure 4.2: Initial Configuration. The system is given initial values x0 = 0.25m,
y0 = 0m, and θ0 = 90◦ .
and ease of plotting, into 301 equally-spaced discrete values as well. The input
values for each of the actuated cables are then computed for each of these xd -t
combinations. The result is a three-dimensional surface plot of the tensions as a
function of xd and time. Figure 4.3 shows these surface plots of T1, T2 , and T3.
As can be seen, the tensions in all three cables remain positive for all choices of xd .
However, the plots of T2 and T3 approach infinity as xd goes to 0.5m and t increases.
This obviously is not feasible, so a second limiting condition is imposed such that
69
only the points where the tension is less than or equal to 1000N are considered in the
workspace. With the minimum and maximum restrictions established, the region
of feasible points can be plotted in the plane. Figure 4.4 shows the feasible areas
for the three cables and their combined, composite region. This composite region is
the feasible area such that all tensions will remain within the imposed limits. The
thin curved boundary at the top of the shaded area results from the exponential
controller. Choosing an xd above 0.49m will cause tensions to rise beyond the 1000N
limit once time progresses beyond the curved boundary. However, a choice of xd
below this line results in positive inputs that are below the imposed maximum for
all time. The region below the horizontal line at xd = 0.49m thus represents the
time-independent dynamic workspace. Any xd within the time-independent dynamic
workspace is acceptable. A value of xd = 0.37m is arbitrarily chosen. The x-motion
is tracked versus time in Figure 4.5. The tension values for all four cables are shown
in Figure 4.6.
70
Figure 4.4: Feasible Areas for Choice of xd .
71
x−Position vs. Time
0.38
0.37
0.36
0.35
0.34
0.33
0.32
x (m) 0.31
0.3
0.29
0.28
0.27
0.26
0.25
0.24
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 4.5: x-Position versus Time. The system begins at x = 0.25m and
moves exponentially to x = 0.37m.
45
40
Tension (N)
35
T4
30
T1
25
20
15
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 4.6: Cable Tensions During x-Motion. The tension in each cable stays
within the imposed limits throughout the motion from 0.25m to 0.37m.
72
The process for finding the feasible area for yd is then carried out. The new
initial configuration is q0 = [.37 0 90◦ ]T , as shown in Figure 4.7. Now x and θ
are held fixed while yd is varied from −0.25m to 0.25m. Again, t is taken from 0
to 3 seconds and sampled every 0.01 seconds. yd is given an equivalent number of
samples. The resulting tension surface plots are shown in Figure 4.8.
0.3
0.2
0.1
y (m)
−0.1
−0.2
−0.3
Figure 4.7: Initial Configuration for y-Motion. New initial values are x0 =
0.37m, y0 = 0m, and θ0 = 90◦ .
73
approaches 0.25m, though it is difficult to tell due to the scaling of the plots in
Figure 4.8. Figure 4.9, however, shows the feasible areas for each tension and their
composite. The limit at yd = −0.23m is due to excessively high tensions, while
the limit at 0.24m is due to negative tensions. An arbitrary choice of yd = −0.09 is
made. The corresponding y-motion tracking and cable tensions are shown in Figures
4.10 and 4.11, respectively.
74
y−Position vs. Time
0
−0.01
−0.02
−0.03
−0.04
y (m) −0.05
−0.06
−0.07
−0.08
−0.09
−0.1
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 4.10: y-Position versus Time. The system begins at y = 0m and moves
exponentially to y = −0.09m.
T
2
80
70 T3
Tension (N)
60
T1
50
40
T4
30
20
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 4.11: Cable Tensions During y-Motion. The tension in each cable
stays within the imposed limits throughout the motion from 0m to
−0.09m.
75
The final phase of motion is rotation of the angle θ about the rod’s center.
The new initial configuration is q0 = [.37 −.09 90◦ ]T , as shown in Figure 4.12.
In this case, θ is varied from 0◦ to 180◦ and sampled in the same manner as the
previous variables. The other variables are again fixed, and the same time interval
and sampling are used. The tension surface plots each contain several areas that
spike to large positive and negative values, as is shown in Figure 4.13.
0.3
0.2
0.1
y (m)
−0.1
−0.2
−0.3
Figure 4.12: Initial Configuration for θ-Motion. New initial values are x0 =
0.37m, y0 = −0.09m, and θ0 = 90◦ .
76
The corresponding feasible regions are shown in Figure 4.14. Any θd between
37.2◦ and 158.4◦ is acceptable. A value of 125◦ is chosen. The corresponding θ-
motion tracking and cable tensions are shown in Figures 4.15 and 4.16.
77
θ−Orientation vs. Time
130
125
120
115
θ (°)
110
105
100
95
90
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 4.15: θ-Orientation versus Time. The system begins at θ = 90◦ and
moves exponentially to θ = 125◦ .
80
70
Tension (N)
60
T1
50
T4
40
T3
30
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 4.16: Cable Tensions During θ-Motion. The tension in each cable
stays within the imposed limits throughout the motion from 90◦ to
125◦ .
78
Therefore, by plotting the dynamic workspace for each variable and using
consecutive one-dimensional moves, the feasible system motion was determinable
and the desired configuration was reached. The final system configuration of q =
[.37 −.09 125◦ ]T is shown in Figure 4.17.
0.3
0.2
0.1
y (m)
−0.1
−0.2
−0.3
79
the plot resolution is not as sharp. Nevertheless, this method is an effective way of
determining the feasible dynamic workspace.
As a point of comparison, an initial system configuration identical to the
one in the previous method, q0 = [.25 0 90◦ ]T , is used. The same range of each
variable is used again as well: 0 ≤ xd ≤ 0.50, −0.25 ≤ yd ≤ 0.25, 0 ≤ θd ≤ 180,
and 0 ≤ t ≤ 3. Each is sampled at 20 equally-spaced points, producing 160, 000
different combinations for which u is computed. Again the criteria for inclusion in
the dynamic workspace is that all input tensions be positive and not exceed 1000N .
All (xd , yd , θd ) points fulfilling these requirements are mapped to the workspace.
From this point cloud, a more solid volume is created by taking level sets through
each sampled value in each spatial dimension. The change in shape of the workspace
can be seen in Figure 4.18, which shows the feasible volume at six different time
samples. The workspace begins as a cube, filling the entire spatial domain, and
then shrinks as more points become infeasible. The time-independent dynamic
workspace, composed of the intersection of feasible points present at all time samples,
is given in Figure 4.19.
Any point from the time-independent dynamic workspace should produce
satisfactory tensions throughout the motion from q0 to qd . However, it is important
to realize that this method is numerical and depends heavily on the sampling resolu-
tion. It is possible for tensions to spike rapidly and drastically if the system reaches
an unstable configuration, as can be seen in Figure 4.13. Such a situation can occur
when the rods become uncrossed or the cables themselves cross over one another.
If the sampling resolution is fine enough, these spikes will be detected and the cor-
responding points will be eliminated from the workspace. However, because the
degree of computational intensiveness rapidly increases with the resolution, there is
an obvious tradeoff. These unstable points tend to occur at the boundaries of the
80
Figure 4.18: Dynamic Workspace at Successive Time Samples. The feasi-
ble volume shrinks as time progresses.
81
Volume of x , y , θ Combinations Resulting in Feasible Tensions in All Cables for All Times
d d d
180
160
140
120
100
θ ( )
ο
d
80
60
40
20
0
0.25
0.2
0.15
0.1
0.05 0.5
0.45
0 0.4
−0.05 0.35
0.3
−0.1 0.25
−0.15 0.2
0.15
−0.2 0.1
−0.25 0.05
0
yd (m)
x (m)
d
82
workspace, and are avoidable by staying away from the workspace edges. Alterna-
tively, geometric constraints can be placed on the system to prevent it from entering
these problematic configurations.
Using the generated time-independent dynamic workspace, the point qd =
[.37 −.09 125◦ ]T , is shown to again be feasible. It can be seen in Figure 4.20 that all
four tensions remain within the acceptable bounds when this point is chosen. Each
system variable is shown in Figure 4.21 to reach its desired state exponentially.
T2
80
70
Tension (N)
60
50 T
1
T
40 4
T3
30
20
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 4.20: Cable Tensions During Combined x-y-θ Motion. The tension
in each cable stays within the imposed limits throughout the motion
from [.25 0 90◦ ]T to [.37 −.09 125◦ ]T .
y (m)
θ (°)
−0.05 110
0.3
−0.06 105
0.28 −0.07
100
−0.08
0.26 95
−0.09
0.24 −0.1 90
0 1 2 3 0 1 2 3 0 1 2 3
Time (s) Time (s) Time (s)
83
4.4.4.3 Static Workspace Comparison
At this point it is worth comparing the time-independent dynamic workspace
with the static workspace, pictured in Figure 4.22. The static workspace represents
all (xd , yd , θd ) combinations such that the system can hold a static equilibrium con-
figuration while maintaining cable tensions within the defined range from 0N to
1000N . The two plots are very similar, but some regions are absent in the dynamic
workspace that appear in the static workspace, most notably as θd approaches its
limits at 0◦ and 180◦ . What this means is that there are certain configurations in
which the system can hold itself statically and maintain acceptable tensions, but in
order to transition to these points from the specified initial configuration, negative
or excessively high tensions will be required during the motion.
For illustration, consider the point (.30, −.10, 0), which is a part of the static
workspace but not the dynamic workspace. When this point is chosen, the cable
84
tensions are seen in Figure 4.23 to spike at around 0.5 seconds, though once the
system settles to the static equilibrium state, all tensions are within the imposed
limits (T1 = 3.29N, T2 = 0.16N, T3 = 3.39N, T4 = 0N ). Thus, although the
final configuration (Figure 4.24) is a valid statically, the spiking tensions that occur
during the motion eliminate the point from the dynamic workspace.
80
60
40
20
Tension (N)
−20
−40
−60
−80
−100
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 4.23: Cable Tensions During Infeasible Motion. The tensions spike
outside the limits with the choice of qd = [.30 −.10 0◦ ]T .
0.3
0.2
0.1
y (m)
−0.1
−0.2
−0.3
85
4.5 Overactuated System Comparison
In the previous sections, the workspace of a fully-actuated three-degree-of-
freedom planar tensegrity structure was analyzed. The feasible combinations of
its system variables were mapped, showing allowable desired configurations for the
system using three actuated cables and one passive cable. The same procedure can
be performed for an equivalent system with all four cables actuated. Using null-
space control, as discussed in detail in section 3.4, the redundancy of actuation can
be exploited to rectify many of the negative tensions that would otherwise occur in
the system that was only fully actuated. While not every configuration is reachable
with this positive tensions controller, the dynamic workspace is expanded compared
to that of the fully-actuated system.
For the overactuated system, the form of the system dynamics changes slightly
because there are now four control inputs. Equation (4.26) is altered such that C
and v are appended to the coefficient matrix B and control vector u, respectively,
resulting in the simpler form
Aq̈ = Bu + g (4.27)
u = ū + N (B)p (4.28)
where
ū = B T (BB T )−1 [A(q̈d + Kd ė + Kp e) − g], (4.29)
N (B) is the null space of matrix B, and p is a feasibility parameter chosen to satisfy
the condition
ū + N (B)p ≥ 0. (4.30)
86
and the analytical error solution is used to supply q̇ and q at each time sample.
For this simulation, if all elements of ū are positive, there is no need to rectify
the inputs and u is simply set equal to ū. Otherwise (4.30) is analyzed as a set of
four inequalities dependent on a choice of p. The range of feasible p values satisfying
all four inequalities may be lower-bounded, upper-bounded, or both. Any p within
this range will produce nonnegative inputs, though their values will vary depending
on the choice of p. If the range is bounded on only one side, choosing the extremum
value will result in at least one of the tensions being zero since this is the minimum
tension allowed by (4.30). If a slightly positive tension is desired, p may be chosen
slightly above the minimum bound or below the maximum bound. If the range
is double-bounded, the mean of the range is chosen. If all four of the inequalities
cannot be satisfied simultaneously, no feasible region will emerge, and it will be
impossible to avoid nonnegative tensions. When this occurs, the corresponding
(xd , yd , θd ) point is omitted from the dynamic workspace. Otherwise, all (xd , yd , θd )
combinations for which the tensions can be rectified (and do not exceed 1000N ) are
mapped to the dynamic workspace.
As before, the three qd variables and time interval are sampled at 20 equally-
spaced values. The combinations for which the tensions can be made nonnegative
and remain below the maximum limit over the entire time interval are included in
the time-independent dynamic workspace, shown in Figure 4.25. The workspace for
the overactuated system contains 5, 966 mapped points compared to 3, 192 for the
fully-actuated system, meaning that by introducing one extra actuator and using
null-space control, the workspace can be expanded by 87%. Note that the entire
volume for which yd < 0 is included in the workspace. This is because as long as the
free rod’s center of mass is below the horizontal containing the cables’ fixed points,
there is no configuration in which any of the cables would need to push to hold the
rod up. For example, if the rod were horizontal (θd = 0◦ , 180◦ ), at any yd < 0 all
87
four cables would be in tension, carrying the weight of the rod, while at any yd > 0
they would need to be in compression to hold the rod above the line y = 0. The
portion of the feasible volume added by utilizing overactuation is plotted in Figure
4.26.
Volume of x , y , θ Combinations Resulting in Feasible Tensions in All Cables for All Times
d d d
180
160
140
120
100
θ (ο)
d
80
60
40
20
0 0
−0.25 0.05
−0.2 0.1
−0.15 0.15
−0.1 0.2
−0.05 0.25
0 0.3
0.05 0.35
0.1 0.4
0.15 0.45
0.2
0.25 0.5
x (m)
d
y (m)
d
88
180
160
140
120
100
θ ( )
ο
d
80
60
40
20
0 0
−0.25 0.05
−0.2 0.1
−0.15 0.15
−0.1 0.2
−0.05 0.25
0 0.3
0.05
0.1 0.35
0.15 0.4
0.2 0.45
0.25 0.5
x (m)
d
y (m)
d
Although all points in the workspace shown in Figure 4.25 are reachable by
the system, the tensions that are necessary to bring the system to the corresponding
configurations, while positive, may be discontinuous in time. Most often, the discon-
tinuities arise for configurations where the rods become uncrossed, during which the
89
cables themselves sometimes must cross over one another to reach the desired con-
figuration. As mentioned in section 4.4.4.2, geometric constraints may be imposed
which prevent the rods from becoming uncrossed. Two constraints are necessary:
one for the vertical direction and one for the horizontal direction. To ensure the free
rod does not move entirely above or below the fixed rod, it is required that
To ensure that the free rod does not move past the left or right endpoints of the
fixed rod, it is necessary that
α<θ<β (4.33)
where α and β are angles established counterclockwise from the horizontal to cables
3 and 4, respectively. Mathematically, these angles are defined as follows
−1 −y + l sin θ
α = tan (4.34)
2l − x + l cos θ
◦ −1 x − l cos θ
β = 90 + tan . (4.35)
−y + l sin θ
With these constraints imposed, the new time-independent dynamic workspace can
be plotted, as shown in Figure 4.27. In this case 3, 936 points are mapped to the
workspace compared to 3, 175 for the fully-actuated system with the same geometric
constraints imposed. This equates to a 24% increase. The portion of the workspace
that is added by using the null-space controller in this case is shown in Figure 4.28.
The null-space controller also serves, in general, to lower the tension values
that are necessary to govern the system motion. Because the system is overactuated,
there is more freedom in choosing four inputs to control three degrees of freedom.
The null-space controller, while maintaining positive tensions, also chooses these
tensions to be as minimal as possible. As a point of comparison, if the same qd
90
180
160
140
120
100
θd (ο)
80
60
40
20
0.5
0.45
0 0.4
0.25 0.2 0.35
0.3
0.15 0.1 0.25
0.05 0.2
0
−0.05 0.15
−0.1 0.1
−0.15−0.2 0.05
−0.25 0
xd (m)
y (m)
d
180
160
140
120
100
θd ( )
ο
80
60
40
20 0.5
0.45
0 0.4
0.35
0.25 0.2 0.3
0.15 0.1 0.25
0.05 0.2
0 0.15
−0.05−0.1 0.1
−0.15−0.2 0.05
−0.25 0
xd (m)
yd (m)
91
of [.37 −.09 125◦ ]T is chosen for the overactuated system, the corresponding ten-
sions much lower than those for the fully-actuated system, as shown in Figure 4.29.
Compared to Figure 4.20, in which tensions range from 20N to 90N , the present
tensions (between 0.4N and 1.7N ) are significantly improved.
1.8 T3
1.6
T2
1.4
1.2
T4
Tension (N)
0.8
0.6
T1
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3
Time (s)
Figure 4.29: Cable Tensions for Overactuated System Motion. The cable
tensions for system motion from [.25 0 90◦ ]T to [.37 −.09 125◦ ]T
are much lower when using null-space control and an overactuated
system.
4.6 Conclusions
In this chapter, various approaches to mapping the dynamic workspace of pla-
nar tensegrity structures were presented. For a given controller, the tracking error
of the system response was solvable analytically, from which the state of the system
could be determined at any time. From this, the input tension values throughout
the motion from an initial configuration to a desired configuration could be found,
92
and those desired states that afforded tensions which remained within a predefined
range were then mapped to the workspace. The time-independent workspace defined
all feasible configurations a structure could attain under tension constraints. Sim-
ulation results verified the methods, as chosen points within the workspace yielded
appropriate tensions while the system moved to its desired state and the tracking
error went to zero.
93
Chapter 5
EXPERIMENTATION
5.1 Introduction
This chapter details an experimental system that was developed to verify
some of the theories and techniques discussed in the earlier chapters. The experiment
involved a simple three-degree-of-freedom planar tensegrity structure, much like
that described in chapter 4. Experimental data was collected from several trials
and then compared to expected results from simulations based on the same system
parameters.
94
system, only three active cables are used, while an extension spring is used to repre-
sent the passive fourth cable. The three active cables are routed around pulleys fixed
in place to mimic the endpoints of the omitted rod. From there, the cables run to
motors attached to the frame which holds a vertically mounted backboard, against
which the structure moves. The motors used are Kollmorgen GOLDLINE XT Series
direct-drive brushless servomotors, fitted with 2048 count-per-revolution encoders.
In addition, four 50-lb-maximum (222.5 N ) load cells from Transducer Techniques
are used to measure the tension in each cable at any instant during motion. Initially,
the system was designed with cables made of steel wire. However, when these cables
were wound around the aluminum spools attached to the motors, they picked up
electromagnetic interference when the motors were powered on. This noise traveled
along the cables to the load cells, which consequently experienced an approximately
20 N error in their tension readings. Insulating this cable had no effect, and as
a result, the steel cable was replaced with braided high-strength fishing line that
was non-conductive and finally isolated the load cells from this interference. Several
photographs of the experimental system are shown in Figure 5.1.
The control module for the experiment consists of a personal computer run-
ning Windows 2000 and a dSPACE PPC DS1103 Controller Board. The control
module serves to provide data acquisition and feedback control for the system. This
is accomplished using the dSPACE ControlDesk software, which acts as a front-
end user interface. The control program is written in MATLAB Simulink code
and downloaded to the dSPACE controller board using the Real-Time Workshop
software.
The control software acquires data input from two sources: the motor en-
coders and the load cell amplifiers. The motor encoders report the position of each
motor at each sample time, while the load cell amplifiers supply a voltage which is
calibrated to a corresponding tensile force. At the other end, the controller outputs
95
Figure 5.1: Experimental Setup. (A) Backboard with rod, cables, pulleys, load
cells, and motors; (B) routing pulleys; (C) load cells; (D) motor shaft
with cable spool.
a voltage to the motor amplifiers, which supply the appropriate current to turn the
motors with the desired torque.
The basic control algorithm works as follows. The rod is given an initial
configuration for which the cable lengths are measured and known. Because the
cables are made from a stiff material assumed to be rigid, rest-length control (section
3.2) is not applicable but also unnecessary. Instead, the load cells are used to provide
more precise tension data that is constantly updated. With unstretchable cables,
96
the (x, y, θ) configuration of the rod can be found simply from the motor positions.
The motor encoder readings are correlated to lengths of cable wound or unwound.
Each sample time, the change in these lengths is computed. This data is formatted
as a vector that is then multiplied by a Jacobian matrix to find the corresponding
changes in x, y, and θ. Because the initial (x, y, θ) configuration is known, any
later configuration can be found by adding the subsequent changes in position and
orientation. The actual configuration at each time is compared to the chosen desired
set-point configuration. Then, the error is computed and the feedback-linearizing
controller described in section 3.3 for a fully-actuated system is used to compute
the necessary input tensions at each time. Once these tensions are calculated they
are then compared to the actual tensions currently reported by the load cells. A
secondary PID controller then produces a voltage signal that is provided to the
motor amplifiers that will reconcile the two differing tensions and bring the load
cell readings in line with the desired tensions. The motor movements are based
on the tension values and bring the rod to the desired state according to the main
controller.
The experimental parameters are given in Table 5.1. The dynamics for this
system were derived in section 4.4.3 and are included in the control algorithm. The
control law used to determine the input tensions is given by equation 4.6.
Mass m 2.43 kg
Rod Length (Solid Portion) 2ls .58 m
Rod Length (Between Cable Connections) 2l .60 m
1
Rod Moment of Inertia about Center I = 12 m(2ls )2 .00681 kgm2
Passive Cable Spring Constant k 173 N/m
Unstretched Length of Passive Cable L 40 .25 m
Proportional Gain Matrix Kp 50(I[3×3] )
Derivative Gain Matrix Kd 15(I[3×3] )
97
5.3 Experiments
5.3.1 Dynamic Workspace
The goal of this experiment was to start the system from an initial configu-
ration and determine the quality of its response in moving to various set points. In
order to determine feasible choices for the final configuration, the time-independent
dynamic workspace for this system was generated, based on the initial configuration
q0 = [.30 0 90◦ ]T . This workspace is shown in Figure 5.2.
180
160
140
120
100
θd (ο)
80
60
40
20
0
0.3
0.2
0.1 0.6
0.5
0 0.4
−0.1 0.3
−0.2 0.2
0.1
−0.3 0
yd (m)
xd (m)
98
This workspace represents all configurations that may be reached while the
tension remains positive in each cable. Unfortunately, due to the presence of the
load cells and connectors on each of the cables, the motion is further restricted.
Because the load cells and connectors may not pass around the routing pulleys,
none of the active cables may become shorter than approximately .15 m. When this
constraint is added, the resulting time-independent workspace appears as in Figure
5.3. Any point within this volume now represents a feasible final configuration.
180
160
140
120
100
θd (ο)
80
60
40
20
0
0.3
0.2
0.1
0 0.6
−0.1 0.5
0.4
−0.2 0.3
0.2
−0.3 0.1
0
yd (m)
xd (m)
99
5.3.2 Maintaining Fixed Configuration
As a first trial, the ability of the system to maintain a fixed configuration
was tested. The system began from the configuration q0 = [.30 0 90◦ ]T and was
asked to hold this position. The expected x, y, and θ values (from simulation) and
the recorded experimental values are compared in Figure 5.4. All three variables
maintain their desired values reasonably well, with y performing best.
The corresponding cable tensions are shown below in Figure 5.5. Values from
the simulated perfect system are constant. The experimental values are close to the
simulation values, but as the system moves slightly, the desired tensions vary in an
effort to keep the system at the initial configuration. The load cell values show the
actual tensions track with the desired tensions for the three actuated cables.
100
Figure 5.5: Tension Values for Fixed Configuration Experiment.
but after several seconds drifts further away. This problem is a result of friction in
the motors. After approaching the desired configuration, but not reaching it exactly,
the controller continues to try to correct for the error. However, when this error
becomes small, the change in voltage supplied to the motor amplifiers becomes small
and the motors have difficulty moving from their rest state. Eventually one of the
101
Figure 5.6: Position and Orientation Tracking for x-y Translation Exper-
iment.
motors is able to overcome the friction but then overshoots its mark, causing the
other motors to jerk as well. The jump in y and θ at around 6 seconds illustrates
this phenomenon. The load cells are eventually brought equal to the calculated
tensions which should move the system to the correct position, but due to the
friction, the system is unable to move to the desired position and becomes stuck
at an incorrect equilibrium position. The corresponding calculated desired tensions
and actual tensions read by the load cells are shown in Figure 5.7.
To show a comparison between the early experimental response and that from
simulation, the first couple seconds of the plots from Figures 5.6 and 5.7 are shown
again with the expected results from simulation in Figures 5.8 and 5.9. The early
actual response is similar to the simulation results, though significant error is still
present.
102
Figure 5.7: Tension Values for x-y Translation Experiment.
103
Figure 5.8: Early Portion of Position and Orientation Tracking for x-y
Translation Experiment. The actual experimental tracking rea-
sonably approximates the expected results from simulation.
Figure 5.9: Early Portion of Tension Values for x-y Translation Experi-
ment.
104
5.3.4 Motion to x = .25 m, y = −.07 m, θ = 100◦
Lastly, motion consisting of both translation and rotation of the rod was
investigated. The desired configuration was chosen as qd = [.25 −.07 100◦ ]T . The
system motion for this experiment is shown in Figure 5.10. The system exhibited
a reasonably good response. Initially, all three variables move toward their desired
states. The x variable reaches its mark but then retreats slightly before settling
back to the desired value. The y variable overshoots its mark and is unable to
recover, likely due to gravity effects. As it drops toward the desired −.07 m value
under gravity, it falls quickly to around −.11 m. It then tries to move back upwards
but is only able to reach −.10 m. The angle approaches the desired 100◦ twice but
eventually settles back to a value of around 93◦ . It is not unexpected, however, that
the angular motion has this type of error when a slight deviation in the tension of any
of the cables has a dramatic effect on the angle of the rod. This error is compounded
by the fact that a differential of only 10◦ between the initial and desired orientations
was specified. Had the differential been 20◦ or 30◦ , this error would be much less
conspicuous. Unfortunately, due to the mechanical constraints of the system, such
motions are not easily accomplished. Similarly, if it were possible to make larger
movements in either of the x or y directions with, perhaps, a system with larger
dimensions, the errors in these motions would not be as significant. Figure 5.11
shows the tension values for this experiment. In this case, the tensions follow the
expected results from simulation reasonably well, especially T2 and T4. The PID
tension controller also works well to bring the actual load cell values to the desired
calculated tensions.
5.4 Conclusions
This chapter described an experimental system developed to test the per-
formance of a three-degree-of-freedom planar tensegrity structure. In general, the
system performed satisfactorily for an initial prototype, but future versions of such a
105
Figure 5.10: Position and Orientation Tracking for Translation-Rotation
Experiment.
106
device should attempt several improvements. Most importantly, motor friction must
be eliminated. This was apparently the biggest obstacle to achieving a smooth, ac-
curate system response. Smaller, more sensitive motors would be better suited for
this type of application. Furthermore, a system with larger dimensions would allow
for more maneuverability, especially if load cells are again placed on the cables.
Future iterations should also implement the null-space controller of chapter 3. This
overactuation will also allow for a wider range of feasible motions, as the dynamic
workspace is expanded. Overall, however, this preliminary experiment demonstrated
the ability to physically implement a controllable planar tensegrity structure.
107
Chapter 6
CONCLUSION
108
pattern. Finally, it is unambiguous in its enumeration process, allowing for con-
sistent numbering to be maintained regardless of how a structure is constrained or
whether certain cables are absent.
The remainder of chapter 2 detailed a framework for the structural analysis
of planar tensegrity systems. This included modeling of physical parameters such
as rod positions and cable forces, constraint management, and derivation of the
dynamic equations of motion that govern a tensegrity structure. The procedure
for dynamic analysis was outlined for both Class 1 and Class 2 structures and an
example of each was included to demonstrate the strategies.
In chapter 3, the control issues involved with tensegrity systems were ad-
dressed, the most important of which is the need to maintain positive tensions in
the cables. Through the use of redundant active cables, a null-space controller
based on feedback linearization was developed to bring a tensegrity structure from
one configuration to another while preventing the tensions from becoming nega-
tive. Simulations of structures from both tensegrity classes revealed the necessity
for such a controller, as a system that was merely fully-actuated often developed
negative tensions in its attempt to move to the desired configuration. Overactuating
the same systems and using the null-space controller showed the proposed methods
were effective at keeping the tensions from crossing into the negative range, while
the desired configuration was reached.
Chapter 4 discussed the concept of a dynamic workspace for tensegrity struc-
tures and techniques for determining this workspace. Significant research has gone
into static workspace determination of a variety of systems, including tensegrity sys-
tems. However, for systems in motion, the configurations that are maintainable in
a static sense do not necessarily correlate to those that are reachable dynamically.
The work presented in this chapter extended the research of Oh and Agrawal that
developed similar methods for a cable-suspended robot. By analytically solving for
109
the error in the system states based on a given controller, it is possible to predict
future system behavior. From this information, the required tension inputs can be
determined. This incorporates system dynamics rather than simply finding feasible
static equilibrium configurations. The dynamic workspace consists of the ranges
of each system variable for which a system obeys imposed tension constraints at
a given time. Because the dynamic workspace is time-dependent, the more mean-
ingful concept of the time-independent dynamic workspace was then introduced.
This workspace consists of the range of configurations that are reachable without
violating the tension constraints at any time throughout the entire system motion.
To the author’s best knowledge, idea of a dynamic workspace has not previously
been developed for tensegrity robots. Two different techniques for the generation
of the dynamic workspace were detailed in this chapter. In the first, motion was
limited to one degree of freedom at a time. The feasible range for one variable was
mapped, and a choice for the desired output was made from this range. The system
was moved in this dimension and then the process was repeated for the remaining
degrees of freedom. The second technique combined all system variables into one
map, showing the combinations which resulted in feasible final configurations. An
acceptable choice for the full system configuration could be made directly in this
approach. The various workspace methods were each illustrated in simulation for a
three-degree-of-freedom planar structure with four cables.
In chapter 5, the design and implementation of a controllable three-degree-
of-freedom planar tensegrity structure were described. This fully-actuated system
utilized the feedback-linearizing control of chapter 3 and the dynamic workspace
determination described in chapter 4. While the system response suffered signifi-
cantly from motor friction and other disturbances, the controller was able to move
the structure in the general desired manner toward allowable configurations cho-
sen from the generated dynamic workspace. This preliminary experimental system
110
demonstrated the feasibility of creating a physical implementation of the types of
structures analyzed previously in simulation.
111
dynamic workspace for various structures with more than three degrees of freedom.
Presenting the workspace for such a structure in a coherent form is still a challenge,
however.
Finally, as the behavior of these structures becomes better understood, more
consideration to their physical implementation is necessary. Tensegrity systems are
not easily suited to the incorporation of actuators into their structure, as attaching
bulky motors to slender rods dramatically changes the system dynamics. It is possi-
ble in some cases to locate actuators remotely, fixed at the base of the structure, for
example, or attached to a frame (as in the system presented in chapter 5). Although
as structures become more complex, this type of placement becomes increasingly dif-
ficult. Also, if these structures are to be used as robotic manipulators, issues such
as end-effector design must be addressed. It is reasonable to expect that spatial
tensegrity structures similar to the planar types addressed here will be better suited
for actual implementation and use in tasks such as deployment or object manipu-
lation. Therefore, the ideas presented here should be extended to similar spatial
structures in the future to study their performance as well. Overall, however, the
results of this thesis lay a solid foundation for the analysis and control of subclass
of tensegrity structures and their suitability for a variety of robotic applications.
112
BIBLIOGRAPHY
113
[11] S. R. Oh and S. K. Agrawal. Guaranteed reachable domain and control design
of a cable suspended robot subject to input constraints. In American Control
Conference 2005, Portland, OR, June 2005.
[17] J. P. Pinaud, M. Masic, and R. E. Skelton. Path planning for the deployment
of tensegrity structures. In SPIE’s 10th Annual International Symposium on
Smart Structures and Materials, San Diego, CA, March 2003.
[20] J. Pusey, A. Fattah, S. Agrawal, and E. Messina. Design and workspace anal-
ysis of a 6-6 cable-suspended parallel robot. Mechanism and Machine Theory,
39:761–778, 2004.
114
[23] R. E. Skelton. http://maeweb.ucsd.edu/~skelton/laboratory/crawler.
htm.
115