<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Built Environ.</journal-id>
<journal-title>Frontiers in Built Environment</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Built Environ.</abbrev-journal-title>
<issn pub-type="epub">2297-3362</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fbuil.2020.00098</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Built Environment</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A General Model for Both Shape Control and Locomotion Control of Tensegrity Systems</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Cai</surname> <given-names>Huiying</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Wang</surname> <given-names>Meijia</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Xu</surname> <given-names>Xian</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/572213/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Luo</surname> <given-names>Yaozhi</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Space Structures Research Center, Department of Civil Engineering, Zhejiang University</institution>, <addr-line>Hangzhou</addr-line>, <country>China</country></aff>
<aff id="aff2"><sup>2</sup><institution>5th Comprehensive Architectural Design Institutes, Zhejiang Province Institute of Architectural Design and Research</institution>, <addr-line>Hangzhou</addr-line>, <country>China</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Gennaro Senatore, &#x000C9;cole Polytechnique F&#x000E9;d&#x000E9;rale de Lausanne, Switzerland</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Fernando Fraternali, University of Salerno, Italy; Landolf Rhode-Barbarigos, University of Miami, United States</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Xian Xu <email>xian_xu&#x00040;zju.edu.cn</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Computational Methods in Structural Engineering, a section of the journal Frontiers in Built Environment</p></fn></author-notes>
<pub-date pub-type="epub">
<day>30</day>
<month>06</month>
<year>2020</year>
</pub-date>
<pub-date pub-type="collection">
<year>2020</year>
</pub-date>
<volume>6</volume>
<elocation-id>98</elocation-id>
<history>
<date date-type="received">
<day>27</day>
<month>02</month>
<year>2020</year>
</date>
<date date-type="accepted">
<day>28</day>
<month>05</month>
<year>2020</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2020 Cai, Wang, Xu and Luo.</copyright-statement>
<copyright-year>2020</copyright-year>
<copyright-holder>Cai, Wang, Xu and Luo</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract><p>Tensegrity systems composed of tension and compression elements have the potential for use in configurable structures and locomotive robots. In this work, we propose a general mathematical model for controllable tensegrity structures. Additionally, a method combining a genetic algorithm (GA) and dynamic relaxation method (DRM) is developed to solve the model. Our proposed model and method are applied to a typical shape controlled tensegrity and a typical locomotive tensegrity system. Firstly, the shape control of a two-stage tri-prism tensegrity is considered, and a collision-free path with minimum energy consumption is identified by using our approach. Secondly, gait design and path planning of a six-strut tensegrity is considered, and optimal gaits and motion paths are obtained by using our approach. The generality and feasibility of the proposed approach is conceptually verified in these implementations.</p></abstract>
<kwd-group>
<kwd>controllable tensegrity</kwd>
<kwd>optimization model</kwd>
<kwd>shape control</kwd>
<kwd>gait design</kwd>
<kwd>path planning</kwd>
</kwd-group>
<contract-sponsor id="cn001">Natural Science Foundation of Zhejiang Province<named-content content-type="fundref-id">10.13039/501100004731</named-content></contract-sponsor>
<contract-sponsor id="cn002">National Natural Science Foundation of China<named-content content-type="fundref-id">10.13039/501100001809</named-content></contract-sponsor>
<counts>
<fig-count count="10"/>
<table-count count="5"/>
<equation-count count="27"/>
<ref-count count="44"/>
<page-count count="12"/>
<word-count count="7025"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>Introduction</title>
<p>Tensegrity systems are a class of special prestressed pin-jointed bar assembly, composed of compression elements and tension elements. A distinguishing feature of tensegrity structures is that their shape and mechanical properties can be actively controlled by prestressing their structural elements, making them good candidates for structural systems requiring controllable shapes and mechanical properties, such as smart structures (Shea et al., <xref ref-type="bibr" rid="B32">2002</xref>; Fest et al., <xref ref-type="bibr" rid="B8">2003</xref>; Motro, <xref ref-type="bibr" rid="B22">2003</xref>; Al Sabouni-Zawadzka, <xref ref-type="bibr" rid="B1">2014</xref>), deployable structures (Fazli and Abedian, <xref ref-type="bibr" rid="B7">2011</xref>; Veuve et al., <xref ref-type="bibr" rid="B36">2015</xref>; Kan et al., <xref ref-type="bibr" rid="B12">2018</xref>; Oh et al., <xref ref-type="bibr" rid="B24">2018</xref>), tunable metamaterials (Fraternali et al., <xref ref-type="bibr" rid="B9">2014</xref>; Amendola et al., <xref ref-type="bibr" rid="B2">2018</xref>; Liu et al., <xref ref-type="bibr" rid="B18">2019</xref>), and robots (Paul et al., <xref ref-type="bibr" rid="B28">2006</xref>; Mirletz et al., <xref ref-type="bibr" rid="B21">2015</xref>; Kim et al., <xref ref-type="bibr" rid="B15">2017</xref>; Cera and Agogino, <xref ref-type="bibr" rid="B6">2018</xref>; Park et al., <xref ref-type="bibr" rid="B27">2019</xref>; Wang et al., <xref ref-type="bibr" rid="B37">2019</xref>). The actuators of a controllable tensegrity structure can usually be idealized as active members with variable rest lengths. The main problem to be solved in the control of a tensegrity system given an actuation configuration is determining the actuations (i.e., rest length changes of the active members) required to drive the structural system from its initial state to the target state.</p>
<p>If the actuations are imposed on the structural system very slowly and the structural system remains in static equilibrium throughout the control process, it is deemed a quasi-static system and the control problem can be interpreted as that of finding a static equilibrated path to connect the initial and target states. Most recent studies on shape control of tensegrity structures have treated it as a quasi-static process (Shea et al., <xref ref-type="bibr" rid="B32">2002</xref>; Sultan et al., <xref ref-type="bibr" rid="B33">2002</xref>; Xu et al., <xref ref-type="bibr" rid="B40">2014</xref>). In particular, the prestressable equilibrium manifold of symmetrical prism tensegrity structures can be identified analytically, and then feasible control paths can be determined based on the equilibrium manifold using a search strategy (Sultan et al., <xref ref-type="bibr" rid="B33">2002</xref>; Sultan and Skelton, <xref ref-type="bibr" rid="B34">2003</xref>). For general cases in which the equilibrium manifold cannot easily be determined, an algorithm based on rapidly-exploring random trees has been proposed to find feasible actuation sets for the shape control of tensegrity systems (Xu et al., <xref ref-type="bibr" rid="B40">2014</xref>). Form-finding methods, such as dynamic relaxation method (Fest et al., <xref ref-type="bibr" rid="B8">2003</xref>) and non-linear force method (Xu and Luo, <xref ref-type="bibr" rid="B38">2009</xref>) have been used to track the quasi-static motion of shape controlled tensegrities. Meanwhile, the dynamic effect have to be considered in the studies of locomotive tensegrity systems, due to the stronger actuations and environmental interactions involved in such systems. The potential for using tensegrity structures as locomotive systems has recently attracted considerable attention. A tensegrity swimmer was developed to achieve propulsive performance with closed-loop control (Bliss et al., <xref ref-type="bibr" rid="B4">2013</xref>). Omer et al. (<xref ref-type="bibr" rid="B25">2011</xref>) proposed a 2D tensegrity robot to mimic caterpillar locomotion. B&#x000F6;hm and Zimmermann (<xref ref-type="bibr" rid="B5">2013</xref>) proposed a vibration-driven mobile tensegrity robot. The DuCTT (Duct Climbing Tetrahedral Tensegrity) with the ability to traverse complex duct systems was presented and demonstrated (Friesen et al., <xref ref-type="bibr" rid="B10">2014</xref>, <xref ref-type="bibr" rid="B11">2016</xref>). Spherical tensegrity robots with potential application in planetary explorers (SunSpiral et al., <xref ref-type="bibr" rid="B35">2013</xref>; Sabelhaus et al., <xref ref-type="bibr" rid="B30">2015</xref>) have been most intensively studied (Khazanov et al., <xref ref-type="bibr" rid="B13">2013</xref>; Kim, <xref ref-type="bibr" rid="B14">2016</xref>; Luo and Liu, <xref ref-type="bibr" rid="B20">2017</xref>; Lu et al., <xref ref-type="bibr" rid="B19">2019</xref>). To track the dynamic motion of locomotive tensegrities, Runge-Kutta method (Rovira and Tur, <xref ref-type="bibr" rid="B29">2009</xref>), multi-body kinematic and dynamic simulation (Lin et al., <xref ref-type="bibr" rid="B17">2016</xref>), and commercial physical engine (Zhao et al., <xref ref-type="bibr" rid="B44">2017</xref>) have been used. Different descriptions and formulations are usually used for the shape control and the locomotion control problems of tensegrity systems, due to the difference in their application scenarios and the difference in the academic background of the researchers. In this paper, both the shape controlled tensegrity systems and the locomotive tensegrity systems will be modeled by the same mathematical formulations and a DRM-based motion tracking algorithm applicable for both quasi-static and dynamic motions will be adopted.</p>
<p>This paper is laid out as follows: section Model for Controllable Tensegrity Systems presents the general mathematical model for controllable tensegrity systems. In section Control Optimization Method, a method incorporating a GA-based optimization scheme with a DRM-based motion tracking algorithm is developed to solve the model. The proposed model and method are implemented in a tensegrity system shape control application in section Shape Control. Section Locomotion Control presents the application of the proposed model and method to locomotive control in tensegrity systems. Finally, section Discussion concludes the study.</p>
</sec>
<sec id="s2">
<title>Model for Controllable Tensegrity Systems</title>
<p>For a tensegrity system composed of <italic>n</italic> nodes and <italic>n</italic><sub><italic>c</italic></sub> elements, an element&#x00027;s type is given by the element type vector <bold>D</bold> = [<italic>D</italic><sub>1</sub>, <italic>D</italic><sub>2</sub>, &#x02026;, <italic>D</italic><sub><italic>n</italic><sub><italic>c</italic></sub></sub>] where <italic>D</italic><sub><italic>i</italic></sub> is defined as:</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M1"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false"><mml:mtr><mml:mtd><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>f</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mi>p</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>s</mml:mi><mml:mi>i</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>e</mml:mi><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>f</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>t</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi><mml:mi>i</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>e</mml:mi><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>For a controllable tensegrity system with <italic>n</italic><sub><italic>a</italic></sub> (<italic>n</italic><sub><italic>a</italic></sub> &#x02264; <italic>n</italic><sub><italic>c</italic></sub>) active elements, the locations of the active elements are described by an active element location vector <bold>D</bold><sub>A</sub> = [<italic>D</italic><sub>A1</sub>, <italic>D</italic><sub>A2</sub>, &#x02026;, <italic>D</italic><sub>A</sub> <sub><italic>n</italic><sub><italic>c</italic></sub></sub>], where</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M2"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false"><mml:mtr><mml:mtd><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>f</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>v</mml:mi><mml:mi>e</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>e</mml:mi><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>f</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mi>s</mml:mi><mml:mi>i</mml:mi><mml:mi>v</mml:mi><mml:mi>e</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>e</mml:mi><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>in which &#x0201C;<italic>active element</italic>&#x0201D; means the element whose length can be actively changed by actuators, and &#x0201C;<italic>passive element</italic>&#x0201D; means the element whose length cannot be actively changed. The active element location vector satisfies that sum (<bold>D</bold><sub>A</sub>) = <italic>n</italic><sub><italic>a</italic></sub>.</p>
<p>The control strategy of a controllable tensegrity system can be described by an actuating function <bold>&#x00394;</bold>. During a given time period [<italic>t</italic><sub><italic>s</italic></sub>, <italic>t</italic><sub><italic>f</italic></sub>], the actuating function of the <italic>i</italic><sup><italic>th</italic></sup> member is defined as <italic>e</italic><sub><italic>i</italic></sub> &#x0003D; <italic>f</italic><sub><italic>i</italic></sub>(<italic>t</italic>), where <italic>f</italic><sub><italic>i</italic></sub> is a continuous function of time <italic>t</italic>. Then, the actuating function <bold>&#x00394;</bold> is written as</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M3"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle mathvariant="bold"><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mstyle mathvariant="bold"><mml:mo>=</mml:mo></mml:mstyle><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M4"><mml:msub><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, in which <inline-formula><mml:math id="M5"><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M6"><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> are the allowable shortening and elongation for the <italic>i</italic><sup><italic>th</italic></sup> member, respectively. Note that <inline-formula><mml:math id="M7"><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math id="M8"><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo></mml:math></inline-formula> 0 for passive members (<italic>D</italic><sub><italic>Ai</italic></sub> = 0). The rest length change ranges of the elements can be expressed as <inline-formula><mml:math id="M9"><mml:mstyle mathvariant="bold"><mml:mtext>E</mml:mtext></mml:mstyle><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. Hence, at any time, the rest length change function of the controllable tensegrity system is required to satisfy the condition that <bold>&#x00394;</bold> &#x02208; <bold>E</bold>.</p>
<p>The rest length of members <inline-formula><mml:math id="M10"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>L</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> at time <italic>t</italic> satisfies</p>
<disp-formula id="E4"><label>(4)</label><mml:math id="M11"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>L</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold"><mml:mo>=</mml:mo></mml:mstyle><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>L</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The internal force <inline-formula><mml:math id="M12"><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> of the <italic>i</italic><sup><italic>th</italic></sup> member is determined by</p>
<disp-formula id="E5"><label>(5)</label><mml:math id="M13"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mrow><mml:mi>G</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msubsup><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>E</italic><sub><italic>i</italic></sub>, <italic>A</italic><sub><italic>i</italic></sub>, <inline-formula><mml:math id="M14"><mml:msubsup><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mrow><mml:mi>G</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, and <inline-formula><mml:math id="M15"><mml:msubsup><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> are the elasticity modulus, cross-sectional area, deformed length, and rest length of the <italic>i</italic><sup><italic>th</italic></sup> member, respectively. Meanwhile, the internal force <inline-formula><mml:math id="M16"><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> of the <italic>i</italic><sup><italic>th</italic></sup> member is required to be within the strength limitations, i.e.,</p>
<disp-formula id="E6"><label>(6)</label><mml:math id="M17"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x02264;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x02264;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M18"><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M19"><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> are the lower bound and upper bound of the strength of the <italic>i</italic><sup><italic>th</italic></sup> member, respectively. Specifically, <inline-formula><mml:math id="M20"><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M21"><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> are given by</p>
<disp-formula id="E8"><label>(7)</label><mml:math id="M23"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mtext>&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mo>&#x02013;</mml:mo><mml:mtext>min</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>f</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr columnalign="right"><mml:mtd><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mtext>&#x000A0;</mml:mtext><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>f</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>F</italic><sub><italic>ci</italic></sub>, <italic>F</italic><sub><italic>bi</italic></sub>, and <italic>F</italic><sub><italic>ti</italic></sub> are the compression strength, buckling strength, and tension strength of the <italic>i</italic><sup><italic>th</italic></sup> member, respectively. Having defined <inline-formula><mml:math id="M24"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>&#x003A9;</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>f</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, the strength constraint on the members of the controllable tensegrity system can be written as <inline-formula><mml:math id="M25"><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>F</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02208;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>&#x003A9;</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>f</mml:mtext></mml:mstyle></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>The equilibrium equation of the tensegrity system at time <italic>t</italic> is written as</p>
<disp-formula id="E9"><label>(8)</label><mml:math id="M26"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>A</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>F</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>F</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <bold>A</bold><sup><italic>t</italic></sup> (<italic>n</italic><sub><italic>r</italic></sub> &#x000D7; <italic>n</italic><sub><italic>c</italic></sub>) is the equilibrium matrix, <bold>F</bold><sup><italic>t</italic></sup><sub>e</sub> (<italic>n</italic><sub><italic>r</italic></sub> &#x000D7; 1) is the external nodal load vector, and <italic>n</italic><sub><italic>r</italic></sub> is the number of degrees of freedom. Hence, the unbalanced nodal force <bold>R</bold><sup><italic>t</italic></sup> of the system at time <italic>t</italic> can be expressed as</p>
<disp-formula id="E10"><label>(9)</label><mml:math id="M27"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>R</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>F</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mstyle mathvariant="bold"><mml:mo>-</mml:mo></mml:mstyle><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>A</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>F</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Then, according to Newton&#x00027;s second law:</p>
<disp-formula id="E11"><label>(10)</label><mml:math id="M28"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>R</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold"><mml:mo>=</mml:mo></mml:mstyle><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold"><mml:mtext>M</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>C</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <bold>M</bold> is the nodal mass matrix of the system, <bold>C</bold> is the viscous damping of the system, and <bold>U</bold> is the matrix of nodal coordinates of the system.</p>
<p>Substituting Equation (9) into Equation (10) yields</p>
<disp-formula id="E12"><label>(11)</label><mml:math id="M29"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>F</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>A</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>F</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>M</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>C</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The control objective of the system is case-dependent. It could be a special requirement of the nodal displacement, locomotion distance, or the energy cost to generate the required shape adjustment or motion. Since it is usually a function of the control strategy, it can be conceptually represented as <italic>G</italic>(<bold>&#x00394;</bold>).</p>
<p>Based on the above definitions of the control strategy, constraints, and control objective, a general model for the controllable tensegrity system can be written as</p>
<disp-formula id="E13"><label>(12)</label><mml:math id="M30"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold"><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo class="qopname">min</mml:mo><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>s</mml:mi><mml:mo>.</mml:mo><mml:mi>t</mml:mi><mml:mo>.</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>F</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>A</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>F</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>M</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>C</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle mathvariant="bold"><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant="bold"><mml:mtext>E</mml:mtext></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>&#x003A9;</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>s</mml:mtext></mml:mstyle></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>F</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mi>&#x003A9;</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>f</mml:mtext></mml:mstyle></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>C</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <bold>&#x003A9;<sub><italic>s</italic></sub></bold> represents free space in an environment where the controllable system does not interfere with boundaries or obstacles, and <italic>C</italic>(<bold>&#x00394;</bold>) represents the additional constraints on the system in specific situations.</p>
</sec>
<sec id="s3">
<title>Control Optimization Method</title>
<sec>
<title>Motion Tracking</title>
<p>An incremental procedure based on the dynamic relaxation method (Xu and Luo, <xref ref-type="bibr" rid="B39">2013</xref>) is adopted to simulate the motion of the controllable tensegrity system under a given actuation. The duration of the actuation is discretized by a given time increment of &#x00394;<italic>t</italic>. The state of the system is tracked by a DRM procedure that starts from a known state at time <italic>t</italic> and ends with a new state at time <italic>t</italic> &#x0002B; &#x00394;<italic>t</italic> after a time increment of &#x00394;<italic>t</italic>. Step by step, the motion of the system under the given actuation is discretely depicted. Details of the DRM-based motion tracking procedure are given in the following paragraph.</p>
<p>Under a given actuation <bold>&#x00394;</bold><sup><italic>t</italic></sup>, the residual force <bold>R</bold><sup><italic>t</italic></sup> of the system is determined by Equation (9). According to Equation (10), for a node <italic>j</italic> in the direction <italic>x</italic> at time <italic>t</italic>, we have</p>
<disp-formula id="E14"><label>(13)</label><mml:math id="M31"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M32"><mml:msubsup><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> represents the residual force of node <italic>j</italic> in the direction <italic>x</italic>, and is a component of <bold>R</bold><sup><italic>t</italic></sup>; <italic>M</italic><sub><italic>j</italic></sub> represents the equivalent nodal mass of node <italic>j</italic>; and <italic>C</italic><sub><italic>jx</italic></sub> represents the damping of node <italic>j</italic> in the direction <italic>x</italic>. The nodal acceleration can be approximated in centered finite difference form as</p>
<disp-formula id="E15"><label>(14)</label><mml:math id="M33"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>t</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Substituting Equation (14) into Equation (13), the nodal velocity at <italic>t</italic> &#x0002B; &#x00394;<italic>t</italic>/2 can be expressed as</p>
<disp-formula id="E16"><label>(15)</label><mml:math id="M34"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>t</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:mfrac><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Then, the nodal coordinate at <italic>t</italic> &#x0002B; &#x00394;<italic>t</italic> can be expressed as</p>
<disp-formula id="E17"><label>(16)</label><mml:math id="M35"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mi>t</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mi>t</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>By setting <italic>t</italic> = <italic>t</italic> &#x0002B; &#x00394;<italic>t</italic>, the actuation <bold>&#x00394;</bold><sup><italic>t</italic></sup>, equilibrium matrix <bold>A</bold><sup><italic>t</italic></sup>, internal force <bold>F</bold><sup><italic>t</italic></sup>, external force <bold>F</bold><sup><italic>t</italic></sup><sub>e</sub>, and residual force <bold>R</bold><sup>t</sup> can be updated accordingly. The above central difference process repeats until <italic>t</italic> = <italic>t</italic><sub><italic>f</italic></sub>. The numerical stability of this central difference process is guaranteed by using a time increment &#x00394;<italic>t</italic> no larger than <inline-formula><mml:math id="M36"><mml:msqrt><mml:mrow><mml:mfrac><mml:mrow><mml:mn>2</mml:mn><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:msqrt></mml:math></inline-formula>, where <italic>S</italic> is the highest direct stiffness of any node relative to adjacent nodes (Barnes, <xref ref-type="bibr" rid="B3">1999</xref>). For quasi-static problems, the motion tracking can be interpreted as a series of form-finding processes (Xu and Luo, <xref ref-type="bibr" rid="B39">2013</xref>). In each form-finding process, a sub-iteration scheme is implemented whereby each time step is iterated so that convergence is achieved for each time step (Senatore and Piker, <xref ref-type="bibr" rid="B31">2015</xref>). Fictitious values for mass, stiffness, and damping are used to improve the performance of the algorithm for convergence to the static solution (Zhang et al., <xref ref-type="bibr" rid="B43">2006</xref>). In particular, a technique called &#x0201C;kinetic damping&#x0201D; is usually adopted to expedite the convergence of algorithm (Barnes, <xref ref-type="bibr" rid="B3">1999</xref>; Zhang et al., <xref ref-type="bibr" rid="B43">2006</xref>). Note that the real value for stiffness should be substituted into the each form-found system to evaluate whether the stress and stability limits of the structural elements are met. For dynamic problems, real values for mass, stiffness, and damping are used by the algorithm. The effectiveness of it in dealing with dynamic problems has been demonstrated by a similar procedure called &#x0201C;finite particle method&#x0201D; (Yu and Luo, <xref ref-type="bibr" rid="B41">2009</xref>; Yu et al., <xref ref-type="bibr" rid="B42">2011</xref>). Note that a DRM-based scheme for both quasi-static analysis and dynamic analysis also has been proposed by Senatore and Piker (<xref ref-type="bibr" rid="B31">2015</xref>).</p>
<p>An internal collision-detecting strategy proposed in the literature (Xu et al., <xref ref-type="bibr" rid="B40">2014</xref>) is used here to check whether there is internal collision between any pair of elements. This must be avoided, since any internal collision may cause the moving system to become stuck. As a result, the motion tracking algorithm stops if an internal collision is detected, and the path and corresponding actuation are deemed infeasible. On the other hand, collision between the structural system and its environment is allowed and must be accounted for. The penalty function method (Oden and Kikuchi, <xref ref-type="bibr" rid="B23">1982</xref>; Papadopoulos and Taylor, <xref ref-type="bibr" rid="B26">1992</xref>) is used to consider the interaction between the structural system and its environment. An obstacle in the environment is assumed to be a series of surfaces covered with springs, and the nodes of the tensegrity structure are allowed to penetrate the surface. The normal contact force <italic>F</italic><sub><italic>n</italic></sub> between the node and the surface is evaluated by</p>
<disp-formula id="E18"><label>(17)</label><mml:math id="M37"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mi>&#x003B4;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B4; is the penetration depth; and <italic>k</italic><sub><italic>n</italic></sub> is the virtual normal stiffness of the surface. The friction force <italic>F</italic><sub><italic>f</italic></sub> between the node and the surface is determined by</p>
<disp-formula id="E19"><label>(18)</label><mml:math id="M38"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003BC; is the friction coefficient.</p>
</sec>
<sec>
<title>Optimization Algorithm</title>
<p>To find a control strategy that minimizes the given objective, an optimization algorithm is required. The control problem modeled by Equation (12) is essentially a problem of combinatorial optimization, and the search domain is usually very large. Direct search algorithms such as evolutional algorithms, simulated annealing algorithms, and genetic algorithms are considered suitable for this problem. Without loss of generality, a genetic algorithm is adopted here.</p>
</sec>
<sec>
<title>Solution Flowchart</title>
<p>Combining the DRM-based motion tracking method and GA-based optimization algorithm, the flowchart of the algorithm is as shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. The main steps of the algorithm are as follows:</p>
<list list-type="simple">
<list-item><p>(1) Define the genetic representation and the fitness function; initialize a population.</p></list-item>
<list-item><p>(2) Decode the chromosomes.</p></list-item>
<list-item><p>(3) For each individual, build a numerical model of the corresponding tensegrity system for DRM; initialize the parameters of the numerical tensegrity model, and set <italic>t</italic> &#x0003D; <italic>t</italic><sub><italic>s</italic></sub>; perform Step (4) to Step (6).</p></list-item>
<list-item><p>(4) Apply a control strategy to the numerical tensegrity model through the actuating function <bold>&#x00394;<sup><italic>t</italic></sup></bold>.</p></list-item>
<list-item><p>(5) Calculate the residual nodal force <bold>R</bold><sup><italic>t</italic></sup>; solve Equation (11) by the central difference method; update the nodal acceleration <inline-formula><mml:math id="M39"><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, nodal velocity <inline-formula><mml:math id="M40"><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mo>&#x002D9;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, and nodal coordinate <bold>U</bold><sup><italic>t</italic></sup>; apply constraints.</p></list-item>
<list-item><p>(6) If <italic>t</italic> &#x0003D; <italic>t</italic><sub><italic>f</italic></sub>, go to Step (7); otherwise, set <italic>t</italic> &#x0003D; <italic>t</italic> &#x0002B; &#x00394;<italic>t</italic>, and go to Step (4).</p></list-item>
<list-item><p>(7) Evaluate the fitness of the population. If the population satisfies the convergence condition or the number of generations reaches the maximum permissible, go to Step (9); otherwise, go to Step (8).</p></list-item>
<list-item><p>(8) Apply the selection, crossover, and mutation operators, and create a new generation. Then, go to Step (2).</p></list-item>
<list-item><p>(9) Output the solutions.</p></list-item>
</list>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Flowchart of the solving method.</p></caption>
<graphic xlink:href="fbuil-06-00098-g0001.tif"/>
</fig>
</sec>
</sec>
<sec id="s4">
<title>Shape Control</title>
<sec>
<title>Shape-Controlled Tensegrity System</title>
<p>The feasibility of the proposed model and method in solving tensegrity system shape control problems is tested in a double-layered tri-prism tensegrity structure, which is used as a typical example of a shape-controlled tensegrity system in a previous study (Xu et al., <xref ref-type="bibr" rid="B40">2014</xref>). As shown in <xref ref-type="fig" rid="F2">Figure 2</xref>, the shape-controlled tensegrity consists of 12 nodes, 6 compression members, and 18 tension members. The initial locations and target locations of the nodes are given in <xref ref-type="table" rid="T1">Table 1</xref>. The tension members comprise six vertical cables, six diagonal cables, and six saddle cables. The connectivities of the elements are also shown in <xref ref-type="fig" rid="F2">Figure 2</xref>. The triangle bottom and top of the tensegrity structure are assumed to be rigid, and the three bottom nodes is fixed to the ground. There is a ceiling at <italic>z</italic> = 2.830 m in the space.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Shape-controlled double-layered tri-prism tensegrity structure.</p></caption>
<graphic xlink:href="fbuil-06-00098-g0002.tif"/>
</fig>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Nodal coordinates of the double-layered tri-prism tensegrity system.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Nodes</bold></th>
<th valign="top" align="center" style="border-bottom: thin solid #000000;" colspan="3"><bold>Initial location</bold></th>
<th valign="top" align="center" style="border-bottom: thin solid #000000;" colspan="3"><bold>Target location</bold></th>
</tr>
<tr>
<th/>
<th valign="top" align="center"><bold><italic>x</italic> (m)</bold></th>
<th valign="top" align="center"><bold><italic>y</italic> (m)</bold></th>
<th valign="top" align="center"><bold><italic>z</italic> (m)</bold></th>
<th valign="top" align="center"><bold><italic>x</italic> (m)</bold></th>
<th valign="top" align="center"><bold><italic>y</italic> (m)</bold></th>
<th valign="top" align="center"><bold><italic>z</italic> (m)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="center">1.000</td>
<td valign="top" align="center">0.000</td>
<td valign="top" align="center">2.534</td>
<td valign="top" align="center">2.248</td>
<td valign="top" align="center">&#x02212;0.379</td>
<td valign="top" align="center">1.392</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="center">&#x02212;0.500</td>
<td valign="top" align="center">0.866</td>
<td valign="top" align="center">2.534</td>
<td valign="top" align="center">2.244</td>
<td valign="top" align="center">1.164</td>
<td valign="top" align="center">2.178</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="center">&#x02212;0.500</td>
<td valign="top" align="center">&#x02212;0.866</td>
<td valign="top" align="center">2.534</td>
<td valign="top" align="center">1.079</td>
<td valign="top" align="center">&#x02212;0.037</td>
<td valign="top" align="center">2.624</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="center">0.966</td>
<td valign="top" align="center">0.259</td>
<td valign="top" align="center">1.034</td>
<td valign="top" align="center">0.596</td>
<td valign="top" align="center">0.143</td>
<td valign="top" align="center">0.300</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="center">&#x02212;0.707</td>
<td valign="top" align="center">0.707</td>
<td valign="top" align="center">1.034</td>
<td valign="top" align="center">0.200</td>
<td valign="top" align="center">0.577</td>
<td valign="top" align="center">0.645</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="center">&#x02212;0.259</td>
<td valign="top" align="center">&#x02212;0.966</td>
<td valign="top" align="center">1.034</td>
<td valign="top" align="center">0.402</td>
<td valign="top" align="center">&#x02212;0.216</td>
<td valign="top" align="center">1.570</td>
</tr>
<tr>
<td valign="top" align="left">7</td>
<td valign="top" align="center">0.259</td>
<td valign="top" align="center">0.966</td>
<td valign="top" align="center">1.500</td>
<td valign="top" align="center">0.484</td>
<td valign="top" align="center">1.470</td>
<td valign="top" align="center">0.452</td>
</tr>
<tr>
<td valign="top" align="left">8</td>
<td valign="top" align="center">&#x02212;0.966</td>
<td valign="top" align="center">&#x02212;0.259</td>
<td valign="top" align="center">1.500</td>
<td valign="top" align="center">&#x02212;0.419</td>
<td valign="top" align="center">&#x02212;0.255</td>
<td valign="top" align="center">1.887</td>
</tr>
<tr>
<td valign="top" align="left">9</td>
<td valign="top" align="center">0.707</td>
<td valign="top" align="center">&#x02212;0.707</td>
<td valign="top" align="center">1.500</td>
<td valign="top" align="center">1.128</td>
<td valign="top" align="center">&#x02212;0.066</td>
<td valign="top" align="center">1.065</td>
</tr>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="center">0.500</td>
<td valign="top" align="center">0.866</td>
<td valign="top" align="center">0.000</td>
<td valign="top" align="center">0.500</td>
<td valign="top" align="center">0.866</td>
<td valign="top" align="center">0.000</td>
</tr>
<tr>
<td valign="top" align="left">11</td>
<td valign="top" align="center">&#x02212;1.000</td>
<td valign="top" align="center">0.000</td>
<td valign="top" align="center">0.000</td>
<td valign="top" align="center">&#x02212;1.000</td>
<td valign="top" align="center">0.000</td>
<td valign="top" align="center">0.000</td>
</tr>
<tr>
<td valign="top" align="left">12</td>
<td valign="top" align="center">0.500</td>
<td valign="top" align="center">&#x02212;0.866</td>
<td valign="top" align="center">0.000</td>
<td valign="top" align="center">0.500</td>
<td valign="top" align="center">&#x02212;0.866</td>
<td valign="top" align="center">0.000</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Properties of the members used for the shape-controlled tensegrity structure are given in <xref ref-type="table" rid="T2">Table 2</xref>. A fictitious nodal mass of 1.00 is assumed because the dynamics of the system was not considered in this shape control problem. A linear stiffness of 2 &#x000D7; 10<sup>5</sup> N/m for struts and a linear stiffness of 200 N/m for cables are assumed. The &#x0201C;kinetic damping&#x0201D; is used to expedite the convergence of the DRM. The GA&#x00027;s parameters are set as follows: The population size is 50; the selection type is stochastic universal sampling; the crossover type is two-point; the crossover probability is 1; the mutation probability is 0.7 divided by bits of coding; the maximum number of generations is 200. The algorithm stops when the number of generations reach the maximum number specified.</p>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Properties of members of the double-layered tri-prism tensegrity system.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Type of members</bold></th>
<th valign="top" align="center"><bold>Rest length (m)</bold></th>
<th valign="top" align="center"><bold>Mass (kg)</bold></th>
<th valign="top" align="center"><bold>Linear stiffness (N/m)</bold></th>
<th valign="top" align="center"><bold>Prestress (N)</bold></th>
<th valign="top" align="center"><bold>Compressive strength (N)</bold></th>
<th valign="top" align="center"><bold>Tensile strength (N)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Struts</td>
<td valign="top" align="center">2.380</td>
<td valign="top" align="center">1</td>
<td valign="top" align="center">2 &#x000D7; 10<sup>5</sup></td>
<td valign="top" align="center">&#x02212;100.12</td>
<td valign="top" align="center">&#x02212;400</td>
<td valign="top" align="center">400</td>
</tr>
<tr>
<td valign="top" align="left">Vertical cables</td>
<td valign="top" align="center">1.523</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">200</td>
<td valign="top" align="center">38.90</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">400</td>
</tr>
<tr>
<td valign="top" align="left">Diagonal cables</td>
<td valign="top" align="center">1.598</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">200</td>
<td valign="top" align="center">38.27</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">400</td>
</tr>
<tr>
<td valign="top" align="left">Saddle cables</td>
<td valign="top" align="center">1.103</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">200</td>
<td valign="top" align="center">58.67</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">400</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Vertical and diagonal cables are used as active elements whose rest lengths can actively change in the ranges of 0.40&#x02013;3.20 m and 0.05&#x02013;4.00 m, respectively. The control strategy represented by the actuating function is simplified using the following approach: The actuating function for an active element is divided into a series of actuating steps; in each step the rest length of the active element is assumed to be linearly changed. Given the initial rest length, initial time, end time, and the rest length at the end of each step, the linear actuating function of the element in each step is easily determined. Denoting the rest length change of the element <italic>i</italic> in the <italic>k</italic><sup><italic>th</italic></sup> step as <italic>e</italic><sub><italic>ik</italic></sub>, the actuating function of an element with <italic>q</italic> steps can be expressed as <bold>e</bold><sub><italic>i</italic></sub> (<italic>e</italic><sub><italic>i</italic></sub><sub>1</sub>, <italic>e</italic><sub><italic>i</italic></sub><sub>2</sub>, &#x02026;, <italic>e</italic><sub><italic>iq</italic></sub>). Further assuming that all the active elements possess the same division of actuating steps, i.e., all have <italic>q</italic> steps and the start time and end time of each step are the same for all active elements, the actuating function of the system can be expressed as <bold>&#x00394;</bold>{<bold>e</bold><sub>1</sub>, <bold>e</bold><sub>2</sub>, &#x02026;, <bold>e</bold><sub><italic>nc</italic></sub>}.</p>
</sec>
<sec>
<title>Path Optimization</title>
<p>The requirement to be collision-free is considered as an additional constraint, expressed as <bold>S</bold> &#x02208; <bold>&#x003A9;<sub>c</sub></bold>, in which <bold>S</bold> represents the state of the system and <bold>&#x003A9;<sub>c</sub></bold> represents the states without internal collision. The target state of the control is imposed as a further constraint that <bold>U</bold><sup><italic>tf</italic></sup> = <bold>U</bold><sub>target</sub>. The target state, i.e., the target location of nodes, is given in <xref ref-type="table" rid="T1">Table 1</xref>. This corresponds to change the center of the top triangle of the double-layered tensegrity from the initial position (0.000, 0.000, and 2.534) to (1.857, 0.249, and 2.065). The energy cost of the control strategy is used as the objective which can be expressed as:</p>
<disp-formula id="E20"><label>(19)</label><mml:math id="M41"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:mrow><mml:mo>|</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>n</italic><sub><italic>c</italic></sub> is the number of elements; <inline-formula><mml:math id="M42"><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M43"><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>&#x00394;</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> are the internal forces of the <italic>i</italic><sup><italic>th</italic></sup> element at times <italic>t</italic> and <italic>t</italic>-&#x00394;<italic>t</italic>, respectively; and <inline-formula><mml:math id="M44"><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M45"><mml:msubsup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>&#x00394;</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> are the rest length changes of the <italic>i</italic><sup><italic>th</italic></sup> element at times <italic>t</italic> and <italic>t</italic>-&#x00394;<italic>t</italic>, respectively. The control model is rewritten as</p>
<disp-formula id="E21"><label>(20)</label><mml:math id="M46"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mi>min</mml:mi><mml:mi>G</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:msubsup><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mrow><mml:mstyle displaystyle='true'><mml:msubsup><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac><mml:mo stretchy='false'>(</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:msubsup><mml:mi>e</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mi>e</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:mrow></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>s</mml:mi><mml:mtext>.</mml:mtext><mml:mi>t</mml:mi><mml:mtext>.</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msubsup><mml:mstyle mathvariant='bold'><mml:mtext>F</mml:mtext></mml:mstyle><mml:mi>e</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msup><mml:mstyle mathvariant='bold'><mml:mtext>A</mml:mtext></mml:mstyle><mml:mi>t</mml:mi></mml:msup><mml:msup><mml:mstyle mathvariant='bold'><mml:mtext>F</mml:mtext></mml:mstyle><mml:mi>t</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>M</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover><mml:mstyle mathvariant='bold'><mml:mtext>U</mml:mtext></mml:mstyle><mml:mrow><mml:mn>..</mml:mn></mml:mrow></mml:mover></mml:mrow><mml:mi>t</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>C</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover><mml:mstyle mathvariant='bold'><mml:mtext>U</mml:mtext></mml:mstyle><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mi>t</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>E</mml:mtext></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mtext>U</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mstyle mathvariant='bold'><mml:mo>&#x003A9;</mml:mo></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mtext>s</mml:mtext></mml:mstyle></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msup><mml:mstyle mathvariant='bold'><mml:mtext>F</mml:mtext></mml:mstyle><mml:mi>t</mml:mi></mml:msup><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mstyle mathvariant='bold'><mml:mo>&#x003A9;</mml:mo></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mtext>f</mml:mtext></mml:mstyle></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mtext>S</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mstyle mathvariant='bold'><mml:mo>&#x003A9;</mml:mo></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mtext>c</mml:mtext></mml:mstyle></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msup><mml:mstyle mathvariant='bold'><mml:mtext>U</mml:mtext></mml:mstyle><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msub><mml:mstyle mathvariant='bold'><mml:mtext>U</mml:mtext></mml:mstyle><mml:mrow><mml:mtext>target</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>The reciprocal of the objective, i.e., 1/<italic>G</italic>(<bold>&#x00394;</bold>), is selected as the fitness for the GA. The number of actuating steps is assumed to be 2, i.e., <italic>q</italic> = 2. The computation is carried out on a personal computer with a Intel Core i7-4790k CPU &#x00040; 4.0 GHz and 16 GB RAM. It has taken 293 min to carry out the 200-generation revolution. It is observed that the total energy assumption decreases rapidly in the first 46 generations and then converges slowly on 258.17 N&#x000B7;m (<xref ref-type="fig" rid="F3">Figure 3</xref>). The optimal control strategy, corresponding to the minimum energy cost, is shown in <xref ref-type="table" rid="T3">Table 3</xref>, and the equilibrium configuration at the end of each actuating step of the optimal control strategy is shown in <xref ref-type="fig" rid="F4">Figure 4</xref>. The motion trajectory of the center of upper triangle during the control is shown in <xref ref-type="fig" rid="F5">Figure 5</xref>, in which the thick blue line represents the optimal path generated by the optimal control strategy, and the thin red lines represent 10 feasible paths generated by 10 feasible control strategies found in the evolution process. It is observed that the motion path generated by the optimal control strategy is much shorter than those generated by the unoptimized control strategies.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Total rest length change vs. generations.</p></caption>
<graphic xlink:href="fbuil-06-00098-g0003.tif"/>
</fig>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p>Optimal control strategy for the double-layered tri-prism tensegrity structure.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Actuating steps</bold></th>
<th valign="top" align="center" style="border-bottom: thin solid #000000;" colspan="12"><bold>Rest length change in active elements (m)</bold></th>
</tr>
<tr>
<th/>
<th valign="top" align="center"><bold>1</bold></th>
<th valign="top" align="center"><bold>2</bold></th>
<th valign="top" align="center"><bold>3</bold></th>
<th valign="top" align="center"><bold>4</bold></th>
<th valign="top" align="center"><bold>5</bold></th>
<th valign="top" align="center"><bold>6</bold></th>
<th valign="top" align="center"><bold>7</bold></th>
<th valign="top" align="center"><bold>8</bold></th>
<th valign="top" align="center"><bold>9</bold></th>
<th valign="top" align="center"><bold>10</bold></th>
<th valign="top" align="center"><bold>11</bold></th>
<th valign="top" align="center"><bold>12</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Step 1</td>
<td valign="top" align="center">0.195</td>
<td valign="top" align="center">0.519</td>
<td valign="top" align="center">&#x02212;0.034</td>
<td valign="top" align="center">&#x02212;0.270</td>
<td valign="top" align="center">0.323</td>
<td valign="top" align="center">&#x02212;0.512</td>
<td valign="top" align="center">0.688</td>
<td valign="top" align="center">0.576</td>
<td valign="top" align="center">0.085</td>
<td valign="top" align="center">0.282</td>
<td valign="top" align="center">&#x02212;0.803</td>
<td valign="top" align="center">0.616</td>
</tr>
<tr>
<td valign="top" align="left">Step 2</td>
<td valign="top" align="center">0.696</td>
<td valign="top" align="center">1.277</td>
<td valign="top" align="center">&#x02212;0.104</td>
<td valign="top" align="center">&#x02212;0.793</td>
<td valign="top" align="center">0.581</td>
<td valign="top" align="center">0.122</td>
<td valign="top" align="center">1.317</td>
<td valign="top" align="center">1.624</td>
<td valign="top" align="center">0.151</td>
<td valign="top" align="center">&#x02212;0.864</td>
<td valign="top" align="center">&#x02212;1.344</td>
<td valign="top" align="center">0.707</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Equilibrium configuration after each actuating step: <bold>(A)</bold> after first step and <bold>(B)</bold> after second step.</p></caption>
<graphic xlink:href="fbuil-06-00098-g0004.tif"/>
</fig>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>Motion path of the center of the upper triangle.</p></caption>
<graphic xlink:href="fbuil-06-00098-g0005.tif"/>
</fig>
</sec>
</sec>
<sec id="s5">
<title>Locomotion Control</title>
<sec>
<title>Locomotive Tensegrity System</title>
<p>The application of the proposed model and method to locomotion control in tensegrity systems is tested in a six-strut locomotive tensegrity structure. As shown in <xref ref-type="fig" rid="F6">Figure 6</xref>, the tensegrity system comprises 12 nodes, 6 compression elements, and 24 tension elements. The connectivities and numbers of the elements are also shown in <xref ref-type="fig" rid="F6">Figure 6</xref>. The 24 tension elements generate a pattern of 20 triangles on the outer surface of the structure. Eight of the surface triangles, each of which is closed by elements, are called closed triangles (TC). The other triangles are called opened triangles (TO) because each has only two tension elements and one edge of the triangle is open. For instance, as shown in <xref ref-type="fig" rid="F6">Figure 6</xref>, the triangle with nodes 3, 7, and 12 is a TC, and the triangle with nodes 3, 11, and 12 is a TO. In the ideal state without external load and gravity, the compression elements and the tension elements have the same geometrical length. As a result, in the ideal state all the TCs and TOs are identical.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>Six-strut tensegrity system.</p></caption>
<graphic xlink:href="fbuil-06-00098-g0006.tif"/>
</fig>
<p>The six compression elements are used as active elements, with an actuating range of [&#x02212;5, 5] cm. The actuating speed is assumed to be 10 mm/s. The rest lengths of elements at the initial state and the mechanical properties of the elements are as shown in <xref ref-type="table" rid="T4">Table 4</xref>. The initial state of the system is obtained by applying gravity to the ideal state. A damping coefficient of 0.01 is assumed for the elements. Environmental parameters are set as follows: A stiffness of 1,000 N/m, and a friction coefficient of 0.5 are assumed for the ground; the gravitational acceleration is &#x02212;9.8 m/s<sup>2</sup>.</p>
<table-wrap position="float" id="T4">
<label>Table 4</label>
<caption><p>Rest lengths at initial state and mechanical properties of elements.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Type of members</bold></th>
<th valign="top" align="center"><bold>Rest length (m)</bold></th>
<th valign="top" align="center"><bold>Mass (kg)</bold></th>
<th valign="top" align="center"><bold>Linear stiffness (N/m)</bold></th>
<th valign="top" align="center"><bold>Prestress (N)</bold></th>
<th valign="top" align="center"><bold>Compressive strength (N)</bold></th>
<th valign="top" align="center"><bold>Tensile strength (N)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Struts</td>
<td valign="top" align="center">0.20</td>
<td valign="top" align="center">0.065</td>
<td valign="top" align="center">2 &#x000D7; 10<sup>5</sup></td>
<td valign="top" align="center">&#x02212;31.36</td>
<td valign="top" align="center">&#x02212;150</td>
<td valign="top" align="center">150</td>
</tr>
<tr>
<td valign="top" align="left">cables</td>
<td valign="top" align="center">0.12</td>
<td valign="top" align="center">0.001</td>
<td valign="top" align="center">205</td>
<td valign="top" align="center">12.80</td>
<td valign="top" align="center">&#x02212;150</td>
<td valign="top" align="center">150</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec>
<title>Gait Design</title>
<p>The gait of the locomotive tensegrity structure is designed to satisfy the conditions that (1) the system acquires a certain amount of motion after the gait; and (2) the rest lengths of active elements are not changed before and after the gait, i.e.,</p>
<disp-formula id="E22"><label>(21)</label><mml:math id="M47"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The motion of the system can be expressed by the displacement of the mass center as &#x00394;<italic>u</italic><sup><italic>t</italic></sup><sub>c</sub> = ||<bold>u</bold><sup><italic>t</italic></sup><sub>c</sub>-<bold>u</bold><sup><italic>ts</italic></sup><sub>c</sub>||, in which <bold>u</bold><sub>c</sub> = [<italic>u</italic><sub><italic>cx</italic></sub>, <italic>u</italic><sub><italic>cy</italic></sub>, <italic>u</italic><sub><italic>cz</italic></sub>] is the coordinate of the mass center.</p>
<p>Regarding the symmetry of the tensegrity system, there are two basic stand states in the locomotive system: the TC state and the TO state. As indicated by the names, the tensegrity structure stands on the ground with a TC in the TC state, and with a TO in the TO state.</p>
<p>There are two typical types of gaits for the six-strut locomotive tensegrity system, namely crawling gaits, and rolling gaits (Li et al., <xref ref-type="bibr" rid="B16">2017</xref>). It can be easily recognized that rolling gaits usually generate a larger motion than crawling gaits. To obtain rolling gaits rather than crawling gaits, the objective function for gait design is defined to maximize the horizontal motion of the mass center of the system, i.e.,</p>
<disp-formula id="E23"><label>(22)</label><mml:math id="M48"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac><mml:mo>,</mml:mo><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mtext>&#x000A0;</mml:mtext></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msqrt></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M49"><mml:msubsup><mml:mrow><mml:mi>&#x00394;</mml:mi><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math></inline-formula> is the horizontal motion distance of the mass center at time <italic>t</italic><sub><italic>f</italic></sub>; <inline-formula><mml:math id="M50"><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M51"><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math></inline-formula> are the <italic>x</italic> and <italic>y</italic> coordinates of the mass center at time <italic>t</italic><sub><italic>s</italic></sub>; and <inline-formula><mml:math id="M52"><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M53"><mml:msubsup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math></inline-formula> are the <italic>x</italic> and <italic>y</italic> coordinates of the mass center at time <italic>t</italic><sub><italic>f</italic></sub>. An additional constraint on the number of active elements used in the gait is adopted to impose control on the number of active elements used in the motion. The additional constraint is written as</p>
<disp-formula id="E24"><label>(23)</label><mml:math id="M54"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>n</italic><sub><italic>a</italic></sub> is the number of active elements used in the gait, and <italic>N</italic><sub><italic>a</italic></sub> is an integer constant no larger than 6, specified by the designer.</p>
<p>Substituting the above objective in Equation (22) and additional constraints Equations (21) and (23) into Equation (12), an optimization model for the gait design can be obtained:</p>
<disp-formula id="E25"><label>(24)</label><mml:math id="M55"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>min</mml:mi><mml:mi>G</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mi>u</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>s</mml:mi><mml:mtext>.</mml:mtext><mml:mi>t</mml:mi><mml:mtext>.</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msubsup><mml:mstyle mathvariant='bold'><mml:mtext>F</mml:mtext></mml:mstyle><mml:mi>e</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msup><mml:mstyle mathvariant='bold'><mml:mtext>A</mml:mtext></mml:mstyle><mml:mi>t</mml:mi></mml:msup><mml:msup><mml:mstyle mathvariant='bold'><mml:mtext>F</mml:mtext></mml:mstyle><mml:mi>t</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>M</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover><mml:mstyle mathvariant='bold'><mml:mtext>U</mml:mtext></mml:mstyle><mml:mrow><mml:mn>..</mml:mn></mml:mrow></mml:mover></mml:mrow><mml:mi>t</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>C</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover><mml:mstyle mathvariant='bold'><mml:mtext>U</mml:mtext></mml:mstyle><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mi>t</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>E</mml:mtext></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mtext>U</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003A9;</mml:mi></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mtext>s</mml:mtext></mml:mstyle></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msup><mml:mstyle mathvariant='bold'><mml:mtext>F</mml:mtext></mml:mstyle><mml:mi>t</mml:mi></mml:msup><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003A9;</mml:mi></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mtext>f</mml:mtext></mml:mstyle></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msup><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>n</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>The method proposed in this paper is used to solve this model. The GA used here adopts a maximum number of generations of 100, and the other parameters of it are same as those used in section Shape Control. The computations are carried out with the same computer used in section Shape Control. Two cases, using the TC state and TO state, as the initial state, are considered. The number of stand triangles and triangles adjacent to the stand triangle are shown in <xref ref-type="fig" rid="F7">Figure 7</xref>. In each case, six computations, corresponding to <italic>N</italic><sub><italic>a</italic></sub> = 1, 2, 3, 4, 5, and 6, are performed. The evolution process of the mass center&#x00027;s horizontal motion distance in the computations are shown in <xref ref-type="fig" rid="F8">Figure 8</xref>. In the case using the TC state as the initial state, three typical gaits that, respectively, drive the system rolling from the current stand triangle to the three adjacent triangles are found (<xref ref-type="table" rid="T5">Table 5</xref>). The motion distance of the mass center generated by these gaits is in the range 6.40&#x02013;6.50 cm. In the case using the TO state as the initial state, there are also three gait types. Two respectively, drive the system rolling from the initial stand triangle to two of the three adjacent triangles, whereas the third drives the system rolling twice, from the initial stand triangle to an adjacent triangle, and then to an adjacent triangle again (<xref ref-type="table" rid="T5">Table 5</xref>). The motion distance of the mass center generated by the single-rolling gaits is 6.24 cm. The motion distance of the mass center generated by the double-rolling gait is 10.48 cm; about 1.68 times that generated by the single-rolling gaits.</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>Two initial states: <bold>(A)</bold> TC state and <bold>(B</bold>) TO state.</p></caption>
<graphic xlink:href="fbuil-06-00098-g0007.tif"/>
</fig>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p>Motion distance vs. generations: <bold>(A)</bold> TC state and <bold>(B)</bold> TO state.</p></caption>
<graphic xlink:href="fbuil-06-00098-g0008.tif"/>
</fig>
<table-wrap position="float" id="T5">
<label>Table 5</label>
<caption><p>Locomotive gait for the six-strut tensegrity structure.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Gait number</bold></th>
<th valign="top" align="center"><bold>Gait type</bold></th>
<th valign="top" align="center" style="border-bottom: thin solid #000000;" colspan="6"><bold>Actuating length (cm)</bold></th>
<th valign="top" align="center" style="border-bottom: thin solid #000000;"><bold>Motion distance (cm)</bold></th>
</tr>
<tr>
<th/>
<th/>
<th valign="top" align="center"><bold>1</bold></th>
<th valign="top" align="center"><bold>2</bold></th>
<th valign="top" align="center"><bold>3</bold></th>
<th valign="top" align="center"><bold>4</bold></th>
<th valign="top" align="center"><bold>5</bold></th>
<th valign="top" align="center"><bold>6</bold></th>
<th/>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">1</td>
<td valign="top" align="center">TC-6&#x02192; TO-5</td>
<td valign="top" align="center">&#x02212;4.22</td>
<td valign="top" align="center">5.28</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">6.48</td>
</tr>
<tr>
<td valign="top" align="left">2</td>
<td valign="top" align="center">TC-6&#x02192; TO-7</td>
<td valign="top" align="center">5.30</td>
<td valign="top" align="center">-</td>
<td valign="top" align="center">&#x02212;4.15</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">6.48</td>
</tr>
<tr>
<td valign="top" align="left">3</td>
<td valign="top" align="center">TC-6&#x02192; TO-12</td>
<td/>
<td valign="top" align="center">&#x02212;4.67</td>
<td valign="top" align="center">4.84</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">6.41</td>
</tr>
<tr>
<td valign="top" align="left">4</td>
<td valign="top" align="center">TO-5&#x02192; TC-5</td>
<td valign="top" align="center">5.30</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">6.24</td>
</tr>
<tr>
<td valign="top" align="left">5</td>
<td valign="top" align="center">TO-5&#x02192; TC-6</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td/>
<td valign="top" align="center">5.30</td>
<td valign="top" align="center">6.24</td>
</tr>
<tr>
<td valign="top" align="left">6</td>
<td valign="top" align="center">TO-5&#x02192; TC-5&#x02192; TO-12</td>
<td/>
<td valign="top" align="center">&#x02212;4.56</td>
<td valign="top" align="center">3.73</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">5.28</td>
<td valign="top" align="center">10.48</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec>
<title>Motion Path Planning</title>
<p>For a given initial and target location pairing, there are generally two approaches to realizing motion from the initial to the target location. One is connecting the initial location to the target location using several basic gaits, as given in <xref ref-type="table" rid="T5">Table 5</xref>. This approach is suitable for regular movement on flat terrains with given maps, and a geometry-based algorithm has previously been verified for finding the path for locomotion of a six-strut tensegrity robot (Lu et al., <xref ref-type="bibr" rid="B19">2019</xref>). The other approach is a direct search for a control strategy able to drive movement of the system from the initial location to the target location. This approach is considered more flexible than the first, but normally carries greater computational cost because it has to numerically track motion within the path planning scheme. In the current work, the second approach is adopted. The locations A(<italic>x</italic><sub>A</sub>, <italic>y</italic><sub>A</sub>) and B(<italic>x</italic><sub>B</sub>, <italic>y</italic><sub>B</sub>) are defined as the initial location and the target location.</p>
<p>The objective function is defined as:</p>
<disp-formula id="E26"><label>(25)</label><mml:math id="M56"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false"><mml:mtr><mml:mtd><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>d</mml:mi><mml:mo>&#x0003E;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>&#x003B5;</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>d</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x02264;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>&#x003B5;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>d</italic> is the distance between the current location and the target location, and &#x003B5; is a positive small constant.</p>
<p>The aforementioned additional constraint of no internal collision is included. The motion path planning model can thus be written as</p>
<disp-formula id="E27"><label>(26)</label><mml:math id="M57"><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>f</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>min</mml:mi><mml:mi>G</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>d</mml:mi><mml:mo>&#x0003E;</mml:mo><mml:mi>&#x003B5;</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mi>d</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mi>&#x003B5;</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>s</mml:mi><mml:mtext>.</mml:mtext><mml:mi>t</mml:mi><mml:mtext>.</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msubsup><mml:mstyle mathvariant='bold'><mml:mtext>F</mml:mtext></mml:mstyle><mml:mi>e</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>&#x02212;</mml:mo><mml:msup><mml:mstyle mathvariant='bold'><mml:mtext>A</mml:mtext></mml:mstyle><mml:mi>t</mml:mi></mml:msup><mml:msup><mml:mstyle mathvariant='bold'><mml:mtext>F</mml:mtext></mml:mstyle><mml:mi>t</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>M</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover><mml:mstyle mathvariant='bold'><mml:mtext>U</mml:mtext></mml:mstyle><mml:mrow><mml:mn>..</mml:mn></mml:mrow></mml:mover></mml:mrow><mml:mi>t</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>C</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mover><mml:mstyle mathvariant='bold'><mml:mtext>U</mml:mtext></mml:mstyle><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mi>t</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:mstyle mathvariant='bold'><mml:mtext>E</mml:mtext></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle mathvariant='bold'><mml:mtext>U</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003A9;</mml:mi></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mtext>s</mml:mtext></mml:mstyle></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msup><mml:mstyle mathvariant='bold'><mml:mtext>F</mml:mtext></mml:mstyle><mml:mi>t</mml:mi></mml:msup><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003A9;</mml:mi></mml:mstyle><mml:mstyle mathvariant='bold'><mml:mtext>f</mml:mtext></mml:mstyle></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msup><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mstyle mathvariant='bold'><mml:mo>&#x00394;</mml:mo></mml:mstyle><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>The initial location is set as A (0, 0) and the target location as B (0.1, 0.1). The starting time is set as <italic>t</italic><sub><italic>s</italic></sub> = 0, the end time as <italic>t</italic><sub><italic>f</italic></sub> = 150 s, and the positive small constant &#x003B5; as 0.0005 m. Time is discretized by an interval of 1 s. The GA used here adopts the same set of parameters as used in section Gait Design. It has taken 1,750 min to complete 75 generations on the same computer as that used for the motion path planning optimization.</p>
<p>The evolution of the average and minimum objectives in the computation is shown in <xref ref-type="fig" rid="F9">Figure 9</xref>. The minimum distance between the current and the target location decreases to 0.0004 m in the 69th generation. The individual corresponding to the minimum objective in the last generation is the optimal control strategy, represented by the rest length change spectra of the six active elements, as shown in <xref ref-type="fig" rid="F10">Figure 10A</xref>. The motion trajectory of the system&#x00027;s mass center under the optimal control strategy is shown in <xref ref-type="fig" rid="F10">Figure 10B</xref>. Further investigation into the motion reveals that the system experiences three complete rolls and the stand triangle shifts from TC-6 (3, 7, 12) to TO-7 (3, 4, 7), TC-8 (4, 7, 9), and finally TO-11 (7, 8, 9). Besides the rolling movements, some crawls and shape adjustments occurs, resulting in small-scale movements, as indicated by the red dashed-line rectangles in <xref ref-type="fig" rid="F10">Figure 10B</xref>.</p>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p>Evolution process of motion path planning.</p></caption>
<graphic xlink:href="fbuil-06-00098-g0009.tif"/>
</fig>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p>Optimal solution: <bold>(A)</bold> control strategy and <bold>(B)</bold> motion path.</p></caption>
<graphic xlink:href="fbuil-06-00098-g0010.tif"/>
</fig>
</sec>
</sec>
<sec sec-type="discussion" id="s6">
<title>Discussion</title>
<p>In this paper, the generality of the proposed model is ensured by the following factors: It does not deliberately distinguish between the shape-controlled tensegrity structure and the locomotive tensegrity structure. A unified dynamic formulation is used for the controllable tensegrity structure, though the shape control process is usually deemed to be quasi-static. The DRM-based algorithm using the central difference explicit scheme can track both the deformations and global rigid body motions of tensegrity systems. Conceptual expressions of the subjective and constraints were adopted. The control problem for a controllable tensegrity structure was interpreted as a combinational optimization problem. A similar optimization model was used for shape-controlled tensegrity structures in previous studies (Xu and Luo, <xref ref-type="bibr" rid="B38">2009</xref>; Xu et al., <xref ref-type="bibr" rid="B40">2014</xref>). However, in the current work, quasi-static behavior was assumed for the structural system, and the global rigid body motion of the structural system was eliminated by proper restraints. To some extent, the proposed model may be considered an extension of the previous model.</p>
<p>The global optimization algorithm used in the paper, i.e., the GA, worked well in the shape control example in section Shape Control and the locomotion control example in section Locomotion Control. In both examples, the number of control steps was provided in advance. Situations in which the number of control steps cannot be determined in advance, as in the path planning situations considered in the literature (Xu et al., <xref ref-type="bibr" rid="B40">2014</xref>; Lu et al., <xref ref-type="bibr" rid="B19">2019</xref>), are difficult to handle with a GA. Further considering that there is no constraint on the number of control steps in the mathematical model given in Equation (12), the generality of the GA does not match that of the model. Various other global optimization algorithms besides a GA could be used, based on the specific application.</p>
</sec>
<sec sec-type="conclusions" id="s7">
<title>Conclusion</title>
<p>In this paper, a general model for both shape control and locomotion control of tensegrity systems is proposed. A method combining GA and DRM was adopted to solve the model. The proposed model and method were applied to typical tensegrity system shape and locomotion control problems. The results demonstrate that both the shape control problem of a double-layered tri-prism tensegrity structure, and the locomotion control problem of a six-strut tensegrity structure can be modeled by the proposed model, and solved by the proposed method. We believe the proposed model is also suitable for control problems in other types of tensegrity system. The applicability of the proposed GA-based method to control problems of higher complexity and larger scale than those presented in this work could be subject of future investigation.</p>
</sec>
<sec sec-type="data-availability-statement" id="s8">
<title>Data Availability Statement</title>
<p>All datasets generated for this study are included in the article/supplementary material.</p>
</sec>
<sec id="s9">
<title>Author Contributions</title>
<p>HC developed the model and method for the controllable tensegrity. XX proposed the main idea of the paper. MW assisted HC in the numerical computations in the applications. YL developed the DRM-based algorithm for dynamic tensegrity. All authors contributed to the article and approved the submitted version.</p>
</sec>
<sec id="s10">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Al Sabouni-Zawadzka</surname> <given-names>A.</given-names></name></person-group> (<year>2014</year>). <article-title>Active control of smart tensegrity structures</article-title>. <source>Arch. Civil Eng.</source> <volume>60</volume>, <fpage>517</fpage>&#x02013;<lpage>534</lpage>. <pub-id pub-id-type="doi">10.2478/ace-2014-0034</pub-id></citation></ref>
<ref id="B2">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Amendola</surname> <given-names>A.</given-names></name> <name><surname>Krushynska</surname> <given-names>A.</given-names></name> <name><surname>Daraio</surname> <given-names>C.</given-names></name> <name><surname>Pugno</surname> <given-names>N. M.</given-names></name> <name><surname>Fraternali</surname> <given-names>F.</given-names></name></person-group> (<year>2018</year>). <article-title>Tuning frequency band gaps of tensegrity mass-spring chains with local and global prestress</article-title>. <source>Int. J. Solids Struct.</source> <volume>155</volume>, <fpage>47</fpage>&#x02013;<lpage>56</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijsolstr.2018.07.002</pub-id></citation></ref>
<ref id="B3">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Barnes</surname> <given-names>M. R.</given-names></name></person-group> (<year>1999</year>). <article-title>Form finding and analysis of tension structures by dynamic relaxation</article-title>. <source>Int. J. Space Struct.</source> <volume>14</volume>, <fpage>89</fpage>&#x02013;<lpage>104</lpage>. <pub-id pub-id-type="doi">10.1260/0266351991494722</pub-id></citation></ref>
<ref id="B4">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bliss</surname> <given-names>T.</given-names></name> <name><surname>Iwasaki</surname> <given-names>T.</given-names></name> <name><surname>Bart-Smith</surname> <given-names>H.</given-names></name></person-group> (<year>2013</year>). <article-title>Central pattern generator control of a tensegrity swimmer</article-title>. <source>IEEE/ASME Trans. Mech.</source> <volume>18</volume>, <fpage>586</fpage>&#x02013;<lpage>597</lpage>. <pub-id pub-id-type="doi">10.1109/TMECH.2012.2210905</pub-id></citation></ref>
<ref id="B5">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>B&#x000F6;hm</surname> <given-names>V.</given-names></name> <name><surname>Zimmermann</surname> <given-names>K.</given-names></name></person-group> (<year>2013</year>). <article-title>Vibration-driven mobile robots based on single actuated tensegrity structures</article-title>, in <source>Proceedings - IEEE International Conference on Robotics and Automation</source>. (Karlsruhe), <pub-id pub-id-type="doi">10.1109/ICRA.2013.6631362</pub-id></citation></ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cera</surname> <given-names>B.</given-names></name> <name><surname>Agogino</surname> <given-names>A. M.</given-names></name></person-group> (<year>2018</year>). <article-title>Multi-cable rolling locomotion with spherical tensegrities using model predictive control and deep learning</article-title>, in: <source>IEEE International Conference on Intelligent Robots and Systems</source> (Madrid), <fpage>6595</fpage>&#x02013;<lpage>6600</lpage>. <pub-id pub-id-type="doi">10.1109/IROS.2018.8594401</pub-id></citation></ref>
<ref id="B7">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fazli</surname> <given-names>N.</given-names></name> <name><surname>Abedian</surname> <given-names>A.</given-names></name></person-group> (<year>2011</year>). <article-title>Design of tensegrity structures for supporting deployable mesh antennas</article-title>. <source>Scientia Iranica</source> <volume>18</volume>, <fpage>1078</fpage>&#x02013;<lpage>1087</lpage>. <pub-id pub-id-type="doi">10.1016/j.scient.2011.08.006</pub-id></citation></ref>
<ref id="B8">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fest</surname> <given-names>E.</given-names></name> <name><surname>Shea</surname> <given-names>K.</given-names></name> <name><surname>Domer</surname> <given-names>B</given-names></name> <name><surname>Smith</surname> <given-names>I. F. C.</given-names></name></person-group> (<year>2003</year>). <article-title>Adjustable tensegrity structures</article-title>. <source>J. Struct. Eng.</source> <volume>129</volume>, <fpage>515</fpage>&#x02013;<lpage>526</lpage>. <pub-id pub-id-type="doi">10.1061/(ASCE)0733-9445(2003)129:4(515)</pub-id></citation></ref>
<ref id="B9">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fraternali</surname> <given-names>F.</given-names></name> <name><surname>Carpentieri</surname> <given-names>G.</given-names></name> <name><surname>Amendola</surname> <given-names>A.</given-names></name> <name><surname>Skelton</surname> <given-names>R. E.</given-names></name> <name><surname>Nesterenko</surname> <given-names>V. F.</given-names></name></person-group> (<year>2014</year>). <article-title>Multiscale tunability of solitary wave dynamics in tensegrity metamaterials</article-title>. <source>Appl. Phys. Lett.</source> <volume>105</volume>:<fpage>201903</fpage>. <pub-id pub-id-type="doi">10.1063/1.4902071</pub-id></citation></ref>
<ref id="B10">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Friesen</surname> <given-names>J.</given-names></name> <name><surname>Pogue</surname> <given-names>A.</given-names></name> <name><surname>Bewley</surname> <given-names>T.</given-names></name> <name><surname>Oliveira</surname> <given-names>M. D.</given-names></name> <name><surname>Skelton</surname> <given-names>R.</given-names></name> <name><surname>Sunspiral</surname> <given-names>V.</given-names></name></person-group> (<year>2014</year>). <article-title>DuCTT: a tensegrity robot for exploring duct systems</article-title>, in <source>Proceedings - IEEE International Conference on Robotics and Automation</source> (<publisher-loc>Hong Kong</publisher-loc>), <fpage>4222</fpage>&#x02013;<lpage>4228</lpage>. <pub-id pub-id-type="doi">10.1109/ICRA.2014.6907473</pub-id></citation></ref>
<ref id="B11">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Friesen</surname> <given-names>J. M.</given-names></name> <name><surname>Glick</surname> <given-names>P.</given-names></name> <name><surname>Fanton</surname> <given-names>M.</given-names></name> <name><surname>Manovi</surname> <given-names>P.</given-names></name> <name><surname>Sunspiral</surname> <given-names>V.</given-names></name></person-group> (<year>2016</year>). <article-title>The second generation prototype of a duct climbing tensegrity robot, DuCTTv2</article-title>, in <source>Proceedings - IEEE International Conference on Robotics and Automation</source> (<publisher-loc>Stockholm</publisher-loc>), <fpage>2123</fpage>&#x02013;<lpage>2128</lpage>. <pub-id pub-id-type="doi">10.1109/ICRA.2016.7487361</pub-id></citation></ref>
<ref id="B12">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kan</surname> <given-names>Z.</given-names></name> <name><surname>Peng</surname> <given-names>H.</given-names></name> <name><surname>Chen</surname> <given-names>B.</given-names></name> <name><surname>Zhong</surname> <given-names>W.</given-names></name></person-group> (<year>2018</year>). <article-title>Nonlinear dynamic and deployment analysis of clustered tensegrity structures using a positional formulation FEM</article-title>. <source>Compos. Struct.</source> <volume>187</volume>, <fpage>241</fpage>&#x02013;<lpage>258</lpage>. <pub-id pub-id-type="doi">10.1016/j.compstruct.2017.12.050</pub-id></citation></ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Khazanov</surname> <given-names>M.</given-names></name> <name><surname>Humphreys</surname> <given-names>B.</given-names></name> <name><surname>Keat</surname> <given-names>W.</given-names></name> <name><surname>Rieffel</surname> <given-names>J.</given-names></name></person-group> (<year>2013</year>). <article-title>Exploiting dynamical complexity in a physical tensegrity robot to achieve locomotion</article-title>, in <source>The Twelfth European Conference on Artificial Life (East Lansing, MI)</source>, <fpage>965</fpage>&#x02013;<lpage>972</lpage>. <pub-id pub-id-type="doi">10.7551/978-0-262-31709-2-ch144</pub-id></citation></ref>
<ref id="B14">
<citation citation-type="thesis"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>K.</given-names></name></person-group> (<year>2016</year>). <source>On the locomotion of spherical tensegrity robots</source> (PhD dissertation). <publisher-name>University of California</publisher-name>, <publisher-loc>Berkeley, CA, United States</publisher-loc>. <pub-id pub-id-type="pmid">32031916</pub-id></citation></ref>
<ref id="B15">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>K.</given-names></name> <name><surname>Moon</surname> <given-names>D.</given-names></name> <name><surname>Bin</surname> <given-names>J. Y.</given-names></name> <name><surname>Agogino</surname> <given-names>A. M.</given-names></name></person-group> (<year>2017</year>). <article-title>Design of a spherical tensegrity robot for dynamic locomotion</article-title>, in <source>IEEE International Conference on Intelligent Robots and Systems</source> (<publisher-loc>Vancouver, BC</publisher-loc>), <fpage>450</fpage>&#x02013;<lpage>455</lpage>. <pub-id pub-id-type="doi">10.1109/IROS.2017.8202192</pub-id><pub-id pub-id-type="pmid">32031916</pub-id></citation></ref>
<ref id="B16">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>B.</given-names></name> <name><surname>Du</surname> <given-names>W.</given-names></name> <name><surname>Liu</surname> <given-names>W.</given-names></name></person-group> (<year>2017</year>). <article-title>Dynamic modeling and controlling for the crawling motion of the 6-strut tensegrity robot</article-title>, in <source>2017 IEEE 7th Annual International Conference on CYBER Technology in Automation, Control, and Intelligent Systems (CYBER)</source> (<publisher-loc>Honolulu, HI</publisher-loc>: <publisher-name>IEEE</publisher-name>). <pub-id pub-id-type="doi">10.1109/CYBER.2017.8446093</pub-id></citation></ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lin</surname> <given-names>C.</given-names></name> <name><surname>Li</surname> <given-names>D.</given-names></name> <name><surname>Zhao</surname> <given-names>Y.</given-names></name></person-group> (<year>2016</year>). <article-title>Tensegrity robot dynamic simulation and kinetic strategy programming</article-title>, in <source>2016 IEEE Chinese Guidance, Navigation and Control Conference (CGNCC) (Nanjing</source>), <fpage>2394</fpage>&#x02013;<lpage>2398</lpage>.</citation></ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>K.</given-names></name> <name><surname>Zegard</surname> <given-names>T.</given-names></name> <name><surname>Pratapa</surname> <given-names>P. P.</given-names></name> <name><surname>Paulino</surname> <given-names>G. H.</given-names></name></person-group> (<year>2019</year>). <article-title>Unraveling tensegrity tessellations for metamaterials with tunable stiffness and bandgaps</article-title>. <source>J. Mech. Phys. Solids</source> <volume>131</volume>, <fpage>147</fpage>&#x02013;<lpage>166</lpage>. <pub-id pub-id-type="doi">10.1016/j.jmps.2019.05.006</pub-id></citation></ref>
<ref id="B19">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lu</surname> <given-names>Y.</given-names></name> <name><surname>Xu</surname> <given-names>X.</given-names></name> <name><surname>Luo</surname> <given-names>Y.</given-names></name></person-group> (<year>2019</year>). <article-title>Path planning for rolling locomotion of polyhedral tensegrity robots based on Dijkstra algorithm</article-title>. <source>J. Int. Assoc. Shell Spatial Struct.</source> <volume>60</volume>, <fpage>271</fpage>&#x02013;<lpage>284</lpage>. <pub-id pub-id-type="doi">10.20898/j.iass.2019.202.037</pub-id></citation></ref>
<ref id="B20">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Luo</surname> <given-names>A.</given-names></name> <name><surname>Liu</surname> <given-names>H.</given-names></name></person-group> (<year>2017</year>). <article-title>Analysis for feasibility of the method for bars driving the ball tensegrity robot</article-title>. <source>J. Mech. Robotics</source> <volume>9</volume>:<fpage>051010</fpage>. <pub-id pub-id-type="doi">10.1115/1.4037565</pub-id></citation></ref>
<ref id="B21">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mirletz</surname> <given-names>B. T.</given-names></name> <name><surname>Bhandal</surname> <given-names>P.</given-names></name> <name><surname>Adams</surname> <given-names>R. D.</given-names></name> <name><surname>Agogino</surname> <given-names>A. K.</given-names></name> <name><surname>Quinn</surname> <given-names>R. D.</given-names></name> <name><surname>SunSpiral</surname> <given-names>V.</given-names></name></person-group> (<year>2015</year>). <article-title>Goal-directed CPG-based control for tensegrity spines with many degrees of freedom traversing irregular terrain</article-title>. <source>Soft Robotics</source> <volume>2</volume>, <fpage>165</fpage>&#x02013;<lpage>176</lpage>. <pub-id pub-id-type="doi">10.1089/soro.2015.0012</pub-id></citation></ref>
<ref id="B22">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Motro</surname> <given-names>R.</given-names></name></person-group> (<year>2003</year>). <source>Tensegrity: Structural Systems for the Future</source>. <publisher-loc>London</publisher-loc>: <publisher-name>Kogan Page Science</publisher-name>. <pub-id pub-id-type="doi">10.1016/B978-190399637-9/50038-X</pub-id></citation></ref>
<ref id="B23">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Oden</surname> <given-names>J. T.</given-names></name> <name><surname>Kikuchi</surname> <given-names>N.</given-names></name></person-group> (<year>1982</year>). <article-title>Finite element methods for constrained problems in elasticity</article-title>. <source>Int. J. Numerical Methods Eng.</source> <volume>18</volume>, <fpage>701</fpage>&#x02013;<lpage>725</lpage>. <pub-id pub-id-type="doi">10.1002/nme.1620180507</pub-id></citation></ref>
<ref id="B24">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Oh</surname> <given-names>C. L.</given-names></name> <name><surname>Choong</surname> <given-names>K. K.</given-names></name> <name><surname>Nishimura</surname> <given-names>T.</given-names></name> <name><surname>Kim</surname> <given-names>J. Y.</given-names></name> <name><surname>Zain</surname> <given-names>M. R.</given-names></name></person-group> (<year>2018</year>). <article-title>Tapered three-stage deployable tensegrity model</article-title>. <source>J. Phys. Conf. Ser</source>. <volume>1130</volume>:<fpage>012031</fpage>. <pub-id pub-id-type="doi">10.1088/1742-6596/1130/1/012031</pub-id></citation></ref>
<ref id="B25">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Omer</surname> <given-names>O.</given-names></name> <name><surname>Offer</surname> <given-names>S.</given-names></name> <name><surname>Amir</surname> <given-names>A.</given-names></name> <name><surname>Uri</surname> <given-names>B. -,H.</given-names></name></person-group> (<year>2011</year>). <article-title>A model of caterpillar locomotion based on assur tensegrity structures</article-title>, in <source>ASME 2011 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference</source> (<publisher-loc>Washington, DC</publisher-loc>).</citation></ref>
<ref id="B26">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Papadopoulos</surname> <given-names>P.</given-names></name> <name><surname>Taylor</surname> <given-names>R. L.</given-names></name></person-group> (<year>1992</year>). <article-title>A mixed formulation for the finite element solution of contact problems</article-title>. <source>Comput. Methods Appl. Mech. Eng.</source> <volume>94</volume>, <fpage>373</fpage>&#x02013;<lpage>389</lpage>. <pub-id pub-id-type="doi">10.1016/0045-7825(92)90061-N</pub-id></citation></ref>
<ref id="B27">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Park</surname> <given-names>S.</given-names></name> <name><surname>Park</surname> <given-names>E.</given-names></name> <name><surname>Yim</surname> <given-names>M.</given-names></name> <name><surname>Kim</surname> <given-names>J.</given-names></name> <name><surname>Seo</surname> <given-names>T.</given-names></name></person-group> (<year>2019</year>). <article-title>Optimization-based nonimpact rolling locomotion of a variable geometry truss</article-title>. <source>IEEE Robotics Automation Lett.</source> <volume>4</volume>, <fpage>747</fpage>&#x02013;<lpage>752</lpage>. <pub-id pub-id-type="doi">10.1109/LRA.2019.2892596</pub-id></citation></ref>
<ref id="B28">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Paul</surname> <given-names>C.</given-names></name> <name><surname>Valero-Cuevas</surname> <given-names>F. J.</given-names></name> <name><surname>Lipson</surname> <given-names>H.</given-names></name></person-group> (<year>2006</year>). <article-title>Design and control of tensegrity robots for locomotion</article-title>. <source>IEEE Trans. Robotics</source> <volume>22</volume>, <fpage>944</fpage>&#x02013;<lpage>957</lpage>. <pub-id pub-id-type="doi">10.1109/TRO.2006.878980</pub-id></citation></ref>
<ref id="B29">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rovira</surname> <given-names>A. G.</given-names></name> <name><surname>Tur</surname> <given-names>J. M. M.</given-names></name></person-group> (<year>2009</year>). <article-title>Control and simulation of a tensegrity-based mobile robot</article-title>. <source>Robotics Auton. Syst.</source> <volume>57</volume>, <fpage>526</fpage>&#x02013;<lpage>535</lpage>. <pub-id pub-id-type="doi">10.1016/j.robot.2008.10.010</pub-id></citation></ref>
<ref id="B30">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sabelhaus</surname> <given-names>A. P.</given-names></name> <name><surname>Bruce</surname> <given-names>J.</given-names></name> <name><surname>Caluwaerts</surname> <given-names>K.</given-names></name> <name><surname>Manovi</surname> <given-names>P.</given-names></name> <name><surname>Sunspiral</surname> <given-names>V.</given-names></name></person-group> (<year>2015</year>). <article-title>System design and locomotion of SUPERball, an untethered tensegrity robot</article-title>, in <source>Proceedings - IEEE International Conference on Robotics and Automation (Seattle, WA)</source>, <fpage>2867</fpage>&#x02013;<lpage>2873</lpage>. <pub-id pub-id-type="doi">10.1109/ICRA.2015.7139590</pub-id></citation></ref>
<ref id="B31">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Senatore</surname> <given-names>G.</given-names></name> <name><surname>Piker</surname> <given-names>D.</given-names></name></person-group> (<year>2015</year>). <article-title>Interactive real-time physics: an intuitive approach to form-finding and structural analysis for design and education</article-title>. <source>Comput. Aided Design</source> <volume>61</volume>, <fpage>32</fpage>&#x02013;<lpage>41</lpage>. <pub-id pub-id-type="doi">10.1016/j.cad.2014.02.007</pub-id></citation></ref>
<ref id="B32">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Shea</surname> <given-names>K.</given-names></name> <name><surname>Fest</surname> <given-names>E.</given-names></name> <name><surname>Smith</surname> <given-names>I. F. C.</given-names></name></person-group> (<year>2002</year>). <article-title>Developing intelligent tensegrity structures with stochastic search</article-title>. <source>Adv. Eng. Inform.</source> <volume>16</volume>, <fpage>21</fpage>&#x02013;<lpage>40</lpage>. <pub-id pub-id-type="doi">10.1016/S1474-0346(02)00003-4</pub-id></citation></ref>
<ref id="B33">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sultan</surname> <given-names>C.</given-names></name> <name><surname>Corless</surname> <given-names>M.</given-names></name> <name><surname>Skelton</surname> <given-names>R. E.</given-names></name></person-group> (<year>2002</year>). <article-title>Symmetrical reconfiguration of tensegrity structures</article-title>. <source>Int. J. Solids Struct.</source> <volume>39</volume>, <fpage>2215</fpage>&#x02013;<lpage>2234</lpage>. <pub-id pub-id-type="doi">10.1016/S0020-7683(02)00100-2</pub-id></citation></ref>
<ref id="B34">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sultan</surname> <given-names>C.</given-names></name> <name><surname>Skelton</surname> <given-names>R.</given-names></name></person-group> (<year>2003</year>). <article-title>Deployment of tensegrity structures</article-title>. <source>Int. J. Solids Struct.</source> <volume>40</volume>, <fpage>4637</fpage>&#x02013;<lpage>4657</lpage>. <pub-id pub-id-type="doi">10.1016/S0020-7683(03)00267-1</pub-id></citation></ref>
<ref id="B35">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>SunSpiral</surname> <given-names>V.</given-names></name> <name><surname>Gorospe</surname> <given-names>G.</given-names></name> <name><surname>Bruce</surname> <given-names>J.</given-names></name> <name><surname>Iscen</surname> <given-names>A.</given-names></name> <name><surname>Korbel</surname> <given-names>G.</given-names></name> <name><surname>Milam</surname> <given-names>S.</given-names></name> <etal/></person-group>. (<year>2013</year>). <article-title>Tensegrity based probes for planetary exploration entry, descent and landing (EDL) and surface mobility analysis</article-title>, in <source>Proceedings of 10th International Planetary Probe Workshop</source> (<publisher-loc>San Jose, CA</publisher-loc>).</citation></ref>
<ref id="B36">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Veuve</surname> <given-names>N.</given-names></name> <name><surname>Safaei</surname> <given-names>S. D.</given-names></name> <name><surname>Smith</surname> <given-names>I. F. C.</given-names></name></person-group> (<year>2015</year>). <article-title>Deployment of a tensegrity footbridge</article-title>. <source>J. Struct. Eng.</source> <volume>141</volume>:<fpage>04015021</fpage>. <pub-id pub-id-type="doi">10.1061/(ASCE)ST.1943-541X.0001260</pub-id></citation></ref>
<ref id="B37">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>Z.</given-names></name> <name><surname>Li</surname> <given-names>K.</given-names></name> <name><surname>He</surname> <given-names>Q.</given-names></name> <name><surname>Cai</surname> <given-names>S.</given-names></name></person-group> (<year>2019</year>). <article-title>A light-powered ultralight tensegrity robot with high deformability and load capacity</article-title>. <source>Adv. Mater.</source> <volume>31</volume>:<fpage>1806849</fpage>. <pub-id pub-id-type="doi">10.1002/adma.201806849</pub-id><pub-id pub-id-type="pmid">30575156</pub-id></citation></ref>
<ref id="B38">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xu</surname> <given-names>X.</given-names></name> <name><surname>Luo</surname> <given-names>Y.</given-names></name></person-group> (<year>2009</year>). <article-title>Non-linear displacement control of prestressed cable structures</article-title>. <source>Proc. Inst. Mech. Eng. Part G: J. Aerospace Eng.</source> <volume>223</volume>, <fpage>1001</fpage>&#x02013;<lpage>1007</lpage>. <pub-id pub-id-type="doi">10.1243/09544100JAERO455</pub-id></citation></ref>
<ref id="B39">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xu</surname> <given-names>X.</given-names></name> <name><surname>Luo</surname> <given-names>Y.</given-names></name></person-group> (<year>2013</year>). <article-title>Collision-free shape control of a plane tensegrity structure using an incremental dynamic relaxation method and a trial-and-error process</article-title>. <source>Proc. Inst. Mech. Eng. Part G: J. Aerospace Eng.</source> <volume>227</volume>, <fpage>266</fpage>&#x02013;<lpage>272</lpage>. <pub-id pub-id-type="doi">10.1177/0954410011433501</pub-id></citation></ref>
<ref id="B40">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xu</surname> <given-names>X.</given-names></name> <name><surname>Sun</surname> <given-names>F.</given-names></name> <name><surname>Luo</surname> <given-names>Y.</given-names></name> <name><surname>Xu</surname> <given-names>Y.</given-names></name></person-group> (<year>2014</year>). <article-title>Collision-free path planning of tensegrity structures</article-title>. <source>J. Struct. Eng.</source> <volume>140</volume>:<fpage>04013084</fpage>. <pub-id pub-id-type="doi">10.1061/(ASCE)ST.1943-541X.0000900</pub-id></citation></ref>
<ref id="B41">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yu</surname> <given-names>Y.</given-names></name> <name><surname>Luo</surname> <given-names>Y.</given-names></name></person-group> (<year>2009</year>). <article-title>Finite particle method for kinematically indeterminate bar assemblies</article-title>. <source>J. Zhejiang Univ. Sci. A</source> <volume>10</volume>, <fpage>669</fpage>&#x02013;<lpage>676</lpage>. <pub-id pub-id-type="doi">10.1631/jzus.A0820494</pub-id></citation></ref>
<ref id="B42">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yu</surname> <given-names>Y.</given-names></name> <name><surname>Paulino</surname> <given-names>G. H.</given-names></name> <name><surname>Luo</surname> <given-names>Y.</given-names></name></person-group> (<year>2011</year>). <article-title>Finite particle method for progressive failure simulation of truss structures</article-title>. <source>J. Struct. Eng.</source> <volume>137</volume>, <fpage>1168</fpage>&#x02013;<lpage>1181</lpage>. <pub-id pub-id-type="doi">10.1061/(ASCE)ST.1943-541X.0000321</pub-id></citation></ref>
<ref id="B43">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>L.</given-names></name> <name><surname>Maurin</surname> <given-names>B.</given-names></name> <name><surname>Motro</surname> <given-names>R.</given-names></name></person-group> (<year>2006</year>). <article-title>Form-finding of nonregular tensegrity systems</article-title>. <source>J. Struct. Eng.</source> <volume>132</volume>, <fpage>1435</fpage>&#x02013;<lpage>1440</lpage>. <pub-id pub-id-type="doi">10.1061/(ASCE)0733-9445(2006)132:9(1435)</pub-id></citation></ref>
<ref id="B44">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhao</surname> <given-names>Y.</given-names></name> <name><surname>Zhou</surname> <given-names>S.</given-names></name> <name><surname>Lin</surname> <given-names>C.</given-names></name> <name><surname>Li</surname> <given-names>D.</given-names></name></person-group> (<year>2017</year>). <article-title>An efficient locomotion strategy for six-strut tensegrity robots</article-title>, in <source>2017 13th IEEE International Conference on Control &#x00026; Automation</source> (<publisher-loc>ICCA</publisher-loc>) (Ohrid). <pub-id pub-id-type="doi">10.1109/ICCA.2017.8003096</pub-id></citation></ref>
</ref-list>
<fn-group>
<fn fn-type="financial-disclosure"><p><bold>Funding.</bold> This work was supported by the Natural Science Foundation of Zhejiang Province (LR17E080001) and the Natural Science Foundation of China (51578494).</p>
</fn>
</fn-group>
</back>
</article>