<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Robot. AI</journal-id>
<journal-title>Frontiers in Robotics and AI</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Robot. AI</abbrev-journal-title>
<issn pub-type="epub">2296-9144</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">860020</article-id>
<article-id pub-id-type="doi">10.3389/frobt.2022.860020</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Robotics and AI</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Design Optimization for Rough Terrain Traversal Using a Compliant, Continuum-Joint, Quadruped Robot</article-title>
<alt-title alt-title-type="left-running-head">Sherrod&#x2009; et al.</alt-title>
<alt-title alt-title-type="right-running-head">Compliant Quadruped Design Optimization</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Sherrod&#x2009;</surname>
<given-names>Vallan</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/1868534/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Johnson&#x2009;</surname>
<given-names>Curtis C.</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/998621/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Killpack</surname>
<given-names>Marc D.</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/386260/overview"/>
</contrib>
</contrib-group>
<aff>
<institution>Robotics and Dynamics Laboratory</institution>, <institution>Department of Mechanical Engineering</institution>, <institution>Brigham Young University</institution>, <addr-line>Provo</addr-line>, <addr-line>UT</addr-line>, <country>United States</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1062577/overview">Liyu Wang</ext-link>, University of California, Berkeley, United States</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/91650/overview">Claudio Rossi</ext-link>, Polytechnic University of Madrid, Spain</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1706039/overview">Yunquan Li</ext-link>, South China University of Technology, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Marc D. Killpack, <email>marc_killpack@byu.edu</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Soft Robotics, a section of the journal Frontiers in Robotics and AI</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>11</day>
<month>07</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>9</volume>
<elocation-id>860020</elocation-id>
<history>
<date date-type="received">
<day>22</day>
<month>01</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>15</day>
<month>06</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Sherrod&#x2009;, Johnson&#x2009; and Killpack.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Sherrod&#x2009;, Johnson&#x2009; and Killpack</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>Legged robots have the potential to cover terrain not accessible to wheel-based robots and vehicles. This makes them better suited to perform tasks such as search and rescue in real-world unstructured environments. In addition, pneumatically-actuated, compliant robots may be more suited than their rigid counterparts to real-world unstructured environments with humans where unintentional contact or impact may occur. In this work, we define design metrics for legged robots that evaluate their ability to traverse unstructured terrain, carry payloads, find stable footholds, and move in desired directions. These metrics are demonstrated and validated in a multi-objective design optimization of 10 variables for a 16 degree of freedom, pneumatically actuated, continuum joint quadruped. We also present and validate approximations to preserve numerical tractability for any similar high degree of freedom optimization problem. Finally, we show that the design trends uncovered by our optimization hold in two hardware experiments using robot legs with continuum joints that are built based on the optimization results.</p>
</abstract>
<kwd-group>
<kwd>multi-objective optimization</kwd>
<kwd>design metrics</kwd>
<kwd>genetic algorithm</kwd>
<kwd>evolutionary optimization</kwd>
<kwd>quadruped design</kwd>
<kwd>continuum robot</kwd>
<kwd>soft robot</kwd>
<kwd>configuration space approximation</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>Animals and legged robots are generally able to traverse more terrain than wheeled or tracked vehicles. Therefore we expect that the use of a legged robot as opposed to a wheeled robot would greatly increase the regions where the robot can operate. Legged robots are especially capable of performing tasks in unstructured environments alongside humans instead of being limited to factories or other highly structured environments. However, operating safely around humans in unstructured environments is difficult for traditional rigid, position-controlled robots.</p>
<p>Traditional rigid position-controlled robots present dangers to humans because of their high reflected inertia due to their high gear ratios. These reflected inertias cause high contact forces when colliding with objects present in unstructured environments that can be damaging to both the robot and the objects. While force control can be a solution to this problem for rigid robots, force control is inherently difficult for stability reasons. The result is that there has been a recent trend in exploring robot designs made from softer materials and powered by soft actuation to allow for more passive compliance as opposed to traditional rigid position-controlled robots. These kinds of robots are known as soft robots. These soft robots are safer to operate around humans and in unstructured environments because incidental contact forces can be greatly reduced and high contact forces can be mitigated with the natural compliance of the platform.</p>
<p>Soft continuum-joint robotics legs in conjunction with soft manipulators can provide the groundwork to perform whole-body, dynamic, mobile manipulation in soft robotics. Work in mobile manipulation is relatively new for any kind of quadruped robot. Boston Dynamics (a commercial enterprise) with their SpotMini is one of the only groups to have demonstrated control of a quadruped with an arm attached. Spot is a rigid robot with compliance introduced through impedance control. However, if the whole system was compliant by nature, the platform would be safer around humans and less likely to damage itself when it falls. In addition, robots with compliant legs have the possibility of adapting to rough terrain more effectively (<xref ref-type="bibr" rid="B13">Godage et al. (2012)</xref>) than their rigid counterparts.</p>
<p>The research in this paper is focused on methods for designing such a compliant platform. Specifically, our goal is to develop and validate useful metrics to aid in the design optimization of a 16-degree-of-freedom (DoF), pneumatically-actuated, continuum-joint, soft quadruped robot whose goal applications are mobility in unstructured environments and mobile manipulation. Our general contributions are two-fold: 1) we introduce a general methodology for the design optimization of a large-scale quadruped and 2) we provide important simplifications and approximations to maintain computational tractability. While this paper specifically focuses on a continuum-joint soft quadruped, these contributions are applicable to other quadruped platforms&#x2013;rigid, soft, hybrid, or otherwise.</p>
</sec>
<sec id="s2">
<title>2 Related Work</title>
<p>The validation test bed presented in this paper is not entirely soft like many of the platforms used for soft robot locomotion, nor is it entirely rigid like many of the platforms used for legged robot design metrics and optimization. Hence this section summarizes work done in each field in order to provide context for the work in this paper which is inherently a mixture between both.</p>
<sec id="s2-1">
<title>2.1 Legged Robot Design Metrics and Optimization</title>
<p>Little research exists regarding metrics for a design optimization of a legged, soft robot. There is design optimization research for traditional rigid, legged robots such as the genetic algorithms used in <xref ref-type="bibr" rid="B2">Birglen and Ruella (2014)</xref>, <xref ref-type="bibr" rid="B11">Fedorov and Birglen (2015)</xref>, and <xref ref-type="bibr" rid="B14">G&#xfc;lhan and Erbatur (2018)</xref>. However, most of the research considers designs with fewer than ten design variables which are not directly applicable to a legged, soft robot. Because the design metrics formed for these optimizations are not sufficient to aid directly in this work, we have developed new design metrics tailored specifically to a legged soft robot.</p>
<p>
<xref ref-type="bibr" rid="B5">Chadwick et al. (2020)</xref> recently contributed an open source design optimization toolbox that uses evolutionary algorithms and allows user-specific metrics, The paper itself, however, provides little guidance as to what metrics to use or what design trade-offs exist. In <xref ref-type="bibr" rid="B31">Uno et al. (2021)</xref>, the authors introduce metrics that are similar in nature to ours (i.e. attempting to measure the ability to traverse rough terrain), but they do not use the metrics to produce novel designs or explore trade offs in the metrics as shown in this paper. <xref ref-type="bibr" rid="B28">Semasinghe et al. (2021)</xref> is one of the most relevant papers which introduces three design metrics for the design optimization of the quadruped robot: the system energy consumption, the passive impedance torque, and the stepping time. We build on this work by presenting metrics that also treat stability, payload, and desired velocity capabilities which are important factors for applications such as search and rescue. We also explore tradeoffs in the Pareto front and provide hardware validation of the optimization results using a physical prototype, built using several optimized designs.</p>
<p>Other notable work includes Roennau et al.&#x2019;s optimization of the leg mounting configuration on their stick insect inspired robot (LAURON V) by attempting to maximize a manipulability measure along several planes in the workspace <xref ref-type="bibr" rid="B26">Roennau et al. (2014)</xref>. <xref ref-type="bibr" rid="B10">De Vincenti et al. (2021)</xref> and <xref ref-type="bibr" rid="B15">Ha et al. (2018)</xref> optimized both design and control of quadrupedal robots simultaneously. Both approaches used relatively few design parameters (i.e. less than 10) due to using gradient-based optimizers. Additionally, there is little treatment of metrics that are important for rough terrain traversal. Our paper contributes several intuitive metrics that are adapted for rough terrain.</p>
</sec>
<sec id="s2-2">
<title>2.2 Soft-Robot Locomotion</title>
<p>Land-based soft robot locomotion research is still rather nascent. The most promising and relevant of the previous work (in terms of payload) is research from Godage et al., in 2012. They built a small quadruped robot using pneumatically-actuated continuum limbs <xref ref-type="bibr" rid="B13">Godage et al. (2012)</xref>. Each of these limbs has two degrees of freedom. They demonstrate remarkable capabilities including open-loop walking on flat and uneven terrain <xref ref-type="bibr" rid="B13">Godage et al. (2012)</xref>. Shepherd et al. also achieve similar open-loop locomotion success with a small soft robot made primarily from elastomeric polymers <xref ref-type="bibr" rid="B29">Shepherd et al. (2011)</xref>. Many researchers have produced similar designs looking at open-loop locomotion for lightweight soft continuum crawling robots (see <xref ref-type="bibr" rid="B24">Onal and Rus (2013)</xref>; <xref ref-type="bibr" rid="B12">Florez et al. (2014)</xref>; <xref ref-type="bibr" rid="B33">Wang et al. (2014)</xref>; <xref ref-type="bibr" rid="B27">Rog&#xf3;&#x17c; et al. (2016)</xref>; <xref ref-type="bibr" rid="B32">Vikas et al. (2016)</xref>; <xref ref-type="bibr" rid="B4">Cao et al. (2018)</xref>; <xref ref-type="bibr" rid="B36">Zou et al. (2018)</xref>; <xref ref-type="bibr" rid="B25">Qin et al. (2019)</xref>, and a survey on soft crawling robots in <xref ref-type="bibr" rid="B6">Chen et al. (2020)</xref>). However, as far as we can tell, none of these platforms were designed with specific locomotion metrics in mind. Instead, they tended to optimize the gait after the robot was already built.</p>
<p>There has been some work on multi-legged soft or compliant robots [see <xref ref-type="bibr" rid="B34">Zhang et al. (2021)</xref>; <xref ref-type="bibr" rid="B19">Kim et al. (2021)</xref>]. Perhaps the paper most similar to our work uses an evolutionary algorithm to optimize the shape of a soft robot leg [see <xref ref-type="bibr" rid="B23">Morzadec et al. (2019)</xref>]. However, they do not describe how this approach might scale as the number of degrees of actuated degrees of freedom, the number of legs, and the number of desired design metrics increase. Instead, their approach is presented more generally than how to design compliant continuum joint robot for locomotion. Because the platform designed in this work is based on optimizing specific metrics and examining the trade-offs between them, we expect that it should be capable of much larger payloads and higher speeds than previous work in related untethered soft robot locomotion. We have also added closed-loop feedback configuration control of the limbs in order to evaluate force output at different locations in the leg&#x2019;s workspace.</p>
<p>Most of the other work on soft-robot locomotion involves bioinspired platforms such as starfish <xref ref-type="bibr" rid="B18">Jin et al. (2016)</xref>, salamanders <xref ref-type="bibr" rid="B8">Crespi et al. (2013)</xref>, and octopi <xref ref-type="bibr" rid="B7">Cianchetti et al. (2015)</xref>. A majority of these platforms are small scale&#x2013;with most being under 30&#xa0;cm long (the longest is a meter in length, but only 6&#xa0;cm tall). Because of their small scale these platforms are incapable of lifting heavy payloads and therefore unsuitable for applications that require mobility while carrying a significant payload (e.g., search and rescue). Our goal is to develop, optimize, and build a platform suitable for such use cases in this work, while still building on the apparent strengths of soft continuum robot joints for locomotion in unstructured terrain.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Metric Definitions and Approximations</title>
<p>In this section, we introduce the four general metrics for the optimization of a quadruped robot with soft continuum joints and also discuss several approximations of these metrics that preserve numerical tractability. The metrics are formulated to capture various aspects of performance and control of a quadruped design but their use is not limited to four-legged designs. The design metrics and their corresponding approximations are developed in-depth in each subsequent section and are listed here for convenience:<list list-type="simple">
<list-item>
<p>1. Dexterity in Walking Regions (<xref ref-type="sec" rid="s3-1">Section 3.1</xref>)</p>
</list-item>
<list-item>
<p>2. Average Payload in Walking Regions (<xref ref-type="sec" rid="s3-2">Section 3.2</xref>)</p>
</list-item>
<list-item>
<p>3. Average Static Stability (<xref ref-type="sec" rid="s3-4">Section 3.4</xref>)</p>
</list-item>
<list-item>
<p>4. Average Desired Velocity (<xref ref-type="sec" rid="s3-5">Section 3.5</xref>)</p>
</list-item>
</list>
</p>
<p>The design metrics 1 and 2 are fairly straightforward and can be calculated directly. However metrics 3 and 4 are part of a class of metrics which, based on our optimization method, require an evaluation across the entire robot workspace which would not nominally be tractable. For this reason, we first present metrics 1 and 2. Then we present a generalization of how to calculate metrics 3 and 4 which can apply to any other similar metric, before we present the specifics of the static stability and average desired velocity metrics.</p>
<p>For the calculation of each metric, we define the possible terrain a robot may face in real-world situations as the walking region (<italic>W</italic>) which consists of all the 3D Cartesian points located in an infinite volume bounded by the minimum and maximum walking clearance from the bottom of the robot (visualized in <xref ref-type="fig" rid="F1">Figure 1A</xref>). The minimum and maximum walking clearances correspond to a minimum and maximum desired walking height for the body of the robot over a given terrain. This taskspace is six-dimensional as it combines the 3D position of the foot in <italic>W</italic> with its corresponding 3D orientation vector (i.e., the pose of the foot).</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>
<bold>(A)</bold> A visualization of the walking region <italic>W</italic>. <bold>(B)</bold> The free body diagram of a single leg cut away from the body and making contact with the ground. The green circles represent joints as lumped particles, the black lines represent rigid links whose actual geometry is being optimized, and the dotted line represents the ground plane.</p>
</caption>
<graphic xlink:href="frobt-09-860020-g001.tif"/>
</fig>
<p>In order to efficiently sample from this taskspace, we use the discretization presented by <xref ref-type="bibr" rid="B3">Bodily (2017)</xref>&#x2013;though any discretization can be used. This consists of discretizing the taskspace into a <italic>M</italic>
<sup>3</sup> &#xd7; <italic>N</italic>
<sup>3</sup> rectangular grid. <italic>M</italic>
<sup>3</sup> is the 3D tensor that represents the discretization of the foot position in Cartesian Space. <italic>N</italic>
<sup>3</sup> is the 3D tensor for the discretization of the foot orientation (represented as an axis-angle vector) at each discrete Cartesian position of <italic>M</italic>
<sup>3</sup>. A given foot pose is assigned to a bin in this discretization by finding the nearest Cartesian discretization point to its position in <italic>M</italic>
<sup>3</sup> and subsequently locating the nearest orientation discretization point in the <italic>N</italic>
<sup>3</sup> grid associated with this Cartesian point.</p>
<sec id="s3-1">
<title>3.1 Dexterity in Walking Regions</title>
<sec id="s3-1-1">
<title>3.1.1 Metric Definition</title>
<p>The dexterity in walking region metric represents the number of foothold combinations a particular quadruped design can reach during online control and planning. The point in optimizing this metric is that if more footholds are found, then 3D rough terrain planners such as in <xref ref-type="bibr" rid="B20">Loc et al. (2010)</xref> or <xref ref-type="bibr" rid="B35">Zhang et al. (2019)</xref> should find better solutions.</p>
<p>We find how many footholds a leg can reach in the discretized taskspace <italic>W</italic> by sampling the leg&#x2019;s configuration space. We do this by sweeping each of the leg&#x2019;s joints from their minimum to maximum values at a set resolution recursively. At each configuration, we check if the foot is located in <italic>W</italic> using forward kinematics. If the foot pose is in <italic>W</italic> and is within an orientation tolerance of <italic>&#x3b3;</italic>
<sub>max</sub> from the vertical (see <xref ref-type="fig" rid="F1">Figure 1A</xref>), we mark the corresponding pose &#x201c;bin&#x201d; of <italic>W</italic> as reachable. The orientation tolerance eliminates unrealistic poses that cannot result in suitable footholds (e.g., the foot facing upward or parallel with the ground). The choice of <italic>&#x3b3;</italic>
<sub>max</sub> is dependent on the foot design because it is related to the coefficient of friction, <italic>&#x3bc;</italic>, between the foot and the ground. For a given <italic>&#x3bc;</italic>, there is a critical angle at which the foot will slide based on a static analysis of the foothold. Consequently, <italic>&#x3b3;</italic>
<sub>max</sub> must be less than this critical angle. This implies that foot designs with higher <italic>&#x3bc;</italic> values allow for greater values of <italic>&#x3b3;</italic>
<sub>max</sub>. The <italic>dexterity in walking region</italic> metric for a single leg, <italic>n</italic>
<sub>
<italic>W</italic>,<italic>i</italic>
</sub>, is the number of unique pose bins in <italic>W</italic> that are reachable.</p>
<p>To calculate the <italic>dexterity in walking region</italic> metric for the full legged robot, <italic>n</italic>
<sub>foot</sub>, we consider all reachable foothold combinations by multiplying all the <italic>n</italic>
<sub>
<italic>W</italic>,<italic>i</italic>
</sub> together: <inline-formula id="inf1">
<mml:math id="m1">
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mo>,</mml:mo>
<mml:mtext>all</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x220f;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</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:mtext>leg</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, where <italic>n</italic>
<sub>leg</sub> is the number of legs on the full legged robot. For example, consider a 5 legged robot (i.e. where <italic>n</italic>
<sub>leg</sub> &#x3d; 5) where the first, second, third, fourth, and fifth legs have 3, 4, 5, 6, and 7 reachable footholds respectively. This means that <italic>n</italic>
<sub>
<italic>W</italic>,all</sub> &#x3d; (3 &#xd7; 4 &#xd7; 5 &#xd7; 6 &#xd7; 7) &#x3d; 2520 combinations for this robot.</p>
<p>Note that <italic>n</italic>
<sub>
<italic>W</italic>,all</sub> only includes combinations where all the feet are in <italic>W</italic>. Static stability (which is discussed in more detail in <xref ref-type="sec" rid="s3-4">Section 3.4</xref>) only requires that three legs be on the ground at all times. To find all possible combinations where at least three legs are in the walking region (i.e., <italic>n</italic>
<sub>foot</sub>), we use<disp-formula id="e1">
<mml:math id="m2">
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>foot</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>leg</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mi>C</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>leg</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(1)</label>
</disp-formula>where <italic>C</italic>(<italic>n</italic>
<sub>leg</sub>, <italic>r</italic>) is the number of combinations of <italic>r</italic> legs being chosen from the total number of legs, <italic>n</italic>
<sub>leg</sub>:<disp-formula id="e2">
<mml:math id="m3">
<mml:mi>C</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>leg</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>leg</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>!</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>leg</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>!</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>!</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-1-2">
<title>3.1.2 Metric Approximation</title>
<p>For our optimization, we simplify this metric in two ways. First, since the optimization is limited to quadrupeds, the summation in <xref ref-type="disp-formula" rid="e1">Eq. 1</xref> simplifies to a constant 5 (<italic>n</italic>
<sub>leg</sub> &#x3d; 4 &#x21d2; <italic>C</italic>(4, 3) &#x2b; <italic>C</italic>(4, 4) &#x3d; 4 &#x2b; 1). Second, because we require leg designs to be symmetric we only need to evaluate the <italic>dexterity in walking region</italic> metric for one leg as <italic>n</italic>
<sub>
<italic>W</italic>,1</sub> &#x3d; <italic>n</italic>
<sub>
<italic>W</italic>,2</sub> &#x3d; <italic>n</italic>
<sub>
<italic>W</italic>,3</sub> &#x3d; <italic>n</italic>
<sub>
<italic>W</italic>,4</sub> in this case. Substituting these simplifications into <xref ref-type="disp-formula" rid="e1">Eq. 1</xref> reduces the expression to <inline-formula id="inf2">
<mml:math id="m4">
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>foot</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>5</mml:mn>
<mml:msubsup>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>. Since this is a strictly increasing function for <italic>n</italic>
<sub>
<italic>W</italic>,1</sub> &#x3e; 0, maximizing <italic>n</italic>
<sub>
<italic>W</italic>,1</sub> is the same as maximizing <italic>n</italic>
<sub>foot</sub>. Therefore, we simply use <italic>n</italic>
<sub>
<italic>W</italic>,1</sub> in the optimization.</p>
</sec>
</sec>
<sec id="s3-2">
<title>3.2 Average Payload in Walking Regions</title>
<sec id="s3-2-1">
<title>3.2.1 Metric Definition</title>
<p>This metric quantifies a legged robot&#x2019;s ability to statically support a payload during operation. We choose to do the analysis statically because the robot is designed to operate under a static gate. The premise of the <italic>average payload in walking regions</italic> metric is as follows.</p>
<p>For each combination where at least three leg configurations exist in <italic>W</italic> (i.e., one of the combinations of leg configurations that counted for <italic>n</italic>
<sub>foot</sub> as described in <xref ref-type="sec" rid="s3-1">Section 3.1</xref>) we calculate the required joint efforts (<italic>&#x3c4;</italic>) to support the weight of the robot (<italic>F</italic>
<sub>robot</sub>). We ensure that each <italic>&#x3c4;</italic> satisfies<disp-formula id="e3">
<mml:math id="m5">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>max</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(3)</label>
</disp-formula>where <italic>&#x3c4;</italic>
<sub>min</sub> and <italic>&#x3c4;</italic>
<sub>max</sub> are joint torque limits. If each joint torque in <italic>&#x3c4;</italic> is not within the limits, we assign a payload capability (<italic>F</italic>
<sub>payload</sub>) of zero to the configuration. However if they are all within the limits, we calculate the maximum weight that the robot design can theoretically support (<italic>F</italic>
<sub>max</sub>) by saturating the joint whose effort is closest to its limit and estimating the resulting force output. <italic>F</italic>
<sub>payload</sub> is then calculated as<disp-formula id="e4">
<mml:math id="m6">
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>payload</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>max</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>robot</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>Some configurations that are close to singularities allow <italic>F</italic>
<sub>max</sub> to approach infinity because these configurations are limited by the strength of the structure of the robot as opposed to joint-effort limits in their load bearing capacity. Therefore, we compute the payload score for a specific configuration (<italic>S</italic>
<sub>payload</sub>) as <italic>S</italic>
<sub>payload</sub> &#x3d; min(<italic>F</italic>
<sub>payload</sub>, <italic>F</italic>
<sub>payload,</sub> <sub>max</sub>) where <italic>F</italic>
<sub>payload,</sub> <sub>max</sub> is chosen based on the robot structure (i.e. a force that is lower than a critical buckling, axial, or shear force on the structure). The <italic>average payload in walking region</italic> metric is then computed as the average of all the <italic>S</italic>
<sub>payload</sub> over all the valid configurations.</p>
</sec>
<sec id="s3-2-2">
<title>3.2.2 Metric Approximation</title>
<p>In our case, the symmetry of the quadruped design allows us to approximate the <italic>average payload in walking region</italic> metric by finding <italic>F</italic>
<sub>payload</sub> for a single leg. This is valid if we use a good estimate for the load a single leg needs to support relative to the total weight of the robot. Accordingly, this section derives a model used to determine the joint efforts required from a single leg given an estimate of <italic>F</italic>
<sub>robot</sub>. This section also demonstrates how to find <italic>F</italic>
<sub>max</sub> with the joint effort which is closest to its limit.</p>
<p>
<xref ref-type="fig" rid="F1">Figure 1B</xref> shows a FBD of a single leg cut away from the base of the robot. Point A is where the shoulder of the leg connects with the body of the robot. <italic>R</italic>
<sub>body</sub> is the reaction force from the body at Point A. Summing moments about A gives<disp-formula id="e5">
<mml:math id="m7">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>link,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>link,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>g</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>joint,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>joint,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>foot</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi>N</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>foot</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi>f</mml:mi>
<mml:mo>,</mml:mo>
</mml:math>
<label>(5)</label>
</disp-formula>where <italic>n</italic> is the number of links and <inline-formula id="inf3">
<mml:math id="m8">
<mml:msub>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mtext>&#x23;&#x2009;of&#x2009;joints</mml:mtext>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> refers to the manipulator Jacobian relating the Cartesian velocities of point <italic>X</italic> (i.e., center of gravity of a link or a joint) in the leg base frame (the coordinate frame in <xref ref-type="fig" rid="F1">Figure 1B</xref>) to the joint velocities.</p>
<p>In walking, friction <italic>f</italic> is only present when the leg attempts to accelerate by pushing against the ground. This is either to push the leg forward before lift-off or as it pushes back as the leg makes contact after a swing. We restrict the calculations for the <italic>average payload in walking region</italic> metric to cases where the friction is zero since a legged robot may have multiple desired walking directions. The zero-friction case corresponds to the robot being able to support itself while standing still or in the middle of a gait and not applying a force along the plane of the ground to accelerate. The <italic>average desired velocity metric</italic>, presented in <xref ref-type="sec" rid="s3-5">Section 3.5</xref>, will investigate the robot&#x2019;s ability to provide a force in a desired walking direction. In these cases, we assume that the robot is able to apply a force only in the normal direction without applying any horizontal forces along the ground that would produce a friction force. With friction, <italic>f</italic>, being zero, <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> simplifies to<disp-formula id="e6">
<mml:math id="m9">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>link,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>link,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>g</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>joint,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>joint,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>foot</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi>N</mml:mi>
<mml:mo>,</mml:mo>
</mml:math>
<label>(6)</label>
</disp-formula>where the only unknown for a given configuration is the normal force, <italic>N</italic>.</p>
<p>The value of <italic>N</italic> for a single leg is dependent on the location of the center of gravity of the robot and the normal forces from all the other legs. We choose an approximate value for <italic>N</italic> that reasonably represents the average load the leg is required to bear since we are only considering one leg and cannot explicitly calculate it. <xref ref-type="fig" rid="F2">Figure 2</xref> illustrates the possible values of <italic>N</italic> depending on the location of the center of gravity of the robot with respect to the location of the footholds of the other legs. Without loss of generality for other footholds, we restrict our analysis to the leg at foothold 1. A static force balance shows that the lower bound for <italic>N</italic> is zero when the center of gravity is located above point A. The upper bound of <italic>N</italic> (when the robot is static) is the full weight of the robot when the center of gravity of the robot is directly over point B. All other locations of the center of gravity of the robot (in static equilibrium) result in a value of <italic>N</italic> between these bounds. Therefore, a reasonable choice for <italic>N</italic> is half the weight of the robot (i.e., <inline-formula id="inf4">
<mml:math id="m10">
<mml:mi>N</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">r</mml:mi>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mi mathvariant="normal">b</mml:mi>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mi mathvariant="normal">t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:math>
</inline-formula>). While this may seem a bit ambiguous, we see later in this section why the specific choice of <italic>N</italic> does not greatly affect the trends we desire to discover from this metric in optimization problems.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Diagram showing the horizontal foothold projection (left) and an simplified isometric view of the robot (right). Static analysis shows the force required of the leg at foothold 1 has a lower bound of <italic>N</italic> &#x3d; 0 occurs when the CoM is over point A, as shown in the isometric view. The upper bound <italic>N</italic> &#x3d; <italic>F</italic>
<sub>
<italic>robot</italic>
</sub>/2 occurs when the CoM is over point B.</p>
</caption>
<graphic xlink:href="frobt-09-860020-g002.tif"/>
</fig>
<p>With this choice for <italic>N</italic>, we can calculate the joint efforts required to support <italic>N</italic> using <xref ref-type="disp-formula" rid="e6">Eq. 6</xref>. As mentioned in <xref ref-type="sec" rid="s3-2-1">Section 3.2.1</xref>, if <italic>&#x3c4;</italic> satisfies <xref ref-type="disp-formula" rid="e3">Eq. 3</xref> we approximate <italic>F</italic>
<sub>max</sub> where at least one of the joint efforts is saturated and the other joint efforts are not. In <xref ref-type="disp-formula" rid="e6">Eq. 6</xref> the summation term represents the joint efforts required to resist gravity. We will refer to this term as <italic>&#x3c4;</italic>
<sub>g</sub>. We desire to scale <italic>N</italic> by a scalar, <italic>s</italic>, such that at least one joint effort <italic>&#x3c4;</italic>
<sub>
<italic>i</italic>
</sub> &#x2208; <italic>&#x3c4;</italic> is at its limit and the rest remain within their joint-effort limits. Thus we have <inline-formula id="inf5">
<mml:math id="m11">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>foot</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>T</mml:mtext>
</mml:mrow>
</mml:msubsup>
<mml:mi>s</mml:mi>
<mml:mi>N</mml:mi>
</mml:math>
</inline-formula>, where <italic>&#x3c4;</italic> satisfies <xref ref-type="disp-formula" rid="e3">Eq. 3</xref> with at least one of its elements equal to either its corresponding <italic>&#x3c4;</italic>
<sub>min</sub> or <italic>&#x3c4;</italic>
<sub>max</sub>. Since <italic>s</italic> is a scalar, this equation can be rewritten as<disp-formula id="e7">
<mml:math id="m12">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>g</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>s</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>foot</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>T</mml:mtext>
</mml:mrow>
</mml:msubsup>
<mml:mi>N</mml:mi>
<mml:mo>.</mml:mo>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
<p>The value of <italic>s</italic> is the minimum value required to saturate <italic>&#x3c4;</italic>
<sub>
<italic>i</italic>
</sub> while all other elements of <italic>&#x3c4;</italic> satisfy <xref ref-type="disp-formula" rid="e3">Eq. 3</xref>:<disp-formula id="e8">
<mml:math id="m13">
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>min</mml:mtext>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>max/min,&#x2009;</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>g,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(8)</label>
</disp-formula>where <inline-formula id="inf6">
<mml:math id="m14">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>foot</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mi>N</mml:mi>
</mml:math>
</inline-formula>. Here, <italic>&#x3c4;</italic>
<sub>max/min,</sub> <sub>
<italic>i</italic>
</sub> is either the maximum or minimum joint effort a joint may have in its given configuration as described by its joint model. Whether the maximum or minimum joint effort is used is determined by the sign of <italic>&#x3c4;</italic>
<sub>
<italic>N</italic>,<italic>i</italic>
</sub>. If <italic>&#x3c4;</italic>
<sub>
<italic>N</italic>,<italic>i</italic>
</sub> is positive, we use the maximum, and if <italic>&#x3c4;</italic>
<sub>
<italic>N</italic>,<italic>i</italic>
</sub> is negative, we use the minimum. This is because the scaling of <italic>N</italic> only causes a change in joint efforts in the direction of <italic>&#x3c4;</italic>
<sub>
<italic>N</italic>,<italic>i</italic>
</sub>. <italic>F</italic>
<sub>max</sub> can then be approximated with <italic>s</italic> as <italic>F</italic>
<sub>max</sub> &#x2248; <italic>sN</italic>. Therefore, the approximation of the payload capability in <xref ref-type="disp-formula" rid="e4">Eq. 4</xref> becomes<disp-formula id="e9">
<mml:math id="m15">
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>payload</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2248;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">r</mml:mi>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mi mathvariant="normal">b</mml:mi>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mi mathvariant="normal">t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>This tells us how much additional force can be applied beyond the nominal <italic>N</italic> needed to support the robot weight. This approximation is then saturated with the <italic>F</italic>
<sub>payload,</sub> <sub>max</sub> to arrive at the full, approximated metric, <inline-formula id="inf7">
<mml:math id="m16">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mtext>payload</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>. Recall that <inline-formula id="inf8">
<mml:math id="m17">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mtext>payload</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> represents only the payload capabilities of a single leg. However, when all the legs are symmetric, it can be seen that maximizing this approximation will be the same as maximizing the robot&#x2019;s overall payload capabilities, <italic>S</italic>
<sub>payload</sub>.</p>
<p>We can evaluate our choice of <italic>N</italic> as half the weight of the robot using <xref ref-type="disp-formula" rid="e9">Eq. 9</xref>. <italic>N</italic> changes based on the location of the center of gravity which results in different values of <italic>s</italic> at each robot configuration. However, the relationship <italic>F</italic>
<sub>max</sub> &#x2248; <italic>sN</italic> remains the same since this is an actual physical limit of how much force a given configuration can support. A higher value of <italic>N</italic> increases the number of configurations where <xref ref-type="disp-formula" rid="e3">Eq. 3</xref> does not hold and will not contribute to the payload metric because they would be zeroed out. A lower value has the opposite effect. However, trends for higher-payload robots are still distinguishable in an optimization regardless of the choice of <italic>N</italic> since the only information loss occurs with low-payload designs that are zeroed out. Therefore, the specific choice of <italic>N</italic> has minimal effect on being able to find robots with overall higher payload capabilities.</p>
</sec>
</sec>
<sec id="s3-3">
<title>3.3 General Legged Robot Configuration Space Approximation</title>
<p>Recall that all of the design metrics presented in this paper require calculations over the entire configuration space of a legged robot. However, some of them quickly become intractable. The reason for this is that a naive approach to calculating the metrics would be to search across the entire configuration space of the leg, despite really only requiring calculations for realistically plausible footholds. Searching the entire configuration space could be executed by incrementing each joint from its lower limit to upper limit at a set resolution to capture all combinations of joint configurations at the given step resolution. At each of these sampled robot configurations the pose of any point on the leg (such as the foot) can be obtained with forward kinematics. Unfortunately, sampling this way at a meaningful resolution makes calculating a design metric intractable. To illustrate, consider a metric for a 16-DoF configuration space sampled at a resolution of 10&#xb0; (i.e., 18 samples per joint variable in the case of a rotatory joint moving from &#x2212;90&#xb0; to 90&#xb0;). Calculating this metric would require 2.884 &#xd7; 10<sup>20</sup> calculations. If a computer could compute each of these calculations in 10<sup>&#x2013;12</sup>&#xa0;s, it would still take over 9&#xa0;years to solve. Additionally, a resolution of 10&#xb0; is generally too coarse to be useful, especially for the calculation of the metrics presented in this paper. Note that this 9&#xa0;year computation time is only for a single design. A fully-developed optimization will repeat this calculation thousands of times. In this section we introduce a method to make this approach possible while maintaining a sufficiently fine resolution.</p>
<sec id="s3-3-1">
<title>3.3.1 Description</title>
<p>To emphasize an important point we must restate that this generalization enables searching over only the possible footholds of a legged robot instead of the entire configuration space, which is far more tractable.</p>
<p>
<xref ref-type="statement" rid="algorithm_1">Algorithm 1</xref> shows this general approximation method and <xref ref-type="fig" rid="F3">Figure 3</xref> shows a flow chart to help visualize the main parts of this algorithm. First, a discretization of the Cartesian workspace of each leg is defined (Line 1). This can be either a full 6D pose discretization or a 3D/2D position-only discretization. Next, each of the legs&#x2019; configuration spaces are sampled in Lines 2&#x2013;3. Whenever the leg&#x2019;s foot is located within the desired walking region <italic>W</italic> (as described in <xref ref-type="sec" rid="s3-1">Section 3.1</xref>), we calculate the portion of the metric that is specific to the leg configuration, <italic>s</italic>
<sub>
<italic>C</italic>
</sub> (Lines 4&#x2013;5). For the <italic>average static stability</italic> metric detailed in <xref ref-type="sec" rid="s3-4">Section 3.4</xref>, <italic>s</italic>
<sub>
<italic>C</italic>
</sub> is the horizontal discretized bin location of the foot for the average static and longitudinal stability margins. For the <italic>average desired velocity</italic> metric in <xref ref-type="sec" rid="s3-5">Section 3.5</xref>, <italic>s</italic>
<sub>
<italic>C</italic>
</sub> is calculated on Lines 6&#x2013;10 of <xref ref-type="statement" rid="algorithm_3">Algorithm 3</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>A flow chart visualizing the general approximation method as outlined in detail in <xref ref-type="statement" rid="algorithm_1">Algorithm 1</xref>. The red cubes indicate an example of a foothold combination.</p>
</caption>
<graphic xlink:href="frobt-09-860020-g003.tif"/>
</fig>
<p>On Line 6, we combine <italic>s</italic>
<sub>
<italic>C</italic>
</sub> of the current leg configuration with the other <italic>s</italic>
<sub>
<italic>C</italic>
</sub>&#x2019;s that were found from other configurations that reached the same discretization bin. This results in a score for the specific discretization bin, <italic>s</italic>
<sub>bin,<italic>j</italic>
</sub>. As an example, the <italic>average desired velocity</italic> metric (in <xref ref-type="sec" rid="s3-5">Section 3.5</xref>) always takes the lowest score found in the bin since this is the limiting factor on the desired velocity. On Line 7, we record the number of times, <italic>n</italic>
<sub>bin,<italic>j</italic>
</sub>, the leg reaches the <italic>j</italic>th discretization bin.</p>
<p>
<statement content-type="algorithm" id="algorithm_1">
<label>Algorithm 1</label>
<p>General Legged Robot Metric Over Configuration Space Approximation</p>
<p>
<inline-graphic xlink:href="frobt-09-860020-fx1.tif"/>
</p>
<p>Once each leg&#x2019;s configuration space is sampled to calculate <italic>s</italic>
<sub>bin</sub> for each discretization bin (i.e. <italic>s</italic>
<sub>bin,<italic>j</italic>
</sub>, <italic>&#x2200;j</italic>), we iterate over each of the possible combinations of discretization bins from each leg (Line 12). For each combination of footholds, we calculate the part of the metric that depends on the combinations of all the footholds, <italic>s</italic>
<sub>comb</sub> (Line 13). We then sum all the <italic>s</italic>
<sub>comb</sub> together (Line 16) and then normalize this sum by the number of possible combinations of legs, <italic>n</italic>
<sub>foot</sub> in <italic>W</italic> (the <italic>dexterity in walking region</italic> metric as calculated in <xref ref-type="sec" rid="s3-1-2">Section 3.1.2</xref>) in Line 18 to arrive at the approximation of the metric.</p>
<p>The number of calculations for the approximation can be simplified further by projecting the spatial discretization onto a 2D discretization (Lines 11 and 12) as we do in <xref ref-type="sec" rid="s3-4">Sections 3.4</xref> and <xref ref-type="sec" rid="s3-5">3.5</xref>. This is done by combining the scores of 6D or 3D bin scores into a single 2D discretization bin score in a meaningful way. For this paper, we average all the scores in bins that are being lumped into a single 2D bin. This simplification is valid as long as the lumping of bins into 2D bins is still meaningful for the metric. Both of the metrics we describe next are only looking for averages, so this simplification is reasonable. It is also reasonable for any metric that is looking for an average over the entire workspace.</p>
<p>The tractability of this approximation is dependent on the number of distinct bins in the spatial discretization used for iterating over the foothold combinations (Line 12). If there are too many bins, this approximation method will exhibit the same problems as sampling the entire legged-robot&#x2019;s workspace. However, it can be far more tractable for meaningful discretizations than attempting to search the full configuration space of a high-DoF legged robot. For example, in our application (described in more detail in <xref ref-type="sec" rid="s4">Section 4</xref>), we calculate approximate metrics of the 16-DoF quadruped by sampling the configuration space at a resolution of 4&#xb0; (i.e., 45 increments per joint variable) using 2D Cartesian square bins that are 10&#xa0;cm wide in the approximations. We experimentally observed that this calculation takes at most a few hours to solve, while sometimes it was solved in as little as 20&#xa0;s. Contrast this to the example presented at the beginning of this section where sampling the full configuration space of the 16-DoF robot once using only 10&#xb0; increments would take over 9&#xa0;years to calculate the objective function once.</p>
</statement>
</p>
</sec>
<sec id="s3-3-2">
<title>3.3.2 Validation</title>
<p>We validate the configuration space approximation presented in this section with gradient-based optimizations for both the <italic>average static stability criteria</italic> and <italic>average desired velocity</italic> metrics and their respective approximations on a simulated four-DoF quadruped robot. Additional details about this validation are included in <xref ref-type="bibr" rid="B30">Sherrod (2019)</xref>. However, in this paper we simply outline the validation method and result in order to give confidence that this approximation is both useful (i.e., computationally) and accurate.</p>
<p>
<xref ref-type="fig" rid="F4">Figure 4</xref> is a diagram of the four-DoF quadruped we used for validation experiments. It consists of a base of length <italic>l</italic> and width <italic>w</italic>. The four legs of length <italic>l</italic>
<sub>leg</sub> are attached to the corners of the base via rotary joints which rotate about the <italic>z</italic>-axis of each leg frame. The mount angle, <italic>&#x3b8;</italic>, indicates the angle at which these joints are attached relative to the base. The robot is designed to be symmetric about the body frame&#x2019;s <italic>x</italic> and <italic>y</italic> axes. We acknowledge that this four-DoF quadruped may not be efficient&#x2013;or even able to walk. But its simplicity allows our design metrics to be calculated directly and then compared to their approximations.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Top and side view of the simple four-DoF quadruped design.</p>
</caption>
<graphic xlink:href="frobt-09-860020-g004.tif"/>
</fig>
<p>The design space for the stability margin optimizations consisted of <italic>w</italic>, <italic>l</italic>, and <italic>&#x3b8;</italic> while the design space for the <italic>average desired velocity</italic> metric was only composed of <italic>&#x3b8;</italic>. This is because changes in <italic>w</italic> and <italic>l</italic> do not affect the <italic>average desired velocity</italic> metric.</p>
<p>Results for these optimizations are shown in <xref ref-type="table" rid="T3">Table 3</xref>. All the metrics obtained by using the approximation of the configuration space result in the same optimum as the metric which used the entire configuration space. The highest error is for the <italic>average desired velocity</italic> approximation and is only &#x2212;1.01 &#xd7; 10<sup>&#x2013;2</sup> degrees.</p>
<p>The important outcome here is that the proposed approximation matches the gradient trends [see <xref ref-type="bibr" rid="B30">Sherrod (2019)</xref>], and solutions from a less tractable but more accurate gradient-based method. This gives confidence that this method is a valid approach to optimizing a 16 degree-of-freedom continuum soft robot as detailed in <xref ref-type="sec" rid="s4">Section 4</xref>.</p>
</sec>
</sec>
<sec id="s3-4">
<title>3.4 Average Static Stability Criteria</title>
<sec id="s3-4-1">
<title>3.4.1 Metric Definition</title>
<p>There are many static-gait controllers and/or planners for robots with four or more legs that use a measure of stability in a given configuration to plan and execute gaits. These measures are referred to as stability margins. Several of these stability margins are surveyed in <xref ref-type="bibr" rid="B9">De Santos et al. (2007)</xref>. Configurations with larger stability margin values are deemed more stable and therefore, more desirable in planning and control. Designing a robot to maximize these stability margins over the entire configuration space eases the implementation of the aforementioned controller. We therefore use the <italic>average static stability criteria</italic> which is the average stability margin over all of the robot&#x2019;s valid configurations as an optimization metric. Here, valid configurations are defined as configurations where three or more legs can be found within the walking region <italic>W</italic> (i.e., one of the foothold combinations counted in <italic>n</italic>
<sub>foot</sub> as described <xref ref-type="sec" rid="s3-1">Section 3.1</xref>).</p>
<p>We choose to use two of these stability margins in our experiments: the static stability margin originally from <xref ref-type="bibr" rid="B21">McGhee and Frank (1968)</xref> and the longitudinal stability margin originally from <xref ref-type="bibr" rid="B22">McGhee and Iswandhi (1979)</xref>. As will be shown in <xref ref-type="sec" rid="s3-4-2">Section 3.4.2</xref>, these specific margins are chosen because we can simplify their calculation to make the optimization tractable. Also, they follow the same trends as the other stability measures as seen in the experiments in <xref ref-type="bibr" rid="B9">De Santos et al. (2007)</xref>. Therefore, maximizing one of these tends to maximize the other average stability measures as well.</p>
<p>The basis of the static stability margin and longitudinal stability margin are as follows. For static gaits, the horizontal projection of the center of gravity of an ideal legged robot (one with massless legs) must remain within the support polygon to remain stable. The support polygon is defined as the convex hull about the contact points projected onto a horizontal plane. <xref ref-type="fig" rid="F5">Figure 5</xref> illustrates this for a robot with three legs making contact with the ground. The static stability margin is the shortest distance from the center of gravity projection to the edge of the support polygon. The longitudinal static stability margin is the shortest distance from the center of gravity projection to the edge of the support polygon along a given direction which usually corresponds with the direction of intended travel. Both of these margins are diagrammed in <xref ref-type="fig" rid="F5">Figure 5</xref>. While these measures only guarantee stability for an ideal robot whose legs are massless, they do provide insight into the stability of real-world robots whose legs cannot be modeled as massless.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Visualization of the support polygon and the static stability margin and longitudinal stability margin.</p>
</caption>
<graphic xlink:href="frobt-09-860020-g005.tif"/>
</fig>
</sec>
<sec id="s3-4-2">
<title>3.4.2 Metric Approximation</title>
<p>We approximate the <italic>average static stability criteria</italic> as follows for the quadruped. First, recall that the calculation of the <italic>dexterity in walking region</italic> metric (<xref ref-type="sec" rid="s3-1">Section 3.1</xref>) results in the 6D discretization of the foot&#x2019;s pose whenever the foot is found within <italic>W</italic>. We record the number of distinct orientation bins reached at each Cartesian bin. The top-left corner of <xref ref-type="fig" rid="F6">Figure 6</xref> is a simple illustration of this. For example, in the bottom-left Cartesian bin, three distinct orientation bins are reached. We then flatten this 3D Cartesian discretization into a 2D Cartesian discretization that is a horizontal plane parallel to the <italic>xy</italic> plane of Robot Body Frame as shown in <xref ref-type="fig" rid="F6">Figure 6</xref>. This is done by adding the orientation counts of each discretization bin that is located above a given bin in the <italic>xy</italic> plane to find the total number of orientations for the single bin representing the entire column in the 2D discretization. We then mirror this 2D Cartesian bin about the Robot Body Frame for each leg of the quadruped the symmetric leg represents as illustrated in <xref ref-type="fig" rid="F6">Figure 6</xref>. Note how symmetry is preserved about the Robot Body Frame with this operation. This transformation of the 2D Cartesian bins for each leg is necessary since we need the locations of the feet for each of the four legs to calculate the stability margin. Enforcing symmetric designs simplifies the problem as we only need to find the possible footholds of one leg and then transform these footholds to the locations of the other legs instead of having to find the possible footholds of all four legs separately.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Illustration of the calculation of the approximation of <italic>average static stability criteria metric</italic>. The highlighted red squares indicate an example sampling of the possible footholds of the quadruped from its four legs.</p>
</caption>
<graphic xlink:href="frobt-09-860020-g006.tif"/>
</fig>
<p>
<statement content-type="algorithm" id="algorithm_2">
<label>Algorithm 2</label>
<p>Average Static Stability Criteria Approximation Calculation</p>
<p>
<inline-graphic xlink:href="frobt-09-860020-fx2.tif"/>
</p>
<p>We then calculate the metric approximation by iterating through each possible foothold combination of the four feet in the 2D horizontal Cartesian bins as described in <xref ref-type="statement" rid="algorithm_2">Algorithm 2</xref>. An example of one of these combinations is highlighted in red in <xref ref-type="fig" rid="F6">Figure 6</xref>. We calculate the stability margins for each of these combinations using the center of the 2D Cartesian bins for the footholds&#x2019; position. As shown in <xref ref-type="statement" rid="algorithm_2">Algorithm 2</xref>, we look at the stability margin for when all four feet are in contact with ground (Line 3) as well as the four cases for when only three of the feet are in contact with the ground at these horizontal positions (Line 6). This is a total of five different stability margin calculations for each combination of 2D bins (which corresponds to the combination formula sum of <xref ref-type="disp-formula" rid="e1">Eq. 1</xref>). The weighted stability score for each foothold combination, <italic>s</italic>
<sub>comb</sub>, is found by multiplying the sum of these five stability margins, <italic>s</italic>
<sub>sum</sub>, by the number of times a particular combination of the 2D bins can be found in the overall configuration space, <italic>n</italic>
<sub>comb</sub> (Line 10). This weighting is necessary since we desire the average stability margin, and therefore, we need to weight the scores of the foothold combinations according to the frequency the robot can find them. This frequency, <italic>n</italic>
<sub>comb</sub>, is found on Line 9. Here, <italic>n</italic>
<sub>bin,<italic>i</italic>
</sub> is the number of orientations for the <italic>i</italic>th bin which corresponds to the foothold bin in the combination from the <italic>i</italic>th leg. As an example, for the foothold combination highlighted in red in <xref ref-type="fig" rid="F6">Figure 6</xref>, <italic>n</italic>
<sub>comb</sub> is <italic>n</italic>
<sub>comb</sub> &#x3d; 9 &#x22c5; 26 &#x22c5; 8 &#x22c5; 18 &#x3d; 33, 696. In Line 11, all of the <italic>s</italic>
<sub>comb</sub> are added together and normalized by the total number of valid foothold combinations, <italic>n</italic>
<sub>foot</sub>, (the <italic>dexterity in walking region</italic> metric described in <xref ref-type="sec" rid="s3-1-2">Section 3.1.2</xref>) to obtain the approximated <italic>average static stability criteria</italic>, <italic>s</italic>
<sub>approx</sub>.</p>
<p>While this approximation is shown for a quadruped robot with symmetric legs. It can easily be extended to a non-symmetric robot where each leg&#x2019;s workspace is binned individually and flattened into a 2D discretization. It can also be expanded to robots with <italic>n</italic> number of legs where for each combination of 2D bins, the stability margin is calculated for each possible combination where there are at least three footholds.</p>
<p>The tractability of this approximation is clearly dependent on the number of Cartesian discretization bins. During computation the time spent iterating through combinations of 2D horizontal Cartesian bins is much larger than that of searching the configuration space of a single leg. Therefore, extending this metric to non-symmetric legs is likely more tractable than extending this to more legs.</p>
</statement>
</p>
</sec>
</sec>
<sec id="s3-5">
<title>3.5 Average Desired Velocity</title>
<sec id="s3-5-1">
<title>3.5.1 Metric Definition</title>
<p>While the <italic>average static stability criteria</italic> metric indicates a robot&#x2019;s ability to find stable configurations, it does not ensure that the robot will be able to apply the necessary forces on the ground to propel itself in a desired direction. The <italic>average desired velocity</italic> metric helps indicate this ability.</p>
<p>To walk in a desired direction, a leg needs to be able to apply a sufficient force opposite this direction to propel the body forward. The leg&#x2019;s ability to apply this force is composed of two parts:<list list-type="simple">
<list-item>
<p>1. Movement in the necessary direction to apply the force.</p>
</list-item>
<list-item>
<p>2. Execution of the joint efforts required to apply the necessary force in that direction.</p>
</list-item>
</list>
</p>
<p>The <italic>average desired velocity</italic> metric analyzes a robot&#x2019;s average ability to accomplish this over all of its valid configurations. Here, valid configurations are defined as configurations where three or more legs can be found within the walking region, <italic>W</italic> (one of the foothold combinations found to calculate <italic>n</italic>
<sub>foot</sub> as described in <xref ref-type="sec" rid="s3-1">Section 3.1</xref>).</p>
<p>An indication of a leg&#x2019;s ability to move in a given direction can be found via its manipulator Jacobian (which is a function of leg&#x2019;s configuration). The particular Jacobian of interest is the one that relates the joint velocities of the leg to the Cartesian velocities of the foot expressed in the body frame of the robot.</p>
<p>The top three rows of this Jacobian indicate the effect of the joint variables on the foot&#x2019;s movement in the <italic>x</italic>, <italic>y</italic>, and <italic>z</italic> directions of the body frame. The sum of the absolute values of each element of these rows indicates the maximum velocity at which the foot could move in each of these three body frame directions. Thus, maximizing these values for a particular direction over all of a leg&#x2019;s configurations would increase its ability to move in this desired direction. However, movement alone does not guarantee that the leg is capable of applying the necessary force. Given a configuration, a leg must be capable of applying the necessary force to propel the robot forward in this direction.</p>
</sec>
<sec id="s3-5-2">
<title>3.5.2 Metric Approximation</title>
<p>
<statement content-type="algorithm" id="algorithm_3">
<label>Algorithm 3</label>
<p>Average Desired Velocity Metric Approximation Calculation Part 1</p>
<p>
<inline-graphic xlink:href="frobt-09-860020-fx3.tif"/>
</p>
<p>The approximation for the <italic>average desired velocity</italic> for the symmetric robot is calculated in three parts:<list list-type="simple">
<list-item>
<p>1. Sampling the leg&#x2019;s configuration space to assign scores to the pose bins of the walking region, <italic>W</italic>, which is shown in <xref ref-type="statement" rid="algorithm_3">Algorithm 3</xref>.</p>
</list-item>
<list-item>
<p>2. Combining the scores of pose bins in a 3D column of the discretization to create a 2D discretization and then transforming these 2D discretizations into the Robot Body Frame (similar to what is shown in <xref ref-type="fig" rid="F6">Figure 6</xref> for the stability metric approximation).</p>
</list-item>
<list-item>
<p>3. Iterating through the possible foothold combinations to calculate the approximation of the <italic>desired velocity</italic> metric as outlined in <xref ref-type="statement" rid="algorithm_4">Algorithm 4</xref>.</p>
</list-item>
</list>
</p>
<p>In <xref ref-type="statement" rid="algorithm_3">Algorithm 3</xref>, we show how to sample the leg&#x2019;s configuration space (Line 3). Each time the foot is found in the walking region (Line 4), the portion of the metric that is dependent on the configuration of the leg is calculated for each leg (one through four) of the quadruped (Lines 5&#x2013;19). This allows us to get scores for each pose bin in the discretization of <italic>W</italic> for all four of the legs (<italic>v</italic>
<sub>bin,</sub> <sub>1</sub>, <italic>v</italic>
<sub>bin,</sub> <sub>2</sub>, <italic>v</italic>
<sub>bin,</sub> <sub>3</sub>, and <italic>v</italic>
<sub>bin,</sub> <sub>4</sub>) with one sampling of the configuration space. As is seen in Lines 11&#x2013;17, the lowest score found in a distinct pose bin is the one that is recorded. This is because the lowest score correlates to the limiting configuration on possible velocities in the bin. Therefore, using the lowest score guarantees that all configurations reached in the bin can at least achieve this desired velocity (with the assumption the leg can provide the torque necessary for acceleration as mentioned in <xref ref-type="sec" rid="s3-5-1">Section 3.5.1</xref>).</p>
<p>The calculation of the joint efforts, <italic>&#x3c4;</italic>, required to apply <italic>F</italic>
<sub>min</sub> (Line 6) is approximated in a similar manner to the calculation of the joint efforts required to support the robot&#x2019;s weight for the <italic>average payload in walking regions</italic> metric in <xref ref-type="sec" rid="s3-2-1">Section 3.2.1</xref>. <italic>F</italic>
<sub>min</sub> is simply added to the FBD which results in <xref ref-type="disp-formula" rid="e5">Eq. (5)</xref> becoming<disp-formula id="e10">
<mml:math id="m18">
<mml:mi>&#x3c4;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>link,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>link,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>g</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>joint,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>joint,</mml:mtext>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>foot</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(10)</label>
</disp-formula>where <italic>W</italic>
<sub>min</sub> is <italic>F</italic>
<sub>min</sub> represented as a 6 &#xd7; 1 wrench with the torques being set to zero. Note, <italic>F</italic>
<sub>min</sub> is simply a possible value of the friction force, <italic>f</italic> from <xref ref-type="disp-formula" rid="e5">Eq. 5</xref>.</p>
</statement>
</p>
<p>
<statement content-type="algorithm" id="algorithm_4">
<label>Algorithm 4</label>
<p>Average Desired Velocity Metric Approximation Calculation Part 2</p>
<p>
<inline-graphic xlink:href="frobt-09-860020-fx4.tif"/>
</p>
<p>After the <italic>v</italic>
<sub>bin,<italic>i</italic>
</sub> is calculated for every orientation bin reached by each leg, the 6D pose discretization is flattened to a 2D discretization similar to what is shown in <xref ref-type="fig" rid="F6">Figure 6</xref>. However instead of adding the scores, as we did for the approximation of the <italic>average stability criteria</italic> metric, all of the <italic>v</italic>
<sub>bin,<italic>i</italic>
</sub> values of each distinct 6D pose bin are averaged to find the <italic>v</italic>
<sub>bin,<italic>i</italic>
</sub> for the 2D rectangular bin. Since the goal is the <italic>average desired velocity</italic> metric, taking the average finds the average performance in the 2D bin. We translate this flattened discretization into the Robot Frame for each of the four legs as is done for the approximation of the <italic>static stability criteria</italic> metric in <xref ref-type="sec" rid="s3-4-2">Section 3.4.2</xref> (visualized in <xref ref-type="fig" rid="F6">Figure 6</xref>).</p>
<p>We finally iterate over each combination of four footholds (one foothold from each leg) in the 2D horizontal Cartesian discretizations, similar to what is described in <xref ref-type="sec" rid="s3-4-2">Section 3.4.2</xref> and <xref ref-type="fig" rid="F6">Figure 6</xref>, to approximate the portion of the metric that depends on the results of all the legs together. This is outlined in <xref ref-type="statement" rid="algorithm_4">Algorithm 4</xref>. For each combination, we create the set of <italic>v</italic>
<sub>bin,<italic>i</italic>
</sub>&#x2019;s which are the <italic>desired velocity</italic> scores for each 2D bin of the combination. We find the two smallest values of the set in Lines 4-6 and use these to calculate the <italic>desired velocity</italic> score of the foothold combination (<italic>s</italic>
<sub>comb</sub>) in Line 7. This results in <italic>v</italic>
<sub>min</sub> being used for four of these combinations when it is the limiting factor and <italic>v</italic>
<sub>min2</sub> being used for the combination of three footholds when the foot causing <italic>v</italic>
<sub>min</sub> is lifted.</p>
<p>We weight the combination score, <italic>s</italic>
<sub>comb</sub>, by the number of times the foothold combination can be found in the overall configuration space, <italic>n</italic>
<sub>comb</sub>, in Line 9 since we want to find the overall average. This weighting, <italic>n</italic>
<sub>comb</sub>, is calculated in the same manner as it is for the approximation of the <italic>average static stability criteria</italic> metric in Line 8. We sum all of the <italic>s</italic>
<sub>comb</sub> for each foothold combination together (Line 10) and then normalize them by the number of valid foothold combinations, <italic>n</italic>
<sub>foot</sub>, (Line 12) to obtain the approximated <italic>average desired velocity</italic> metric, <italic>s</italic>
<sub>approx</sub>.</p>
<p>While this approximation is shown for four symmetric legs, like the approximation for the <italic>average static stability criteria</italic> metric, this can easily be extended for a non-symmetric <italic>n</italic>-legged robot. However, it has the same limitations in tractability as the approximation for the <italic>average static stability criteria</italic> mentioned in <xref ref-type="sec" rid="s3-4-2">Section 3.4.2</xref>.</p>
</statement>
</p>
</sec>
</sec>
</sec>
<sec id="s4">
<title>4 Optimization of 16-DoF Continuum-Joint Quadruped</title>
<p>In this section we demonstrate how the application of the proposed metrics and their approximations (from <xref ref-type="sec" rid="s3">Section 3</xref> allow us to optimize the design of a 16-DoF continuum joint quadruped. We also present and explore trade-offs between the metrics to show how these tools may be used in the design process and which metrics or objectives are competing.</p>
<sec id="s4-1">
<title>4.1 Robot Description</title>
<p>The design of the 16-DoF quadruped consists of a wooden base and four individual four-DoF, pneumatically-actuated, continuum-joint legs attached to the base. The robot is designed to be symmetric to reduce the number of design variables and to simplify the calculation of the metrics presented in <xref ref-type="sec" rid="s3">Section 3</xref>. Illustrations of the leg design and base are shown in <xref ref-type="fig" rid="F7">Figure 7</xref>. In total, we have ten design variables for the 16-DoF quadruped: <inline-formula id="inf9">
<mml:math id="m19">
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b2;</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>L</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>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</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>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula>. Their descriptions are listed here:<list list-type="simple">
<list-item>
<p>&#x2022; Base width <italic>w</italic>.</p>
</list-item>
<list-item>
<p>&#x2022; Base length <italic>l</italic>.</p>
</list-item>
<list-item>
<p>&#x2022; Mounting angle of the legs <italic>&#x3b8;</italic>.</p>
</list-item>
<list-item>
<p>&#x2022; A shoulder mount attaching the leg to the base positioned at an elevation angle <italic>&#x3b2;</italic>.</p>
</list-item>
<list-item>
<p>&#x2022; A link (called Link 1) defined by lengths, <italic>L</italic>
<sub>1</sub> and <italic>L</italic>
<sub>2</sub>, and bend angle, <italic>&#x3b1;</italic>
<sub>1</sub>.</p>
</list-item>
<list-item>
<p>&#x2022; A link (called Link 2) defined by lengths, <italic>L</italic>
<sub>3</sub> and <italic>L</italic>
<sub>4</sub> and bend angle, <italic>&#x3b1;</italic>
<sub>2</sub>.</p>
</list-item>
</list>
</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>
<bold>(A)</bold>: An illustration of the leg of the robot. Joint 1 is a two-DOF, eight-bellows, pneumatically-actuated, continuum joint. Joint 2 is a two-DoF, four-bellows, pneumatically-actuated, continuum joint. The valve block actuates Joint 2. A foot is attached to the end of Link 2. <bold>(B)</bold>: A top view of the model of the body of the quadruped. Valves needed to actuate Joint 1 are included in this model.</p>
</caption>
<graphic xlink:href="frobt-09-860020-g007.tif"/>
</fig>
<p>Each leg of the quadruped design consists of two separate two-DoF, pneumatically-actuated, continuum joints as seen in <xref ref-type="fig" rid="F7">Figure 7</xref>. These joints operate by using two sets of antagonistic bellows that can be filled to pressures ranging from zero to 600&#xa0;kPa (gauge). There are two versions of these joints: one with four bellows and one with eight. They are identical in function with the exception that the eight-bellows version is larger and produces more torque. Each joint is modeled as having two degrees of freedom (denoted <italic>u</italic> and <italic>v</italic>) and we refer readers to <xref ref-type="bibr" rid="B16">Hyatt et al. (2020)</xref> for more in-depth discussion of the kinematic and dynamic properties of these soft actuators.</p>
</sec>
<sec id="s4-2">
<title>4.2 Optimization Problem</title>
<p>Our multi-objective optimization problem is formally stated as<disp-formula id="e11">
<mml:math id="m20">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:munder>
<mml:mrow>
<mml:mtext>max</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mspace width="1em"/>
<mml:mi>F</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mtext>subject&#x2009;to</mml:mtext>
<mml:mspace width="1em"/>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>h</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>foot</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>max</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo accent="true">&#x332;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mn>1,10</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(11)</label>
</disp-formula>where <inline-formula id="inf10">
<mml:math id="m21">
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> is the vector of design variables described in <xref ref-type="sec" rid="s4-1">Section 4.1</xref>. <italic>F</italic>(<italic>x</italic>) is a vector containing each of the four design metric approximations outlined in <xref ref-type="sec" rid="s3">Section 3</xref>. <italic>h</italic> is the length of the joints (0.205&#xa0;m) and <italic>L</italic>
<sub>max</sub> &#x3d; 1.829&#xa0;m (6&#xa0;ft). The first inequality constraint prevents overly long legs. In the second inequality, <inline-formula id="inf11">
<mml:math id="m22">
<mml:msub>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo accent="true">&#x332;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> and <inline-formula id="inf12">
<mml:math id="m23">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> are the <italic>i</italic>th design variable&#x2019;s lower and upper bounds respectively. Numerical values for the bounds are given in <xref ref-type="table" rid="T1">Table 1</xref>. We choose to solve this optimization problem with a genetic algorithm adapted from <xref ref-type="bibr" rid="B3">Bodily (2017)</xref> to the quadruped design. <italic>F</italic>(<bold>
<italic>x</italic>
</bold>) is the vector-valued objective function where <italic>f</italic>
<sub>
<italic>i</italic>
</sub>(<bold>
<italic>x</italic>
</bold>) is each of the four design metrics discussed in <xref ref-type="sec" rid="s3">Section 3</xref>. The objective function is evaluated for each point in the population and converted to an individual fitness score using the maximin fitness function presented in <xref ref-type="bibr" rid="B1">Balling and Wilson (2001)</xref> in order to find an approximate Pareto Frontier. <xref ref-type="statement" rid="algorithm_5">Algorithm 5</xref> shows our implementation of the evolutionary algorithm.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>The bound constraints and perturbation bounds for each design variable of the 16-DoF continuum-joint quadruped.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Design Variable</th>
<th align="center">Lower Bound</th>
<th align="center">Upper Bound</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">
<italic>w</italic>
</td>
<td align="center">0.4&#xa0;m</td>
<td align="center">1.3&#xa0;m</td>
</tr>
<tr>
<td align="left">
<italic>l</italic>
</td>
<td align="center">0.4&#xa0;m</td>
<td align="center">1.3&#xa0;m</td>
</tr>
<tr>
<td align="left">
<italic>&#x3b8;</italic>
</td>
<td align="center">&#x2212;45&#xb0;</td>
<td align="center">135&#xb0;</td>
</tr>
<tr>
<td align="left">
<italic>&#x3b2;</italic>
</td>
<td align="center">&#x2212;180&#xb0;</td>
<td align="center">0&#xb0;</td>
</tr>
<tr>
<td align="left">
<italic>L</italic>
<sub>1</sub>
</td>
<td align="center">0.185&#xa0;m</td>
<td align="center">0.5 m</td>
</tr>
<tr>
<td align="left">
<italic>L</italic>
<sub>2</sub>
</td>
<td align="center">0.263&#xa0;m</td>
<td align="center">0.5&#xa0;m</td>
</tr>
<tr>
<td align="left">
<italic>L</italic>
<sub>3</sub>
</td>
<td align="center">0.143&#xa0;m</td>
<td align="center">0.5&#xa0;m</td>
</tr>
<tr>
<td align="left">
<italic>L</italic>
<sub>4</sub>
</td>
<td align="center">0.150&#xa0;m</td>
<td align="center">0.5&#xa0;m</td>
</tr>
<tr>
<td align="left">
<italic>&#x3b1;</italic>
<sub>1</sub>
</td>
<td align="center">&#x2212;90&#xb0;</td>
<td align="center">90&#xb0;</td>
</tr>
<tr>
<td align="left">
<italic>&#x3b1;</italic>
<sub>2</sub>
</td>
<td align="center">&#x2212;90&#xb0;</td>
<td align="center">90&#xb0;</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>
<statement content-type="algorithm" id="algorithm_5">
<label>Algorithm 5</label>
<p>Evolutionary Algorithm Implementation</p>
<p>
<inline-graphic xlink:href="frobt-09-860020-fx5.tif"/>
</p>
<p>
<xref ref-type="table" rid="T2">Table 2</xref> lists the fixed parameters that were used to calculate <italic>F</italic>(<bold>
<italic>x</italic>
</bold>). This includes the <italic>XYZ Discretization Bin Size</italic> and <italic>SO3 Discretization Bin Size</italic> which are the resolutions of the discretization of the workspace. We sample the leg&#x2019;s configuration space at every combination of <italic>u</italic> and <italic>v</italic> for each joint between <inline-formula id="inf13">
<mml:math id="m24">
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x3c0;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:math>
</inline-formula> and <inline-formula id="inf14">
<mml:math id="m25">
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x3c0;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:math>
</inline-formula> at the resolution <italic>Joint Angle Res</italic>. However, because of physical joint limits, the magnitude of the vector formed by <italic>u</italic> and <italic>v</italic> cannot exceed <inline-formula id="inf15">
<mml:math id="m26">
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x3c0;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:math>
</inline-formula>. If this constraint is violated in a given configuration the design metrics are not calculated. This ensures only realistic leg configurations are included in the population. <italic>Min Walking Clearance</italic>, <italic>Max Walking Clearance</italic>, and <italic>&#x3b3;</italic>
<sub>max</sub> are the parameters necessary to define the walking region, <italic>W</italic>, which is needed to calculate all of the design metrics. As mentioned in <xref ref-type="sec" rid="s3-2-1">Section 3.2.1</xref> <italic>F</italic>
<sub>payload,</sub> <sub>max</sub> is necessary to calculate the <italic>average payload in walking regions</italic> metric and is chosen based on the robot structure such that it is lower than the maximum allowable buckling, axial, or shear force.</p>
<p>The vector <inline-formula id="inf16">
<mml:math id="m27">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mo>&#x20d7;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> in <xref ref-type="table" rid="T2">Table 2</xref> is the unit vector indicating the desired direction in the quadruped&#x2019;s Body Frame (see <xref ref-type="fig" rid="F7">Figure 7</xref>) used to calculate the <italic>average desired velocity metric</italic>. The vector <inline-formula id="inf17">
<mml:math id="m28">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#x20d7;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> is necessary in the calculation of the <italic>average desired velocity metric</italic> (see <xref ref-type="sec" rid="s3-5">Section 3.5</xref>). <italic>&#x3bc;</italic>
<sub>
<italic>s</italic>
</sub> is the static coefficient of friction between the foot and carpet (equal to 1.8 between the foot and the carpet in our lab) and <italic>N</italic> is the magnitude of the normal force for a single leg described in <xref ref-type="sec" rid="s3-2">Section 3.2</xref>. In that section, <italic>N</italic> is defined as half the weight of the robot, and therefore, it is a function of the quadruped design being evaluated. The direction, <inline-formula id="inf18">
<mml:math id="m29">
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mo>&#x20d7;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, ensures this force provides propulsion in the desired direction. The magnitude <italic>&#x3bc;</italic>
<sub>
<italic>s</italic>
</sub>
<italic>N</italic> represents the maximum possible force the robot can apply without slipping and results in the max possible acceleration of the quadruped. Since <inline-formula id="inf19">
<mml:math id="m30">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#x20d7;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> is the minimum force that a leg configuration must be able to apply to include its score in the <italic>desired velocity</italic> metric (refer to <xref ref-type="sec" rid="s3-5-1">Section 3.5.1</xref>), it does not make sense to require this minimum force to provide the maximum possible acceleration for the leg. Thus, we chose a value for <inline-formula id="inf20">
<mml:math id="m31">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#x20d7;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> that was an order of magnitude lower than this force (i.e. 0.1). In other words, it is acceptable to include designs that are not able to provide maximum acceleration in the <italic>desired velocity</italic> metric.</p>
</statement>
</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>A list of fixed parameters for the optimization of the 16-DoF continuum-joint quadruped.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Parameters</th>
<th align="center">Value</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Min Walking Clearance</td>
<td align="center">0.25&#xa0;m</td>
</tr>
<tr>
<td align="left">Max Walking Clearance</td>
<td align="center">0.8&#xa0;m</td>
</tr>
<tr>
<td align="left">
<italic>&#x3b3;</italic>
<sub>max</sub>
</td>
<td align="center">45&#xb0;</td>
</tr>
<tr>
<td align="left">Joint Angle Res</td>
<td align="center">4&#xb0;</td>
</tr>
<tr>
<td align="left">XYZ Discretization Bin Size</td>
<td align="center">0.20&#xa0;m</td>
</tr>
<tr>
<td align="left">SO3 Discretization Bin Size</td>
<td align="center">4.93&#xb0;</td>
</tr>
<tr>
<td align="left">
<italic>F</italic>
<sub>payload,</sub> <sub>max</sub>
</td>
<td align="center">981&#xa0;<italic>N</italic>
</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf21">
<mml:math id="m32">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mo>&#x20d7;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf22">
<mml:math id="m33">
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>1</mml:mn>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>d</mml:mi>
<mml:mn>0</mml:mn>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>d</mml:mi>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">
<italic>&#x3bc;</italic>
<sub>
<italic>s</italic>
</sub>
</td>
<td align="center">1.8</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf23">
<mml:math id="m34">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#x20d7;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">m</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>
</td>
<td align="center">
<inline-formula id="inf24">
<mml:math id="m35">
<mml:mo>&#x2212;</mml:mo>
<mml:mn>0.1</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bc;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x20d7;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Optimization results for four-DoF quadruped. Values marked by &#x2a; indicate values that were kept constant for the particular optimization.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Metric</th>
<th align="center">
<italic>w</italic>
<sub>start</sub>
</th>
<th align="center">
<italic>l</italic>
<sub>start</sub>
</th>
<th align="center">
<italic>&#x3b8;</italic>
<sub>start</sub>
</th>
<th align="center">
<italic>w</italic>
<sub>opt</sub>
</th>
<th align="center">
<italic>l</italic>
<sub>opt</sub>
</th>
<th align="center">
<italic>&#x3b8;</italic>
<sub>opt</sub>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Static Stability Margin</td>
<td align="center">1.0</td>
<td align="center">1.0</td>
<td align="center">30.0</td>
<td align="center">1.25</td>
<td align="center">1.25</td>
<td align="center">&#x2212;45.0</td>
</tr>
<tr>
<td align="left">Approx. Static Stability Margin</td>
<td align="center">1.0</td>
<td align="center">1.0</td>
<td align="center">30.0</td>
<td align="center">1.25</td>
<td align="center">1.25</td>
<td align="center">&#x2212;45.0</td>
</tr>
<tr>
<td align="left">Error</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">7.0<italic>e</italic> &#x2212; 11</td>
<td align="center">1.0<italic>e</italic> &#x2212; 10</td>
<td align="center">&#x2212;1.0<italic>e</italic> &#x2212; 11</td>
</tr>
<tr>
<td align="left">Longitudinal Stability Margin</td>
<td align="center">1.0</td>
<td align="center">1.0</td>
<td align="center">30.0</td>
<td align="center">0.125</td>
<td align="center">1.25</td>
<td align="center">&#x2212;45.0</td>
</tr>
<tr>
<td align="left">Approx. Longitudinal Stability Margin</td>
<td align="center">1.0</td>
<td align="center">1.0</td>
<td align="center">30.0</td>
<td align="center">0.125</td>
<td align="center">1.25</td>
<td align="center">&#x2212;45.0</td>
</tr>
<tr>
<td align="left">Error</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">2.0<italic>e</italic> &#x2212; 12</td>
<td align="center">0.0</td>
<td align="center">2.0<italic>e</italic> &#x2212; 12</td>
</tr>
<tr>
<td align="left">Average Desired Velocity</td>
<td align="center">0.1&#x2a;</td>
<td align="center">0.2&#x2a;</td>
<td align="center">30.0</td>
<td align="center">0.1&#x2a;</td>
<td align="center">0.2&#x2a;</td>
<td align="center">&#x2212;8.88<italic>e</italic> &#x2212; 3</td>
</tr>
<tr>
<td align="left">Approx. Average Desired Velocity</td>
<td align="center">0.1&#x2a;</td>
<td align="center">0.2&#x2a;</td>
<td align="center">30.0</td>
<td align="center">0.1&#x2a;</td>
<td align="center">0.2&#x2a;</td>
<td align="center">1.25<italic>e</italic> &#x2212; 3</td>
</tr>
<tr>
<td align="left">Error</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">-</td>
<td align="center">&#x2212;1.01<italic>e</italic> &#x2212; 2</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s4-3">
<title>4.3 Results</title>
<p>We initialize the genetic algorithm with 200 random quadruped designs. Per the evolutionary algorithm outlined in <xref ref-type="bibr" rid="B3">Bodily (2017)</xref>, this results in 100 designs surviving from one generation to the next based on their maximin fitness function values. We choose to preserve a large number of designs from one generation to the next to clearly delineate the 4-dimensional Pareto front. The objective function for each design in a generation is parallelized on a supercomputer with 28 cores on a 14-core Intel Broadwell (2.4&#xa0;GHz) processor. The optimization took 1&#xa0;day, 15&#xa0;h, and 40&#xa0;min to evolve 60 generations. Between all the cores, there was over 46&#xa0;days of computation time. In total, we ran the optimization ten different times varying the population size. We did not observe meaningful differences between the resulting Pareto fronts, so the results presented in this section are from a single representative trial. The data for all optimization runs is publicly available at the link provided in the Data Availability Section.</p>
<p>The optimization was terminated on the 60th generation when the Pareto front converged. We define convergence in this context to mean that the top-scoring designs for each metric along the Pareto front improve less than 1% for ten consecutive generations. For comparison, we observed these four individuals improve between 15 and 363% in each metric from the first generation. Figure 3.14 of <xref ref-type="bibr" rid="B30">Sherrod (2019)</xref> also shows the progression of this Pareto front every ten generations. <xref ref-type="fig" rid="F8">Figure 8B</xref> shows the Pareto front of the last generation. The four objectives are shown in bubble plots with the <italic>dexterity in walking regions</italic> and <italic>average payload in walking region</italic> metrics represented on the <italic>x</italic> and <italic>y</italic> axes, respectively. The <italic>average stability margin</italic> metric is represented by the color of the bubbles and the <italic>average desired velocity</italic> metric is represented by the bubble size. Recall that we are maximizing the objective function (<xref ref-type="disp-formula" rid="e11">Eq. 11</xref>) so larger metric values are better.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>
<bold>(A)</bold> The Pareto front of the optimization after 60 generations represented in a scatter plot matrix. The robots with the best dexterity in walking region, average payload, average stability criteria, and averaged desired velocity are labeled as A, B, C, and D respectively. <bold>(B)</bold> The Pareto front of the optimization after 60 generations. The robots with the best dexterity in walking region, average payload, average stability criteria, and averaged desired velocity are labeled as A, B, C, and D respectively.</p>
</caption>
<graphic xlink:href="frobt-09-860020-g008.tif"/>
</fig>
<p>For comparison, the designs with the best <italic>dexterity in walking region</italic>, <italic>average payload</italic>, <italic>average stability criteria</italic>, and <italic>averaged desired velocity</italic> are labeled as A, B, C, and D respectively.</p>
<p>Generally, designs that do well in stability perform poorly in the other three metrics. The prime example of this is that the quadruped with the best stability score (C) has a score of zero in the <italic>average payload</italic> and <italic>average desired velocity</italic> metrics and a low score for the <italic>dexterity in walking regions</italic> metric. Also note that designs that perform well in the <italic>average payload</italic> also perform well in <italic>desired velocity</italic>&#x2013;as is seen by the proximity of B and D. This is most likely because we require a design to be able to produce enough force to carry its own weight and accelerate forwards in the calculation of the <italic>average desired velocity</italic> metric. Thus robots that are able to supply the necessary force in the desired direction are more likely to be able to support higher payloads as well.</p>
<p>
<xref ref-type="fig" rid="F8">Figure 8A</xref> helps further illustrate the relationships between the different objectives. Here, the final population of designs for the optimization in four-dimensional objective space are plotted in the six possible pairs between the four objectives (known as a scatter plot matrix). This shows how any two of the four metrics are related to each other. Those designs that are non-dominated with respect to the two metrics in a given plot (i.e., Pareto optimal) are marked in green. A, B, C, and D are also marked in each plot. As is indicated by the near-vertical slope of its Pareto front, the only non-competing objective is <italic>average payload</italic> and <italic>average desired velocity</italic> metrics. All other Pareto fronts have negative slopes, indicating competing objectives.</p>
<p>
<xref ref-type="table" rid="T4">Table 4</xref> lists the design variables of A, B, C, and D marked in <xref ref-type="fig" rid="F8">Figure 8A,B</xref>. <xref ref-type="fig" rid="F9">Figure 9</xref> shows these quadruped designs in their zero configurations (i.e., <italic>u</italic> and <italic>v</italic> set to zero) over heat maps indicating how many foot orientations exist in a given horizontal 2D bin location in the body frame. This helps to illustrate each quadruped&#x2019;s dexterity and stability performance. These plots are similar to what is described and illustrated in <xref ref-type="fig" rid="F6">Figure 6</xref>. The red rectangle in these figures indicates the outline of the quadruped&#x2019;s body.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Kinematic values for the labeled designs in <xref ref-type="fig" rid="F9">Figures 9</xref>, <xref ref-type="fig" rid="F10">10</xref>. Lengths are in meters, and angles are in degrees. Leg66 and Leg4 are used for hardware experiments in <xref ref-type="sec" rid="s5">Section 5</xref>.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Design</th>
<th align="center">
<italic>w</italic>
</th>
<th align="center">
<italic>l</italic>
</th>
<th align="center">
<italic>&#x3b8;</italic>
</th>
<th align="center">
<italic>&#x3b2;</italic>
</th>
<th align="center">
<italic>L</italic>
<sub>1</sub>
</th>
<th align="center">
<italic>L</italic>
<sub>2</sub>
</th>
<th align="center">
<italic>L</italic>
<sub>3</sub>
</th>
<th align="center">
<italic>L</italic>
<sub>4</sub>
</th>
<th align="center">
<italic>&#x3b1;</italic>
<sub>1</sub>
</th>
<th align="center">
<italic>&#x3b1;</italic>
<sub>2</sub>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left"> A</td>
<td align="char" char=".">0.953</td>
<td align="char" char=".">1.234</td>
<td align="char" char=".">37.8</td>
<td align="center">&#x2212;124.6</td>
<td align="char" char=".">0.185</td>
<td align="char" char=".">0.382</td>
<td align="char" char=".">0.145</td>
<td align="char" char=".">0.369</td>
<td align="char" char=".">12.4</td>
<td align="char" char=".">68.4</td>
</tr>
<tr>
<td align="left">B</td>
<td align="char" char=".">0.905</td>
<td align="char" char=".">0.471</td>
<td align="char" char=".">37.8</td>
<td align="center">&#x2212;59.9</td>
<td align="char" char=".">0.185</td>
<td align="char" char=".">0.263</td>
<td align="char" char=".">0.143</td>
<td align="char" char=".">0.150</td>
<td align="char" char=".">55.1</td>
<td align="char" char=".">90.0</td>
</tr>
<tr>
<td align="left">C</td>
<td align="char" char=".">1.158</td>
<td align="char" char=".">1.239</td>
<td align="char" char=".">45.6</td>
<td align="center">&#x2212;5.8</td>
<td align="char" char=".">0.187</td>
<td align="char" char=".">0.348</td>
<td align="char" char=".">0.500</td>
<td align="char" char=".">0.205</td>
<td align="char" char=".">21.2</td>
<td align="char" char=".">42.7</td>
</tr>
<tr>
<td align="left">D</td>
<td align="char" char=".">0.831</td>
<td align="char" char=".">0.427</td>
<td align="char" char=".">43.1</td>
<td align="center">&#x2212;73.1</td>
<td align="char" char=".">0.185</td>
<td align="char" char=".">0.263</td>
<td align="char" char=".">0.143</td>
<td align="char" char=".">0.150</td>
<td align="char" char=".">72.8</td>
<td align="char" char=".">90.0</td>
</tr>
<tr>
<td align="left">Leg66</td>
<td align="char" char=".">1.117</td>
<td align="char" char=".">0.454</td>
<td align="char" char=".">47.3</td>
<td align="center">&#x2212;69.6</td>
<td align="char" char=".">0.185</td>
<td align="char" char=".">0.263</td>
<td align="char" char=".">0.143</td>
<td align="char" char=".">0.150</td>
<td align="char" char=".">68.7</td>
<td align="char" char=".">89.8</td>
</tr>
<tr>
<td align="left">Leg4</td>
<td align="char" char=".">1.292</td>
<td align="char" char=".">1.181</td>
<td align="char" char=".">51.2</td>
<td align="center">&#x2212;95.0</td>
<td align="char" char=".">0.207</td>
<td align="char" char=".">0.371</td>
<td align="char" char=".">0.143</td>
<td align="char" char=".">0.234</td>
<td align="char" char=".">57.0</td>
<td align="char" char=".">63.0</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Visualization of designs (A&#x2013;D). Axis units are in meters. Rigid links are shown in black while the pneumatic joints are shown in green. The red outline on the heat map is a projection of the quadruped body (solid red) onto the <italic>x</italic> &#x2212; <italic>y</italic> plane for visualization clarity.</p>
</caption>
<graphic xlink:href="frobt-09-860020-g009.tif"/>
</fig>
<p>Designs with higher <italic>payload</italic> and <italic>desired velocity</italic> scores (designs B and D) tend to have smaller bases and the minimum lengths required for their legs. This is to reduce the overall weight of the robot allowing more of the force created by their joint torques to be utilized on extra payload. Another interesting trend in these designs is that the last bend angle <italic>&#x3b1;</italic>
<sub>2</sub> tends to be around 90&#xb0;. This creates a smaller moment arm for the second joint of each of the legs when applying a downwards force on the ground. Therefore, this joint can convert more of its torque into a downward force rather than having to overcome a bigger moment arm as is the case when this bend angle is smaller. Finally, these designs tend to utilize the inherent stiffness of the joints to provide extra torque. Since the foot is located below the walking region at their zero configurations the joints want to spring back when the foot is in the walking region. B and D exhibit this phenomenon. The joint stiffness provides extra torque to lift the robot in addition to the torque provided by the pressure in the joints&#x2019; bellows. However, this also appears to be the reason these designs have a lower dexterity score, as they have a smaller quantity of configurations within the walking region.</p>
<p>The more stable robots (designs A and C) tend to have larger bases. A larger base helps in stability since it causes more of the footholds to be further out from the center of gravity and creates a larger support polygon (see <xref ref-type="fig" rid="F5">Figure 5</xref>). Unsurprisingly, the most stable robot, C, has long legs to find some very stable (in terms of the support polygon criteria) configurations. However, the extra weight caused by a larger base decreases their ability to score well in the <italic>average payload</italic> and <italic>average desired velocity</italic> metrics. While highly stable, designs like C are unable to find many configurations with footholds in the walking region (i.e., its heat map is entirely blue). Therefore we suggest that the <italic>average static stability</italic> metric is best utilized either weighted in an overall objective function or used in a multi-objective function (as we do in this work) as opposed to being utilized in a single objective optimization.</p>
<p>Overall, the optimization provides valuable insight into the relationships between the four objectives as well as the different design characteristics of the quadruped that led to better performance in each metric.</p>
</sec>
</sec>
<sec id="s5">
<title>5 Hardware Validation Experiments</title>
<sec id="s5-1">
<title>5.1 Experiment Description</title>
<p>While simulation trends discussed in <xref ref-type="sec" rid="s4-3">Section 4.3</xref> provide valuable design insights by themselves, we also wanted a fundamental verification that these trends hold&#x2013;even with unknown modeling errors. We expect most of the modeling error to come from the pneumatic joint torque model, due to unmodeled disturbances like hysteresis or nonlinear joint stiffness. Since the <italic>dexterity in walking region</italic> and <italic>average static stability</italic> metrics are calculated largely with kinematic quantities and masses that are directly measurable, we focus the hardware experiments on the other two metrics which depend more on accurate models of joint torques: <italic>average payload</italic> and <italic>average desired velocity</italic>.</p>
<p>Since building a fully mobile quadruped is also not in the scope of this paper, directly observing the <italic>average desired velocity</italic> metric is challenging. Instead we mounted a single leg to a static testing apparatus and examined the ability of two different optimized solutions to apply a downward force. This facilitates an indirect observation of the <italic>average desired velocity</italic> metric and a direct observation of the <italic>average payload</italic> metric. The two experiments we design are as follows:<list list-type="simple">
<list-item>
<p>1. Experiment 1 was meant to verify that the <italic>average desired velocity</italic> metric is physically meaningful. Taking force measurements across the workspace of a leg indicates if a design is able to apply forces that cause desired accelerations. A step consists of swinging the leg forwards, making contact with the ground, pushing through the middle of the workspace, and breaking contact in the back of the workspace. A design incapable of generating higher forces during the beginning stages of a step would be unable to accelerate easily. Hence we expect to see higher force capability in the front and middle of the workspace than in the back. So we measured the maximum force output in each of these locations. Note that the &#x2018;forward&#x2019; direction is defined by <inline-formula id="inf25">
<mml:math id="m36">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mo>&#x20d7;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
</list-item>
<list-item>
<p>2. Experiment 2 was to verify the competing relationship between <italic>average payload</italic> and <italic>dexterity</italic> seen in <xref ref-type="fig" rid="F8">Figure 8A</xref>. As the dexterity metric of a leg design decreases, we expect its payload capability to increase. To accomplish this, we compare the maximum force output in the middle of the workspace of two different designs: one with a higher dexterity score and one with a higher payload score.</p>
</list-item>
</list>
</p>
<p>For safety, we limited the working pressure range from 0 to 275,790&#xa0;Pa (40 psi) which is about half of the joint&#x2019;s maximum pressure range. We define the maximum force output of a leg as the applied downward force when any actuator is near saturation for more than one second [i.e., the pressure in any joint chamber reaches 13,789&#xa0;Pa (2 psi) or 262,000&#xa0;Pa (38 psi)]. We define maximum force output this way because once an actuator saturates the continuum joints have lost control authority and may become unstable or deform in unmodeled ways.</p>
<p>We used a configuration estimator, a joint controller, and a force controller during the experiments. The configuration estimation uses orientation data from HTC Vive virtual reality trackers by applying the general method of estimating joint variables using orientation sensors presented in <xref ref-type="bibr" rid="B17">Hyatt et al. (2019)</xref>. The joints are controlled with a PI controller acting on the joint angle error signal. The force controller is a PI controller with feedforward control. Each controller is used during different parts of the experiment.</p>
<p>Since we model the leg as having four-DoF, the force controller can only actively control forces and torques in four of the six dimensions of a given wrench (generalized vector of forces and torques on a rigid body). Therefore, we command forces in all three directions of the Leg Base Frame and a torque along the <italic>y</italic> axis in the Foot Frame (see <xref ref-type="fig" rid="F10">Figure 10</xref> for the frames). Controlling a torque about the <italic>y</italic> axis in the Foot Frame helps to mitigate the loss of adequate contact with the ground. To measure the force between the foot and the ground, we use an ATI Mini45 force-torque sensor. This force torque sensor is mounted on top of a rigid stand and beneath a carpeted rectangular platform as shown in <xref ref-type="fig" rid="F10">Figure 10</xref>. During an experiment the leg presses downwards on the carpeted platform while the sensor measures the reaction wrench. The carpet simulates an environment in which the foot may operate and for which we optimized given the estimated coefficient of friction in our lab. However, this could be changed or adapted for different expected friction in different operating environments.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>The frame orientations of a constructed leg used in the experiments with the HTC Vive trackers attached to sense its configuration.</p>
</caption>
<graphic xlink:href="frobt-09-860020-g010.tif"/>
</fig>
<p>We adhered to the following experimental protocol to measure the maximum force a given leg design can apply:<list list-type="simple">
<list-item>
<p>1. Command the leg to 138&#xa0;kPa (20 psi) in each bellows to ensure the same starting conditions for all the tests.</p>
</list-item>
<list-item>
<p>2. Command the leg to the joint configuration corresponding to the desired workspace location using the PI joint controller and wait until error is <inline-formula id="inf26">
<mml:math id="m37">
<mml:mo>&#x2264;</mml:mo>
<mml:mo>.</mml:mo>
<mml:mn>01</mml:mn>
</mml:math>
</inline-formula> rad for all joint angles.</p>
</list-item>
<list-item>
<p>3. Stop the PI joint-configuration controller, but continue commanding the last pressures from the PI controller to maintain the configuration.</p>
</list-item>
<list-item>
<p>4. Adjust the height the force torque stand until the carpeted platform is barely touching the foot. Verify that the platform is within the walking region <italic>W</italic> as defined in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
</list-item>
<list-item>
<p>5. Set the current force-torque sensor readings to zero. This ensures that the forces measured at the foot are due to joint torques.</p>
</list-item>
<list-item>
<p>6. Start the force controller. Command zero force in the <italic>x</italic> and <italic>y</italic> axes of the Leg Base Frame and zero torque about the <italic>y</italic> axis in of the Foot Frame. This will keep lateral forces low and maintain good contact with the carpeted platform.</p>
</list-item>
<list-item>
<p>7. Increment the force command along the <italic>z</italic> axis of the Leg Base Frame by 1&#xa0;N every second until any of the pressure chambers are near saturation for longer than one second.</p>
</list-item>
</list>
</p>
</sec>
<sec id="s5-2">
<title>5.2 Validation Designs</title>
<p>For Experiment 1, we chose a design (referred to as Leg4) that was closest to the 95th percentile of the <italic>dexterity in walking region</italic> and <italic>average static stability</italic> metrics. For Experiment 2, we choose a design (referred to as Leg66) closest to the 95th percentile in the <italic>average payload</italic> and <italic>average desired velocity</italic> metrics. This design is theoretically capable of applying higher forces than Leg4 but is less stable and less dexterous. For reference, both of these leg designs are labeled in <xref ref-type="fig" rid="F8">Figure 8B</xref> and their design variables are given in <xref ref-type="table" rid="T4">Table 4</xref>.</p>
</sec>
<sec id="s5-3">
<title>5.3 Results</title>
<p>
<xref ref-type="table" rid="T5">Table 5</xref> shows the results for Experiment 1 run on Leg4. Note that we run 5 trials at each workspace location and report summary statistics to demonstrate repeatability. We see that the expected trends over the workspace are indeed validated. The maximum forces are higher near the front and middle of the workspace and drop in magnitude in the back when the foot will lift for another step. This implies that the <italic>average desired velocity</italic> metric used for the optimization produces physically meaningful results. Recall that the optimization did not have the pressure safety limits that we imposed on the hardware, so the actual magnitudes of these results are less important than the relative values across the workspace.</p>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Experimental results from Experiments 1 and 2. Experiment 1 tests across the workspace of Leg4 to observe force capability that can produce a desired velocity during a step. Experiment 2 compares force outputs in the middle of the workspace between 2 different designs to observe differences in payload capability.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left"/>
<th colspan="3" align="center">Leg4</th>
<th colspan="3" align="center">Leg66</th>
</tr>
<tr>
<th align="left"/>
<th align="center">Max</th>
<th align="center">Median</th>
<th align="center">Mean</th>
<th align="center">Max</th>
<th align="center">Median</th>
<th align="center">Mean</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Front</td>
<td align="char" char=".">306.19&#xa0;N</td>
<td align="char" char=".">301.54&#xa0;N</td>
<td align="char" char=".">298.48&#xa0;N</td>
<td align="char" char=".">-</td>
<td align="char" char=".">-</td>
<td align="char" char=".">-</td>
</tr>
<tr>
<td align="left">Middle</td>
<td align="char" char=".">277.10&#xa0;N</td>
<td align="char" char=".">267.61&#xa0;N</td>
<td align="char" char=".">267.98&#xa0;N</td>
<td align="char" char=".">367.25&#xa0;N</td>
<td align="char" char=".">349.38&#xa0;N</td>
<td align="char" char=".">351.64&#xa0;N</td>
</tr>
<tr>
<td align="left">Back</td>
<td align="char" char=".">173.85&#xa0;N</td>
<td align="char" char=".">160.79&#xa0;N</td>
<td align="char" char=".">152.75&#xa0;N</td>
<td align="char" char=".">-</td>
<td align="char" char=".">-</td>
<td align="char" char=".">-</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>
<xref ref-type="table" rid="T5">Table 5</xref> contains the results of Experiment 2. From <xref ref-type="fig" rid="F8">Figure 8B</xref>, we expect that Leg66 will be capable of higher force outputs because of its higher <italic>average payload</italic> score compared to Leg4. This is exactly what we observe. On average, Leg66 is capable of applying downward forces 31.22% higher than Leg4.</p>
<p>While these results are preliminary, they clearly demonstrate the fact that the design metrics presented in this work are capable of mathematically capturing complex characteristics that are desirable for quadrupedal locomotion with compliant continuum joints. They succinctly represent real-world behaviors and capabilities despite modeling inaccuracies and various approximations that we used to preserve numerical tractability.</p>
</sec>
</sec>
<sec id="s6">
<title>6 Conclusion</title>
<p>We presented four design metrics for the design optimization of any walking robot. We also derived and validated approximations of these metrics, without which a useful optimization would be numerically infeasible. To validate the metrics, and the approximations, we used the metrics in a 10-dimensional design optimization of a 16 degree-of-freedom quadruped robot.</p>
<p>We solved the design optimization problem using a genetic algorithm, which is well-suited to multi-objective optimization problems where understanding design trade-offs via analysis of a Pareto Frontier is valuable. We also included a discussion of these trade-offs for our soft robot quadruped application.</p>
<p>Finally, we built two different designs selected from the optimization results and provided preliminary evidence that the relationships between design variables predicted by the optimization also occur in real-world experiments.</p>
<p>Future work could include comprehensive hardware tests to explicitly compare full functionality of different walking robot designs. This would require the construction of 3 additional legs and a body which could be adjustable along each of the 10 design variables to facilitate quick iteration through different designs. Accomplishing the more general goal of unstructured terrain traversal will also require the development of new large-scale soft robot gait controllers, force controllers, and path planning algorithms tailored to a pneumatically-actuated compliant quadruped. The results presented in this paper show that leg designs optimized for specific metrics are indeed more performant in those metrics. For this reason, we expect that designing a full quadruped robot with these metrics and trade-offs in mind will accelerate the development of robots and controllers towards these general locomotion goals. This expectation is supported because of similar work where we have already shown improvements in related soft robot manipulation due to relevant optimization design work [see <xref ref-type="bibr" rid="B3">Bodily (2017)</xref>].</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data Availability Statement</title>
<p>The datasets and analysis scripts for the hardware validation portion of this study can be found on Figshare (<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.6084/m9.figshare.c.5772848.v2">https://doi.org/10.6084/m9.figshare.c.5772848.v2</ext-link>).</p>
</sec>
<sec id="s8">
<title>Author Contributions</title>
<p>VS created design metrics and algorithms and ran optimization to generate simulation results. CJ helped build hardware designs, implemented force and position controllers, and ran validation experiments. MK participated in an advisory role.</p>
</sec>
<sec id="s9">
<title>Funding</title>
<p>This material was partially supported by the National Science Foundation under Grant no. 1935312.</p>
</sec>
<sec sec-type="COI-statement" 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>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x2019;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Balling</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Wilson</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2001</year>). &#x201c;<article-title>The Maximin Fitness Function for Multi-Objective Evolutionary Computation: Application to City Planning</article-title>,&#x201d; in <conf-name>Proceedings of the 3rd Annual Conference on Genetic and Evolutionary Computation</conf-name> (<publisher-loc>San Francisco, CA</publisher-loc>: <publisher-name>Morgan Kaufmann Publishers Inc.</publisher-name>), <fpage>1079</fpage>&#x2013;<lpage>1084</lpage>. </citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Birglen</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Ruella</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Analysis and Optimization of One-Degree of Freedom Robotic Legs</article-title>. <source>ASME J. Mech. Robotics</source> <volume>6</volume>. <pub-id pub-id-type="doi">10.1115/1.4027234</pub-id> </citation>
</ref>
<ref id="B3">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Bodily</surname>
<given-names>D. M.</given-names>
</name>
</person-group> (<year>2017</year>). <source>Design Optimization and Motion Planning for Pneumatically-Actuated Manipulators</source>. <publisher-loc>Provo Utah</publisher-loc>: <publisher-name>Brigham Young University</publisher-name>. </citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Qin</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Foo</surname>
<given-names>C. C.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>H.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>Untethered Soft Robot Capable of Stable Locomotion Using Soft Electrostatic Actuators</article-title>. <source>Extreme Mech. Lett.</source> <volume>21</volume>, <fpage>9</fpage>&#x2013;<lpage>16</lpage>. <pub-id pub-id-type="doi">10.1016/j.eml.2018.02.004</pub-id> </citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chadwick</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Kolvenbach</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Dubois</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Lau</surname>
<given-names>H. F.</given-names>
</name>
<name>
<surname>Hutter</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Vitruvio: An Open-Source Leg Design Optimization Toolbox for Walking Robots</article-title>. <source>IEEE Robot. Autom. Lett.</source> <volume>5</volume>, <fpage>6318</fpage>&#x2013;<lpage>6325</lpage>. <pub-id pub-id-type="doi">10.1109/lra.2020.3013913</pub-id> </citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Sarparast</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Tan</surname>
<given-names>X.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>Soft Crawling Robots: Design, Actuation, and Locomotion</article-title>. <source>Adv. Mat. Technol.</source> <volume>5</volume>, <fpage>1900837</fpage>. <pub-id pub-id-type="doi">10.1002/admt.201900837</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cianchetti</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Calisti</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Margheri</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Kuba</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Laschi</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Bioinspired Locomotion and Grasping in Water: the Soft Eight-Arm OCTOPUS Robot</article-title>. <source>Bioinspir. Biomim.</source> <volume>10</volume>, <fpage>035003</fpage>. <pub-id pub-id-type="doi">10.1088/1748-3190/10/3/035003</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Crespi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Karakasiliotis</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Guignard</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Ijspeert</surname>
<given-names>A. J.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Salamandra Robotica II: An Amphibious Robot to Study Salamander-like Swimming and Walking Gaits</article-title>. <source>IEEE Trans. Robot.</source> <volume>29</volume>, <fpage>308</fpage>&#x2013;<lpage>320</lpage>. <pub-id pub-id-type="doi">10.1109/TRO.2012.2234311</pub-id> </citation>
</ref>
<ref id="B9">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>De Santos</surname>
<given-names>P. G.</given-names>
</name>
<name>
<surname>Garcia</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Estremera</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2007</year>). <source>Quadrupedal Locomotion: An Introduction to the Control of Four-Legged Robots</source>. <publisher-loc>Springer London</publisher-loc>: <publisher-name>Springer Science and Business Media</publisher-name>. </citation>
</ref>
<ref id="B10">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>De Vincenti</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Kang</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Coros</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Control-aware Design Optimization for Bio-Inspired Quadruped Robots</article-title>,&#x201d; in <conf-name>2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)</conf-name> (<publisher-name>IEEE</publisher-name>), <fpage>1354</fpage>&#x2013;<lpage>1361</lpage>. <pub-id pub-id-type="doi">10.1109/iros51168.2021.9636415</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Fedorov</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Birglen</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2015</year>). &#x201c;<article-title>Analysis and Design of a Two Degree of Freedom Hoeckens-Pantograph Leg Mechanism</article-title>,&#x201d; in <conf-name>ASME 2015 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference</conf-name> (<publisher-loc>Boston, Massachusetts</publisher-loc>: <publisher-name>ASME</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1115/detc2015-47330</pub-id> </citation>
</ref>
<ref id="B12">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Florez</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Shih</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Bai</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Paik</surname>
<given-names>J. K.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Soft Pneumatic Actuators for Legged Locomotion</article-title>,&#x201d; in <conf-name>2014 IEEE International Conference on Robotics and Biomimetics (ROBIO 2014)</conf-name> (<publisher-name>IEEE</publisher-name>), <fpage>27</fpage>&#x2013;<lpage>34</lpage>. <pub-id pub-id-type="doi">10.1109/robio.2014.7090302</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Godage</surname>
<given-names>I. S.</given-names>
</name>
<name>
<surname>Nanayakkara</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Caldwell</surname>
<given-names>D. G.</given-names>
</name>
</person-group> (<year>2012</year>). &#x201c;<article-title>Locomotion with Continuum Limbs</article-title>,&#x201d; in <conf-name>IEEE International Conference on Intelligent Robots and Systems</conf-name> (<publisher-name>IEEE</publisher-name>), <fpage>293</fpage>&#x2013;<lpage>298</lpage>. <pub-id pub-id-type="doi">10.1109/IROS.2012.6385810</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>G&#xfc;lhan</surname>
<given-names>M. M.</given-names>
</name>
<name>
<surname>Erbatur</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Kinematic Arrangement Optimization of a Quadruped Robot with Genetic Algorithms</article-title>. <source>Meas. Control</source> <volume>51</volume>, <fpage>406</fpage>&#x2013;<lpage>416</lpage>. <pub-id pub-id-type="doi">10.1177/0020294018795640</pub-id> </citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ha</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Coros</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Alspach</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yamane</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Computational Co-optimization of Design Parameters and Motion Trajectories for Robotic Systems</article-title>. <source>Int. J. Robotics Res.</source> <volume>37</volume>, <fpage>1521</fpage>&#x2013;<lpage>1536</lpage>. <pub-id pub-id-type="doi">10.1177/0278364918771172</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hyatt</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Johnson</surname>
<given-names>C. C.</given-names>
</name>
<name>
<surname>Killpack</surname>
<given-names>M. D.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Model Reference Predictive Adaptive Control for Large-Scale Soft Robots</article-title>. <source>Front. Robotics AI</source> <volume>7</volume>, <fpage>558027</fpage>. <pub-id pub-id-type="doi">10.3389/frobt.2020.558027</pub-id> </citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hyatt</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Kraus</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Sherrod</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Rupert</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Day</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Killpack</surname>
<given-names>M. D.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Configuration Estimation for Accurate Position Control of Large-Scale Soft Robots</article-title>. <source>IEEE/ASME Trans. Mechatron.</source> <volume>24</volume>, <fpage>88</fpage>&#x2013;<lpage>99</lpage>. <pub-id pub-id-type="doi">10.1109/tmech.2018.2878228</pub-id> </citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jin</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Alici</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Mao</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Min</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>C.</given-names>
</name>
<etal/>
</person-group> (<year>2016</year>). <article-title>A Starfish Robot Based on Soft and Smart Modular Structure (SMS) Actuated by SMA Wires</article-title>. <source>Bioinspir. Biomim.</source> <volume>11</volume>, <fpage>056012</fpage>. <pub-id pub-id-type="doi">10.1088/1748-3190/11/5/056012</pub-id> </citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kim</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Cha</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Origami Pump Actuator Based Pneumatic Quadruped Robot (Oparo)</article-title>. <source>IEEE Access</source> <volume>9</volume>, <fpage>41010</fpage>&#x2013;<lpage>41018</lpage>. <pub-id pub-id-type="doi">10.1109/access.2021.3065402</pub-id> </citation>
</ref>
<ref id="B20">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Loc</surname>
<given-names>V.-G.</given-names>
</name>
<name>
<surname>Koo</surname>
<given-names>I. M.</given-names>
</name>
<name>
<surname>Trong</surname>
<given-names>T. D.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>H. M.</given-names>
</name>
<name>
<surname>Moon</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Park</surname>
<given-names>S.</given-names>
</name>
<etal/>
</person-group> (<year>2010</year>). &#x201c;<article-title>A Study on Traversability of Quadruped Robot in Rough Terrain</article-title>,&#x201d; in <conf-name>2010 International Conference on Control Automation and Systems (ICCAS)</conf-name> (<publisher-loc>Gyeonggi-do, Korea (South)</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1707</fpage>&#x2013;<lpage>1711</lpage>. <pub-id pub-id-type="doi">10.1109/iccas.2010.5669775</pub-id> </citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>McGhee</surname>
<given-names>R. B.</given-names>
</name>
<name>
<surname>Frank</surname>
<given-names>A. A.</given-names>
</name>
</person-group> (<year>1968</year>). <article-title>On the Stability Properties of Quadruped Creeping Gaits</article-title>. <source>Math. Biosci.</source> <volume>3</volume>, <fpage>331</fpage>&#x2013;<lpage>351</lpage>. <pub-id pub-id-type="doi">10.1016/0025-5564(68)90090-4</pub-id> </citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mcghee</surname>
<given-names>R. B.</given-names>
</name>
<name>
<surname>Iswandhi</surname>
<given-names>G. I.</given-names>
</name>
</person-group> (<year>1979</year>). <article-title>Adaptive Locomotion of a Multilegged Robot over Rough Terrain</article-title>. <source>IEEE Trans. Syst. Man. Cybern.</source> <volume>9</volume>, <fpage>176</fpage>&#x2013;<lpage>182</lpage>. <pub-id pub-id-type="doi">10.1109/tsmc.1979.4310180</pub-id> </citation>
</ref>
<ref id="B23">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Morzadec</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Marcha</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Duriez</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2019</year>). &#x201c;<article-title>Toward Shape Optimization of Soft Robots</article-title>,&#x201d; in <conf-name>2019 2nd IEEE International Conference on Soft Robotics (RoboSoft)</conf-name> (<publisher-loc>Seoul, Korea (South)</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>521</fpage>&#x2013;<lpage>526</lpage>. <pub-id pub-id-type="doi">10.1109/robosoft.2019.8722822</pub-id> </citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Onal</surname>
<given-names>C. D.</given-names>
</name>
<name>
<surname>Rus</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Autonomous Undulatory Serpentine Locomotion Utilizing Body Dynamics of a Fluidic Soft Robot</article-title>. <source>Bioinspir. Biomim.</source> <volume>8</volume>, <fpage>026003</fpage>. <pub-id pub-id-type="doi">10.1088/1748-3182/8/2/026003</pub-id> </citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Qin</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Liang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Chui</surname>
<given-names>C. K.</given-names>
</name>
<name>
<surname>Yeow</surname>
<given-names>R. C.-H.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A Versatile Soft Crawling Robot with Rapid Locomotion</article-title>. <source>Soft Robot.</source> <volume>6</volume>, <fpage>455</fpage>&#x2013;<lpage>467</lpage>. <pub-id pub-id-type="doi">10.1089/soro.2018.0124</pub-id> </citation>
</ref>
<ref id="B26">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Roennau</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Heppner</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Nowicki</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Dillmann</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Lauron V: A Versatile Six-Legged Walking Robot with Advanced Maneuverability</article-title>,&#x201d; in <conf-name>IEEE/ASME International Conference on Advanced Intelligent Mechatronics, AIM</conf-name> (<publisher-loc>Besacon, France</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>82</fpage>&#x2013;<lpage>87</lpage>. <pub-id pub-id-type="doi">10.1109/AIM.2014.6878051</pub-id> </citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rog&#xf3;&#x17c;</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Zeng</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Xuan</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Wiersma</surname>
<given-names>D. S.</given-names>
</name>
<name>
<surname>Wasylczyk</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Light-driven Soft Robot Mimics Caterpillar Locomotion in Natural Scale</article-title>. <source>Adv. Opt. Mater.</source> <volume>4</volume>, <fpage>1689</fpage>&#x2013;<lpage>1694</lpage>. </citation>
</ref>
<ref id="B28">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Semasinghe</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Taylor</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Rezazadeh</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>A Unified Optimization Framework and New Set of Performance Metrics for Robot Leg Design</article-title>,&#x201d; in <conf-name>2021 IEEE International Conference on Robotics and Automation (ICRA)</conf-name> (<publisher-loc>Xi&#x0027;an, China</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>4919</fpage>&#x2013;<lpage>4925</lpage>. <pub-id pub-id-type="doi">10.1109/icra48506.2021.9561618</pub-id> </citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shepherd</surname>
<given-names>R. F.</given-names>
</name>
<name>
<surname>Ilievski</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Choi</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Morin</surname>
<given-names>S. A.</given-names>
</name>
<name>
<surname>Stokes</surname>
<given-names>A. A.</given-names>
</name>
<name>
<surname>Mazzeo</surname>
<given-names>A. D.</given-names>
</name>
<etal/>
</person-group> (<year>2011</year>). <article-title>Multigait Soft Robot</article-title>. <source>Proc. Natl. Acad. Sci. U.S.A.</source> <volume>108</volume>, <fpage>20400</fpage>&#x2013;<lpage>20403</lpage>. <pub-id pub-id-type="doi">10.1073/pnas.1116564108</pub-id> </citation>
</ref>
<ref id="B30">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Sherrod</surname>
<given-names>V. G.</given-names>
</name>
</person-group> (<year>2019</year>). <source>Design Optimization for a Compliant, Continuum-Joint, Quadruped Robot</source>. <publisher-loc>Provo Utah</publisher-loc>: <publisher-name>Brigham Young University</publisher-name>. </citation>
</ref>
<ref id="B31">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Uno</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Valsecchi</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Hutter</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Yoshida</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Simulation-based Climbing Capability Analysis for Quadrupedal Robots</article-title>,&#x201d; in <conf-name>Climbing and Walking Robots Conference</conf-name> (<publisher-loc>Cham</publisher-loc>: <publisher-name>Springer</publisher-name>), <fpage>179</fpage>&#x2013;<lpage>191</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-030-86294-7_16</pub-id> </citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Vikas</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Cohen</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Grassi</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Sozer</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Trimmer</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Design and Locomotion Control of a Soft Robot Using Friction Manipulation and Motor-Tendon Actuation</article-title>. <source>IEEE Trans. Robot.</source> <volume>32</volume>, <fpage>949</fpage>&#x2013;<lpage>959</lpage>. <pub-id pub-id-type="doi">10.1109/tro.2016.2588888</pub-id> </citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>J.-Y.</given-names>
</name>
<name>
<surname>Rodrigue</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>S.-H.</given-names>
</name>
<name>
<surname>Chu</surname>
<given-names>W.-S.</given-names>
</name>
<name>
<surname>Ahn</surname>
<given-names>S.-H.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Locomotion of Inchworm-Inspired Robot Made of Smart Soft Composite (Ssc)</article-title>. <source>Bioinspir. Biomim.</source> <volume>9</volume>, <fpage>046006</fpage>. <pub-id pub-id-type="doi">10.1088/1748-3182/9/4/046006</pub-id> </citation>
</ref>
<ref id="B34">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2021</year>). <source>Crab-inspired Compliant Leg Design Method for Adaptive Locomotion of a Multi-Legged Robot</source>. <publisher-loc>Bristol, England</publisher-loc>: <publisher-name>Bioinspiration and Biomimetics (HQ of IOP publishers, the parent company)</publisher-name>. </citation>
</ref>
<ref id="B35">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Yin</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Rong</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Hua</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Static Gait Planning Method for Quadruped Robot Walking on Unknown Rough Terrain</article-title>. <source>IEEE Access</source> <volume>7</volume>, <fpage>177651</fpage>&#x2013;<lpage>177660</lpage>. <pub-id pub-id-type="doi">10.1109/access.2019.2958320</pub-id> </citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zou</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ji</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>A Reconfigurable Omnidirectional Soft Robot Based on Caterpillar Locomotion</article-title>. <source>Soft Robot.</source> <volume>5</volume>, <fpage>164</fpage>&#x2013;<lpage>174</lpage>. <pub-id pub-id-type="doi">10.1089/soro.2017.0008</pub-id> </citation>
</ref>
</ref-list>
<sec id="s12">
<title>Nomenclature</title>
<def-list>
<def-item>
<term id="G1-frobt.2022.860020">
<bold>
<italic>&#x3b3;</italic>
<sub>max</sub>
</bold>
</term>
<def>
<p>Orientation tolerance from vertical of a foothold</p>
</def>
</def-item>
<def-item>
<term id="G2-frobt.2022.860020">
<inline-formula id="inf27">
<mml:math id="m38">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:mi mathvariant="normal">y</mml:mi>
<mml:mi mathvariant="normal">l</mml:mi>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:mi mathvariant="normal">d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>
</term>
<def>
<p>Approximation of <italic>S</italic>
<sub>payload</sub>
</p>
</def>
</def-item>
<def-item>
<term id="G3-frobt.2022.860020">
<bold>
<italic>&#x3bc;</italic>
</bold>
</term>
<def>
<p>Coefficient of friction</p>
</def>
</def-item>
<def-item>
<term id="G4-frobt.2022.860020">
<bold>
<italic>&#x3c4;</italic>
</bold>
</term>
<def>
<p>Joint torques</p>
</def>
</def-item>
<def-item>
<term id="G5-frobt.2022.860020">
<bold>
<italic>f</italic>
</bold>
</term>
<def>
<p>Friction force</p>
</def>
</def-item>
<def-item>
<term id="G6-frobt.2022.860020">
<bold>
<italic>F</italic>
<sub>max</sub>
</bold>
</term>
<def>
<p>Maximum payload weight that a robot can carry</p>
</def>
</def-item>
<def-item>
<term id="G7-frobt.2022.860020">
<bold>
<italic>F</italic>
<sub>min</sub>
</bold>
</term>
<def>
<p>A possible value of <italic>f</italic>
</p>
</def>
</def-item>
<def-item>
<term id="G8-frobt.2022.860020">
<bold>
<italic>F</italic>
<sub>payload</sub>
</bold>
</term>
<def>
<p>Payload capability of a robot design in any given configuration. Defined in <xref ref-type="disp-formula" rid="e4">Eq. 4</xref>
</p>
</def>
</def-item>
<def-item>
<term id="G9-frobt.2022.860020">
<bold>
<italic>F</italic>
<sub>robot</sub>
</bold>
</term>
<def>
<p>Weight of an entire robot</p>
</def>
</def-item>
<def-item>
<term id="G10-frobt.2022.860020">
<bold>
<italic>g</italic>
</bold>
</term>
<def>
<p>Gravitational constant</p>
</def>
</def-item>
<def-item>
<term id="G11-frobt.2022.860020">
<bold>
<italic>J</italic>
<sub>
<italic>X</italic>,<italic>i</italic>
</sub>
</bold>
</term>
<def>
<p>Manipulator jacobian</p>
</def>
</def-item>
<def-item>
<term id="G12-frobt.2022.860020">
<bold>
<italic>m</italic>
</bold>
</term>
<def>
<p>Mass</p>
</def>
</def-item>
<def-item>
<term id="G13-frobt.2022.860020">
<bold>
<italic>N</italic>
</bold>
</term>
<def>
<p>Average load a single leg is required to bear</p>
</def>
</def-item>
<def-item>
<term id="G14-frobt.2022.860020">
<bold>
<italic>n</italic>
<sub>bin,<italic>j</italic>
</sub>
</bold>
</term>
<def>
<p>Number of times a leg reaches the <italic>j</italic>th bin</p>
</def>
</def-item>
<def-item>
<term id="G15-frobt.2022.860020">
<bold>
<italic>n</italic>
<sub>foot</sub>
</bold>
</term>
<def>
<p>All possible foothold combinations for all legs, used as dexterity in walking region metric for an entire quadruped</p>
</def>
</def-item>
<def-item>
<term id="G16-frobt.2022.860020">
<bold>
<italic>n</italic>
<sub>
<italic>W</italic>,<italic>i</italic>
</sub>
</bold>
</term>
<def>
<p>Number of unique and reachable foot pose bins in <italic>W</italic> for leg <italic>i</italic>, used as the dexterity in walking regions metric for a single leg</p>
</def>
</def-item>
<def-item>
<term id="G17-frobt.2022.860020">
<bold>
<italic>R</italic>
<sub>body</sub>
</bold>
</term>
<def>
<p>Reaction force from body at Point A in <xref ref-type="fig" rid="F1">Figure 1B</xref>
</p>
</def>
</def-item>
<def-item>
<term id="G18-frobt.2022.860020">
<bold>
<italic>s</italic>
</bold>
</term>
<def>
<p>Scaling factor on <italic>N</italic>. See <xref ref-type="disp-formula" rid="e6">Eq. 6</xref>
</p>
</def>
</def-item>
<def-item>
<term id="G19-frobt.2022.860020">
<bold>
<italic>s</italic>
<sub>
<italic>C</italic>
</sub>
</bold>
</term>
<def>
<p>General symbol for the portion of a given metric that depends on the configuration of the leg</p>
</def>
</def-item>
<def-item>
<term id="G20-frobt.2022.860020">
<bold>
<italic>s</italic>
<sub>approx</sub>
</bold>
</term>
<def>
<p>General symbol for the approximated value of a given metric</p>
</def>
</def-item>
<def-item>
<term id="G21-frobt.2022.860020">
<bold>
<italic>s</italic>
<sub>bin,<italic>j</italic>
</sub>
</bold>
</term>
<def>
<p>Total score for an individual bin, i.e. combination of all <italic>s</italic>
<sub>
<italic>C</italic>
</sub> that reaches the <italic>j</italic>th bin</p>
</def>
</def-item>
<def-item>
<term id="G22-frobt.2022.860020">
<bold>
<italic>s</italic>
<sub>comb</sub>
</bold>
</term>
<def>
<p>General symbol for the portion of a given metric that depends on the combinations of all the footholds</p>
</def>
</def-item>
<def-item>
<term id="G23-frobt.2022.860020">
<bold>
<italic>S</italic>
<sub>payload</sub>
</bold>
</term>
<def>
<p>Payload score accounting for kinematic singularities. Used as the average payload in walking regions metric.</p>
</def>
</def-item>
<def-item>
<term id="G24-frobt.2022.860020">
<bold>
<italic>W</italic>
</bold>
</term>
<def>
<p>Task space of a leg</p>
</def>
</def-item>
<def-item>
<term id="G25-frobt.2022.860020">
<bold>
<italic>W</italic>
<sub>min</sub> </bold>
<italic>F</italic>
<sub>min</sub>
</term>
<def>
<p>represented as a wrench</p>
</def>
</def-item>
</def-list>
</sec>
</back>
</article>