Add documentation image variants compatible with dark mode. Fixes #587
PiperOrigin-RevId: 596265596 Change-Id: Iedd076fbb7a6dca77a91e52e538be1c764d1f8fb
@@ -520,8 +520,14 @@ in the surrounding flow a circulation of sufficient strength to hold the rear st
|
||||
This is the Kutta condition, a fluid dynamic phenomenon that can be observed for solid bodies with sharp corners, such
|
||||
as slender bodies or the trailing edges of airfoils.
|
||||
|
||||
.. cssclass:: caption-small
|
||||
.. figure:: ../images/computation/kutta_cond_plate.svg
|
||||
:class: only-light
|
||||
:figwidth: 95%
|
||||
:align: left
|
||||
|
||||
.. cssclass:: caption-small
|
||||
.. figure:: ../images/computation/kutta_cond_plate_dark.svg
|
||||
:class: only-dark
|
||||
:figwidth: 95%
|
||||
:align: left
|
||||
|
||||
|
||||
@@ -966,6 +966,12 @@ is :math:`E f`. The matrix of basis vectors is constructed as follows.
|
||||
.. image:: ../images/computation/contact_frame.svg
|
||||
:width: 700px
|
||||
:align: center
|
||||
:class: only-light
|
||||
|
||||
.. image:: ../images/computation/contact_frame_dark.svg
|
||||
:width: 700px
|
||||
:align: center
|
||||
:class: only-dark
|
||||
|
||||
The figure illustrates the full basis set corresponding to the case :math:`n = 6`. Otherwise we use only the first
|
||||
:math:`n` or :math:`2(n-1)` columns depending on the cone type. Elliptic cones are easier to understand. Since the
|
||||
@@ -1325,6 +1331,12 @@ representations of the constraint Jacobian and related matrices.
|
||||
.. image:: ../images/computation/gPGS.svg
|
||||
:width: 500px
|
||||
:align: center
|
||||
:class: only-light
|
||||
|
||||
.. image:: ../images/computation/gPGS_dark.svg
|
||||
:width: 500px
|
||||
:align: center
|
||||
:class: only-dark
|
||||
|
||||
When using pyramidal friction cones, the problem involves box constraints to which PGS has traditionally been
|
||||
applied. If we applied PGS directly to the conic constraints resulting from elliptic friction cones, it would get
|
||||
@@ -1424,12 +1436,18 @@ approximations, no matter how accurate the approximation is. The figure below il
|
||||
where the pyramid is not even an approximation, but represents the same constraint set as the elliptic cone. We plot the
|
||||
contours of the penalty/shadow for the pyramidal (red) and elliptic (dashed blue) cones, for different friction
|
||||
coefficients varying from left to right. Mathematically, the penalty in the pyramidal case is a quadratic spline, while
|
||||
the penalty in the elliptic case contains pieces that are quadratics minus square roots of quadratics - allowing
|
||||
the penalty in the elliptic case contains pieces that are quadratics minus square roots of quadratics -- allowing
|
||||
circular contours around the tip of the cone.
|
||||
|
||||
.. image:: ../images/computation/softcontact.png
|
||||
:width: 600px
|
||||
:align: center
|
||||
:class: only-light
|
||||
|
||||
.. image:: ../images/computation/softcontact_dark.png
|
||||
:width: 600px
|
||||
:align: center
|
||||
:class: only-dark
|
||||
|
||||
In summary, elliptic and pyramidal friction cones define different soft-contact dynamics (although they are usually very
|
||||
close). The elliptic model is more principled and more consistent with physical intuition, and the corresponding solvers
|
||||
|
||||
@@ -0,0 +1,296 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 559.62 244.73">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6 {
|
||||
fill: #fff;
|
||||
}
|
||||
|
||||
.cls-1, .cls-3, .cls-4, .cls-5 {
|
||||
font-family: ArialMT, Arial;
|
||||
}
|
||||
|
||||
.cls-1, .cls-3, .cls-4, .cls-5, .cls-7 {
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
.cls-8 {
|
||||
stroke-width: 2px;
|
||||
}
|
||||
|
||||
.cls-8, .cls-9 {
|
||||
stroke: #4c4c4c;
|
||||
}
|
||||
|
||||
.cls-8, .cls-9, .cls-10 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.cls-2, .cls-10 {
|
||||
stroke: #fff;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
font-size: 8px;
|
||||
}
|
||||
|
||||
.cls-9 {
|
||||
stroke-dasharray: 0 0 5 5;
|
||||
}
|
||||
|
||||
.cls-4 {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.cls-5 {
|
||||
font-size: 9px;
|
||||
}
|
||||
|
||||
.cls-6 {
|
||||
stroke-width: 0px;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<line class="cls-8" x1="28.52" y1="139.62" x2="79.67" y2="174.04"/>
|
||||
<line class="cls-8" x1="28.52" y1="139.62" x2="72.1" y2="113.9"/>
|
||||
<line class="cls-8" x1="28.52" y1="139.62" x2="28.52" y2="69.94"/>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(25.61 10.3)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(32.28 13.3)"><tspan x="0" y="0">1</tspan></text>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(126 209.44)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(132.67 212.44)"><tspan x="0" y="0">2</tspan></text>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(123.42 85.94)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(130.09 88.94)"><tspan x="0" y="0">3</tspan></text>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-10" d="M56.74,118.44c0-11,6.36-20,14.2-20s14.19,9,14.19,20"/>
|
||||
<path class="cls-6" d="M85.13,117.67l2.7-1.64.06.09-1.75,4.41c-.34,1.53-.67,3.07-1,4.61-.34-1.54-.68-3.08-1-4.61l-1.81-4.41v-.09l2.8,1.64Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-10" d="M90.33,180.04c0-11-6.35-20-14.19-20s-14.19,9-14.19,20"/>
|
||||
<path class="cls-6" d="M61.94,179.27l2.7-1.64.06.09-1.75,4.41c-.34,1.53-.68,3.07-1,4.6l-1-4.6-1.75-4.41.05-.09,2.69,1.64Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-10" d="M21.49,83.23c14.25,0,25.8-5.49,25.8-12.26s-11.55-12.26-25.8-12.26"/>
|
||||
<path class="cls-6" d="M22.25,58.71l1.64,2.71-.09.06-4.41-1.75-4.6-1,4.6-1,4.41-1.79h.09l-1.64,2.77Z"/>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(0 62.46)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(6.67 65.46)"><tspan x="0" y="0">4</tspan></text>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(58.77 199.36)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(65.44 202.36)"><tspan x="0" y="0">5</tspan></text>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(81.16 136.09)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(87.83 139.09)"><tspan x="0" y="0">6</tspan></text>
|
||||
</g>
|
||||
<text class="cls-1" transform="translate(18.39 122.2)"><tspan x="0" y="0">x</tspan></text>
|
||||
<text class="cls-1" transform="translate(41.29 162.53)"><tspan x="0" y="0">y</tspan></text>
|
||||
<text class="cls-1" transform="translate(50.31 137.92)"><tspan x="0" y="0">z</tspan></text>
|
||||
<path class="cls-2" d="M32,139.57c0,1.92-1.56,3.48-3.48,3.48h0c-1.92,0-3.48-1.55-3.49-3.47h0c0-1.93,1.56-3.49,3.48-3.49,0,0,0,0,.01,0,1.92,0,3.48,1.56,3.48,3.48h0Z"/>
|
||||
<g>
|
||||
<line class="cls-10" x1="28.52" y1="48.07" x2="28.52" y2="22.19"/>
|
||||
<path class="cls-6" d="M28.52,22.94l-2.71,1.64-.06-.09,1.75-4.41,1-4.61c.33,1.54.67,3.07,1,4.61l1.75,4.41-.05.09-2.68-1.64Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<line class="cls-10" x1="94.7" y1="184.06" x2="115.42" y2="198"/>
|
||||
<path class="cls-6" d="M114.79,197.57l.14-3.16h.11l2.68,3.91c1.09,1.14,2.17,2.28,3.26,3.41l-4.39-1.73-4.63-1-.05-.09,2.88-1.34Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<line class="cls-10" x1="88.95" y1="104.87" x2="110.74" y2="92.01"/>
|
||||
<path class="cls-6" d="M110.08,92.4l-2.75-1.46.05-.1,4.68-.74,4.48-1.46-3.45,3.21-2.9,3.75h-.11v-3.2Z"/>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(265.54 123.6)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(272.21 126.6)"><tspan x="0" y="0">1</tspan></text>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(229.69 111.4)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(236.36 114.4)"><tspan x="0" y="0">2</tspan></text>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(307.66 91.78)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(314.33 94.78)"><tspan x="0" y="0">3</tspan></text>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(188.06 133.82)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(194.73 136.82)"><tspan x="0" y="0">4</tspan></text>
|
||||
</g>
|
||||
<line class="cls-8" x1="255.21" y1="174.82" x2="303.2" y2="207.11"/>
|
||||
<line class="cls-8" x1="255.21" y1="174.82" x2="298.79" y2="149.1"/>
|
||||
<line class="cls-8" x1="255.21" y1="174.82" x2="255.21" y2="105.14"/>
|
||||
<path class="cls-2" d="M258.7,174.77c0,1.92-1.56,3.48-3.48,3.48,0,0,0,0-.01,0-1.92,0-3.48-1.56-3.48-3.48h0c0-1.92,1.56-3.48,3.48-3.48h0c1.92,0,3.48,1.55,3.49,3.47,0,0,0,0,0,.01Z"/>
|
||||
<g>
|
||||
<path class="cls-9" d="M301.33,92.38c7.4,10.56-7.74,29.27-33.83,41.8-26.09,12.53-53.24,14.14-60.65,3.59s7.74-29.27,33.83-41.8,53.24-14.14,60.65-3.59Z"/>
|
||||
<g>
|
||||
<line class="cls-10" x1="209.77" y1="140.36" x2="255.21" y2="174.82"/>
|
||||
<path class="cls-6" d="M210.38,140.82l-.33,3.15h-.11l-2.45-4.03-3.06-3.59,4.28,2,4.57,1.27.05.09-2.95,1.11Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<line class="cls-10" x1="267.54" y1="136.09" x2="255.21" y2="174.82"/>
|
||||
<path class="cls-6" d="M267.33,136.81l-3.07.75v-.11l3-3.66,2.36-4.09c-.14,1.57-.28,3.14-.43,4.7l.33,4.73-.07.07-2.12-2.39Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<line class="cls-10" x1="242.89" y1="100.97" x2="255.21" y2="174.82"/>
|
||||
<path class="cls-6" d="M243.01,101.72l-2.39,2.07-.08-.08,1-4.64.24-4.71c.59,1.46,1.17,2.92,1.76,4.38l2.45,4.06v.09l-2.98-1.17Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<line class="cls-10" x1="300.66" y1="96.7" x2="255.21" y2="174.82"/>
|
||||
<path class="cls-6" d="M300.33,97.35l-3.17.07v-.11l3.72-2.93c1.07-1.16,2.13-2.32,3.2-3.47l-1.44,4.49-.71,4.68-.08.06-1.52-2.79Z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(70.45 14.72)"><tspan x="0" y="0">elliptic basis: E = I</tspan></text>
|
||||
<text class="cls-5" transform="translate(166.83 17.72)"><tspan x="0" y="0">6</tspan></text>
|
||||
</g>
|
||||
<text class="cls-1" transform="translate(312.5 17.19)"><tspan x="0" y="0">pyramidal basis: E =</tspan></text>
|
||||
<g>
|
||||
<g>
|
||||
<line class="cls-10" x1="255.97" y1="83.27" x2="255.97" y2="57.39"/>
|
||||
<path class="cls-6" d="M255.97,58.15l-2.7,1.64-.06-.09,1.75-4.41c.34-1.53.67-3.07,1-4.6l1,4.6,1.75,4.41v.09l-2.74-1.64Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-10" d="M242.94,87.42c14.26,0,25.81-5.49,25.81-12.26s-11.55-12.22-25.81-12.22"/>
|
||||
<path class="cls-6" d="M243.71,62.94l1.64,2.7-.09.06-4.41-1.76-4.6-1,4.6-1,4.41-1.75h.09l-1.64,2.75Z"/>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(239.43 76.17)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(246.1 79.17)"><tspan x="0" y="0">5</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<line class="cls-10" x1="255.97" y1="40.49" x2="255.97" y2="14.61"/>
|
||||
<path class="cls-6" d="M255.97,15.37l-2.7,1.65-.06-.1,1.75-4.4c.34-1.54.67-3.07,1-4.61l1,4.61,1.75,4.4v.1l-2.74-1.65Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-10" d="M268.75,45.65c-14.25,0-25.81-5.49-25.81-12.26s11.56-12.26,25.81-12.26"/>
|
||||
<path class="cls-6" d="M267.98,21.13l-1.64-2.7.09-.06,4.41,1.75,4.61,1-4.61,1-4.41,1.82-.09-.05,1.64-2.76Z"/>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(260.75 35.64)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(267.42 38.64)"><tspan x="0" y="0">6</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="cls-10" d="M323.24,213.31c0-11-6.36-20-14.2-20s-14.19,9-14.19,20"/>
|
||||
<path class="cls-6" d="M294.85,212.55l2.7-1.65.07.1-1.75,4.4-1,4.61c-.34-1.54-.67-3.07-1-4.61l-1.75-4.4v-.1l2.73,1.65Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<line class="cls-10" x1="309.01" y1="211" x2="309.01" y2="185.12"/>
|
||||
<path class="cls-6" d="M309.01,185.88l-2.68,1.64-.06-.09,1.75-4.4,1-4.61c.33,1.54.67,3.07,1,4.61l1.75,4.4v.09l-2.76-1.64Z"/>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(301.82 221.38)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(308.49 224.38)"><tspan x="0" y="0">7</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="cls-10" d="M324.24,230.74c0-11.05,6.35-20,14.19-20s14.19,8.95,14.19,20"/>
|
||||
<path class="cls-6" d="M352.62,229.94l2.71-1.65.06.09-1.75,4.41-1,4.61c-.33-1.54-.67-3.07-1-4.61l-1.75-4.41v-.09l2.73,1.65Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<line class="cls-10" x1="338.39" y1="228.43" x2="338.39" y2="202.55"/>
|
||||
<path class="cls-6" d="M338.39,203.31l-2.7,1.64-.06-.09,1.75-4.4c.34-1.54.67-3.07,1-4.61l1,4.61,1.75,4.4v.09l-2.74-1.64Z"/>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(331.21 238.81)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(337.88 241.81)"><tspan x="0" y="0">8</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="cls-10" d="M293.85,147.15c0-11,6.36-20,14.19-20s14.2,9,14.2,20"/>
|
||||
<path class="cls-6" d="M322.24,146.39l2.7-1.65.06.09-1.75,4.41c-.34,1.54-.67,3.07-1,4.61l-1-4.61-1.75-4.41v-.09l2.74,1.65Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<line class="cls-10" x1="308.01" y1="144.84" x2="308.01" y2="118.96"/>
|
||||
<path class="cls-6" d="M308.01,119.72l-2.68,1.64-.06-.09,1.75-4.4,1-4.61c.33,1.53.67,3.07,1,4.61l1.75,4.4v.09l-2.76-1.64Z"/>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(300.82 155.22)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(307.49 158.22)"><tspan x="0" y="0">9</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="cls-10" d="M353.08,128.06c0-11.05-6.36-20-14.2-20s-14.19,9-14.19,20"/>
|
||||
<path class="cls-6" d="M324.69,127.29l2.7-1.64.06.09-1.75,4.41c-.33,1.54-.67,3.07-1,4.61-.34-1.54-.67-3.07-1-4.61l-1.77-4.41v-.09l2.76,1.64Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<line class="cls-10" x1="338.85" y1="125.75" x2="338.85" y2="99.87"/>
|
||||
<path class="cls-6" d="M338.85,100.63l-2.71,1.64-.06-.09,1.75-4.41,1-4.6c.33,1.53.67,3.07,1,4.6l1.75,4.41-.05.09-2.68-1.64Z"/>
|
||||
</g>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(331.66 136.13)"><tspan x="0" y="0">e</tspan></text>
|
||||
<text class="cls-5" transform="translate(338.33 139.13)"><tspan x="0" y="0">10</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<text class="cls-1" transform="translate(378.74 44.29)"><tspan x="0" y="0">1</tspan></text>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(373.33 65.99)"><tspan x="0" y="0">+m</tspan></text>
|
||||
<text class="cls-3" transform="translate(390.33 68.99)"><tspan x="0" y="0">1</tspan></text>
|
||||
</g>
|
||||
<text class="cls-1" transform="translate(378.74 89.16)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(378.74 111.6)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(378.74 134.03)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(378.74 157.91)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(407.55 44.29)"><tspan x="0" y="0">1</tspan></text>
|
||||
<text class="cls-1" transform="translate(407.55 89.16)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(407.55 111.6)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(407.55 134.03)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(407.55 157.91)"><tspan x="0" y="0">0</tspan></text>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(402.13 65.99)"><tspan x="0" y="0">-m</tspan></text>
|
||||
<text class="cls-3" transform="translate(416.12 68.99)"><tspan x="0" y="0">1</tspan></text>
|
||||
</g>
|
||||
<text class="cls-1" transform="translate(435.2 44.29)"><tspan x="0" y="0">1</tspan></text>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(429.78 88.42)"><tspan x="0" y="0">+m</tspan></text>
|
||||
<text class="cls-3" transform="translate(446.78 91.42)"><tspan x="0" y="0">2</tspan></text>
|
||||
</g>
|
||||
<text class="cls-1" transform="translate(435.2 66.73)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(435.2 111.6)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(435.2 134.03)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(435.2 157.91)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(463 44.29)"><tspan x="0" y="0">1</tspan></text>
|
||||
<text class="cls-1" transform="translate(463 66.73)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(463 111.6)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(463 134.03)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(463 157.91)"><tspan x="0" y="0">0</tspan></text>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(457.59 88.42)"><tspan x="0" y="0">-m</tspan></text>
|
||||
<text class="cls-3" transform="translate(471.58 91.42)"><tspan x="0" y="0">2</tspan></text>
|
||||
</g>
|
||||
<text class="cls-1" transform="translate(517.79 44.29)"><tspan x="0" y="0">1</tspan></text>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(512.37 157.17)"><tspan x="0" y="0">+m</tspan></text>
|
||||
<text class="cls-3" transform="translate(529.37 160.17)"><tspan x="0" y="0">5</tspan></text>
|
||||
</g>
|
||||
<text class="cls-1" transform="translate(517.79 66.73)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(517.79 89.16)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(517.79 111.6)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(517.79 134.03)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(546.59 44.29)"><tspan x="0" y="0">1</tspan></text>
|
||||
<text class="cls-1" transform="translate(546.59 66.73)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(546.59 89.16)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(546.59 111.6)"><tspan x="0" y="0">0</tspan></text>
|
||||
<text class="cls-1" transform="translate(546.59 134.03)"><tspan x="0" y="0">0</tspan></text>
|
||||
<g class="cls-7">
|
||||
<text class="cls-1" transform="translate(541.18 157.17)"><tspan x="0" y="0">-m</tspan></text>
|
||||
<text class="cls-3" transform="translate(555.17 160.17)"><tspan x="0" y="0">5</tspan></text>
|
||||
</g>
|
||||
<text class="cls-4" transform="translate(485.39 98.39)"><tspan x="0" y="0">...</tspan></text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 454.98 171.24">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
font-family: ArialMT, Arial;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.cls-1, .cls-2, .cls-3 {
|
||||
fill: #fff;
|
||||
}
|
||||
|
||||
.cls-1, .cls-4 {
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
.cls-5 {
|
||||
stroke-dasharray: 0 0 4 4;
|
||||
}
|
||||
|
||||
.cls-5, .cls-2, .cls-6, .cls-7, .cls-3, .cls-8 {
|
||||
stroke: #dce0df;
|
||||
}
|
||||
|
||||
.cls-5, .cls-6, .cls-7, .cls-9, .cls-8, .cls-10 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.cls-11 {
|
||||
fill: #0c0c0c;
|
||||
}
|
||||
|
||||
.cls-11, .cls-10 {
|
||||
stroke: #666;
|
||||
}
|
||||
|
||||
.cls-6 {
|
||||
stroke-dasharray: 0 5;
|
||||
}
|
||||
|
||||
.cls-7 {
|
||||
stroke-dasharray: 0 0 5 5;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
stroke-miterlimit: 4;
|
||||
stroke-width: 1px;
|
||||
}
|
||||
|
||||
.cls-9 {
|
||||
stroke: #fff;
|
||||
stroke-width: 3px;
|
||||
}
|
||||
|
||||
.cls-12 {
|
||||
fill: #dce0df;
|
||||
stroke-width: 0px;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<line class="cls-10" x1="68" y1="151.26" x2="133.33" y2="67.93"/>
|
||||
<line class="cls-10" x1="68" y1="151.26" x2="2.67" y2="67.93"/>
|
||||
<circle class="cls-3" cx="122.67" cy="118.59" r="2.67"/>
|
||||
<g class="cls-4">
|
||||
<text class="cls-1" transform="translate(0 45.93)"><tspan x="0" y="0">cone</tspan></text>
|
||||
<text class="cls-1" transform="translate(0 60.33)"><tspan x="0" y="0">constraint</tspan></text>
|
||||
</g>
|
||||
<g class="cls-4">
|
||||
<text class="cls-1" transform="translate(133.33 134.6)"><tspan x="0" y="0">unconstrained</tspan></text>
|
||||
<text class="cls-1" transform="translate(133.33 149)"><tspan x="0" y="0">minimum</tspan></text>
|
||||
</g>
|
||||
<line class="cls-7" x1="122.67" y1="118.6" x2="122.67" y2="81.54"/>
|
||||
<line class="cls-6" x1="125.33" y1="118.6" x2="93.61" y2="118.6"/>
|
||||
<line class="cls-9" x1="93.14" y1="119.2" x2="122.67" y2="81.54"/>
|
||||
<g>
|
||||
<line class="cls-8" x1="104" y1="53.93" x2="104" y2="88.93"/>
|
||||
<path class="cls-12" d="M104,88.17l2.7-1.64.06.09-1.75,4.4c-.33,1.54-.67,3.07-1,4.61-.34-1.54-.67-3.07-1-4.61l-1.75-4.4v-.09l2.74,1.64Z"/>
|
||||
</g>
|
||||
<g class="cls-4">
|
||||
<text class="cls-1" transform="translate(85.81 35.63)"><tspan x="0" y="0">continuum of</tspan></text>
|
||||
<text class="cls-1" transform="translate(85.81 50.03)"><tspan x="0" y="0">PGS local minima</tspan></text>
|
||||
</g>
|
||||
<line class="cls-10" x1="387.29" y1="170.93" x2="452.62" y2="87.6"/>
|
||||
<line class="cls-10" x1="387.29" y1="170.93" x2="321.96" y2="87.6"/>
|
||||
<path class="cls-11" d="M454.48,77.71c0,19.83-30.19,35.9-67.44,35.9s-67.42-16.08-67.42-35.9,30.2-35.9,67.45-35.9,67.41,16.06,67.41,35.9Z"/>
|
||||
<path class="cls-2" d="M417.85,70.44c0,1.03-.83,1.86-1.86,1.86s-1.86-.83-1.86-1.86.83-1.86,1.86-1.86h0c1.02,0,1.85.82,1.86,1.84,0,0,0,.01,0,.02Z"/>
|
||||
<g class="cls-4">
|
||||
<text class="cls-1" transform="translate(402.51 10.3)"><tspan x="0" y="0">search</tspan></text>
|
||||
<text class="cls-1" transform="translate(402.51 24.7)"><tspan x="0" y="0">ray</tspan></text>
|
||||
</g>
|
||||
<g class="cls-4">
|
||||
<text class="cls-1" transform="translate(297.84 33.33)"><tspan x="0" y="0">search</tspan></text>
|
||||
<text class="cls-1" transform="translate(297.84 47.73)"><tspan x="0" y="0">ellipsoid</tspan></text>
|
||||
</g>
|
||||
<g>
|
||||
<line class="cls-8" x1="416.79" y1="68.24" x2="429.11" y2="25.33"/>
|
||||
<path class="cls-12" d="M428.9,26.07l-3.05.83v-.1l2.89-3.75,2.25-4.15-.3,4.71.47,4.71-.07.08-2.19-2.33Z"/>
|
||||
</g>
|
||||
<line class="cls-5" x1="403.95" y1="112.94" x2="416.79" y2="68.24"/>
|
||||
<line class="cls-8" x1="387.29" y1="170.93" x2="403.95" y2="112.94"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
@@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 792.59 237.27">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
stroke-miterlimit: 4;
|
||||
stroke-width: 16px;
|
||||
}
|
||||
|
||||
.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.cls-1, .cls-5, .cls-6, .cls-8 {
|
||||
stroke: #fff;
|
||||
}
|
||||
|
||||
.cls-9 {
|
||||
clip-path: url(#clippath);
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
stroke: #007b76;
|
||||
stroke-miterlimit: 4;
|
||||
stroke-width: 2px;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
stroke-miterlimit: 4;
|
||||
stroke-width: 2px;
|
||||
}
|
||||
|
||||
.cls-3, .cls-7 {
|
||||
stroke: #0076ba;
|
||||
}
|
||||
|
||||
.cls-4, .cls-10, .cls-11, .cls-12 {
|
||||
stroke-width: 0px;
|
||||
}
|
||||
|
||||
.cls-5 {
|
||||
stroke-miterlimit: 4;
|
||||
stroke-width: 2px;
|
||||
}
|
||||
|
||||
.cls-6 {
|
||||
stroke-miterlimit: 4;
|
||||
stroke-width: 2px;
|
||||
}
|
||||
|
||||
.cls-7, .cls-8 {
|
||||
stroke-width: 2px;
|
||||
}
|
||||
|
||||
.cls-13 {
|
||||
font-family: ArialMT, Arial;
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.cls-13, .cls-14, .cls-15 {
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
.cls-13, .cls-15, .cls-11 {
|
||||
fill: #fff;
|
||||
}
|
||||
|
||||
.cls-15 {
|
||||
font-family: STIXGeneral-Italic, STIXGeneral;
|
||||
font-size: 32.22px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.cls-10 {
|
||||
fill: #99195e;
|
||||
}
|
||||
|
||||
.cls-12 {
|
||||
fill: #0076ba;
|
||||
}
|
||||
</style>
|
||||
<clipPath id="clippath">
|
||||
<rect class="cls-4" x="520.61" y="100.37" width="16.82" height="14.57"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g>
|
||||
<path class="cls-1" d="M153.2,197.67L659.31,46.23"/>
|
||||
<path class="cls-2" d="M653.5,38.16c-69.23-65.09-392.9,103.98-501.22,149.95"/>
|
||||
<path class="cls-7" d="M792.58,52.6c-39.16-.63-79.53-1.41-113.82-20.52-11.37-6.34-21.66-14.59-33.61-19.79-20.67-9-42.42-8.25-64.46-5.66C410.68,26.63,262.71,144.22,96.39,182.57c-31.65,7.3-63.9,11.55-96.37,12.26"/>
|
||||
<path class="cls-7" d="M788.09,72.98c-34.82-2.64-69.65,1.7-103.92,8.29-25.81,4.96-51.35,11.2-76.72,18.09-154.05,41.88-302.08,108.19-461.01,125.56-47.05,5.14-94.43,5.87-141.68,8.47"/>
|
||||
<path class="cls-12" d="M787.39,47.75l-9.6,4.8,9.6,4.8v-9.6Z"/>
|
||||
<path class="cls-12" d="M783.33,67.36l-9.6,4.8,9.6,4.8v-9.6Z"/>
|
||||
<path class="cls-12" d="M29.24,188.93l-9.6,4.8,9.6,4.8v-9.6Z"/>
|
||||
<path class="cls-12" d="M30.24,227.67l-9.6,4.8,9.6,4.8v-9.6Z"/>
|
||||
<path class="cls-12" d="M615.4,0l-9.6,4.8,9.6,4.8V0Z"/>
|
||||
<path class="cls-12" d="M349.27,77.03l-6.8,8.3,10.72.46-3.92-8.76Z"/>
|
||||
<path class="cls-12" d="M473.5,26.47l-7.5,7.68,10.64,1.39-3.15-9.07Z"/>
|
||||
<path class="cls-3" d="M195.07,151.07l-1.58.58-.94.34"/>
|
||||
<path class="cls-12" d="M191.84,147.14l-7.36,7.81,10.67,1.2-3.3-9.01Z"/>
|
||||
<path class="cls-12" d="M613.28,92.82l-8.06,7.09,10.51,2.19-2.45-9.28Z"/>
|
||||
<path class="cls-12" d="M442.34,145.91l-8.06,7.09,10.51,2.19-2.45-9.28Z"/>
|
||||
<path class="cls-12" d="M212.2,210.07l-8.53,6.51,10.33,2.92-1.8-9.43Z"/>
|
||||
<path class="cls-7" d="M553.05,59.87c11.3-6.46,36.25-12.77,22.33-20.73-17.28-9.89-181.61,49.61-169.38,59.08,8.52,6.6,46.77-6.02,72.27-14.91l.95-.33"/>
|
||||
<path class="cls-12" d="M479.86,87.84l7.47-7.7-10.65-1.36,3.17,9.06Z"/>
|
||||
<path class="cls-8" d="M405.92,122.4h219.45"/>
|
||||
<path class="cls-11" d="M624.38,127.2l9.6-4.8-9.6-4.8v9.6Z"/>
|
||||
<text class="cls-13" transform="translate(637.08 131.54)"><tspan x="0" y="0">v</tspan></text>
|
||||
<path class="cls-6" d="M141.34,157.03l38.77-11.63.96-.29"/>
|
||||
<path class="cls-11" d="M181.49,149.99l7.82-7.36-10.57-1.84,2.76,9.2Z"/>
|
||||
<path class="cls-5" d="M141.31,157.86l-11.63-38.77-.29-.96"/>
|
||||
<path class="cls-11" d="M134.28,117.7l-7.36-7.82-1.84,10.57,9.2-2.76Z"/>
|
||||
<text class="cls-13" transform="translate(135.06 107.05)"><tspan x="0" y="0">y</tspan></text>
|
||||
<text class="cls-13" transform="translate(181.5 131.54)"><tspan x="0" y="0">x</tspan></text>
|
||||
<path class="cls-10" d="M672.67,54.95c2.03,1.97,2.03,5.17,0,7.14-2.03,1.97-5.32,1.97-7.35,0-2.03-1.97-2.03-5.17,0-7.14,2.03-1.97,5.32-1.97,7.35,0Z"/>
|
||||
<path class="cls-10" d="M147.18,196.95c2.03,1.97,2.03,5.17,0,7.14s-5.32,1.97-7.35,0-2.03-5.17,0-7.14c2.03-1.97,5.32-1.97,7.35,0Z"/>
|
||||
<path class="cls-8" d="M508.05,122.3c.72-19.73-3.57-30.4-12.89-31.99"/>
|
||||
<text/>
|
||||
</g>
|
||||
<g class="cls-9">
|
||||
<g class="cls-14">
|
||||
<text class="cls-15" transform="translate(519.74 114.58)"><tspan x="0" y="0">α</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 107 KiB |
|
After Width: | Height: | Size: 429 KiB |
|
After Width: | Height: | Size: 30 KiB |
@@ -318,7 +318,15 @@ of the function :math:`d(r)` is determined by the element-specific parameter vec
|
||||
units of :math:`\text{width}`. Note that when :math:`\text{power}` is 1, the function is linear regardless of the
|
||||
:math:`\text{midpoint}`.
|
||||
|
||||
|image0|
|
||||
.. image:: images/modeling/impedance.png
|
||||
:width: 600px
|
||||
:align: center
|
||||
:class: only-light
|
||||
|
||||
.. image:: images/modeling/impedance_dark.png
|
||||
:width: 600px
|
||||
:align: center
|
||||
:class: only-dark
|
||||
|
||||
These plots show the impedance :math:`d(r)` on the vertical axis, as a function of the constraint violation :math:`r`
|
||||
on the horizontal axis.
|
||||
@@ -865,7 +873,15 @@ The advantage of the scaled quantities is that all muscles behave similarly in t
|
||||
captured by the Force-Length-Velocity (:math:`\text{\small FLV}`) function measured in many experimental papers. We
|
||||
approximate this function as follows:
|
||||
|
||||
|image1|
|
||||
.. image:: images/modeling/musclemodel.png
|
||||
:width: 650px
|
||||
:align: center
|
||||
:class: only-light
|
||||
|
||||
.. image:: images/modeling/musclemodel_dark.png
|
||||
:width: 650px
|
||||
:align: center
|
||||
:class: only-dark
|
||||
|
||||
The function is in the form:
|
||||
|
||||
@@ -907,7 +923,15 @@ Before embarking on a mission to design more accurate :math:`\text{\small FLV}`
|
||||
operating range of the muscle has a bigger effect than the shape of the :math:`\text{\small FLV}` function, and in many
|
||||
cases this parameter is unknown. Below is a graphical illustration:
|
||||
|
||||
|image2|
|
||||
.. image:: images/modeling/musclerange.png
|
||||
:width: 500px
|
||||
:align: center
|
||||
:class: only-light
|
||||
|
||||
.. image:: images/modeling/musclerange_dark.png
|
||||
:width: 500px
|
||||
:align: center
|
||||
:class: only-dark
|
||||
|
||||
This figure format is common in the biomechanics literature, showing the operating range of each muscle superimposed on
|
||||
the normalized :math:`\text{FL}` curve (ignore the vertical displacement). Our default range is shown in black. The blue
|
||||
@@ -1311,7 +1335,9 @@ A flex is a collection of MuJoCo bodies that are connected with massless stretch
|
||||
capsules (1D flex), triangles (2D flex), or tetrahedra (3D flex). In all cases we allow a radius, which makes the
|
||||
elements smooth and also volumetric in 1D and 2D. The primitive elements are illustrated below:
|
||||
|
||||
|flexelem|
|
||||
.. image:: images/modeling/flexelem.png
|
||||
:width: 600px
|
||||
:align: center
|
||||
|
||||
Thus far these look like geoms. But the key difference is that they deform: as the bodies (vertices) move independently
|
||||
of each other, the shape of the elements changes in real time. Collisions and contact forces are now generalized to
|
||||
@@ -1677,12 +1703,6 @@ in a visible way, and the energy fluctuates around the initial value instead of
|
||||
</worldbody>
|
||||
|
||||
|
||||
.. |image0| image:: images/modeling/impedance.png
|
||||
:width: 600px
|
||||
.. |image1| image:: images/modeling/musclemodel.png
|
||||
:width: 650px
|
||||
.. |image2| image:: images/modeling/musclerange.png
|
||||
:width: 400px
|
||||
.. |image3| image:: images/modeling/tendonwraps.png
|
||||
:width: 500px
|
||||
.. |image4| image:: images/modeling/particle.png
|
||||
@@ -1719,8 +1739,6 @@ in a visible way, and the energy fluctuates around the initial value instead of
|
||||
:height: 250px
|
||||
.. |particle| image:: images/models/particle.gif
|
||||
:width: 270px
|
||||
.. |flexelem| image:: images/modeling/flexelem.png
|
||||
:width: 400px
|
||||
.. |bunny1| image:: images/modeling/bunny1.png
|
||||
:width: 300px
|
||||
.. |bunny2| image:: images/modeling/bunny2.png
|
||||
|
||||