Compare commits
23 Commits
e69dbf4ebd
...
merged
Author | SHA1 | Date | |
---|---|---|---|
96da2612c9 | |||
7467d48ae7 | |||
b9084440d0 | |||
a4be97337d | |||
5db04e754f | |||
1199f9fb7a | |||
73de5c5adc | |||
38115dd2c6 | |||
a836399bee | |||
d4703f9e89 | |||
7c7ebf1f71 | |||
0800dc609e | |||
8ba31906c7 | |||
6937890efc | |||
80bddb603d | |||
b70fcc5f9a | |||
f7f1e816fc | |||
95b9b460f7 | |||
fca54e3d88 | |||
8153a9d87b | |||
a7f85ba00b | |||
f56939f127 | |||
7accbd2855 |
18
figs/inkscape/convert_svg.sh
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Directory containing SVG files
|
||||||
|
INPUT_DIR="."
|
||||||
|
|
||||||
|
# Loop through all SVG files in the directory
|
||||||
|
for svg_file in "$INPUT_DIR"/*.svg; do
|
||||||
|
# Check if there are SVG files in the directory
|
||||||
|
if [ -f "$svg_file" ]; then
|
||||||
|
# Output PDF file name
|
||||||
|
pdf_file="../${svg_file%.svg}.pdf"
|
||||||
|
png_file="../${svg_file%.svg}"
|
||||||
|
|
||||||
|
# Convert SVG to PDF using Inkscape
|
||||||
|
inkscape "$svg_file" --export-filename="$pdf_file" && \
|
||||||
|
pdftocairo -png -singlefile -cropbox "$pdf_file" "$png_file"
|
||||||
|
fi
|
||||||
|
done
|
1047
figs/inkscape/nhexa_actuator_model.svg
Normal file
After Width: | Height: | Size: 83 KiB |
9516
figs/inkscape/nhexa_parallel_architecture_shen.svg
Normal file
After Width: | Height: | Size: 702 KiB |
1312
figs/inkscape/nhexa_serial_architecture_kenton.svg
Normal file
After Width: | Height: | Size: 304 KiB |
179
figs/inkscape/nhexa_stages_nazaretski.svg
Normal file
After Width: | Height: | Size: 876 KiB |
1422
figs/inkscape/nhexa_stages_sapoti.svg
Normal file
After Width: | Height: | Size: 703 KiB |
202
figs/inkscape/nhexa_stages_schroer.svg
Normal file
After Width: | Height: | Size: 647 KiB |
469
figs/inkscape/nhexa_stages_villar.svg
Normal file
@@ -0,0 +1,469 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
width="405.81152"
|
||||||
|
height="284.11676"
|
||||||
|
viewBox="0 0 405.81153 284.11676"
|
||||||
|
sodipodi:docname="nhexa_stages_villar.svg"
|
||||||
|
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<defs
|
||||||
|
id="defs1">
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="marker12"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto-start-reverse"
|
||||||
|
inkscape:stockid="Concave triangle arrow"
|
||||||
|
markerWidth="1"
|
||||||
|
markerHeight="1"
|
||||||
|
viewBox="0 0 1 1"
|
||||||
|
inkscape:isstock="true"
|
||||||
|
inkscape:collect="always"
|
||||||
|
preserveAspectRatio="xMidYMid">
|
||||||
|
<path
|
||||||
|
transform="scale(0.7)"
|
||||||
|
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
|
||||||
|
id="path12" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="ConcaveTriangle"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto-start-reverse"
|
||||||
|
inkscape:stockid="Concave triangle arrow"
|
||||||
|
markerWidth="1"
|
||||||
|
markerHeight="1"
|
||||||
|
viewBox="0 0 1 1"
|
||||||
|
inkscape:isstock="true"
|
||||||
|
inkscape:collect="always"
|
||||||
|
preserveAspectRatio="xMidYMid">
|
||||||
|
<path
|
||||||
|
transform="scale(0.7)"
|
||||||
|
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
|
||||||
|
id="path9" />
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="2.8919598"
|
||||||
|
inkscape:cx="235.48045"
|
||||||
|
inkscape:cy="95.437011"
|
||||||
|
inkscape:window-width="2560"
|
||||||
|
inkscape:window-height="1440"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1" />
|
||||||
|
<g
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
inkscape:label="Image"
|
||||||
|
id="g1"
|
||||||
|
transform="translate(33.070989,-114.37187)">
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 61.194666,166.81566 5.8719188,339.67825"
|
||||||
|
id="path4" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 302.70645,166.81566 55.86298,172.86259"
|
||||||
|
id="path5" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 202.93224,339.67825 53.37611,-92.42444"
|
||||||
|
id="path2"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 322.65645,339.67825 269.28034,247.25381"
|
||||||
|
id="path3"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 95.832184,247.25381 71.058953,339.67825"
|
||||||
|
id="path1"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#fbeed0;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="rect8"
|
||||||
|
width="194.87016"
|
||||||
|
height="53.019554"
|
||||||
|
x="84.284462"
|
||||||
|
y="194.23425" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#e8f4d7;fill-opacity:1;stroke:#000000;stroke-width:1.32155;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="rect29"
|
||||||
|
width="18.300337"
|
||||||
|
height="31.700216"
|
||||||
|
x="173.39015"
|
||||||
|
y="120.92148" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="rect7"
|
||||||
|
width="366.74323"
|
||||||
|
height="58.31039"
|
||||||
|
x="-1.6520551"
|
||||||
|
y="339.67825" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#e5e5e5;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="rect11"
|
||||||
|
width="234.59543"
|
||||||
|
height="12.198973"
|
||||||
|
x="64.421837"
|
||||||
|
y="160.71617" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:13.3333px;line-height:1.25;font-family:'Latin Modern Roman';-inkscape-font-specification:'Latin Modern Roman, Normal';fill:#77ac30"
|
||||||
|
x="32.955513"
|
||||||
|
y="132.74815"
|
||||||
|
id="text6"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan6"
|
||||||
|
x="32.955513"
|
||||||
|
y="132.74815">Sample</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:13.3333px;line-height:1.25;font-family:'Latin Modern Roman';-inkscape-font-specification:'Latin Modern Roman, Normal';fill:#7e2f8e"
|
||||||
|
x="-33.817654"
|
||||||
|
y="150.5638"
|
||||||
|
id="text7"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan7"
|
||||||
|
x="-33.817654"
|
||||||
|
y="150.5638">Capacitive Sensors</tspan></text>
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#fbeed0;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="rect9"
|
||||||
|
width="142.77277"
|
||||||
|
height="10.504819"
|
||||||
|
x="110.33317"
|
||||||
|
y="183.72943" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ccebff;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="rect10"
|
||||||
|
width="12.73592"
|
||||||
|
height="62.275959"
|
||||||
|
x="150.20767"
|
||||||
|
y="229.83876"
|
||||||
|
transform="matrix(0.96594378,0.25875202,-0.25888609,0.96590786,0,0)" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ccebff;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="rect10-1"
|
||||||
|
width="12.735273"
|
||||||
|
height="62.279125"
|
||||||
|
x="339.23914"
|
||||||
|
y="104.32326"
|
||||||
|
transform="matrix(0.8660855,0.4998959,-0.50010411,0.86596529,0,0)" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ccebff;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="rect10-1-3"
|
||||||
|
width="12.735273"
|
||||||
|
height="62.279125"
|
||||||
|
x="-115.90243"
|
||||||
|
y="366.00101"
|
||||||
|
transform="matrix(-0.8660855,0.4998959,0.50010411,0.86596529,0,0)" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#33aeff;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="path11"
|
||||||
|
cx="71.058952"
|
||||||
|
cy="339.67825"
|
||||||
|
rx="6.0815859"
|
||||||
|
ry="6.0798979" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#33aeff;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="circle11"
|
||||||
|
cx="202.93224"
|
||||||
|
cy="339.67825"
|
||||||
|
rx="6.0815859"
|
||||||
|
ry="6.0798979" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#33aeff;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="circle12"
|
||||||
|
cx="322.65643"
|
||||||
|
cy="339.67825"
|
||||||
|
rx="6.0815859"
|
||||||
|
ry="6.0798979" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#999999;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="circle13"
|
||||||
|
cx="358.56943"
|
||||||
|
cy="339.67825"
|
||||||
|
rx="6.0815859"
|
||||||
|
ry="6.0798979" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#33aeff;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="circle14"
|
||||||
|
cx="269.28033"
|
||||||
|
cy="247.25381"
|
||||||
|
rx="6.0815859"
|
||||||
|
ry="6.0798979" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#33aeff;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="circle15"
|
||||||
|
cx="256.30835"
|
||||||
|
cy="247.25381"
|
||||||
|
rx="6.0815859"
|
||||||
|
ry="6.0798979" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#33aeff;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="circle16"
|
||||||
|
cx="95.832184"
|
||||||
|
cy="247.25381"
|
||||||
|
rx="6.0815859"
|
||||||
|
ry="6.0798979" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#999999;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="circle17"
|
||||||
|
cx="5.8719187"
|
||||||
|
cy="339.67825"
|
||||||
|
rx="6.0815859"
|
||||||
|
ry="6.0798979" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#999999;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="circle18"
|
||||||
|
cx="61.194668"
|
||||||
|
cy="166.81566"
|
||||||
|
rx="6.0815859"
|
||||||
|
ry="6.0798979" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#999999;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="circle19"
|
||||||
|
cx="302.70645"
|
||||||
|
cy="166.81566"
|
||||||
|
rx="6.0815859"
|
||||||
|
ry="6.0798979" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="rect23"
|
||||||
|
width="33.903244"
|
||||||
|
height="12.198972"
|
||||||
|
x="64.421837"
|
||||||
|
y="160.71617" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#cccccc;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
id="rect23-9"
|
||||||
|
width="33.903244"
|
||||||
|
height="12.198972"
|
||||||
|
x="265.84323"
|
||||||
|
y="160.71617" />
|
||||||
|
<path
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#faddd1;fill-opacity:1;stroke:#000000;stroke-width:1.32133;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
|
||||||
|
d="m 254.00449,152.93015 -3.61124,10.70876 -135.70586,-0.61692 -3.61124,-10.70876 z"
|
||||||
|
id="path26"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 125.28132,183.72944 10.32089,-20.3381"
|
||||||
|
id="path28"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 145.9231,183.72944 -10.32089,-20.3381"
|
||||||
|
id="path29"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 218.81066,184.06427 10.32088,-20.33809"
|
||||||
|
id="path28-2"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 239.45243,184.06427 229.13154,163.72618"
|
||||||
|
id="path29-9"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#eed9f2;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="rect30"
|
||||||
|
width="10.114603"
|
||||||
|
height="13.11536"
|
||||||
|
x="116.1009"
|
||||||
|
y="164.67943" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;vector-effect:none;fill:#eed9f2;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="rect30-3"
|
||||||
|
width="10.114603"
|
||||||
|
height="13.11536"
|
||||||
|
x="238.86514"
|
||||||
|
y="165.72498" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:13.3333px;line-height:1.25;font-family:'Latin Modern Roman';-inkscape-font-specification:'Latin Modern Roman, Normal';fill:#edb120"
|
||||||
|
x="185.8485"
|
||||||
|
y="209.32468"
|
||||||
|
id="text30"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan30"
|
||||||
|
x="185.8485"
|
||||||
|
y="209.32468">Rotation Stage</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:13.3333px;line-height:1.25;font-family:'Latin Modern Roman';-inkscape-font-specification:'Latin Modern Roman, Normal';fill:#0072bd"
|
||||||
|
x="95.471916"
|
||||||
|
y="312.79327"
|
||||||
|
id="text31"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan31"
|
||||||
|
x="95.471916"
|
||||||
|
y="312.79327">Piezo Hexapod</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:13.3333px;line-height:1.25;font-family:'Latin Modern Roman';-inkscape-font-specification:'Latin Modern Roman, Normal';fill:#d95319"
|
||||||
|
x="277.37073"
|
||||||
|
y="143.55104"
|
||||||
|
id="text32"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan32"
|
||||||
|
x="277.37073"
|
||||||
|
y="143.55104">Metrology Cone</tspan></text>
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#eed9f2;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="rect19"
|
||||||
|
width="10.200583"
|
||||||
|
height="22.716125"
|
||||||
|
x="182.08461"
|
||||||
|
y="-46.815914"
|
||||||
|
transform="matrix(0.35402295,0.93523673,-0.93530178,0.35385106,0,0)" />
|
||||||
|
<rect
|
||||||
|
style="font-variation-settings:normal;vector-effect:none;fill:#eed9f2;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="rect19-5"
|
||||||
|
width="10.200583"
|
||||||
|
height="22.716125"
|
||||||
|
x="53.477428"
|
||||||
|
y="294.83932"
|
||||||
|
transform="matrix(-0.35402297,0.93523673,0.93530178,0.35385108,0,0)" />
|
||||||
|
<g
|
||||||
|
style="fill:#000000;fill-opacity:1"
|
||||||
|
id="g194"
|
||||||
|
transform="matrix(1.3333333,0,0,1.3333333,155.30497,104.48664)">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:10px;line-height:1.25;font-family:'Latin Modern Roman';-inkscape-font-specification:'Latin Modern Roman, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#a2142f;stroke-width:0.75"
|
||||||
|
x="128.36696"
|
||||||
|
y="14.243925"
|
||||||
|
id="text3875"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-size:10px;fill:#a2142f;stroke-width:0.75"
|
||||||
|
x="128.36696"
|
||||||
|
y="14.243925"
|
||||||
|
id="tspan3877">X-ray</tspan></text>
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="fill:#a2142f;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 344.12479,128.50631 -152.4343,0.9943 v 0.0717 0.13368 l 152.43428,0.98753 z"
|
||||||
|
id="path3-6"
|
||||||
|
sodipodi:nodetypes="cccccc" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="path6"
|
||||||
|
cx="88.808327"
|
||||||
|
cy="166.53445"
|
||||||
|
rx="1.2267653"
|
||||||
|
ry="1.2264248" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="path6-7"
|
||||||
|
cx="121.1582"
|
||||||
|
cy="177.79478"
|
||||||
|
rx="1.2267653"
|
||||||
|
ry="1.2264248" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="path6-3"
|
||||||
|
cx="243.92244"
|
||||||
|
cy="178.84035"
|
||||||
|
rx="1.2267653"
|
||||||
|
ry="1.2264248" />
|
||||||
|
<ellipse
|
||||||
|
style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none"
|
||||||
|
id="path6-5"
|
||||||
|
cx="276.27231"
|
||||||
|
cy="167.15137"
|
||||||
|
rx="1.2267653"
|
||||||
|
ry="1.2264248" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 88.808325,166.53445 C 71.144181,176.5913 56.632422,181.36443 37.011586,180.49332"
|
||||||
|
id="path7"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 276.27231,167.15137 c 17.66415,10.05685 32.17591,14.82997 51.79674,13.95887"
|
||||||
|
id="path7-3"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 120.98332,178.10177 c 1.63222,6.23459 -64.366578,10.06609 -83.987412,9.19499"
|
||||||
|
id="path7-8"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 243.92244,178.84034 c -1.63221,6.23459 64.36659,10.06608 83.98742,9.19499"
|
||||||
|
id="path7-8-4"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#7e2f8e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#ConcaveTriangle)"
|
||||||
|
d="m 79.172133,146.9695 h 12.008371 l 4.671816,8.08958"
|
||||||
|
id="path8" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:13.3333px;line-height:1.25;font-family:'Latin Modern Roman';-inkscape-font-specification:'Latin Modern Roman, Normal'"
|
||||||
|
x="313.70068"
|
||||||
|
y="161.43108"
|
||||||
|
id="text9"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan9"
|
||||||
|
x="313.70068"
|
||||||
|
y="161.43108">Metrology</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="313.70068"
|
||||||
|
y="178.0977"
|
||||||
|
id="tspan1">Frame</tspan></text>
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#d95319;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker12)"
|
||||||
|
d="m 274.69217,140.84952 h -23.78696 l -8.03782,8.03559"
|
||||||
|
id="path10" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#77ac30;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#ConcaveTriangle)"
|
||||||
|
d="M 79.172133,129.34149 H 168.37772"
|
||||||
|
id="path13" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#edb120;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:2, 2;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
d="m 181.71954,263.62954 1e-5,-86.05721"
|
||||||
|
id="path14"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<g
|
||||||
|
id="g6261"
|
||||||
|
transform="matrix(0.94233909,0,0,0.94207753,96.619148,145.41609)"
|
||||||
|
style="stroke:#edb120;stroke-width:1.41512">
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#edb120;stroke-width:1.40261;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1"
|
||||||
|
d="m 85.940088,93.556975 c -4.082593,0.560267 -5.559478,2.210365 -3.298788,3.680763 2.26048,1.474298 7.404288,2.210794 11.482981,1.650318 4.082803,-0.564168 5.559478,-2.210365 3.298997,-3.684664 -0.0909,-0.05571 -0.185505,-0.115533 -0.284213,-0.171662"
|
||||||
|
id="path152"
|
||||||
|
inkscape:transform-center-x="0.058051402"
|
||||||
|
inkscape:transform-center-y="77.553103" />
|
||||||
|
<path
|
||||||
|
style="fill:#edb120;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.41512"
|
||||||
|
d="m 94.385068,94.008299 2.874149,4.264931 -0.371766,-2.852029 2.635648,-1.153958"
|
||||||
|
id="path154"
|
||||||
|
inkscape:transform-center-x="-6.863793"
|
||||||
|
inkscape:transform-center-y="77.377487" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 23 KiB |
1308
figs/inkscape/nhexa_stewart_architecture.svg
Normal file
After Width: | Height: | Size: 78 KiB |
2557
figs/inkscape/nhexa_stewart_decentralized_control.svg
Normal file
After Width: | Height: | Size: 190 KiB |
3211
figs/inkscape/nhexa_stewart_model_def.svg
Normal file
After Width: | Height: | Size: 250 KiB |
3044
figs/inkscape/nhexa_stewart_model_input_outputs.svg
Normal file
After Width: | Height: | Size: 250 KiB |
2661
figs/inkscape/nhexa_stewart_notations.svg
Normal file
After Width: | Height: | Size: 164 KiB |
1397
figs/inkscape/nhexa_stewart_piezo_furutani.svg
Normal file
After Width: | Height: | Size: 167 KiB |
922
figs/inkscape/nhexa_stewart_vc_preumont.svg
Normal file
After Width: | Height: | Size: 169 KiB |
BIN
figs/nhexa_actuator_model.pdf
Normal file
BIN
figs/nhexa_actuator_model.png
Normal file
After Width: | Height: | Size: 16 KiB |
1891
figs/nhexa_comp_multi_body_analytical.pdf
Normal file
BIN
figs/nhexa_comp_multi_body_analytical.png
Normal file
After Width: | Height: | Size: 161 KiB |
BIN
figs/nhexa_control_cartesian.pdf
Normal file
BIN
figs/nhexa_control_cartesian.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
187
figs/nhexa_control_cartesian.svg
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="306.184" height="64.358" viewBox="0 0 306.184 64.358">
|
||||||
|
<defs>
|
||||||
|
<g>
|
||||||
|
<g id="glyph-0-0">
|
||||||
|
<path d="M 6.15625 -4.90625 C 6.15625 -5.859375 5.171875 -6.734375 3.828125 -6.734375 L 0.34375 -6.734375 L 0.34375 -6.421875 L 0.578125 -6.421875 C 1.34375 -6.421875 1.359375 -6.3125 1.359375 -5.96875 L 1.359375 -0.765625 C 1.359375 -0.421875 1.34375 -0.3125 0.578125 -0.3125 L 0.34375 -0.3125 L 0.34375 0 C 0.6875 -0.03125 1.421875 -0.03125 1.796875 -0.03125 C 2.171875 -0.03125 2.90625 -0.03125 3.25 0 L 3.25 -0.3125 L 3.015625 -0.3125 C 2.25 -0.3125 2.234375 -0.421875 2.234375 -0.765625 L 2.234375 -3.109375 L 3.90625 -3.109375 C 5.09375 -3.109375 6.15625 -3.921875 6.15625 -4.90625 Z M 5.140625 -4.90625 C 5.140625 -4.4375 5.140625 -3.375 3.5625 -3.375 L 2.203125 -3.375 L 2.203125 -6.03125 C 2.203125 -6.359375 2.234375 -6.421875 2.6875 -6.421875 L 3.5625 -6.421875 C 5.140625 -6.421875 5.140625 -5.390625 5.140625 -4.90625 Z M 5.140625 -4.90625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-1">
|
||||||
|
<path d="M 2.515625 0 L 2.515625 -0.3125 C 1.859375 -0.3125 1.75 -0.3125 1.75 -0.75 L 1.75 -6.84375 L 0.328125 -6.734375 L 0.328125 -6.421875 C 1.015625 -6.421875 1.09375 -6.359375 1.09375 -5.875 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.328125 -0.3125 L 0.328125 0 L 1.421875 -0.03125 Z M 2.515625 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-2">
|
||||||
|
<path d="M 4.765625 -0.875 L 4.765625 -1.421875 L 4.515625 -1.421875 L 4.515625 -0.875 C 4.515625 -0.3125 4.265625 -0.25 4.15625 -0.25 C 3.828125 -0.25 3.796875 -0.6875 3.796875 -0.734375 L 3.796875 -2.71875 C 3.796875 -3.125 3.796875 -3.515625 3.4375 -3.875 C 3.0625 -4.265625 2.5625 -4.421875 2.09375 -4.421875 C 1.28125 -4.421875 0.59375 -3.953125 0.59375 -3.296875 C 0.59375 -3 0.796875 -2.84375 1.0625 -2.84375 C 1.328125 -2.84375 1.515625 -3.03125 1.515625 -3.296875 C 1.515625 -3.40625 1.453125 -3.734375 1 -3.75 C 1.265625 -4.09375 1.75 -4.203125 2.078125 -4.203125 C 2.546875 -4.203125 3.109375 -3.8125 3.109375 -2.9375 L 3.109375 -2.578125 C 2.609375 -2.546875 1.921875 -2.515625 1.296875 -2.21875 C 0.5625 -1.890625 0.3125 -1.375 0.3125 -0.9375 C 0.3125 -0.140625 1.265625 0.109375 1.890625 0.109375 C 2.546875 0.109375 3 -0.28125 3.1875 -0.75 C 3.21875 -0.359375 3.484375 0.0625 3.953125 0.0625 C 4.15625 0.0625 4.765625 -0.078125 4.765625 -0.875 Z M 3.109375 -1.375 C 3.109375 -0.4375 2.40625 -0.109375 1.96875 -0.109375 C 1.484375 -0.109375 1.078125 -0.453125 1.078125 -0.953125 C 1.078125 -1.484375 1.484375 -2.3125 3.109375 -2.359375 Z M 3.109375 -1.375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-3">
|
||||||
|
<path d="M 5.28125 0 L 5.28125 -0.3125 C 4.765625 -0.3125 4.515625 -0.3125 4.5 -0.59375 L 4.5 -2.484375 C 4.5 -3.328125 4.5 -3.640625 4.203125 -4 C 4.0625 -4.15625 3.734375 -4.359375 3.171875 -4.359375 C 2.4375 -4.359375 1.984375 -3.9375 1.703125 -3.328125 L 1.703125 -4.359375 L 0.3125 -4.25 L 0.3125 -3.9375 C 1 -3.9375 1.078125 -3.875 1.078125 -3.390625 L 1.078125 -0.75 C 1.078125 -0.3125 0.96875 -0.3125 0.3125 -0.3125 L 0.3125 0 L 1.421875 -0.03125 L 2.53125 0 L 2.53125 -0.3125 C 1.875 -0.3125 1.765625 -0.3125 1.765625 -0.75 L 1.765625 -2.5625 C 1.765625 -3.59375 2.46875 -4.140625 3.09375 -4.140625 C 3.71875 -4.140625 3.828125 -3.609375 3.828125 -3.046875 L 3.828125 -0.75 C 3.828125 -0.3125 3.71875 -0.3125 3.0625 -0.3125 L 3.0625 0 L 4.171875 -0.03125 Z M 5.28125 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-4">
|
||||||
|
<path d="M 3.265625 -1.21875 L 3.265625 -1.78125 L 3.03125 -1.78125 L 3.03125 -1.25 C 3.03125 -0.515625 2.734375 -0.140625 2.359375 -0.140625 C 1.703125 -0.140625 1.703125 -1.03125 1.703125 -1.203125 L 1.703125 -3.9375 L 3.109375 -3.9375 L 3.109375 -4.25 L 1.703125 -4.25 L 1.703125 -6.0625 L 1.453125 -6.0625 C 1.453125 -5.25 1.15625 -4.203125 0.1875 -4.15625 L 0.1875 -3.9375 L 1.03125 -3.9375 L 1.03125 -1.21875 C 1.03125 -0.015625 1.9375 0.109375 2.296875 0.109375 C 3 0.109375 3.265625 -0.59375 3.265625 -1.21875 Z M 3.265625 -1.21875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-5">
|
||||||
|
<path d="M 1.890625 -0.515625 C 1.890625 -0.8125 1.65625 -1.046875 1.375 -1.046875 C 1.078125 -1.046875 0.84375 -0.8125 0.84375 -0.515625 C 0.84375 -0.234375 1.078125 0 1.375 0 C 1.65625 0 1.890625 -0.234375 1.890625 -0.515625 Z M 1.890625 -0.515625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-0">
|
||||||
|
<path d="M 5.9375 -6.109375 C 5.96875 -6.265625 5.984375 -6.265625 6.046875 -6.28125 C 6.171875 -6.296875 6.3125 -6.296875 6.421875 -6.296875 C 6.6875 -6.296875 6.84375 -6.296875 6.84375 -6.59375 C 6.84375 -6.609375 6.828125 -6.765625 6.640625 -6.765625 C 6.4375 -6.765625 6.21875 -6.75 6.015625 -6.75 C 5.796875 -6.75 5.5625 -6.734375 5.328125 -6.734375 C 4.953125 -6.734375 4 -6.765625 3.625 -6.765625 C 3.5 -6.765625 3.328125 -6.765625 3.328125 -6.484375 C 3.328125 -6.296875 3.484375 -6.296875 3.65625 -6.296875 L 4 -6.296875 C 4.390625 -6.296875 4.40625 -6.296875 4.640625 -6.265625 L 3.453125 -1.484375 C 3.203125 -0.484375 2.578125 -0.1875 2.125 -0.1875 C 2.046875 -0.1875 1.609375 -0.203125 1.328125 -0.421875 C 1.859375 -0.546875 2.03125 -1.015625 2.03125 -1.28125 C 2.03125 -1.609375 1.765625 -1.84375 1.421875 -1.84375 C 1.03125 -1.84375 0.546875 -1.53125 0.546875 -0.90625 C 0.546875 -0.234375 1.234375 0.171875 2.171875 0.171875 C 3.28125 0.171875 4.46875 -0.28125 4.765625 -1.4375 Z M 5.9375 -6.109375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-1">
|
||||||
|
<path d="M 3.546875 -2.09375 C 3.6875 -2.09375 3.921875 -2.09375 3.921875 -2.34375 C 3.921875 -2.5625 3.734375 -2.5625 3.546875 -2.5625 L 1.859375 -2.5625 C 2.015625 -3.171875 2.390625 -3.921875 3.5625 -3.921875 L 3.96875 -3.921875 C 4.109375 -3.921875 4.375 -3.921875 4.375 -4.171875 C 4.375 -4.25 4.328125 -4.375 4.1875 -4.375 L 3.765625 -4.375 C 3.234375 -4.375 2.1875 -4.375 1.328125 -3.609375 C 0.875 -3.1875 0.5 -2.546875 0.5 -1.765625 C 0.5 -0.421875 1.625 0.078125 2.78125 0.078125 C 2.921875 0.078125 3.25 0.078125 3.703125 -0.09375 C 3.75 -0.09375 4.296875 -0.3125 4.296875 -0.46875 C 4.296875 -0.578125 4.234375 -0.765625 4.109375 -0.765625 C 4.078125 -0.765625 4.046875 -0.765625 3.953125 -0.6875 C 3.359375 -0.328125 3.0625 -0.28125 2.8125 -0.28125 C 2.5625 -0.28125 1.640625 -0.328125 1.640625 -1.34375 C 1.640625 -1.609375 1.6875 -1.859375 1.75 -2.09375 Z M 3.546875 -2.09375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-2">
|
||||||
|
<path d="M 4.234375 -3.921875 L 5.390625 -3.921875 C 5.578125 -3.921875 5.75 -3.921875 5.75 -4.203125 C 5.75 -4.375 5.578125 -4.375 5.40625 -4.375 L 4.3125 -4.375 L 4.640625 -6.15625 C 4.65625 -6.34375 4.65625 -6.359375 4.765625 -6.453125 C 4.890625 -6.5625 5 -6.5625 5.046875 -6.5625 C 5.1875 -6.5625 5.28125 -6.546875 5.390625 -6.5 C 5.15625 -6.375 4.984375 -6.125 4.984375 -5.859375 C 4.984375 -5.5625 5.21875 -5.40625 5.46875 -5.40625 C 5.859375 -5.40625 6.171875 -5.765625 6.171875 -6.125 C 6.171875 -6.640625 5.65625 -6.921875 5.046875 -6.921875 C 4.578125 -6.921875 4.03125 -6.734375 3.6875 -6.1875 C 3.453125 -5.8125 3.40625 -5.4375 3.21875 -4.375 L 2.25 -4.375 C 2.0625 -4.375 1.890625 -4.375 1.890625 -4.09375 C 1.890625 -3.921875 2.0625 -3.921875 2.21875 -3.921875 L 3.125 -3.921875 L 2.375 0.28125 C 2.359375 0.375 2.25 1 2.203125 1.140625 C 2.171875 1.1875 2.015625 1.640625 1.703125 1.640625 C 1.515625 1.640625 1.4375 1.609375 1.375 1.578125 C 1.609375 1.453125 1.796875 1.203125 1.796875 0.921875 C 1.796875 0.625 1.5625 0.46875 1.328125 0.46875 C 0.921875 0.46875 0.609375 0.828125 0.609375 1.203125 C 0.609375 1.734375 1.171875 1.984375 1.6875 1.984375 C 2.421875 1.984375 2.9375 1.265625 3.015625 1.140625 C 3.4375 0.484375 3.671875 -0.765625 3.703125 -0.9375 Z M 4.234375 -3.921875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-3">
|
||||||
|
<path d="M 4.375 -3.96875 C 3.828125 -3.859375 3.78125 -3.375 3.78125 -3.265625 C 3.78125 -3.0625 3.9375 -2.8125 4.265625 -2.8125 C 4.609375 -2.8125 4.984375 -3.09375 4.984375 -3.59375 C 4.984375 -4.046875 4.625 -4.453125 4.015625 -4.453125 C 3.453125 -4.453125 3 -4.1875 2.703125 -3.859375 C 2.46875 -4.3125 1.90625 -4.453125 1.546875 -4.453125 C 1.1875 -4.453125 0.90625 -4.25 0.6875 -3.890625 C 0.453125 -3.515625 0.3125 -2.984375 0.3125 -2.921875 C 0.3125 -2.78125 0.46875 -2.78125 0.546875 -2.78125 C 0.65625 -2.78125 0.703125 -2.78125 0.75 -2.828125 C 0.765625 -2.84375 0.765625 -2.875 0.828125 -3.109375 C 1.015625 -3.859375 1.234375 -4.09375 1.5 -4.09375 C 1.640625 -4.09375 1.71875 -4 1.71875 -3.75 C 1.71875 -3.5625 1.703125 -3.453125 1.59375 -3 C 1.53125 -2.828125 1.375 -2.171875 1.3125 -1.9375 C 1.265625 -1.75 1.15625 -1.296875 1.109375 -1.125 C 1.0625 -0.875 0.9375 -0.421875 0.9375 -0.359375 C 0.9375 -0.140625 1.09375 0.078125 1.40625 0.078125 C 1.59375 0.078125 1.9375 -0.046875 2.046875 -0.4375 C 2.0625 -0.46875 2.734375 -3.15625 2.734375 -3.21875 C 2.78125 -3.359375 2.78125 -3.375 2.90625 -3.53125 C 3.140625 -3.8125 3.5 -4.09375 4 -4.09375 C 4.234375 -4.09375 4.34375 -4 4.375 -3.96875 Z M 4.375 -3.96875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-0">
|
||||||
|
<path d="M 5.421875 -1.734375 C 5.421875 -1.90625 5.25 -1.90625 5.15625 -1.90625 L 1 -1.90625 C 0.90625 -1.90625 0.75 -1.90625 0.75 -1.734375 C 0.75 -1.5625 0.90625 -1.5625 1 -1.5625 L 5.15625 -1.5625 C 5.25 -1.5625 5.421875 -1.5625 5.421875 -1.734375 Z M 5.421875 -1.734375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-1">
|
||||||
|
<path d="M 5.28125 -0.671875 C 5.28125 -0.734375 5.234375 -0.734375 5.1875 -0.734375 C 5.09375 -0.734375 4.8125 -0.625 4.671875 -0.421875 C 4.4375 -0.421875 4.171875 -0.421875 4.046875 -1.046875 L 3.859375 -2.453125 C 3.859375 -2.484375 3.859375 -2.5 3.875 -2.5 L 4.125 -2.640625 C 6.1875 -3.75 6.1875 -4.0625 6.1875 -4.3125 C 6.1875 -4.515625 6.078125 -4.71875 5.78125 -4.71875 C 5.5625 -4.71875 5.234375 -4.46875 5.234375 -4.359375 C 5.234375 -4.296875 5.265625 -4.296875 5.3125 -4.296875 C 5.484375 -4.28125 5.53125 -4.125 5.53125 -3.984375 C 5.53125 -3.84375 5.53125 -3.765625 4.90625 -3.375 C 4.765625 -3.28125 4.640625 -3.203125 3.8125 -2.75 C 3.734375 -3.265625 3.671875 -3.8125 3.625 -4.0625 C 3.484375 -4.625 3.234375 -4.71875 2.9375 -4.71875 C 2.171875 -4.71875 1.765625 -4.21875 1.765625 -4.046875 C 1.765625 -3.984375 1.8125 -3.984375 1.84375 -3.984375 C 1.96875 -3.984375 2.25 -4.109375 2.375 -4.296875 C 2.609375 -4.296875 2.859375 -4.296875 2.984375 -3.734375 L 3.171875 -2.40625 C 2.78125 -2.203125 2.046875 -1.8125 1.625 -1.5625 C 0.53125 -0.890625 0.484375 -0.625 0.484375 -0.40625 C 0.484375 -0.203125 0.59375 0 0.875 0 C 1.078125 0 1.4375 -0.234375 1.4375 -0.359375 C 1.4375 -0.421875 1.390625 -0.421875 1.359375 -0.421875 C 1.1875 -0.4375 1.125 -0.5625 1.125 -0.71875 C 1.125 -0.875 1.125 -0.96875 1.96875 -1.484375 L 3.203125 -2.140625 C 3.296875 -1.609375 3.375 -0.921875 3.40625 -0.78125 C 3.515625 -0.3125 3.625 0 4.109375 0 C 4.875 0 5.28125 -0.484375 5.28125 -0.671875 Z M 5.28125 -0.671875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-3-0">
|
||||||
|
<path d="M 2.5625 -2.296875 L 3.5 -2.296875 C 3.59375 -2.296875 3.921875 -2.296875 3.921875 -2.640625 C 3.921875 -2.984375 3.578125 -2.984375 3.5 -2.984375 L 0.96875 -2.984375 C 0.875 -2.984375 0.53125 -2.984375 0.53125 -2.640625 C 0.53125 -2.296875 0.875 -2.296875 0.96875 -2.296875 L 1.890625 -2.296875 L 1.890625 1.046875 C 1.890625 1.140625 1.890625 1.46875 2.234375 1.46875 C 2.5625 1.46875 2.5625 1.125 2.5625 1.046875 Z M 2.5625 -2.296875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-4-0">
|
||||||
|
<path d="M 7.296875 -0.203125 C 7.296875 -0.3125 7.1875 -0.3125 7.09375 -0.3125 C 6.6875 -0.3125 6.5625 -0.40625 6.421875 -0.75 L 5.015625 -3.984375 C 5.015625 -4.015625 4.96875 -4.09375 4.96875 -4.125 C 4.96875 -4.125 5.140625 -4.265625 5.25 -4.34375 L 6.984375 -5.671875 C 7.90625 -6.359375 8.296875 -6.40625 8.59375 -6.421875 C 8.671875 -6.4375 8.765625 -6.453125 8.765625 -6.625 C 8.765625 -6.671875 8.734375 -6.734375 8.65625 -6.734375 C 8.4375 -6.734375 8.1875 -6.703125 7.953125 -6.703125 C 7.59375 -6.703125 7.21875 -6.734375 6.859375 -6.734375 C 6.796875 -6.734375 6.671875 -6.734375 6.671875 -6.53125 C 6.671875 -6.46875 6.71875 -6.4375 6.796875 -6.421875 C 7.015625 -6.40625 7.09375 -6.359375 7.09375 -6.21875 C 7.09375 -6.046875 6.796875 -5.8125 6.75 -5.765625 L 2.90625 -2.8125 L 3.6875 -5.96875 C 3.78125 -6.328125 3.796875 -6.421875 4.515625 -6.421875 C 4.765625 -6.421875 4.84375 -6.421875 4.84375 -6.625 C 4.84375 -6.71875 4.765625 -6.734375 4.71875 -6.734375 L 3.453125 -6.703125 L 2.171875 -6.734375 C 2.109375 -6.734375 1.984375 -6.734375 1.984375 -6.546875 C 1.984375 -6.421875 2.078125 -6.421875 2.265625 -6.421875 C 2.390625 -6.421875 2.578125 -6.421875 2.6875 -6.40625 C 2.84375 -6.390625 2.90625 -6.359375 2.90625 -6.25 C 2.90625 -6.21875 2.90625 -6.1875 2.875 -6.0625 L 1.546875 -0.765625 C 1.453125 -0.390625 1.421875 -0.3125 0.65625 -0.3125 C 0.484375 -0.3125 0.375 -0.3125 0.375 -0.125 C 0.375 0 0.5 0 0.515625 0 L 1.78125 -0.03125 L 2.40625 -0.015625 C 2.625 -0.015625 2.84375 0 3.046875 0 C 3.109375 0 3.25 0 3.25 -0.203125 C 3.25 -0.3125 3.15625 -0.3125 2.96875 -0.3125 C 2.609375 -0.3125 2.328125 -0.3125 2.328125 -0.484375 C 2.328125 -0.546875 2.390625 -0.765625 2.421875 -0.921875 L 2.8125 -2.46875 L 4.28125 -3.609375 L 5.421875 -0.953125 C 5.546875 -0.6875 5.546875 -0.671875 5.546875 -0.609375 C 5.546875 -0.3125 5.109375 -0.3125 5.03125 -0.3125 C 4.921875 -0.3125 4.8125 -0.3125 4.8125 -0.109375 C 4.8125 0 4.953125 0 4.953125 0 C 5.34375 0 5.765625 -0.03125 6.15625 -0.03125 C 6.375 -0.03125 6.90625 0 7.125 0 C 7.171875 0 7.296875 0 7.296875 -0.203125 Z M 7.296875 -0.203125 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-5-0">
|
||||||
|
<path d="M 6.171875 -2.921875 C 6.171875 -3.921875 5.46875 -4.71875 4.34375 -4.71875 L 1.828125 -4.71875 C 1.6875 -4.71875 1.609375 -4.71875 1.609375 -4.5625 C 1.609375 -4.46875 1.6875 -4.46875 1.84375 -4.46875 C 1.953125 -4.46875 1.96875 -4.46875 2.09375 -4.453125 C 2.234375 -4.4375 2.25 -4.421875 2.25 -4.359375 C 2.25 -4.359375 2.25 -4.3125 2.21875 -4.203125 L 1.3125 -0.53125 C 1.25 -0.296875 1.234375 -0.25 0.703125 -0.25 C 0.578125 -0.25 0.484375 -0.25 0.484375 -0.09375 C 0.484375 0 0.578125 0 0.703125 0 L 3.15625 0 C 4.703125 0 6.171875 -1.40625 6.171875 -2.921875 Z M 5.515625 -3.140625 C 5.515625 -2.984375 5.4375 -1.78125 4.75 -1 C 4.484375 -0.6875 3.890625 -0.25 3.03125 -0.25 L 2.09375 -0.25 C 1.890625 -0.25 1.875 -0.25 1.875 -0.3125 C 1.875 -0.3125 1.875 -0.359375 1.90625 -0.46875 L 2.859375 -4.234375 C 2.90625 -4.453125 2.921875 -4.46875 3.203125 -4.46875 L 4.09375 -4.46875 C 4.859375 -4.46875 5.515625 -4.078125 5.515625 -3.140625 Z M 5.515625 -3.140625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-5-1">
|
||||||
|
<path d="M 4.9375 -3.75 C 4.9375 -3.46875 4.8125 -3.03125 4.484375 -2.796875 C 4.203125 -2.5625 3.78125 -2.453125 3.296875 -2.453125 L 2.40625 -2.453125 L 2.859375 -4.234375 C 2.90625 -4.421875 2.921875 -4.453125 3.0625 -4.46875 L 3.515625 -4.46875 C 4.15625 -4.46875 4.9375 -4.46875 4.9375 -3.75 Z M 5.859375 -0.65625 C 5.859375 -0.6875 5.84375 -0.765625 5.75 -0.765625 C 5.65625 -0.765625 5.640625 -0.71875 5.625 -0.640625 C 5.53125 -0.34375 5.265625 -0.0625 4.984375 -0.0625 C 4.796875 -0.0625 4.671875 -0.125 4.671875 -0.5 C 4.671875 -0.671875 4.703125 -1.03125 4.734375 -1.21875 C 4.765625 -1.40625 4.765625 -1.484375 4.765625 -1.546875 C 4.765625 -1.625 4.765625 -1.84375 4.578125 -2.0625 C 4.4375 -2.203125 4.25 -2.296875 4.109375 -2.34375 C 4.921875 -2.546875 5.65625 -3.03125 5.65625 -3.65625 C 5.65625 -4.25 4.953125 -4.71875 3.953125 -4.71875 L 1.828125 -4.71875 C 1.703125 -4.71875 1.609375 -4.71875 1.609375 -4.5625 C 1.609375 -4.46875 1.6875 -4.46875 1.828125 -4.46875 C 1.828125 -4.46875 1.96875 -4.46875 2.09375 -4.453125 C 2.234375 -4.4375 2.25 -4.421875 2.25 -4.359375 C 2.25 -4.359375 2.25 -4.3125 2.21875 -4.203125 L 1.3125 -0.53125 C 1.25 -0.296875 1.234375 -0.25 0.703125 -0.25 C 0.578125 -0.25 0.484375 -0.25 0.484375 -0.109375 C 0.484375 -0.03125 0.53125 0 0.59375 0 C 0.734375 0 0.890625 -0.015625 1.03125 -0.015625 L 1.484375 -0.03125 L 1.921875 -0.015625 C 2.078125 -0.015625 2.25 0 2.390625 0 C 2.421875 0 2.53125 0 2.53125 -0.140625 C 2.53125 -0.25 2.46875 -0.25 2.3125 -0.25 C 2.203125 -0.25 2.171875 -0.25 2.046875 -0.265625 C 1.890625 -0.28125 1.890625 -0.296875 1.890625 -0.359375 C 1.890625 -0.359375 1.890625 -0.421875 1.921875 -0.515625 L 2.359375 -2.265625 L 3.296875 -2.265625 C 3.890625 -2.265625 4.140625 -1.96875 4.140625 -1.640625 C 4.140625 -1.546875 4.078125 -1.3125 4.046875 -1.15625 C 3.96875 -0.84375 3.9375 -0.734375 3.9375 -0.625 C 3.9375 -0.078125 4.4375 0.140625 4.953125 0.140625 C 5.59375 0.140625 5.859375 -0.53125 5.859375 -0.65625 Z M 5.859375 -0.65625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-6-0">
|
||||||
|
<path d="M 3.296875 -0.71875 C 3.296875 -0.78125 3.21875 -0.78125 3.1875 -0.78125 C 3.109375 -0.78125 3.09375 -0.75 3.078125 -0.703125 C 2.9375 -0.265625 2.5625 -0.109375 2.34375 -0.109375 C 2.203125 -0.109375 2 -0.171875 2 -0.4375 C 2 -0.5 2 -0.53125 2.03125 -0.703125 C 2.125 -1.046875 2.25 -1.59375 2.296875 -1.6875 C 2.359375 -1.8125 2.515625 -2.015625 2.765625 -2.015625 C 2.78125 -2.015625 2.953125 -2.015625 3.0625 -1.9375 C 2.84375 -1.859375 2.84375 -1.640625 2.84375 -1.640625 C 2.84375 -1.5625 2.890625 -1.4375 3.0625 -1.4375 C 3.203125 -1.4375 3.375 -1.5625 3.375 -1.78125 C 3.375 -2.0625 3.046875 -2.1875 2.78125 -2.1875 C 2.453125 -2.1875 2.25 -1.96875 2.15625 -1.84375 C 1.984375 -2.125 1.671875 -2.1875 1.5 -2.1875 C 0.875 -2.1875 0.53125 -1.59375 0.53125 -1.421875 C 0.53125 -1.34375 0.609375 -1.34375 0.625 -1.34375 C 0.671875 -1.34375 0.71875 -1.359375 0.734375 -1.40625 C 0.890625 -1.890625 1.28125 -2.015625 1.46875 -2.015625 C 1.640625 -2.015625 1.828125 -1.953125 1.828125 -1.6875 C 1.828125 -1.5625 1.734375 -1.21875 1.5625 -0.5625 C 1.5 -0.28125 1.265625 -0.109375 1.0625 -0.109375 C 1.015625 -0.109375 0.875 -0.109375 0.765625 -0.1875 C 0.984375 -0.265625 0.984375 -0.453125 0.984375 -0.484375 C 0.984375 -0.625 0.875 -0.6875 0.765625 -0.6875 C 0.640625 -0.6875 0.453125 -0.59375 0.453125 -0.34375 C 0.453125 -0.046875 0.796875 0.046875 1.046875 0.046875 C 1.3125 0.046875 1.546875 -0.109375 1.65625 -0.28125 C 1.859375 0.015625 2.171875 0.046875 2.328125 0.046875 C 2.953125 0.046875 3.296875 -0.53125 3.296875 -0.71875 Z M 3.296875 -0.71875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-6-1">
|
||||||
|
<path d="M 2.953125 -0.734375 C 2.953125 -0.796875 2.875 -0.796875 2.859375 -0.796875 C 2.78125 -0.796875 2.765625 -0.78125 2.75 -0.71875 C 2.625 -0.421875 2.234375 -0.375 2.046875 -0.375 C 1.953125 -0.375 1.828125 -0.390625 1.671875 -0.40625 C 1.40625 -0.453125 1.328125 -0.453125 1.25 -0.453125 C 1.171875 -0.453125 1.171875 -0.453125 1.125 -0.453125 C 1.34375 -0.640625 1.578125 -0.8125 1.859375 -1.015625 C 2.1875 -1.25 2.40625 -1.421875 2.609375 -1.609375 C 2.859375 -1.84375 3.03125 -2.0625 3.03125 -2.109375 C 3.03125 -2.1875 2.953125 -2.1875 2.921875 -2.1875 C 2.859375 -2.1875 2.84375 -2.171875 2.8125 -2.125 C 2.625 -1.859375 2.515625 -1.84375 2.421875 -1.84375 C 2.34375 -1.84375 2.265625 -1.859375 2.125 -1.96875 C 1.953125 -2.09375 1.84375 -2.1875 1.65625 -2.1875 C 1.203125 -2.1875 0.90625 -1.75 0.90625 -1.59375 C 0.90625 -1.515625 0.984375 -1.515625 1.015625 -1.515625 C 1.078125 -1.515625 1.09375 -1.53125 1.125 -1.578125 C 1.140625 -1.640625 1.1875 -1.75 1.578125 -1.75 C 1.71875 -1.75 1.828125 -1.75 2.078125 -1.703125 C 2.265625 -1.671875 2.328125 -1.671875 2.40625 -1.671875 C 2.265625 -1.546875 2.109375 -1.421875 1.75 -1.15625 C 1.390625 -0.90625 1.171875 -0.75 0.953125 -0.53125 C 0.75 -0.34375 0.515625 -0.078125 0.515625 -0.015625 C 0.515625 0.046875 0.59375 0.046875 0.625 0.046875 C 0.6875 0.046875 0.703125 0.046875 0.71875 0.015625 C 0.875 -0.1875 1.046875 -0.28125 1.21875 -0.28125 C 1.359375 -0.28125 1.421875 -0.234375 1.609375 -0.09375 C 1.75 0 1.859375 0.046875 2 0.046875 C 2.578125 0.046875 2.953125 -0.53125 2.953125 -0.734375 Z M 2.953125 -0.734375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-7-0">
|
||||||
|
<path d="M 4.53125 -3.15625 C 4.53125 -3.9375 4.484375 -4.734375 4.140625 -5.46875 C 3.6875 -6.40625 2.875 -6.5625 2.46875 -6.5625 C 1.875 -6.5625 1.15625 -6.3125 0.75 -5.390625 C 0.4375 -4.71875 0.390625 -3.9375 0.390625 -3.15625 C 0.390625 -2.421875 0.421875 -1.53125 0.828125 -0.78125 C 1.25 0.015625 1.96875 0.21875 2.453125 0.21875 C 2.984375 0.21875 3.734375 0.015625 4.171875 -0.921875 C 4.484375 -1.609375 4.53125 -2.375 4.53125 -3.15625 Z M 3.71875 -3.265625 C 3.71875 -2.53125 3.71875 -1.859375 3.609375 -1.234375 C 3.453125 -0.296875 2.90625 0 2.453125 0 C 2.078125 0 1.484375 -0.25 1.3125 -1.1875 C 1.203125 -1.78125 1.203125 -2.6875 1.203125 -3.265625 C 1.203125 -3.90625 1.203125 -4.5625 1.28125 -5.09375 C 1.46875 -6.265625 2.203125 -6.34375 2.453125 -6.34375 C 2.78125 -6.34375 3.4375 -6.171875 3.625 -5.203125 C 3.71875 -4.640625 3.71875 -3.890625 3.71875 -3.265625 Z M 3.71875 -3.265625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-8-0">
|
||||||
|
<path d="M 11.46875 -4.25 C 11.46875 -4.546875 11.203125 -4.546875 10.9375 -4.546875 L 6.421875 -4.546875 L 6.421875 -9.0625 C 6.421875 -9.3125 6.421875 -9.59375 6.140625 -9.59375 C 5.828125 -9.59375 5.828125 -9.328125 5.828125 -9.0625 L 5.828125 -4.546875 L 1.3125 -4.546875 C 1.078125 -4.546875 0.78125 -4.546875 0.78125 -4.265625 C 0.78125 -3.953125 1.0625 -3.953125 1.3125 -3.953125 L 5.828125 -3.953125 L 5.828125 0.5625 C 5.828125 0.796875 5.828125 1.09375 6.125 1.09375 C 6.421875 1.09375 6.421875 0.8125 6.421875 0.5625 L 6.421875 -3.953125 L 10.9375 -3.953125 C 11.1875 -3.953125 11.46875 -3.953125 11.46875 -4.25 Z M 11.46875 -4.25 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-9-0">
|
||||||
|
<path d="M 6.84375 -2.46875 C 6.84375 -2.65625 6.65625 -2.65625 6.515625 -2.65625 L 1.140625 -2.65625 C 1 -2.65625 0.8125 -2.65625 0.8125 -2.46875 C 0.8125 -2.265625 1 -2.265625 1.140625 -2.265625 L 6.515625 -2.265625 C 6.65625 -2.265625 6.84375 -2.265625 6.84375 -2.46875 Z M 6.84375 -2.46875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-10-0">
|
||||||
|
<path d="M 7.671875 -1.0625 C 7.671875 -1.15625 7.5625 -1.1875 7.5 -1.1875 C 7.328125 -1.1875 7 -1.078125 6.71875 -0.859375 C 6.328125 -0.859375 6.015625 -0.859375 5.859375 -2.078125 L 5.6875 -3.59375 C 8.296875 -5.015625 8.9375 -5.671875 8.9375 -6.1875 C 8.9375 -6.59375 8.578125 -6.765625 8.28125 -6.765625 C 7.84375 -6.765625 7.15625 -6.28125 7.15625 -6.03125 C 7.15625 -5.984375 7.171875 -5.921875 7.328125 -5.90625 C 7.640625 -5.875 7.65625 -5.625 7.65625 -5.578125 C 7.65625 -5.46875 7.625 -5.40625 7.390625 -5.21875 C 6.984375 -4.921875 6.28125 -4.53125 5.625 -4.15625 C 5.484375 -5.0625 5.484375 -5.546875 5.375 -5.984375 C 5.140625 -6.765625 4.640625 -6.765625 4.328125 -6.765625 C 2.984375 -6.765625 2.390625 -5.953125 2.390625 -5.703125 C 2.390625 -5.59375 2.515625 -5.578125 2.578125 -5.578125 C 2.578125 -5.578125 2.90625 -5.578125 3.34375 -5.90625 C 3.65625 -5.90625 4.03125 -5.90625 4.171875 -4.9375 L 4.34375 -3.453125 C 3.671875 -3.09375 2.765625 -2.609375 2.046875 -2.125 C 1.59375 -1.84375 0.546875 -1.171875 0.546875 -0.578125 C 0.546875 -0.171875 0.890625 0 1.21875 0 C 1.640625 0 2.328125 -0.484375 2.328125 -0.734375 C 2.328125 -0.84375 2.21875 -0.84375 2.140625 -0.859375 C 1.96875 -0.875 1.828125 -1.015625 1.828125 -1.1875 C 1.828125 -1.3125 1.875 -1.359375 2.140625 -1.5625 C 2.609375 -1.90625 3.359375 -2.3125 4.40625 -2.90625 C 4.609375 -1.109375 4.640625 -1 4.65625 -0.875 C 4.890625 0 5.40625 0 5.734375 0 C 7.09375 0 7.671875 -0.8125 7.671875 -1.0625 Z M 7.671875 -1.0625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-10-1">
|
||||||
|
<path d="M 9.15625 -6.359375 C 9.265625 -6.765625 8.5625 -6.765625 7.96875 -6.765625 L 3.546875 -6.765625 C 3.078125 -6.71875 2.609375 -6.59375 2.1875 -6.296875 C 1.984375 -6.140625 1.796875 -5.953125 1.734375 -5.734375 C 1.734375 -5.625 1.796875 -5.578125 1.90625 -5.578125 C 2.0625 -5.578125 2.28125 -5.65625 2.5 -5.78125 C 2.578125 -5.8125 2.640625 -5.859375 2.703125 -5.90625 C 2.875 -5.921875 3.078125 -5.921875 3.25 -5.921875 L 4.3125 -5.921875 L 4.140625 -5.171875 C 3.96875 -4.453125 3.75 -3.75 3.484375 -3.0625 C 3.171875 -2.25 2.78125 -1.4375 2.34375 -0.65625 C 2.328125 -0.625 2.3125 -0.578125 2.28125 -0.546875 C 1.90625 -0.578125 1.609375 -0.765625 1.421875 -1.046875 C 1.40625 -1.078125 1.34375 -1.109375 1.265625 -1.109375 C 1.109375 -1.109375 0.890625 -1.03125 0.671875 -0.890625 C 0.359375 -0.734375 0.15625 -0.5 0.15625 -0.359375 C 0.15625 -0.359375 0.15625 -0.328125 0.171875 -0.3125 C 0.4375 0.109375 0.9375 0.328125 1.515625 0.3125 C 1.578125 0.3125 1.640625 0.296875 1.71875 0.28125 C 2.28125 0.1875 2.8125 -0.140625 3.234375 -0.59375 C 3.359375 -0.734375 3.46875 -0.890625 3.5625 -1.046875 C 3.890625 -1.640625 4.1875 -2.25 4.453125 -2.875 L 6.40625 -2.875 C 6.40625 -2.765625 6.46875 -2.734375 6.578125 -2.734375 C 6.71875 -2.734375 6.953125 -2.796875 7.171875 -2.921875 C 7.4375 -3.09375 7.640625 -3.28125 7.6875 -3.421875 L 7.703125 -3.5625 C 7.71875 -3.6875 7.65625 -3.734375 7.546875 -3.734375 L 4.796875 -3.734375 C 5.046875 -4.375 5.25 -5.03125 5.421875 -5.703125 L 5.46875 -5.921875 L 7.046875 -5.921875 C 7.40625 -5.921875 7.921875 -5.921875 7.890625 -5.8125 C 7.890625 -5.703125 7.953125 -5.65625 8.0625 -5.65625 C 8.21875 -5.65625 8.4375 -5.734375 8.65625 -5.859375 C 8.921875 -6.015625 9.125 -6.21875 9.15625 -6.359375 Z M 9.15625 -6.359375 "/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<clipPath id="clip-0">
|
||||||
|
<path clip-rule="nonzero" d="M 283 13 L 304.269531 13 L 304.269531 45 L 283 45 Z M 283 13 "/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="clip-1">
|
||||||
|
<path clip-rule="nonzero" d="M 33 28 L 290 28 L 290 63.722656 L 33 63.722656 Z M 33 28 "/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="clip-2">
|
||||||
|
<path clip-rule="nonzero" d="M 1.109375 28 L 21 28 L 21 30 L 1.109375 30 Z M 1.109375 28 "/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -28.347455 -28.346902 L 28.345308 -28.346902 L 28.345308 28.34586 L -28.347455 28.34586 Z M -28.347455 -28.346902 " transform="matrix(0.990123, 0, 0, -0.990123, 252.266688, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-0" x="240.552542" y="32.452274"/>
|
||||||
|
<use xlink:href="#glyph-0-1" x="247.266116" y="32.452274"/>
|
||||||
|
<use xlink:href="#glyph-0-2" x="250.006391" y="32.452274"/>
|
||||||
|
<use xlink:href="#glyph-0-3" x="254.938491" y="32.452274"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-4" x="260.142843" y="32.452274"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -86.038357 -14.171739 L -52.018754 -14.171739 L -52.018754 14.174642 L -86.038357 14.174642 Z M -86.038357 -14.171739 " transform="matrix(0.990123, 0, 0, -0.990123, 252.266688, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-0" x="174.747972" y="32.981"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-0" x="181.967949" y="29.401705"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-3-0" x="188.133353" y="29.401705"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -186.889929 -28.346902 L -109.709657 -28.346902 L -109.709657 28.34586 L -186.889929 28.34586 Z M -186.889929 -28.346902 " transform="matrix(0.990123, 0, 0, -0.990123, 252.266688, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-0" x="70.512765" y="16.302376"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-5-0" x="78.890196" y="17.78162"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-6-0" x="85.339858" y="18.767783"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-7-0" x="128.444866" y="16.302376"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-5" x="100.6432" y="27.799686"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-5" x="104.478937" y="30.759164"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-5" x="108.315664" y="33.717651"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-7-0" x="77.906014" y="46.541725"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-0" x="121.466322" y="46.541725"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-5-1" x="129.8449" y="48.020969"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-6-1" x="135.787619" y="49.007132"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -210.064131 -0.000521077 C -210.064131 5.503056 -214.526171 9.961151 -220.029749 9.961151 C -225.52938 9.961151 -229.99142 5.503056 -229.99142 -0.000521077 C -229.99142 -5.504098 -225.52938 -9.962193 -220.029749 -9.962193 C -214.526171 -9.962193 -210.064131 -5.504098 -210.064131 -0.000521077 Z M -210.064131 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 252.266688, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-8-0" x="28.279065" y="33.179024"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-9-0" x="24.769079" y="46.645688"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 28.84635 -0.000521077 L 46.887826 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 252.266688, 29.054172)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 301.875 29.054688 L 297.476562 27.386719 L 298.9375 29.054688 L 297.476562 30.71875 Z M 301.875 29.054688 "/>
|
||||||
|
<g clip-path="url(#clip-0)">
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.052807 -0.000521077 L 1.610493 1.684086 L 3.086004 -0.000521077 L 1.610493 -1.681183 Z M 6.052807 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 295.881976, 29.054172)"/>
|
||||||
|
</g>
|
||||||
|
<g clip-path="url(#clip-1)">
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 37.348292 -0.000521077 L 37.348292 -34.016179 L -220.029749 -34.016179 L -220.029749 -14.597823 " transform="matrix(0.990123, 0, 0, -0.990123, 252.266688, 29.054172)"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.052369 0.00102853 L 1.610055 1.681691 L 3.089511 0.00102853 L 1.610055 -1.683579 Z M 6.052369 0.00102853 " transform="matrix(0, -0.990123, -0.990123, 0, 34.411175, 46.316809)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 291.21875 29.054688 C 291.21875 27.964844 290.335938 27.082031 289.246094 27.082031 C 288.15625 27.082031 287.273438 27.964844 287.273438 29.054688 C 287.273438 30.144531 288.15625 31.027344 289.246094 31.027344 C 290.335938 31.027344 291.21875 30.144531 291.21875 29.054688 Z M 291.21875 29.054688 "/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-10-0" x="284.493214" y="25.273882"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -210.064131 -0.000521077 L -192.022656 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 252.266688, 29.054172)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.053196 -0.000521077 L 1.606937 1.684086 L 3.086393 -0.000521077 L 1.606937 -1.681183 Z M 6.053196 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 59.33081, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-1" x="49.541958" y="23.793648"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-1" x="54.309401" y="25.273882"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -109.212559 -0.000521077 L -91.167139 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 252.266688, 29.054172)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.055113 -0.000521077 L 1.608854 1.684086 L 3.08831 -0.000521077 L 1.608854 -1.681183 Z M 6.055113 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 159.188287, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-10-1" x="150.844421" y="25.273882"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -51.521657 -0.000521077 L -33.480182 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 252.266688, 29.054172)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.05217 -0.000521077 L 1.609856 1.684086 L 3.089312 -0.000521077 L 1.609856 -1.681183 Z M 6.05217 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 216.308388, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-2" x="209.133956" y="23.355023"/>
|
||||||
|
</g>
|
||||||
|
<g clip-path="url(#clip-2)">
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -234.62705 -0.000521077 L -252.668525 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 252.266688, 29.054172)"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.051862 -0.000521077 L 1.609548 1.684086 L 3.089004 -0.000521077 L 1.609548 -1.681183 Z M 6.051862 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 17.148537, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-3" x="8.395414" y="23.793648"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-1" x="13.610392" y="25.273882"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 34 KiB |
BIN
figs/nhexa_control_strut.pdf
Normal file
BIN
figs/nhexa_control_strut.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
161
figs/nhexa_control_strut.svg
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="293.055" height="64.358" viewBox="0 0 293.055 64.358">
|
||||||
|
<defs>
|
||||||
|
<g>
|
||||||
|
<g id="glyph-0-0">
|
||||||
|
<path d="M 6.15625 -4.90625 C 6.15625 -5.859375 5.171875 -6.734375 3.828125 -6.734375 L 0.34375 -6.734375 L 0.34375 -6.421875 L 0.578125 -6.421875 C 1.34375 -6.421875 1.359375 -6.3125 1.359375 -5.96875 L 1.359375 -0.765625 C 1.359375 -0.421875 1.34375 -0.3125 0.578125 -0.3125 L 0.34375 -0.3125 L 0.34375 0 C 0.6875 -0.03125 1.421875 -0.03125 1.796875 -0.03125 C 2.171875 -0.03125 2.90625 -0.03125 3.25 0 L 3.25 -0.3125 L 3.015625 -0.3125 C 2.25 -0.3125 2.234375 -0.421875 2.234375 -0.765625 L 2.234375 -3.109375 L 3.90625 -3.109375 C 5.09375 -3.109375 6.15625 -3.921875 6.15625 -4.90625 Z M 5.140625 -4.90625 C 5.140625 -4.4375 5.140625 -3.375 3.5625 -3.375 L 2.203125 -3.375 L 2.203125 -6.03125 C 2.203125 -6.359375 2.234375 -6.421875 2.6875 -6.421875 L 3.5625 -6.421875 C 5.140625 -6.421875 5.140625 -5.390625 5.140625 -4.90625 Z M 5.140625 -4.90625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-1">
|
||||||
|
<path d="M 2.515625 0 L 2.515625 -0.3125 C 1.859375 -0.3125 1.75 -0.3125 1.75 -0.75 L 1.75 -6.84375 L 0.328125 -6.734375 L 0.328125 -6.421875 C 1.015625 -6.421875 1.09375 -6.359375 1.09375 -5.875 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.328125 -0.3125 L 0.328125 0 L 1.421875 -0.03125 Z M 2.515625 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-2">
|
||||||
|
<path d="M 4.765625 -0.875 L 4.765625 -1.421875 L 4.515625 -1.421875 L 4.515625 -0.875 C 4.515625 -0.3125 4.265625 -0.25 4.15625 -0.25 C 3.828125 -0.25 3.796875 -0.6875 3.796875 -0.734375 L 3.796875 -2.71875 C 3.796875 -3.125 3.796875 -3.515625 3.4375 -3.875 C 3.0625 -4.265625 2.5625 -4.421875 2.09375 -4.421875 C 1.28125 -4.421875 0.59375 -3.953125 0.59375 -3.296875 C 0.59375 -3 0.796875 -2.84375 1.0625 -2.84375 C 1.328125 -2.84375 1.515625 -3.03125 1.515625 -3.296875 C 1.515625 -3.40625 1.453125 -3.734375 1 -3.75 C 1.265625 -4.09375 1.75 -4.203125 2.078125 -4.203125 C 2.546875 -4.203125 3.109375 -3.8125 3.109375 -2.9375 L 3.109375 -2.578125 C 2.609375 -2.546875 1.921875 -2.515625 1.296875 -2.21875 C 0.5625 -1.890625 0.3125 -1.375 0.3125 -0.9375 C 0.3125 -0.140625 1.265625 0.109375 1.890625 0.109375 C 2.546875 0.109375 3 -0.28125 3.1875 -0.75 C 3.21875 -0.359375 3.484375 0.0625 3.953125 0.0625 C 4.15625 0.0625 4.765625 -0.078125 4.765625 -0.875 Z M 3.109375 -1.375 C 3.109375 -0.4375 2.40625 -0.109375 1.96875 -0.109375 C 1.484375 -0.109375 1.078125 -0.453125 1.078125 -0.953125 C 1.078125 -1.484375 1.484375 -2.3125 3.109375 -2.359375 Z M 3.109375 -1.375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-3">
|
||||||
|
<path d="M 5.28125 0 L 5.28125 -0.3125 C 4.765625 -0.3125 4.515625 -0.3125 4.5 -0.59375 L 4.5 -2.484375 C 4.5 -3.328125 4.5 -3.640625 4.203125 -4 C 4.0625 -4.15625 3.734375 -4.359375 3.171875 -4.359375 C 2.4375 -4.359375 1.984375 -3.9375 1.703125 -3.328125 L 1.703125 -4.359375 L 0.3125 -4.25 L 0.3125 -3.9375 C 1 -3.9375 1.078125 -3.875 1.078125 -3.390625 L 1.078125 -0.75 C 1.078125 -0.3125 0.96875 -0.3125 0.3125 -0.3125 L 0.3125 0 L 1.421875 -0.03125 L 2.53125 0 L 2.53125 -0.3125 C 1.875 -0.3125 1.765625 -0.3125 1.765625 -0.75 L 1.765625 -2.5625 C 1.765625 -3.59375 2.46875 -4.140625 3.09375 -4.140625 C 3.71875 -4.140625 3.828125 -3.609375 3.828125 -3.046875 L 3.828125 -0.75 C 3.828125 -0.3125 3.71875 -0.3125 3.0625 -0.3125 L 3.0625 0 L 4.171875 -0.03125 Z M 5.28125 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-4">
|
||||||
|
<path d="M 3.265625 -1.21875 L 3.265625 -1.78125 L 3.03125 -1.78125 L 3.03125 -1.25 C 3.03125 -0.515625 2.734375 -0.140625 2.359375 -0.140625 C 1.703125 -0.140625 1.703125 -1.03125 1.703125 -1.203125 L 1.703125 -3.9375 L 3.109375 -3.9375 L 3.109375 -4.25 L 1.703125 -4.25 L 1.703125 -6.0625 L 1.453125 -6.0625 C 1.453125 -5.25 1.15625 -4.203125 0.1875 -4.15625 L 0.1875 -3.9375 L 1.03125 -3.9375 L 1.03125 -1.21875 C 1.03125 -0.015625 1.9375 0.109375 2.296875 0.109375 C 3 0.109375 3.265625 -0.59375 3.265625 -1.21875 Z M 3.265625 -1.21875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-5">
|
||||||
|
<path d="M 1.890625 -0.515625 C 1.890625 -0.8125 1.65625 -1.046875 1.375 -1.046875 C 1.078125 -1.046875 0.84375 -0.8125 0.84375 -0.515625 C 0.84375 -0.234375 1.078125 0 1.375 0 C 1.65625 0 1.890625 -0.234375 1.890625 -0.515625 Z M 1.890625 -0.515625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-0">
|
||||||
|
<path d="M 7.296875 -0.203125 C 7.296875 -0.3125 7.1875 -0.3125 7.09375 -0.3125 C 6.6875 -0.3125 6.5625 -0.40625 6.421875 -0.75 L 5.015625 -3.984375 C 5.015625 -4.015625 4.96875 -4.09375 4.96875 -4.125 C 4.96875 -4.125 5.140625 -4.265625 5.25 -4.34375 L 6.984375 -5.671875 C 7.90625 -6.359375 8.296875 -6.40625 8.59375 -6.421875 C 8.671875 -6.4375 8.765625 -6.453125 8.765625 -6.625 C 8.765625 -6.671875 8.734375 -6.734375 8.65625 -6.734375 C 8.4375 -6.734375 8.1875 -6.703125 7.953125 -6.703125 C 7.59375 -6.703125 7.21875 -6.734375 6.859375 -6.734375 C 6.796875 -6.734375 6.671875 -6.734375 6.671875 -6.53125 C 6.671875 -6.46875 6.71875 -6.4375 6.796875 -6.421875 C 7.015625 -6.40625 7.09375 -6.359375 7.09375 -6.21875 C 7.09375 -6.046875 6.796875 -5.8125 6.75 -5.765625 L 2.90625 -2.8125 L 3.6875 -5.96875 C 3.78125 -6.328125 3.796875 -6.421875 4.515625 -6.421875 C 4.765625 -6.421875 4.84375 -6.421875 4.84375 -6.625 C 4.84375 -6.71875 4.765625 -6.734375 4.71875 -6.734375 L 3.453125 -6.703125 L 2.171875 -6.734375 C 2.109375 -6.734375 1.984375 -6.734375 1.984375 -6.546875 C 1.984375 -6.421875 2.078125 -6.421875 2.265625 -6.421875 C 2.390625 -6.421875 2.578125 -6.421875 2.6875 -6.40625 C 2.84375 -6.390625 2.90625 -6.359375 2.90625 -6.25 C 2.90625 -6.21875 2.90625 -6.1875 2.875 -6.0625 L 1.546875 -0.765625 C 1.453125 -0.390625 1.421875 -0.3125 0.65625 -0.3125 C 0.484375 -0.3125 0.375 -0.3125 0.375 -0.125 C 0.375 0 0.5 0 0.515625 0 L 1.78125 -0.03125 L 2.40625 -0.015625 C 2.625 -0.015625 2.84375 0 3.046875 0 C 3.109375 0 3.25 0 3.25 -0.203125 C 3.25 -0.3125 3.15625 -0.3125 2.96875 -0.3125 C 2.609375 -0.3125 2.328125 -0.3125 2.328125 -0.484375 C 2.328125 -0.546875 2.390625 -0.765625 2.421875 -0.921875 L 2.8125 -2.46875 L 4.28125 -3.609375 L 5.421875 -0.953125 C 5.546875 -0.6875 5.546875 -0.671875 5.546875 -0.609375 C 5.546875 -0.3125 5.109375 -0.3125 5.03125 -0.3125 C 4.921875 -0.3125 4.8125 -0.3125 4.8125 -0.109375 C 4.8125 0 4.953125 0 4.953125 0 C 5.34375 0 5.765625 -0.03125 6.15625 -0.03125 C 6.375 -0.03125 6.90625 0 7.125 0 C 7.171875 0 7.296875 0 7.296875 -0.203125 Z M 7.296875 -0.203125 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-0">
|
||||||
|
<path d="M 3.265625 0 L 3.265625 -0.25 L 3 -0.25 C 2.3125 -0.25 2.3125 -0.34375 2.3125 -0.5625 L 2.3125 -4.390625 C 2.3125 -4.578125 2.296875 -4.578125 2.109375 -4.578125 C 1.671875 -4.15625 1.03125 -4.140625 0.75 -4.140625 L 0.75 -3.890625 C 0.921875 -3.890625 1.375 -3.890625 1.75 -4.09375 L 1.75 -0.5625 C 1.75 -0.34375 1.75 -0.25 1.0625 -0.25 L 0.796875 -0.25 L 0.796875 0 L 2.03125 -0.03125 Z M 3.265625 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-1">
|
||||||
|
<path d="M 3.546875 -1.40625 C 3.546875 -2.28125 2.859375 -2.9375 2.046875 -2.9375 C 1.484375 -2.9375 1.1875 -2.5625 1.03125 -2.265625 C 1.03125 -2.828125 1.078125 -3.328125 1.34375 -3.75 C 1.578125 -4.125 1.953125 -4.390625 2.390625 -4.390625 C 2.609375 -4.390625 2.875 -4.328125 3.015625 -4.140625 C 2.84375 -4.125 2.703125 -4.015625 2.703125 -3.8125 C 2.703125 -3.640625 2.8125 -3.484375 3.03125 -3.484375 C 3.234375 -3.484375 3.359375 -3.625 3.359375 -3.828125 C 3.359375 -4.234375 3.0625 -4.578125 2.375 -4.578125 C 1.390625 -4.578125 0.375 -3.671875 0.375 -2.1875 C 0.375 -0.40625 1.21875 0.140625 1.96875 0.140625 C 2.8125 0.140625 3.546875 -0.5 3.546875 -1.40625 Z M 2.890625 -1.40625 C 2.890625 -1.015625 2.890625 -0.71875 2.703125 -0.453125 C 2.53125 -0.21875 2.3125 -0.078125 1.96875 -0.078125 C 1.625 -0.078125 1.359375 -0.28125 1.21875 -0.59375 C 1.109375 -0.796875 1.0625 -1.140625 1.0625 -1.546875 C 1.0625 -2.21875 1.453125 -2.734375 2.015625 -2.734375 C 2.328125 -2.734375 2.546875 -2.625 2.71875 -2.359375 C 2.875 -2.09375 2.890625 -1.8125 2.890625 -1.40625 Z M 2.890625 -1.40625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-3-0">
|
||||||
|
<path d="M 4.53125 -3.15625 C 4.53125 -3.9375 4.484375 -4.734375 4.140625 -5.46875 C 3.6875 -6.40625 2.875 -6.5625 2.46875 -6.5625 C 1.875 -6.5625 1.15625 -6.3125 0.75 -5.390625 C 0.4375 -4.71875 0.390625 -3.9375 0.390625 -3.15625 C 0.390625 -2.421875 0.421875 -1.53125 0.828125 -0.78125 C 1.25 0.015625 1.96875 0.21875 2.453125 0.21875 C 2.984375 0.21875 3.734375 0.015625 4.171875 -0.921875 C 4.484375 -1.609375 4.53125 -2.375 4.53125 -3.15625 Z M 3.71875 -3.265625 C 3.71875 -2.53125 3.71875 -1.859375 3.609375 -1.234375 C 3.453125 -0.296875 2.90625 0 2.453125 0 C 2.078125 0 1.484375 -0.25 1.3125 -1.1875 C 1.203125 -1.78125 1.203125 -2.6875 1.203125 -3.265625 C 1.203125 -3.90625 1.203125 -4.5625 1.28125 -5.09375 C 1.46875 -6.265625 2.203125 -6.34375 2.453125 -6.34375 C 2.78125 -6.34375 3.4375 -6.171875 3.625 -5.203125 C 3.71875 -4.640625 3.71875 -3.890625 3.71875 -3.265625 Z M 3.71875 -3.265625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-4-0">
|
||||||
|
<path d="M 5.9375 -6.109375 C 5.96875 -6.265625 5.984375 -6.265625 6.046875 -6.28125 C 6.171875 -6.296875 6.3125 -6.296875 6.421875 -6.296875 C 6.6875 -6.296875 6.84375 -6.296875 6.84375 -6.59375 C 6.84375 -6.609375 6.828125 -6.765625 6.640625 -6.765625 C 6.4375 -6.765625 6.21875 -6.75 6.015625 -6.75 C 5.796875 -6.75 5.5625 -6.734375 5.328125 -6.734375 C 4.953125 -6.734375 4 -6.765625 3.625 -6.765625 C 3.5 -6.765625 3.328125 -6.765625 3.328125 -6.484375 C 3.328125 -6.296875 3.484375 -6.296875 3.65625 -6.296875 L 4 -6.296875 C 4.390625 -6.296875 4.40625 -6.296875 4.640625 -6.265625 L 3.453125 -1.484375 C 3.203125 -0.484375 2.578125 -0.1875 2.125 -0.1875 C 2.046875 -0.1875 1.609375 -0.203125 1.328125 -0.421875 C 1.859375 -0.546875 2.03125 -1.015625 2.03125 -1.28125 C 2.03125 -1.609375 1.765625 -1.84375 1.421875 -1.84375 C 1.03125 -1.84375 0.546875 -1.53125 0.546875 -0.90625 C 0.546875 -0.234375 1.234375 0.171875 2.171875 0.171875 C 3.28125 0.171875 4.46875 -0.28125 4.765625 -1.4375 Z M 5.9375 -6.109375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-4-1">
|
||||||
|
<path d="M 3.546875 -2.09375 C 3.6875 -2.09375 3.921875 -2.09375 3.921875 -2.34375 C 3.921875 -2.5625 3.734375 -2.5625 3.546875 -2.5625 L 1.859375 -2.5625 C 2.015625 -3.171875 2.390625 -3.921875 3.5625 -3.921875 L 3.96875 -3.921875 C 4.109375 -3.921875 4.375 -3.921875 4.375 -4.171875 C 4.375 -4.25 4.328125 -4.375 4.1875 -4.375 L 3.765625 -4.375 C 3.234375 -4.375 2.1875 -4.375 1.328125 -3.609375 C 0.875 -3.1875 0.5 -2.546875 0.5 -1.765625 C 0.5 -0.421875 1.625 0.078125 2.78125 0.078125 C 2.921875 0.078125 3.25 0.078125 3.703125 -0.09375 C 3.75 -0.09375 4.296875 -0.3125 4.296875 -0.46875 C 4.296875 -0.578125 4.234375 -0.765625 4.109375 -0.765625 C 4.078125 -0.765625 4.046875 -0.765625 3.953125 -0.6875 C 3.359375 -0.328125 3.0625 -0.28125 2.8125 -0.28125 C 2.5625 -0.28125 1.640625 -0.328125 1.640625 -1.34375 C 1.640625 -1.609375 1.6875 -1.859375 1.75 -2.09375 Z M 3.546875 -2.09375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-4-2">
|
||||||
|
<path d="M 4.234375 -3.921875 L 5.390625 -3.921875 C 5.578125 -3.921875 5.75 -3.921875 5.75 -4.203125 C 5.75 -4.375 5.578125 -4.375 5.40625 -4.375 L 4.3125 -4.375 L 4.640625 -6.15625 C 4.65625 -6.34375 4.65625 -6.359375 4.765625 -6.453125 C 4.890625 -6.5625 5 -6.5625 5.046875 -6.5625 C 5.1875 -6.5625 5.28125 -6.546875 5.390625 -6.5 C 5.15625 -6.375 4.984375 -6.125 4.984375 -5.859375 C 4.984375 -5.5625 5.21875 -5.40625 5.46875 -5.40625 C 5.859375 -5.40625 6.171875 -5.765625 6.171875 -6.125 C 6.171875 -6.640625 5.65625 -6.921875 5.046875 -6.921875 C 4.578125 -6.921875 4.03125 -6.734375 3.6875 -6.1875 C 3.453125 -5.8125 3.40625 -5.4375 3.21875 -4.375 L 2.25 -4.375 C 2.0625 -4.375 1.890625 -4.375 1.890625 -4.09375 C 1.890625 -3.921875 2.0625 -3.921875 2.21875 -3.921875 L 3.125 -3.921875 L 2.375 0.28125 C 2.359375 0.375 2.25 1 2.203125 1.140625 C 2.171875 1.1875 2.015625 1.640625 1.703125 1.640625 C 1.515625 1.640625 1.4375 1.609375 1.375 1.578125 C 1.609375 1.453125 1.796875 1.203125 1.796875 0.921875 C 1.796875 0.625 1.5625 0.46875 1.328125 0.46875 C 0.921875 0.46875 0.609375 0.828125 0.609375 1.203125 C 0.609375 1.734375 1.171875 1.984375 1.6875 1.984375 C 2.421875 1.984375 2.9375 1.265625 3.015625 1.140625 C 3.4375 0.484375 3.671875 -0.765625 3.703125 -0.9375 Z M 4.234375 -3.921875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-4-3">
|
||||||
|
<path d="M 4.375 -3.96875 C 3.828125 -3.859375 3.78125 -3.375 3.78125 -3.265625 C 3.78125 -3.0625 3.9375 -2.8125 4.265625 -2.8125 C 4.609375 -2.8125 4.984375 -3.09375 4.984375 -3.59375 C 4.984375 -4.046875 4.625 -4.453125 4.015625 -4.453125 C 3.453125 -4.453125 3 -4.1875 2.703125 -3.859375 C 2.46875 -4.3125 1.90625 -4.453125 1.546875 -4.453125 C 1.1875 -4.453125 0.90625 -4.25 0.6875 -3.890625 C 0.453125 -3.515625 0.3125 -2.984375 0.3125 -2.921875 C 0.3125 -2.78125 0.46875 -2.78125 0.546875 -2.78125 C 0.65625 -2.78125 0.703125 -2.78125 0.75 -2.828125 C 0.765625 -2.84375 0.765625 -2.875 0.828125 -3.109375 C 1.015625 -3.859375 1.234375 -4.09375 1.5 -4.09375 C 1.640625 -4.09375 1.71875 -4 1.71875 -3.75 C 1.71875 -3.5625 1.703125 -3.453125 1.59375 -3 C 1.53125 -2.828125 1.375 -2.171875 1.3125 -1.9375 C 1.265625 -1.75 1.15625 -1.296875 1.109375 -1.125 C 1.0625 -0.875 0.9375 -0.421875 0.9375 -0.359375 C 0.9375 -0.140625 1.09375 0.078125 1.40625 0.078125 C 1.59375 0.078125 1.9375 -0.046875 2.046875 -0.4375 C 2.0625 -0.46875 2.734375 -3.15625 2.734375 -3.21875 C 2.78125 -3.359375 2.78125 -3.375 2.90625 -3.53125 C 3.140625 -3.8125 3.5 -4.09375 4 -4.09375 C 4.234375 -4.09375 4.34375 -4 4.375 -3.96875 Z M 4.375 -3.96875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-5-0">
|
||||||
|
<path d="M 11.46875 -4.25 C 11.46875 -4.546875 11.203125 -4.546875 10.9375 -4.546875 L 6.421875 -4.546875 L 6.421875 -9.0625 C 6.421875 -9.3125 6.421875 -9.59375 6.140625 -9.59375 C 5.828125 -9.59375 5.828125 -9.328125 5.828125 -9.0625 L 5.828125 -4.546875 L 1.3125 -4.546875 C 1.078125 -4.546875 0.78125 -4.546875 0.78125 -4.265625 C 0.78125 -3.953125 1.0625 -3.953125 1.3125 -3.953125 L 5.828125 -3.953125 L 5.828125 0.5625 C 5.828125 0.796875 5.828125 1.09375 6.125 1.09375 C 6.421875 1.09375 6.421875 0.8125 6.421875 0.5625 L 6.421875 -3.953125 L 10.9375 -3.953125 C 11.1875 -3.953125 11.46875 -3.953125 11.46875 -4.25 Z M 11.46875 -4.25 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-6-0">
|
||||||
|
<path d="M 6.84375 -2.46875 C 6.84375 -2.65625 6.65625 -2.65625 6.515625 -2.65625 L 1.140625 -2.65625 C 1 -2.65625 0.8125 -2.65625 0.8125 -2.46875 C 0.8125 -2.265625 1 -2.265625 1.140625 -2.265625 L 6.515625 -2.265625 C 6.65625 -2.265625 6.84375 -2.265625 6.84375 -2.46875 Z M 6.84375 -2.46875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-7-0">
|
||||||
|
<path d="M 7.671875 -1.0625 C 7.671875 -1.15625 7.5625 -1.1875 7.5 -1.1875 C 7.328125 -1.1875 7 -1.078125 6.71875 -0.859375 C 6.328125 -0.859375 6.015625 -0.859375 5.859375 -2.078125 L 5.6875 -3.59375 C 8.296875 -5.015625 8.9375 -5.671875 8.9375 -6.1875 C 8.9375 -6.59375 8.578125 -6.765625 8.28125 -6.765625 C 7.84375 -6.765625 7.15625 -6.28125 7.15625 -6.03125 C 7.15625 -5.984375 7.171875 -5.921875 7.328125 -5.90625 C 7.640625 -5.875 7.65625 -5.625 7.65625 -5.578125 C 7.65625 -5.46875 7.625 -5.40625 7.390625 -5.21875 C 6.984375 -4.921875 6.28125 -4.53125 5.625 -4.15625 C 5.484375 -5.0625 5.484375 -5.546875 5.375 -5.984375 C 5.140625 -6.765625 4.640625 -6.765625 4.328125 -6.765625 C 2.984375 -6.765625 2.390625 -5.953125 2.390625 -5.703125 C 2.390625 -5.59375 2.515625 -5.578125 2.578125 -5.578125 C 2.578125 -5.578125 2.90625 -5.578125 3.34375 -5.90625 C 3.65625 -5.90625 4.03125 -5.90625 4.171875 -4.9375 L 4.34375 -3.453125 C 3.671875 -3.09375 2.765625 -2.609375 2.046875 -2.125 C 1.59375 -1.84375 0.546875 -1.171875 0.546875 -0.578125 C 0.546875 -0.171875 0.890625 0 1.21875 0 C 1.640625 0 2.328125 -0.484375 2.328125 -0.734375 C 2.328125 -0.84375 2.21875 -0.84375 2.140625 -0.859375 C 1.96875 -0.875 1.828125 -1.015625 1.828125 -1.1875 C 1.828125 -1.3125 1.875 -1.359375 2.140625 -1.5625 C 2.609375 -1.90625 3.359375 -2.3125 4.40625 -2.90625 C 4.609375 -1.109375 4.640625 -1 4.65625 -0.875 C 4.890625 0 5.40625 0 5.734375 0 C 7.09375 0 7.671875 -0.8125 7.671875 -1.0625 Z M 7.671875 -1.0625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-8-0">
|
||||||
|
<path d="M 5.28125 -0.671875 C 5.28125 -0.734375 5.234375 -0.734375 5.1875 -0.734375 C 5.09375 -0.734375 4.8125 -0.625 4.671875 -0.421875 C 4.4375 -0.421875 4.171875 -0.421875 4.046875 -1.046875 L 3.859375 -2.453125 C 3.859375 -2.484375 3.859375 -2.5 3.875 -2.5 L 4.125 -2.640625 C 6.1875 -3.75 6.1875 -4.0625 6.1875 -4.3125 C 6.1875 -4.515625 6.078125 -4.71875 5.78125 -4.71875 C 5.5625 -4.71875 5.234375 -4.46875 5.234375 -4.359375 C 5.234375 -4.296875 5.265625 -4.296875 5.3125 -4.296875 C 5.484375 -4.28125 5.53125 -4.125 5.53125 -3.984375 C 5.53125 -3.84375 5.53125 -3.765625 4.90625 -3.375 C 4.765625 -3.28125 4.640625 -3.203125 3.8125 -2.75 C 3.734375 -3.265625 3.671875 -3.8125 3.625 -4.0625 C 3.484375 -4.625 3.234375 -4.71875 2.9375 -4.71875 C 2.171875 -4.71875 1.765625 -4.21875 1.765625 -4.046875 C 1.765625 -3.984375 1.8125 -3.984375 1.84375 -3.984375 C 1.96875 -3.984375 2.25 -4.109375 2.375 -4.296875 C 2.609375 -4.296875 2.859375 -4.296875 2.984375 -3.734375 L 3.171875 -2.40625 C 2.78125 -2.203125 2.046875 -1.8125 1.625 -1.5625 C 0.53125 -0.890625 0.484375 -0.625 0.484375 -0.40625 C 0.484375 -0.203125 0.59375 0 0.875 0 C 1.078125 0 1.4375 -0.234375 1.4375 -0.359375 C 1.4375 -0.421875 1.390625 -0.421875 1.359375 -0.421875 C 1.1875 -0.4375 1.125 -0.5625 1.125 -0.71875 C 1.125 -0.875 1.125 -0.96875 1.96875 -1.484375 L 3.203125 -2.140625 C 3.296875 -1.609375 3.375 -0.921875 3.40625 -0.78125 C 3.515625 -0.3125 3.625 0 4.109375 0 C 4.875 0 5.28125 -0.484375 5.28125 -0.671875 Z M 5.28125 -0.671875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-8-1">
|
||||||
|
<path d="M 5.09375 -0.96875 C 5.09375 -1.015625 5.078125 -1.03125 5.015625 -1.03125 C 4.921875 -1.03125 4.46875 -0.875 4.390625 -0.59375 C 4.28125 -0.3125 4.203125 -0.3125 4.046875 -0.3125 C 3.671875 -0.3125 3.171875 -0.4375 2.8125 -0.53125 C 2.46875 -0.609375 2.09375 -0.703125 1.734375 -0.703125 C 1.703125 -0.703125 1.5625 -0.703125 1.484375 -0.671875 C 1.84375 -1.234375 1.9375 -1.5625 2.046875 -2 C 2.1875 -2.515625 2.390625 -3.234375 2.734375 -3.8125 C 3.0625 -4.359375 3.234375 -4.40625 3.46875 -4.40625 C 3.796875 -4.40625 4.015625 -4.15625 4.015625 -3.8125 C 4.015625 -3.703125 4 -3.625 4 -3.609375 C 4 -3.5625 4.015625 -3.546875 4.078125 -3.546875 C 4.109375 -3.546875 4.265625 -3.5625 4.515625 -3.734375 C 4.65625 -3.84375 4.734375 -3.90625 4.734375 -4.171875 C 4.734375 -4.4375 4.578125 -4.859375 4.03125 -4.859375 C 3.421875 -4.859375 2.765625 -4.453125 2.40625 -4.015625 C 1.953125 -3.5 1.640625 -2.796875 1.34375 -1.65625 C 1.1875 -1.03125 0.9375 -0.5 0.609375 -0.234375 C 0.546875 -0.171875 0.359375 0 0.359375 0.09375 C 0.359375 0.140625 0.421875 0.140625 0.4375 0.140625 C 0.6875 0.140625 1 -0.15625 1.09375 -0.234375 C 1.28125 -0.234375 1.5625 -0.234375 2.1875 -0.078125 C 2.71875 0.0625 3.09375 0.140625 3.484375 0.140625 C 4.34375 0.140625 5.09375 -0.65625 5.09375 -0.96875 Z M 5.09375 -0.96875 "/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<clipPath id="clip-0">
|
||||||
|
<path clip-rule="nonzero" d="M 270 13 L 291.140625 13 L 291.140625 45 L 270 45 Z M 270 13 "/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="clip-1">
|
||||||
|
<path clip-rule="nonzero" d="M 33 28 L 277 28 L 277 63.722656 L 33 63.722656 Z M 33 28 "/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -28.345399 -28.346902 L 28.347364 -28.346902 L 28.347364 28.34586 L -28.345399 28.34586 Z M -28.345399 -28.346902 " transform="matrix(0.990123, 0, 0, -0.990123, 239.139652, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-0" x="227.425506" y="32.452274"/>
|
||||||
|
<use xlink:href="#glyph-0-1" x="234.139081" y="32.452274"/>
|
||||||
|
<use xlink:href="#glyph-0-2" x="236.879355" y="32.452274"/>
|
||||||
|
<use xlink:href="#glyph-0-3" x="241.811456" y="32.452274"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-4" x="247.015808" y="32.452274"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -116.071235 -28.346902 L -52.020644 -28.346902 L -52.020644 28.34586 L -116.071235 28.34586 Z M -116.071235 -28.346902 " transform="matrix(0.990123, 0, 0, -0.990123, 239.139652, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-0" x="127.503275" y="16.302376"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-0" x="135.880707" y="17.78162"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-3-0" x="175.477709" y="16.302376"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-5" x="150.717701" y="27.799686"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-5" x="154.554428" y="30.759164"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-5" x="158.390165" y="33.717651"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-3-0" x="131.438024" y="46.541725"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-0" x="171.541969" y="46.541725"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-1" x="179.920391" y="48.020969"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -173.762137 -14.171739 L -139.74648 -14.171739 L -139.74648 14.174642 L -173.762137 14.174642 Z M -173.762137 -14.171739 " transform="matrix(0.990123, 0, 0, -0.990123, 239.139652, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-0" x="80.325891" y="32.438412"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -196.93634 -0.000521077 C -196.93634 5.503056 -201.39838 9.961151 -206.901957 9.961151 C -212.401589 9.961151 -216.863629 5.503056 -216.863629 -0.000521077 C -216.863629 -5.504098 -212.401589 -9.962193 -206.901957 -9.962193 C -201.39838 -9.962193 -196.93634 -5.504098 -196.93634 -0.000521077 Z M -196.93634 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 239.139652, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-5-0" x="28.150365" y="33.179024"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-6-0" x="24.640379" y="46.645688"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 28.844461 -0.000521077 L 46.889882 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 239.139652, 29.054172)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 288.75 29.054688 L 284.347656 27.386719 L 285.8125 29.054688 L 284.347656 30.71875 Z M 288.75 29.054688 "/>
|
||||||
|
<g clip-path="url(#clip-0)">
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054863 -0.000521077 L 1.608604 1.684086 L 3.088061 -0.000521077 L 1.608604 -1.681183 Z M 6.054863 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 282.75494, 29.054172)"/>
|
||||||
|
</g>
|
||||||
|
<g clip-path="url(#clip-1)">
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 37.350348 -0.000521077 L 37.350348 -34.016179 L -206.901957 -34.016179 L -206.901957 -14.597823 " transform="matrix(0.990123, 0, 0, -0.990123, 239.139652, 29.054172)"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.052369 0.00179684 L 1.610055 1.682459 L 3.089511 0.00179684 L 1.610055 -1.682811 Z M 6.052369 0.00179684 " transform="matrix(0, -0.990123, -0.990123, 0, 34.283029, 46.316809)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 278.09375 29.054688 C 278.09375 27.964844 277.210938 27.082031 276.121094 27.082031 C 275.03125 27.082031 274.148438 27.964844 274.148438 29.054688 C 274.148438 30.144531 275.03125 31.027344 276.121094 31.027344 C 277.210938 31.027344 278.09375 30.144531 278.09375 29.054688 Z M 278.09375 29.054688 "/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-7-0" x="271.365188" y="25.273882"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -196.93634 -0.000521077 L -178.894864 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 239.139652, 29.054172)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.052437 -0.000521077 L 1.610123 1.684086 L 3.085634 -0.000521077 L 1.610123 -1.681183 Z M 6.052437 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 59.202655, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-1" x="49.413258" y="23.793648"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-8-0" x="54.180701" y="25.273882"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -139.249383 -0.000521077 L -121.203962 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 239.139652, 29.054172)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.05344 -0.000521077 L 1.607181 1.684086 L 3.086637 -0.000521077 L 1.607181 -1.681183 Z M 6.05344 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 116.322756, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-1" x="107.131493" y="23.793648"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-8-1" x="111.898936" y="25.273882"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -51.523546 -0.000521077 L -33.478125 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 239.139652, 29.054172)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054226 -0.000521077 L 1.607967 1.684086 L 3.087423 -0.000521077 L 1.607967 -1.681183 Z M 6.054226 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 203.181352, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-2" x="196.006921" y="23.355023"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -221.495313 -0.000521077 L -239.540734 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 239.139652, 29.054172)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.055038 -0.000521077 L 1.608779 1.684086 L 3.088236 -0.000521077 L 1.608779 -1.681183 Z M 6.055038 -0.000521077 " transform="matrix(0.990123, 0, 0, -0.990123, 17.020392, 29.054172)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-3" x="8.266714" y="23.793648"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-8-0" x="13.481692" y="25.273882"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 28 KiB |
BIN
figs/nhexa_decentralized_hac_iff_loop_gain.pdf
Normal file
BIN
figs/nhexa_decentralized_hac_iff_loop_gain.png
Normal file
After Width: | Height: | Size: 69 KiB |
BIN
figs/nhexa_decentralized_hac_iff_plant_damped.pdf
Normal file
BIN
figs/nhexa_decentralized_hac_iff_plant_damped.png
Normal file
After Width: | Height: | Size: 90 KiB |
BIN
figs/nhexa_decentralized_hac_iff_plant_undamped.pdf
Normal file
BIN
figs/nhexa_decentralized_hac_iff_plant_undamped.png
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
figs/nhexa_decentralized_hac_iff_root_locus.pdf
Normal file
BIN
figs/nhexa_decentralized_hac_iff_root_locus.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
figs/nhexa_decentralized_iff_loop_gain.pdf
Normal file
BIN
figs/nhexa_decentralized_iff_loop_gain.png
Normal file
After Width: | Height: | Size: 70 KiB |
BIN
figs/nhexa_decentralized_iff_root_locus.pdf
Normal file
BIN
figs/nhexa_decentralized_iff_root_locus.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
figs/nhexa_decentralized_iff_schematic.pdf
Normal file
BIN
figs/nhexa_decentralized_iff_schematic.png
Normal file
After Width: | Height: | Size: 14 KiB |
161
figs/nhexa_decentralized_iff_schematic.svg
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="173.154" height="110.638" viewBox="0 0 173.154 110.638">
|
||||||
|
<defs>
|
||||||
|
<g>
|
||||||
|
<g id="glyph-0-0">
|
||||||
|
<path d="M 5.96875 -2.65625 C 5.96875 -4.1875 4.796875 -5.421875 3.375 -5.421875 L 0.359375 -5.421875 L 0.359375 -5.15625 L 0.546875 -5.15625 C 1.15625 -5.15625 1.171875 -5.078125 1.171875 -4.78125 L 1.171875 -0.640625 C 1.171875 -0.34375 1.15625 -0.265625 0.546875 -0.265625 L 0.359375 -0.265625 L 0.359375 0 L 3.375 0 C 4.8125 0 5.96875 -1.1875 5.96875 -2.65625 Z M 5.15625 -2.671875 C 5.15625 -2.265625 5.15625 -1.484375 4.65625 -0.890625 C 4.375 -0.578125 3.875 -0.265625 3.171875 -0.265625 L 2.25 -0.265625 C 1.890625 -0.265625 1.875 -0.3125 1.875 -0.59375 L 1.875 -4.828125 C 1.875 -5.109375 1.890625 -5.15625 2.25 -5.15625 L 3.171875 -5.15625 C 3.78125 -5.15625 4.296875 -4.90625 4.65625 -4.515625 C 5.15625 -3.90625 5.15625 -3.0625 5.15625 -2.671875 Z M 5.15625 -2.671875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-1">
|
||||||
|
<path d="M 4.078125 -0.71875 L 4.078125 -1.15625 L 3.828125 -1.15625 L 3.828125 -0.71875 C 3.828125 -0.390625 3.71875 -0.265625 3.546875 -0.265625 C 3.25 -0.265625 3.25 -0.625 3.25 -0.71875 L 3.25 -2.359375 C 3.25 -3.140625 2.5 -3.546875 1.78125 -3.546875 C 1.125 -3.546875 0.53125 -3.28125 0.53125 -2.765625 C 0.53125 -2.53125 0.703125 -2.375 0.90625 -2.375 C 1.125 -2.375 1.28125 -2.546875 1.28125 -2.75 C 1.28125 -2.9375 1.15625 -3.078125 0.984375 -3.125 C 1.28125 -3.3125 1.703125 -3.3125 1.765625 -3.3125 C 2.203125 -3.3125 2.65625 -3.015625 2.65625 -2.359375 L 2.65625 -2.109375 C 2.1875 -2.09375 1.65625 -2.0625 1.109375 -1.828125 C 0.40625 -1.53125 0.265625 -1.078125 0.265625 -0.8125 C 0.265625 -0.125 1.078125 0.078125 1.625 0.078125 C 2.203125 0.078125 2.5625 -0.25 2.734375 -0.5625 C 2.765625 -0.265625 2.96875 0.046875 3.328125 0.046875 C 3.40625 0.046875 4.078125 0.015625 4.078125 -0.71875 Z M 2.65625 -1.125 C 2.65625 -0.34375 2 -0.140625 1.6875 -0.140625 C 1.265625 -0.140625 0.921875 -0.421875 0.921875 -0.796875 C 0.921875 -1.328125 1.40625 -1.859375 2.65625 -1.90625 Z M 2.65625 -1.125 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-2">
|
||||||
|
<path d="M 6.796875 0 L 6.796875 -0.265625 C 6.296875 -0.265625 6.203125 -0.265625 6.203125 -0.625 L 6.203125 -2.40625 C 6.203125 -3.046875 5.921875 -3.5 5.0625 -3.5 C 4.328125 -3.5 3.953125 -3 3.828125 -2.765625 C 3.6875 -3.34375 3.234375 -3.5 2.71875 -3.5 C 1.953125 -3.5 1.59375 -2.953125 1.484375 -2.734375 L 1.46875 -2.734375 L 1.46875 -3.5 L 0.328125 -3.40625 L 0.328125 -3.15625 C 0.859375 -3.15625 0.921875 -3.09375 0.921875 -2.703125 L 0.921875 -0.625 C 0.921875 -0.265625 0.828125 -0.265625 0.328125 -0.265625 L 0.328125 0 C 0.671875 -0.03125 1.015625 -0.03125 1.234375 -0.03125 C 1.453125 -0.03125 1.796875 -0.03125 2.140625 0 L 2.140625 -0.265625 C 1.625 -0.265625 1.53125 -0.265625 1.53125 -0.625 L 1.53125 -2.0625 C 1.53125 -2.890625 2.15625 -3.28125 2.65625 -3.28125 C 3.171875 -3.28125 3.265625 -2.875 3.265625 -2.4375 L 3.265625 -0.625 C 3.265625 -0.265625 3.171875 -0.265625 2.65625 -0.265625 L 2.65625 0 C 3 -0.03125 3.34375 -0.03125 3.5625 -0.03125 C 3.796875 -0.03125 4.125 -0.03125 4.46875 0 L 4.46875 -0.265625 C 3.953125 -0.265625 3.859375 -0.265625 3.859375 -0.625 L 3.859375 -2.0625 C 3.859375 -2.890625 4.5 -3.28125 5 -3.28125 C 5.515625 -3.28125 5.59375 -2.875 5.59375 -2.4375 L 5.59375 -0.625 C 5.59375 -0.265625 5.5 -0.265625 5 -0.265625 L 5 0 C 5.328125 -0.03125 5.6875 -0.03125 5.890625 -0.03125 C 6.125 -0.03125 6.46875 -0.03125 6.796875 0 Z M 6.796875 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-3">
|
||||||
|
<path d="M 4.390625 -1.71875 C 4.390625 -2.703125 3.59375 -3.5 2.640625 -3.5 C 2.328125 -3.5 1.859375 -3.421875 1.453125 -3.015625 L 1.453125 -3.5 L 0.28125 -3.40625 L 0.28125 -3.15625 C 0.84375 -3.15625 0.875 -3.109375 0.875 -2.765625 L 0.875 0.921875 C 0.875 1.28125 0.78125 1.28125 0.28125 1.28125 L 0.28125 1.546875 C 0.625 1.515625 0.96875 1.515625 1.1875 1.515625 C 1.40625 1.515625 1.75 1.515625 2.09375 1.546875 L 2.09375 1.28125 C 1.578125 1.28125 1.484375 1.28125 1.484375 0.921875 L 1.484375 -0.390625 C 1.859375 0.015625 2.265625 0.078125 2.515625 0.078125 C 3.53125 0.078125 4.390625 -0.703125 4.390625 -1.71875 Z M 3.6875 -1.71875 C 3.6875 -0.796875 3.125 -0.140625 2.46875 -0.140625 C 2.203125 -0.140625 1.828125 -0.265625 1.578125 -0.65625 C 1.484375 -0.796875 1.484375 -0.796875 1.484375 -0.953125 L 1.484375 -2.640625 C 1.671875 -2.953125 2.0625 -3.25 2.5625 -3.25 C 3.171875 -3.25 3.6875 -2.578125 3.6875 -1.71875 Z M 3.6875 -1.71875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-4">
|
||||||
|
<path d="M 3.5 -0.953125 C 3.5 -0.984375 3.484375 -1.0625 3.375 -1.0625 C 3.28125 -1.0625 3.265625 -1.015625 3.25 -0.953125 C 2.96875 -0.1875 2.28125 -0.171875 2.140625 -0.171875 C 1.78125 -0.171875 1.421875 -0.328125 1.1875 -0.703125 C 0.9375 -1.0625 0.9375 -1.578125 0.9375 -1.8125 L 3.28125 -1.8125 C 3.453125 -1.8125 3.5 -1.8125 3.5 -2 C 3.5 -2.703125 3.109375 -3.546875 2 -3.546875 C 1.015625 -3.546875 0.234375 -2.71875 0.234375 -1.734375 C 0.234375 -0.71875 1.09375 0.078125 2.09375 0.078125 C 3.109375 0.078125 3.5 -0.765625 3.5 -0.953125 Z M 2.953125 -2.015625 L 0.953125 -2.015625 C 1.03125 -3.125 1.703125 -3.3125 2 -3.3125 C 2.921875 -3.3125 2.953125 -2.203125 2.953125 -2.015625 Z M 2.953125 -2.015625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-5">
|
||||||
|
<path d="M 4.390625 0 L 4.390625 -0.265625 C 3.859375 -0.265625 3.796875 -0.3125 3.796875 -0.703125 L 3.796875 -5.515625 L 2.609375 -5.421875 L 2.609375 -5.15625 C 3.15625 -5.15625 3.21875 -5.109375 3.21875 -4.71875 L 3.21875 -3.046875 C 2.9375 -3.34375 2.5625 -3.5 2.15625 -3.5 C 1.15625 -3.5 0.28125 -2.734375 0.28125 -1.703125 C 0.28125 -0.734375 1.078125 0.078125 2.078125 0.078125 C 2.546875 0.078125 2.921875 -0.140625 3.1875 -0.421875 L 3.1875 0.078125 Z M 3.1875 -0.984375 C 3.1875 -0.84375 3.1875 -0.8125 3.078125 -0.65625 C 2.84375 -0.328125 2.484375 -0.140625 2.109375 -0.140625 C 1.75 -0.140625 1.421875 -0.328125 1.234375 -0.625 C 1.03125 -0.9375 0.984375 -1.328125 0.984375 -1.703125 C 0.984375 -2.15625 1.0625 -2.484375 1.234375 -2.765625 C 1.421875 -3.0625 1.78125 -3.28125 2.1875 -3.28125 C 2.578125 -3.28125 2.953125 -3.09375 3.1875 -2.671875 Z M 3.1875 -0.984375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-6">
|
||||||
|
<path d="M 5.265625 -3.9375 C 5.265625 -4.71875 4.421875 -5.421875 3.28125 -5.421875 L 0.359375 -5.421875 L 0.359375 -5.15625 L 0.546875 -5.15625 C 1.15625 -5.15625 1.171875 -5.078125 1.171875 -4.78125 L 1.171875 -0.640625 C 1.171875 -0.34375 1.15625 -0.265625 0.546875 -0.265625 L 0.359375 -0.265625 L 0.359375 0 L 1.53125 -0.03125 L 2.703125 0 L 2.703125 -0.265625 L 2.53125 -0.265625 C 1.90625 -0.265625 1.890625 -0.34375 1.890625 -0.640625 L 1.890625 -2.46875 L 3.34375 -2.46875 C 4.3125 -2.46875 5.265625 -3.109375 5.265625 -3.9375 Z M 4.4375 -3.9375 C 4.4375 -3.59375 4.4375 -2.71875 3.078125 -2.71875 L 1.875 -2.71875 L 1.875 -4.828125 C 1.875 -5.109375 1.890625 -5.15625 2.25 -5.15625 L 3.078125 -5.15625 C 4.4375 -5.15625 4.4375 -4.296875 4.4375 -3.9375 Z M 4.4375 -3.9375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-7">
|
||||||
|
<path d="M 2.125 0 L 2.125 -0.265625 C 1.609375 -0.265625 1.515625 -0.265625 1.515625 -0.625 L 1.515625 -5.515625 L 0.328125 -5.421875 L 0.328125 -5.15625 C 0.875 -5.15625 0.9375 -5.109375 0.9375 -4.71875 L 0.9375 -0.625 C 0.9375 -0.265625 0.84375 -0.265625 0.328125 -0.265625 L 0.328125 0 C 0.640625 -0.03125 1.09375 -0.03125 1.21875 -0.03125 C 1.375 -0.03125 1.8125 -0.03125 2.125 0 Z M 2.125 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-8">
|
||||||
|
<path d="M 4.453125 0 L 4.453125 -0.265625 C 3.953125 -0.265625 3.859375 -0.265625 3.859375 -0.625 L 3.859375 -2.40625 C 3.859375 -3.078125 3.5625 -3.5 2.71875 -3.5 C 1.9375 -3.5 1.578125 -2.921875 1.484375 -2.734375 L 1.46875 -2.734375 L 1.46875 -3.5 L 0.328125 -3.40625 L 0.328125 -3.15625 C 0.859375 -3.15625 0.921875 -3.09375 0.921875 -2.703125 L 0.921875 -0.625 C 0.921875 -0.265625 0.828125 -0.265625 0.328125 -0.265625 L 0.328125 0 C 0.671875 -0.03125 1.015625 -0.03125 1.234375 -0.03125 C 1.453125 -0.03125 1.796875 -0.03125 2.140625 0 L 2.140625 -0.265625 C 1.625 -0.265625 1.53125 -0.265625 1.53125 -0.625 L 1.53125 -2.0625 C 1.53125 -2.890625 2.171875 -3.28125 2.65625 -3.28125 C 3.140625 -3.28125 3.25 -2.9375 3.25 -2.4375 L 3.25 -0.625 C 3.25 -0.265625 3.15625 -0.265625 2.65625 -0.265625 L 2.65625 0 C 3 -0.03125 3.34375 -0.03125 3.5625 -0.03125 C 3.78125 -0.03125 4.125 -0.03125 4.453125 0 Z M 4.453125 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-9">
|
||||||
|
<path d="M 2.796875 -0.984375 L 2.796875 -1.4375 L 2.5625 -1.4375 L 2.5625 -1.015625 C 2.5625 -0.453125 2.3125 -0.171875 2.015625 -0.171875 C 1.46875 -0.171875 1.46875 -0.84375 1.46875 -0.96875 L 1.46875 -3.15625 L 2.65625 -3.15625 L 2.65625 -3.421875 L 1.46875 -3.421875 L 1.46875 -4.875 L 1.234375 -4.875 C 1.21875 -4.15625 0.890625 -3.40625 0.15625 -3.375 L 0.15625 -3.15625 L 0.875 -3.15625 L 0.875 -0.984375 C 0.875 -0.0625 1.59375 0.078125 1.953125 0.078125 C 2.484375 0.078125 2.796875 -0.390625 2.796875 -0.984375 Z M 2.796875 -0.984375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-0">
|
||||||
|
<path d="M 6.1875 -4.9375 C 6.1875 -5.90625 5.203125 -6.78125 3.84375 -6.78125 L 0.34375 -6.78125 L 0.34375 -6.46875 L 0.578125 -6.46875 C 1.34375 -6.46875 1.375 -6.359375 1.375 -6 L 1.375 -0.78125 C 1.375 -0.421875 1.34375 -0.3125 0.578125 -0.3125 L 0.34375 -0.3125 L 0.34375 0 C 0.6875 -0.03125 1.421875 -0.03125 1.8125 -0.03125 C 2.1875 -0.03125 2.921875 -0.03125 3.28125 0 L 3.28125 -0.3125 L 3.03125 -0.3125 C 2.265625 -0.3125 2.25 -0.421875 2.25 -0.78125 L 2.25 -3.140625 L 3.921875 -3.140625 C 5.125 -3.140625 6.1875 -3.9375 6.1875 -4.9375 Z M 5.171875 -4.9375 C 5.171875 -4.46875 5.171875 -3.390625 3.59375 -3.390625 L 2.21875 -3.390625 L 2.21875 -6.078125 C 2.21875 -6.40625 2.25 -6.46875 2.703125 -6.46875 L 3.59375 -6.46875 C 5.171875 -6.46875 5.171875 -5.421875 5.171875 -4.9375 Z M 5.171875 -4.9375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-1">
|
||||||
|
<path d="M 2.53125 0 L 2.53125 -0.3125 C 1.859375 -0.3125 1.75 -0.3125 1.75 -0.75 L 1.75 -6.890625 L 0.328125 -6.78125 L 0.328125 -6.46875 C 1.015625 -6.46875 1.09375 -6.40625 1.09375 -5.90625 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.328125 -0.3125 L 0.328125 0 L 1.421875 -0.03125 Z M 2.53125 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-2">
|
||||||
|
<path d="M 4.796875 -0.890625 L 4.796875 -1.4375 L 4.546875 -1.4375 L 4.546875 -0.890625 C 4.546875 -0.3125 4.296875 -0.25 4.1875 -0.25 C 3.859375 -0.25 3.8125 -0.6875 3.8125 -0.75 L 3.8125 -2.734375 C 3.8125 -3.140625 3.8125 -3.53125 3.46875 -3.90625 C 3.078125 -4.28125 2.578125 -4.4375 2.109375 -4.4375 C 1.296875 -4.4375 0.609375 -3.984375 0.609375 -3.328125 C 0.609375 -3.03125 0.796875 -2.859375 1.0625 -2.859375 C 1.34375 -2.859375 1.515625 -3.0625 1.515625 -3.3125 C 1.515625 -3.4375 1.46875 -3.765625 1.015625 -3.765625 C 1.28125 -4.125 1.765625 -4.234375 2.078125 -4.234375 C 2.5625 -4.234375 3.140625 -3.84375 3.140625 -2.953125 L 3.140625 -2.59375 C 2.625 -2.5625 1.9375 -2.53125 1.3125 -2.234375 C 0.5625 -1.890625 0.3125 -1.375 0.3125 -0.9375 C 0.3125 -0.140625 1.28125 0.109375 1.90625 0.109375 C 2.5625 0.109375 3.015625 -0.28125 3.203125 -0.75 C 3.25 -0.359375 3.515625 0.0625 3.984375 0.0625 C 4.1875 0.0625 4.796875 -0.078125 4.796875 -0.890625 Z M 3.140625 -1.390625 C 3.140625 -0.453125 2.421875 -0.109375 1.96875 -0.109375 C 1.484375 -0.109375 1.078125 -0.453125 1.078125 -0.953125 C 1.078125 -1.5 1.5 -2.328125 3.140625 -2.375 Z M 3.140625 -1.390625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-3">
|
||||||
|
<path d="M 5.3125 0 L 5.3125 -0.3125 C 4.796875 -0.3125 4.546875 -0.3125 4.53125 -0.609375 L 4.53125 -2.5 C 4.53125 -3.359375 4.53125 -3.65625 4.234375 -4.015625 C 4.09375 -4.1875 3.765625 -4.390625 3.1875 -4.390625 C 2.453125 -4.390625 2 -3.953125 1.71875 -3.34375 L 1.71875 -4.390625 L 0.3125 -4.28125 L 0.3125 -3.96875 C 1.015625 -3.96875 1.09375 -3.90625 1.09375 -3.40625 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.3125 -0.3125 L 0.3125 0 L 1.4375 -0.03125 L 2.546875 0 L 2.546875 -0.3125 C 1.890625 -0.3125 1.78125 -0.3125 1.78125 -0.75 L 1.78125 -2.578125 C 1.78125 -3.609375 2.484375 -4.171875 3.109375 -4.171875 C 3.734375 -4.171875 3.84375 -3.625 3.84375 -3.0625 L 3.84375 -0.75 C 3.84375 -0.3125 3.734375 -0.3125 3.078125 -0.3125 L 3.078125 0 L 4.203125 -0.03125 Z M 5.3125 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-4">
|
||||||
|
<path d="M 3.296875 -1.234375 L 3.296875 -1.796875 L 3.046875 -1.796875 L 3.046875 -1.25 C 3.046875 -0.515625 2.75 -0.140625 2.375 -0.140625 C 1.71875 -0.140625 1.71875 -1.046875 1.71875 -1.203125 L 1.71875 -3.96875 L 3.140625 -3.96875 L 3.140625 -4.28125 L 1.71875 -4.28125 L 1.71875 -6.109375 L 1.46875 -6.109375 C 1.453125 -5.28125 1.15625 -4.234375 0.1875 -4.1875 L 0.1875 -3.96875 L 1.03125 -3.96875 L 1.03125 -1.234375 C 1.03125 -0.015625 1.953125 0.109375 2.3125 0.109375 C 3.015625 0.109375 3.296875 -0.59375 3.296875 -1.234375 Z M 3.296875 -1.234375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-0">
|
||||||
|
<path d="M 5.84375 -4.171875 C 6.515625 -4.640625 8.328125 -5.90625 8.671875 -6.09375 C 8.90625 -6.21875 9.109375 -6.3125 9.609375 -6.34375 C 9.796875 -6.34375 9.953125 -6.34375 9.953125 -6.625 C 9.953125 -6.71875 9.875 -6.8125 9.765625 -6.8125 C 9.53125 -6.8125 9.234375 -6.78125 8.984375 -6.78125 C 8.578125 -6.78125 8.140625 -6.8125 7.734375 -6.8125 C 7.65625 -6.8125 7.46875 -6.8125 7.46875 -6.515625 C 7.46875 -6.34375 7.640625 -6.34375 7.703125 -6.34375 C 7.78125 -6.34375 7.984375 -6.328125 8.15625 -6.265625 L 3.625 -3.140625 L 4.421875 -6.296875 C 4.640625 -6.34375 4.984375 -6.34375 5.09375 -6.34375 C 5.21875 -6.34375 5.421875 -6.34375 5.453125 -6.375 C 5.5625 -6.4375 5.5625 -6.625 5.5625 -6.625 C 5.5625 -6.75 5.46875 -6.8125 5.34375 -6.8125 C 5.09375 -6.8125 4.84375 -6.78125 4.59375 -6.78125 C 4.34375 -6.78125 4.09375 -6.78125 3.84375 -6.78125 C 3.59375 -6.78125 3.328125 -6.78125 3.078125 -6.78125 C 2.828125 -6.78125 2.5625 -6.8125 2.296875 -6.8125 C 2.21875 -6.8125 2.015625 -6.8125 2.015625 -6.515625 C 2.015625 -6.34375 2.140625 -6.34375 2.4375 -6.34375 C 2.640625 -6.34375 2.828125 -6.328125 3.03125 -6.3125 L 1.625 -0.671875 C 1.578125 -0.5 1.5625 -0.5 1.390625 -0.46875 C 1.21875 -0.46875 1.015625 -0.46875 0.859375 -0.46875 C 0.609375 -0.46875 0.578125 -0.46875 0.546875 -0.453125 C 0.421875 -0.375 0.421875 -0.21875 0.421875 -0.171875 C 0.421875 -0.15625 0.4375 0 0.640625 0 C 0.890625 0 1.15625 -0.015625 1.40625 -0.015625 C 1.640625 -0.015625 1.90625 -0.03125 2.15625 -0.03125 C 2.40625 -0.03125 2.671875 -0.015625 2.921875 -0.015625 C 3.171875 -0.015625 3.4375 0 3.6875 0 C 3.796875 0 3.859375 0 3.921875 -0.0625 C 3.953125 -0.125 3.984375 -0.265625 3.984375 -0.28125 C 3.984375 -0.46875 3.84375 -0.46875 3.578125 -0.46875 C 3.359375 -0.46875 3.171875 -0.46875 2.96875 -0.484375 L 3.484375 -2.546875 L 4.71875 -3.390625 L 6.1875 -0.53125 C 6 -0.46875 5.6875 -0.46875 5.65625 -0.46875 C 5.53125 -0.46875 5.46875 -0.46875 5.40625 -0.390625 C 5.375 -0.34375 5.34375 -0.203125 5.34375 -0.171875 C 5.34375 -0.171875 5.34375 0 5.5625 0 C 5.890625 0 6.703125 -0.03125 7.03125 -0.03125 C 7.234375 -0.03125 7.453125 -0.015625 7.65625 -0.015625 C 7.859375 -0.015625 8.0625 0 8.25 0 C 8.328125 0 8.515625 0 8.515625 -0.28125 C 8.515625 -0.46875 8.359375 -0.46875 8.203125 -0.46875 C 7.75 -0.46875 7.734375 -0.5 7.65625 -0.671875 Z M 5.84375 -4.171875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-1">
|
||||||
|
<path d="M 4.25 -3.9375 L 5.421875 -3.9375 C 5.609375 -3.9375 5.78125 -3.9375 5.78125 -4.234375 C 5.78125 -4.40625 5.609375 -4.40625 5.453125 -4.40625 L 4.328125 -4.40625 L 4.65625 -6.203125 C 4.6875 -6.375 4.6875 -6.40625 4.796875 -6.484375 C 4.921875 -6.609375 5.03125 -6.609375 5.078125 -6.609375 C 5.21875 -6.609375 5.3125 -6.59375 5.421875 -6.53125 C 5.1875 -6.421875 5.015625 -6.15625 5.015625 -5.890625 C 5.015625 -5.59375 5.25 -5.4375 5.5 -5.4375 C 5.90625 -5.4375 6.21875 -5.796875 6.21875 -6.171875 C 6.21875 -6.671875 5.6875 -6.96875 5.078125 -6.96875 C 4.609375 -6.96875 4.0625 -6.78125 3.703125 -6.21875 C 3.484375 -5.859375 3.421875 -5.46875 3.234375 -4.40625 L 2.265625 -4.40625 C 2.078125 -4.40625 1.90625 -4.40625 1.90625 -4.125 C 1.90625 -3.9375 2.078125 -3.9375 2.234375 -3.9375 L 3.140625 -3.9375 L 2.390625 0.28125 C 2.375 0.375 2.265625 1 2.21875 1.140625 C 2.1875 1.1875 2.03125 1.640625 1.71875 1.640625 C 1.53125 1.640625 1.453125 1.625 1.375 1.59375 C 1.625 1.46875 1.8125 1.203125 1.8125 0.9375 C 1.8125 0.640625 1.578125 0.46875 1.328125 0.46875 C 0.921875 0.46875 0.609375 0.828125 0.609375 1.203125 C 0.609375 1.75 1.1875 2 1.703125 2 C 2.4375 2 2.953125 1.265625 3.03125 1.140625 C 3.46875 0.484375 3.6875 -0.78125 3.71875 -0.9375 Z M 4.25 -3.9375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-3-0">
|
||||||
|
<path d="M 2.515625 0 L 2.515625 -0.25 L 2.328125 -0.25 C 1.765625 -0.25 1.765625 -0.328125 1.765625 -0.5625 L 1.765625 -4.171875 C 1.765625 -4.40625 1.765625 -4.484375 2.328125 -4.484375 L 2.515625 -4.484375 L 2.515625 -4.734375 L 1.4375 -4.703125 L 0.359375 -4.734375 L 0.359375 -4.484375 L 0.53125 -4.484375 C 1.109375 -4.484375 1.109375 -4.40625 1.109375 -4.171875 L 1.109375 -0.5625 C 1.109375 -0.328125 1.109375 -0.25 0.53125 -0.25 L 0.359375 -0.25 L 0.359375 0 L 1.421875 -0.03125 Z M 2.515625 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-3-1">
|
||||||
|
<path d="M 4.734375 -3.109375 L 4.515625 -4.703125 L 0.390625 -4.703125 L 0.390625 -4.453125 L 0.5625 -4.453125 C 1.09375 -4.453125 1.109375 -4.390625 1.109375 -4.15625 L 1.109375 -0.5625 C 1.109375 -0.328125 1.09375 -0.25 0.5625 -0.25 L 0.390625 -0.25 L 0.390625 0 L 1.4375 -0.03125 L 2.65625 0 L 2.65625 -0.25 L 2.421875 -0.25 C 1.765625 -0.25 1.765625 -0.34375 1.765625 -0.5625 L 1.765625 -2.234375 L 2.4375 -2.234375 C 3.125 -2.234375 3.21875 -2.03125 3.21875 -1.421875 L 3.46875 -1.421875 L 3.46875 -3.296875 L 3.21875 -3.296875 C 3.21875 -2.703125 3.125 -2.484375 2.4375 -2.484375 L 1.765625 -2.484375 L 1.765625 -4.1875 C 1.765625 -4.40625 1.765625 -4.453125 2.09375 -4.453125 L 3.0625 -4.453125 C 4.1875 -4.453125 4.375 -4.09375 4.5 -3.109375 Z M 4.734375 -3.109375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-4-0">
|
||||||
|
<path d="M 11.53125 -4.265625 C 11.53125 -4.578125 11.25 -4.578125 11 -4.578125 L 6.453125 -4.578125 L 6.453125 -9.109375 C 6.453125 -9.34375 6.453125 -9.640625 6.171875 -9.640625 C 5.859375 -9.640625 5.859375 -9.375 5.859375 -9.109375 L 5.859375 -4.578125 L 1.3125 -4.578125 C 1.078125 -4.578125 0.78125 -4.578125 0.78125 -4.28125 C 0.78125 -3.96875 1.0625 -3.96875 1.3125 -3.96875 L 5.859375 -3.96875 L 5.859375 0.5625 C 5.859375 0.8125 5.859375 1.09375 6.140625 1.09375 C 6.453125 1.09375 6.453125 0.828125 6.453125 0.5625 L 6.453125 -3.96875 L 11 -3.96875 C 11.234375 -3.96875 11.53125 -3.96875 11.53125 -4.265625 Z M 11.53125 -4.265625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-5-0">
|
||||||
|
<path d="M 4.5625 -0.984375 C 4.5625 -1.078125 4.46875 -1.078125 4.453125 -1.078125 C 4.359375 -1.078125 4.34375 -1.046875 4.328125 -0.96875 C 4.15625 -0.40625 3.859375 -0.125 3.59375 -0.125 C 3.4375 -0.125 3.40625 -0.21875 3.40625 -0.375 C 3.40625 -0.53125 3.453125 -0.625 3.578125 -0.921875 C 3.65625 -1.140625 3.9375 -1.875 3.9375 -2.265625 C 3.9375 -2.9375 3.40625 -3.0625 3.03125 -3.0625 C 2.46875 -3.0625 2.078125 -2.703125 1.859375 -2.421875 C 1.8125 -2.90625 1.40625 -3.0625 1.125 -3.0625 C 0.828125 -3.0625 0.671875 -2.84375 0.578125 -2.6875 C 0.421875 -2.421875 0.328125 -2.03125 0.328125 -2 C 0.328125 -1.90625 0.421875 -1.90625 0.4375 -1.90625 C 0.546875 -1.90625 0.546875 -1.921875 0.59375 -2.109375 C 0.703125 -2.53125 0.828125 -2.859375 1.109375 -2.859375 C 1.28125 -2.859375 1.328125 -2.71875 1.328125 -2.53125 C 1.328125 -2.390625 1.265625 -2.140625 1.21875 -1.953125 L 1.0625 -1.328125 L 0.84375 -0.4375 C 0.8125 -0.34375 0.78125 -0.171875 0.78125 -0.15625 C 0.78125 0 0.90625 0.0625 1.015625 0.0625 C 1.140625 0.0625 1.25 -0.015625 1.28125 -0.078125 C 1.3125 -0.140625 1.375 -0.375 1.40625 -0.515625 L 1.5625 -1.140625 C 1.609375 -1.296875 1.640625 -1.4375 1.671875 -1.609375 C 1.75 -1.890625 1.765625 -1.9375 1.96875 -2.234375 C 2.171875 -2.5 2.484375 -2.859375 3.015625 -2.859375 C 3.40625 -2.859375 3.421875 -2.515625 3.421875 -2.375 C 3.421875 -1.96875 3.125 -1.1875 3.015625 -0.90625 C 2.9375 -0.703125 2.90625 -0.640625 2.90625 -0.53125 C 2.90625 -0.15625 3.21875 0.0625 3.5625 0.0625 C 4.265625 0.0625 4.5625 -0.890625 4.5625 -0.984375 Z M 4.5625 -0.984375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-6-0">
|
||||||
|
<path d="M 7.453125 -1.53125 C 7.453125 -1.640625 7.328125 -1.65625 7.28125 -1.65625 C 6.96875 -1.65625 6.109375 -1.265625 6 -0.75 C 5.515625 -0.75 5.171875 -0.796875 4.375 -0.953125 C 4.015625 -1.015625 3.21875 -1.171875 2.65625 -1.171875 C 2.578125 -1.171875 2.46875 -1.171875 2.390625 -1.15625 C 2.71875 -1.71875 2.84375 -2.1875 3.015625 -2.84375 C 3.21875 -3.625 3.609375 -5.015625 4.359375 -5.859375 C 4.5 -6 4.53125 -6.046875 4.796875 -6.046875 C 5.25 -6.046875 5.421875 -5.6875 5.421875 -5.375 C 5.421875 -5.265625 5.390625 -5.15625 5.390625 -5.109375 C 5.390625 -5 5.515625 -4.984375 5.5625 -4.984375 C 5.703125 -4.984375 6 -5.0625 6.390625 -5.3125 C 6.78125 -5.59375 6.84375 -5.765625 6.84375 -6.046875 C 6.84375 -6.5625 6.53125 -6.96875 5.875 -6.96875 C 5.25 -6.96875 4.34375 -6.671875 3.53125 -5.953125 C 2.390625 -4.953125 1.890625 -3.3125 1.609375 -2.1875 C 1.453125 -1.59375 1.25 -0.78125 0.828125 -0.453125 C 0.71875 -0.359375 0.390625 -0.109375 0.390625 0.046875 C 0.390625 0.15625 0.5 0.171875 0.5625 0.171875 C 0.640625 0.171875 0.9375 0.15625 1.5 -0.25 C 1.859375 -0.25 2.203125 -0.234375 3.109375 -0.0625 C 3.546875 0.03125 4.28125 0.171875 4.84375 0.171875 C 6.171875 0.171875 7.453125 -1 7.453125 -1.53125 Z M 7.453125 -1.53125 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-7-0">
|
||||||
|
<path d="M 2.078125 -3.5 C 2.078125 -3.71875 1.890625 -3.875 1.671875 -3.875 C 1.390625 -3.875 1.3125 -3.65625 1.296875 -3.5625 L 0.375 -0.5625 L 0.328125 -0.4375 C 0.328125 -0.359375 0.546875 -0.28125 0.609375 -0.28125 C 0.65625 -0.28125 0.6875 -0.3125 0.703125 -0.390625 L 2.015625 -3.28125 C 2.046875 -3.34375 2.078125 -3.40625 2.078125 -3.5 Z M 2.078125 -3.5 "/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<clipPath id="clip-0">
|
||||||
|
<path clip-rule="nonzero" d="M 15 0.0898438 L 152 0.0898438 L 152 110 L 15 110 Z M 15 0.0898438 "/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="clip-1">
|
||||||
|
<path clip-rule="nonzero" d="M 151 74 L 172.3125 74 L 172.3125 106 L 151 106 Z M 151 74 "/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(79.998779%, 79.998779%, 79.998779%)" fill-opacity="1" d="M 15.628906 109.195312 L 151.042969 109.195312 L 151.042969 1.082031 L 15.628906 1.082031 Z M 15.628906 109.195312 "/>
|
||||||
|
<g clip-path="url(#clip-0)">
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-dasharray="2.98883 2.98883" stroke-miterlimit="10" d="M -79.416734 -36.814543 L 56.658938 -36.814543 L 56.658938 71.826961 L -79.416734 71.826961 Z M -79.416734 -36.814543 " transform="matrix(0.995138, 0, 0, -0.995138, 94.65951, 72.559765)"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-0" x="18.933494" y="9.851148"/>
|
||||||
|
<use xlink:href="#glyph-0-1" x="25.366611" y="9.851148"/>
|
||||||
|
<use xlink:href="#glyph-0-2" x="29.580537" y="9.851148"/>
|
||||||
|
<use xlink:href="#glyph-0-3" x="36.602953" y="9.851148"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-4" x="41.514838" y="9.851148"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-5" x="45.267952" y="9.851148"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-6" x="52.757524" y="9.851148"/>
|
||||||
|
<use xlink:href="#glyph-0-7" x="58.488717" y="9.851148"/>
|
||||||
|
<use xlink:href="#glyph-0-1" x="60.829258" y="9.851148"/>
|
||||||
|
<use xlink:href="#glyph-0-8" x="65.043184" y="9.851148"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-9" x="69.487119" y="9.851148"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -28.348122 -28.347595 L 28.345495 -28.347595 L 28.345495 28.346022 L -28.348122 28.346022 Z M -28.348122 -28.347595 " transform="matrix(0.995138, 0, 0, -0.995138, 94.65951, 72.559765)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-0" x="82.887029" y="75.975078"/>
|
||||||
|
<use xlink:href="#glyph-1-1" x="89.634607" y="75.975078"/>
|
||||||
|
<use xlink:href="#glyph-1-2" x="92.388761" y="75.975078"/>
|
||||||
|
<use xlink:href="#glyph-1-3" x="97.345841" y="75.975078"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-4" x="102.576553" y="75.975078"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -17.007829 35.011242 L 17.009127 35.011242 L 17.009127 63.360013 L -17.007829 63.360013 Z M -17.007829 35.011242 " transform="matrix(0.995138, 0, 0, -0.995138, 94.65951, 72.559765)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-0" x="83.050231" y="26.271919"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-3-0" x="92.678191" y="27.758655"/>
|
||||||
|
<use xlink:href="#glyph-3-1" x="95.542284" y="27.758655"/>
|
||||||
|
<use xlink:href="#glyph-3-1" x="100.65768" y="27.758655"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -51.523301 0.00117663 C -51.523301 5.500571 -55.982482 9.963677 -61.485802 9.963677 C -66.989122 9.963677 -71.448303 5.500571 -71.448303 0.00117663 C -71.448303 -5.502143 -66.989122 -9.961324 -61.485802 -9.961324 C -55.982482 -9.961324 -51.523301 -5.502143 -51.523301 0.00117663 Z M -51.523301 0.00117663 " transform="matrix(0.995138, 0, 0, -0.995138, 94.65951, 72.559765)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-0" x="27.308575" y="76.705509"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 28.844013 17.30798 L 48.686582 17.30798 L 48.686582 49.185627 L 22.13954 49.185627 " transform="matrix(0.995138, 0, 0, -0.995138, 94.65951, 72.559765)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.05357 0.000122683 L 1.61009 1.684092 L 3.086016 0.000122683 L 1.61009 -1.683846 Z M 6.05357 0.000122683 " transform="matrix(-0.995138, 0, 0, 0.995138, 119.516324, 23.613159)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-1" x="127.164696" y="49.608899"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-5-0" x="132.796181" y="51.09663"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -17.506346 49.185627 L -61.485802 49.185627 L -61.485802 14.595573 " transform="matrix(0.995138, 0, 0, -0.995138, 94.65951, 72.559765)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054116 -0.000592237 L 1.610637 1.683377 L 3.086563 -0.000592237 L 1.610637 -1.684561 Z M 6.054116 -0.000592237 " transform="matrix(0, 0.995138, 0.995138, 0, 33.473246, 55.209694)"/>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -51.523301 0.00117663 L -33.478535 0.00117663 " transform="matrix(0.995138, 0, 0, -0.995138, 94.65951, 72.559765)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.053314 0.00117663 L 1.609835 1.68122 L 3.085761 0.00117663 L 1.609835 -1.682792 Z M 6.053314 0.00117663 " transform="matrix(0.995138, 0, 0, -0.995138, 58.519086, 72.559765)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-1" x="55.429183" y="66.831751"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 28.844013 -17.305626 L 72.399532 -17.305626 " transform="matrix(0.995138, 0, 0, -0.995138, 94.65951, 72.559765)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 169.90625 89.78125 L 165.484375 88.109375 L 166.957031 89.78125 L 165.484375 91.457031 Z M 169.90625 89.78125 "/>
|
||||||
|
<g clip-path="url(#clip-1)">
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.052052 0.00151351 L 1.608573 1.681557 L 3.088424 0.00151351 L 1.608573 -1.682455 Z M 6.052052 0.00151351 " transform="matrix(0.995138, 0, 0, -0.995138, 163.883623, 89.782756)"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-6-0" x="159.704711" y="85.982185"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -76.080199 0.00117663 L -94.124965 0.00117663 " transform="matrix(0.995138, 0, 0, -0.995138, 94.65951, 72.559765)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054711 0.00117663 L 1.607306 1.68122 L 3.087157 0.00117663 L 1.607306 -1.682792 Z M 6.054711 0.00117663 " transform="matrix(0.995138, 0, 0, -0.995138, 16.123165, 72.559765)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-1" x="4.793579" y="66.831751"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-7-0" x="11.519717" y="63.234327"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 29 KiB |
BIN
figs/nhexa_forward_kinematics_approximate_errors.pdf
Normal file
BIN
figs/nhexa_forward_kinematics_approximate_errors.png
Normal file
After Width: | Height: | Size: 90 KiB |
BIN
figs/nhexa_hac_iff_schematic.pdf
Normal file
BIN
figs/nhexa_hac_iff_schematic.png
Normal file
After Width: | Height: | Size: 20 KiB |
240
figs/nhexa_hac_iff_schematic.svg
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="331.168" height="117.801" viewBox="0 0 331.168 117.801">
|
||||||
|
<defs>
|
||||||
|
<g>
|
||||||
|
<g id="glyph-0-0">
|
||||||
|
<path d="M 5.96875 -2.671875 C 5.96875 -4.203125 4.8125 -5.4375 3.390625 -5.4375 L 0.359375 -5.4375 L 0.359375 -5.171875 L 0.546875 -5.171875 C 1.15625 -5.171875 1.171875 -5.078125 1.171875 -4.78125 L 1.171875 -0.640625 C 1.171875 -0.34375 1.15625 -0.265625 0.546875 -0.265625 L 0.359375 -0.265625 L 0.359375 0 L 3.390625 0 C 4.8125 0 5.96875 -1.1875 5.96875 -2.671875 Z M 5.171875 -2.671875 C 5.171875 -2.265625 5.171875 -1.484375 4.671875 -0.90625 C 4.390625 -0.578125 3.875 -0.265625 3.171875 -0.265625 L 2.265625 -0.265625 C 1.890625 -0.265625 1.875 -0.3125 1.875 -0.59375 L 1.875 -4.84375 C 1.875 -5.109375 1.890625 -5.171875 2.265625 -5.171875 L 3.171875 -5.171875 C 3.796875 -5.171875 4.3125 -4.921875 4.65625 -4.515625 C 5.171875 -3.90625 5.171875 -3.0625 5.171875 -2.671875 Z M 5.171875 -2.671875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-1">
|
||||||
|
<path d="M 4.09375 -0.71875 L 4.09375 -1.15625 L 3.84375 -1.15625 L 3.84375 -0.71875 C 3.84375 -0.390625 3.71875 -0.265625 3.5625 -0.265625 C 3.265625 -0.265625 3.265625 -0.625 3.265625 -0.71875 L 3.265625 -2.375 C 3.265625 -3.15625 2.5 -3.546875 1.78125 -3.546875 C 1.125 -3.546875 0.53125 -3.296875 0.53125 -2.765625 C 0.53125 -2.53125 0.703125 -2.390625 0.90625 -2.390625 C 1.125 -2.390625 1.28125 -2.546875 1.28125 -2.765625 C 1.28125 -2.953125 1.15625 -3.078125 0.984375 -3.125 C 1.28125 -3.328125 1.703125 -3.328125 1.765625 -3.328125 C 2.21875 -3.328125 2.65625 -3.015625 2.65625 -2.359375 L 2.65625 -2.109375 C 2.1875 -2.09375 1.65625 -2.0625 1.109375 -1.84375 C 0.40625 -1.53125 0.265625 -1.078125 0.265625 -0.8125 C 0.265625 -0.125 1.078125 0.078125 1.625 0.078125 C 2.203125 0.078125 2.5625 -0.25 2.734375 -0.5625 C 2.78125 -0.265625 2.984375 0.046875 3.328125 0.046875 C 3.40625 0.046875 4.09375 0.015625 4.09375 -0.71875 Z M 2.65625 -1.125 C 2.65625 -0.34375 2 -0.140625 1.6875 -0.140625 C 1.265625 -0.140625 0.921875 -0.421875 0.921875 -0.796875 C 0.921875 -1.328125 1.421875 -1.875 2.65625 -1.90625 Z M 2.65625 -1.125 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-2">
|
||||||
|
<path d="M 6.8125 0 L 6.8125 -0.265625 C 6.3125 -0.265625 6.21875 -0.265625 6.21875 -0.625 L 6.21875 -2.40625 C 6.21875 -3.046875 5.9375 -3.5 5.0625 -3.5 C 4.328125 -3.5 3.96875 -3 3.84375 -2.78125 C 3.703125 -3.34375 3.25 -3.5 2.734375 -3.5 C 1.953125 -3.5 1.59375 -2.953125 1.484375 -2.75 L 1.484375 -3.5 L 0.328125 -3.421875 L 0.328125 -3.15625 C 0.859375 -3.15625 0.9375 -3.109375 0.9375 -2.71875 L 0.9375 -0.625 C 0.9375 -0.265625 0.828125 -0.265625 0.328125 -0.265625 L 0.328125 0 C 0.671875 -0.03125 1.015625 -0.03125 1.234375 -0.03125 C 1.46875 -0.03125 1.796875 -0.03125 2.140625 0 L 2.140625 -0.265625 C 1.625 -0.265625 1.53125 -0.265625 1.53125 -0.625 L 1.53125 -2.0625 C 1.53125 -2.890625 2.15625 -3.28125 2.671875 -3.28125 C 3.1875 -3.28125 3.265625 -2.875 3.265625 -2.4375 L 3.265625 -0.625 C 3.265625 -0.265625 3.171875 -0.265625 2.671875 -0.265625 L 2.671875 0 C 3 -0.03125 3.359375 -0.03125 3.578125 -0.03125 C 3.796875 -0.03125 4.140625 -0.03125 4.484375 0 L 4.484375 -0.265625 C 3.96875 -0.265625 3.875 -0.265625 3.875 -0.625 L 3.875 -2.0625 C 3.875 -2.890625 4.5 -3.28125 5 -3.28125 C 5.515625 -3.28125 5.609375 -2.875 5.609375 -2.4375 L 5.609375 -0.625 C 5.609375 -0.265625 5.515625 -0.265625 5 -0.265625 L 5 0 C 5.34375 -0.03125 5.6875 -0.03125 5.90625 -0.03125 C 6.140625 -0.03125 6.46875 -0.03125 6.8125 0 Z M 6.8125 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-3">
|
||||||
|
<path d="M 4.40625 -1.71875 C 4.40625 -2.71875 3.609375 -3.5 2.640625 -3.5 C 2.328125 -3.5 1.875 -3.421875 1.46875 -3.015625 L 1.46875 -3.5 L 0.28125 -3.421875 L 0.28125 -3.15625 C 0.84375 -3.15625 0.875 -3.109375 0.875 -2.78125 L 0.875 0.921875 C 0.875 1.28125 0.78125 1.28125 0.28125 1.28125 L 0.28125 1.546875 C 0.625 1.515625 0.96875 1.515625 1.1875 1.515625 C 1.421875 1.515625 1.75 1.515625 2.09375 1.546875 L 2.09375 1.28125 C 1.578125 1.28125 1.484375 1.28125 1.484375 0.921875 L 1.484375 -0.390625 C 1.859375 0.015625 2.265625 0.078125 2.515625 0.078125 C 3.53125 0.078125 4.40625 -0.703125 4.40625 -1.71875 Z M 3.703125 -1.71875 C 3.703125 -0.796875 3.125 -0.140625 2.484375 -0.140625 C 2.203125 -0.140625 1.84375 -0.265625 1.578125 -0.65625 C 1.484375 -0.796875 1.484375 -0.796875 1.484375 -0.953125 L 1.484375 -2.640625 C 1.671875 -2.96875 2.0625 -3.265625 2.5625 -3.265625 C 3.1875 -3.265625 3.703125 -2.578125 3.703125 -1.71875 Z M 3.703125 -1.71875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-4">
|
||||||
|
<path d="M 3.5 -0.953125 C 3.5 -0.984375 3.484375 -1.0625 3.375 -1.0625 C 3.296875 -1.0625 3.28125 -1.015625 3.265625 -0.96875 C 2.96875 -0.1875 2.296875 -0.171875 2.140625 -0.171875 C 1.796875 -0.171875 1.421875 -0.328125 1.1875 -0.703125 C 0.953125 -1.0625 0.953125 -1.578125 0.953125 -1.8125 L 3.28125 -1.8125 C 3.453125 -1.8125 3.5 -1.8125 3.5 -2 C 3.5 -2.703125 3.125 -3.546875 2 -3.546875 C 1.015625 -3.546875 0.234375 -2.734375 0.234375 -1.734375 C 0.234375 -0.71875 1.09375 0.078125 2.09375 0.078125 C 3.109375 0.078125 3.5 -0.765625 3.5 -0.953125 Z M 2.96875 -2.015625 L 0.953125 -2.015625 C 1.03125 -3.140625 1.703125 -3.328125 2 -3.328125 C 2.921875 -3.328125 2.953125 -2.203125 2.96875 -2.015625 Z M 2.96875 -2.015625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-5">
|
||||||
|
<path d="M 4.40625 0 L 4.40625 -0.265625 C 3.859375 -0.265625 3.796875 -0.3125 3.796875 -0.703125 L 3.796875 -5.515625 L 2.609375 -5.4375 L 2.609375 -5.171875 C 3.15625 -5.171875 3.21875 -5.109375 3.21875 -4.71875 L 3.21875 -3.046875 C 2.9375 -3.34375 2.5625 -3.5 2.15625 -3.5 C 1.15625 -3.5 0.28125 -2.734375 0.28125 -1.703125 C 0.28125 -0.734375 1.078125 0.078125 2.078125 0.078125 C 2.546875 0.078125 2.9375 -0.140625 3.203125 -0.421875 L 3.203125 0.078125 Z M 3.203125 -0.984375 C 3.203125 -0.84375 3.203125 -0.8125 3.078125 -0.65625 C 2.859375 -0.328125 2.484375 -0.140625 2.109375 -0.140625 C 1.75 -0.140625 1.4375 -0.328125 1.234375 -0.625 C 1.03125 -0.9375 0.984375 -1.328125 0.984375 -1.703125 C 0.984375 -2.15625 1.0625 -2.484375 1.234375 -2.765625 C 1.4375 -3.0625 1.796875 -3.28125 2.1875 -3.28125 C 2.578125 -3.28125 2.953125 -3.09375 3.203125 -2.6875 Z M 3.203125 -0.984375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-6">
|
||||||
|
<path d="M 5.265625 -3.9375 C 5.265625 -4.71875 4.4375 -5.4375 3.28125 -5.4375 L 0.359375 -5.4375 L 0.359375 -5.171875 L 0.546875 -5.171875 C 1.15625 -5.171875 1.171875 -5.078125 1.171875 -4.78125 L 1.171875 -0.640625 C 1.171875 -0.34375 1.15625 -0.265625 0.546875 -0.265625 L 0.359375 -0.265625 L 0.359375 0 L 1.53125 -0.03125 L 2.703125 0 L 2.703125 -0.265625 L 2.53125 -0.265625 C 1.921875 -0.265625 1.90625 -0.34375 1.90625 -0.640625 L 1.90625 -2.484375 L 3.34375 -2.484375 C 4.328125 -2.484375 5.265625 -3.109375 5.265625 -3.9375 Z M 4.453125 -3.9375 C 4.453125 -3.59375 4.453125 -2.71875 3.078125 -2.71875 L 1.875 -2.71875 L 1.875 -4.84375 C 1.875 -5.109375 1.890625 -5.171875 2.265625 -5.171875 L 3.078125 -5.171875 C 4.453125 -5.171875 4.453125 -4.296875 4.453125 -3.9375 Z M 4.453125 -3.9375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-7">
|
||||||
|
<path d="M 2.125 0 L 2.125 -0.265625 C 1.609375 -0.265625 1.515625 -0.265625 1.515625 -0.625 L 1.515625 -5.515625 L 0.328125 -5.4375 L 0.328125 -5.171875 C 0.875 -5.171875 0.9375 -5.109375 0.9375 -4.71875 L 0.9375 -0.625 C 0.9375 -0.265625 0.84375 -0.265625 0.328125 -0.265625 L 0.328125 0 C 0.640625 -0.03125 1.09375 -0.03125 1.21875 -0.03125 C 1.390625 -0.03125 1.8125 -0.03125 2.125 0 Z M 2.125 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-8">
|
||||||
|
<path d="M 4.46875 0 L 4.46875 -0.265625 C 3.953125 -0.265625 3.859375 -0.265625 3.859375 -0.625 L 3.859375 -2.40625 C 3.859375 -3.078125 3.5625 -3.5 2.734375 -3.5 C 1.9375 -3.5 1.578125 -2.9375 1.484375 -2.75 L 1.484375 -3.5 L 0.328125 -3.421875 L 0.328125 -3.15625 C 0.859375 -3.15625 0.9375 -3.109375 0.9375 -2.71875 L 0.9375 -0.625 C 0.9375 -0.265625 0.828125 -0.265625 0.328125 -0.265625 L 0.328125 0 C 0.671875 -0.03125 1.015625 -0.03125 1.234375 -0.03125 C 1.46875 -0.03125 1.796875 -0.03125 2.140625 0 L 2.140625 -0.265625 C 1.625 -0.265625 1.53125 -0.265625 1.53125 -0.625 L 1.53125 -2.0625 C 1.53125 -2.890625 2.171875 -3.28125 2.65625 -3.28125 C 3.140625 -3.28125 3.265625 -2.9375 3.265625 -2.4375 L 3.265625 -0.625 C 3.265625 -0.265625 3.171875 -0.265625 2.65625 -0.265625 L 2.65625 0 C 3 -0.03125 3.34375 -0.03125 3.5625 -0.03125 C 3.796875 -0.03125 4.125 -0.03125 4.46875 0 Z M 4.46875 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-0-9">
|
||||||
|
<path d="M 2.8125 -1 L 2.8125 -1.4375 L 2.5625 -1.4375 L 2.5625 -1.015625 C 2.5625 -0.46875 2.3125 -0.171875 2.015625 -0.171875 C 1.484375 -0.171875 1.484375 -0.84375 1.484375 -0.984375 L 1.484375 -3.171875 L 2.671875 -3.171875 L 2.671875 -3.421875 L 1.484375 -3.421875 L 1.484375 -4.890625 L 1.234375 -4.890625 C 1.21875 -4.171875 0.90625 -3.40625 0.15625 -3.390625 L 0.15625 -3.171875 L 0.875 -3.171875 L 0.875 -1 C 0.875 -0.0625 1.59375 0.078125 1.953125 0.078125 C 2.484375 0.078125 2.8125 -0.390625 2.8125 -1 Z M 2.8125 -1 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-0">
|
||||||
|
<path d="M 6.203125 -4.9375 C 6.203125 -5.90625 5.21875 -6.78125 3.859375 -6.78125 L 0.34375 -6.78125 L 0.34375 -6.484375 L 0.59375 -6.484375 C 1.34375 -6.484375 1.375 -6.375 1.375 -6.015625 L 1.375 -0.78125 C 1.375 -0.421875 1.34375 -0.3125 0.59375 -0.3125 L 0.34375 -0.3125 L 0.34375 0 C 0.703125 -0.03125 1.4375 -0.03125 1.8125 -0.03125 C 2.1875 -0.03125 2.9375 -0.03125 3.28125 0 L 3.28125 -0.3125 L 3.046875 -0.3125 C 2.28125 -0.3125 2.25 -0.421875 2.25 -0.78125 L 2.25 -3.140625 L 3.9375 -3.140625 C 5.125 -3.140625 6.203125 -3.9375 6.203125 -4.9375 Z M 5.171875 -4.9375 C 5.171875 -4.46875 5.171875 -3.40625 3.59375 -3.40625 L 2.21875 -3.40625 L 2.21875 -6.078125 C 2.21875 -6.40625 2.25 -6.484375 2.71875 -6.484375 L 3.59375 -6.484375 C 5.171875 -6.484375 5.171875 -5.421875 5.171875 -4.9375 Z M 5.171875 -4.9375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-1">
|
||||||
|
<path d="M 2.53125 0 L 2.53125 -0.3125 C 1.875 -0.3125 1.765625 -0.3125 1.765625 -0.75 L 1.765625 -6.890625 L 0.328125 -6.78125 L 0.328125 -6.484375 C 1.03125 -6.484375 1.109375 -6.40625 1.109375 -5.921875 L 1.109375 -0.75 C 1.109375 -0.3125 1 -0.3125 0.328125 -0.3125 L 0.328125 0 L 1.4375 -0.03125 Z M 2.53125 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-2">
|
||||||
|
<path d="M 4.796875 -0.890625 L 4.796875 -1.4375 L 4.546875 -1.4375 L 4.546875 -0.890625 C 4.546875 -0.3125 4.296875 -0.25 4.1875 -0.25 C 3.859375 -0.25 3.828125 -0.703125 3.828125 -0.75 L 3.828125 -2.734375 C 3.828125 -3.15625 3.828125 -3.53125 3.46875 -3.90625 C 3.078125 -4.296875 2.578125 -4.453125 2.109375 -4.453125 C 1.296875 -4.453125 0.609375 -3.984375 0.609375 -3.328125 C 0.609375 -3.03125 0.8125 -2.859375 1.0625 -2.859375 C 1.34375 -2.859375 1.515625 -3.0625 1.515625 -3.3125 C 1.515625 -3.4375 1.46875 -3.765625 1.015625 -3.78125 C 1.28125 -4.125 1.765625 -4.234375 2.09375 -4.234375 C 2.578125 -4.234375 3.140625 -3.84375 3.140625 -2.96875 L 3.140625 -2.59375 C 2.640625 -2.5625 1.9375 -2.53125 1.3125 -2.234375 C 0.5625 -1.890625 0.3125 -1.375 0.3125 -0.9375 C 0.3125 -0.140625 1.28125 0.109375 1.90625 0.109375 C 2.5625 0.109375 3.015625 -0.28125 3.203125 -0.75 C 3.25 -0.359375 3.515625 0.0625 3.984375 0.0625 C 4.1875 0.0625 4.796875 -0.078125 4.796875 -0.890625 Z M 3.140625 -1.390625 C 3.140625 -0.453125 2.421875 -0.109375 1.984375 -0.109375 C 1.484375 -0.109375 1.078125 -0.453125 1.078125 -0.953125 C 1.078125 -1.5 1.5 -2.328125 3.140625 -2.390625 Z M 3.140625 -1.390625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-3">
|
||||||
|
<path d="M 5.3125 0 L 5.3125 -0.3125 C 4.796875 -0.3125 4.546875 -0.3125 4.546875 -0.609375 L 4.546875 -2.5 C 4.546875 -3.359375 4.546875 -3.671875 4.234375 -4.03125 C 4.09375 -4.1875 3.765625 -4.390625 3.1875 -4.390625 C 2.46875 -4.390625 2 -3.96875 1.71875 -3.34375 L 1.71875 -4.390625 L 0.3125 -4.28125 L 0.3125 -3.96875 C 1.015625 -3.96875 1.09375 -3.90625 1.09375 -3.421875 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.3125 -0.3125 L 0.3125 0 L 1.4375 -0.03125 L 2.546875 0 L 2.546875 -0.3125 C 1.890625 -0.3125 1.78125 -0.3125 1.78125 -0.75 L 1.78125 -2.578125 C 1.78125 -3.625 2.484375 -4.171875 3.125 -4.171875 C 3.75 -4.171875 3.859375 -3.640625 3.859375 -3.078125 L 3.859375 -0.75 C 3.859375 -0.3125 3.75 -0.3125 3.078125 -0.3125 L 3.078125 0 L 4.203125 -0.03125 Z M 5.3125 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-1-4">
|
||||||
|
<path d="M 3.296875 -1.234375 L 3.296875 -1.796875 L 3.046875 -1.796875 L 3.046875 -1.25 C 3.046875 -0.515625 2.75 -0.140625 2.390625 -0.140625 C 1.71875 -0.140625 1.71875 -1.046875 1.71875 -1.21875 L 1.71875 -3.96875 L 3.140625 -3.96875 L 3.140625 -4.28125 L 1.71875 -4.28125 L 1.71875 -6.109375 L 1.46875 -6.109375 C 1.453125 -5.296875 1.15625 -4.234375 0.1875 -4.1875 L 0.1875 -3.96875 L 1.03125 -3.96875 L 1.03125 -1.234375 C 1.03125 -0.015625 1.953125 0.109375 2.3125 0.109375 C 3.015625 0.109375 3.296875 -0.59375 3.296875 -1.234375 Z M 3.296875 -1.234375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-0">
|
||||||
|
<path d="M 5.859375 -4.171875 C 6.515625 -4.640625 8.34375 -5.921875 8.6875 -6.109375 C 8.90625 -6.21875 9.125 -6.328125 9.625 -6.34375 C 9.8125 -6.359375 9.96875 -6.359375 9.96875 -6.640625 C 9.96875 -6.734375 9.890625 -6.8125 9.78125 -6.8125 C 9.546875 -6.8125 9.25 -6.78125 9 -6.78125 C 8.59375 -6.78125 8.15625 -6.8125 7.75 -6.8125 C 7.671875 -6.8125 7.46875 -6.8125 7.46875 -6.53125 C 7.46875 -6.34375 7.65625 -6.34375 7.71875 -6.34375 C 7.796875 -6.34375 8 -6.34375 8.171875 -6.28125 L 3.640625 -3.15625 L 4.421875 -6.3125 C 4.640625 -6.34375 4.984375 -6.34375 5.09375 -6.34375 C 5.234375 -6.34375 5.421875 -6.34375 5.46875 -6.375 C 5.5625 -6.453125 5.578125 -6.625 5.578125 -6.640625 C 5.578125 -6.765625 5.46875 -6.8125 5.359375 -6.8125 C 5.109375 -6.8125 4.84375 -6.796875 4.59375 -6.796875 C 4.359375 -6.796875 4.109375 -6.78125 3.859375 -6.78125 C 3.59375 -6.78125 3.34375 -6.796875 3.09375 -6.796875 C 2.828125 -6.796875 2.5625 -6.8125 2.3125 -6.8125 C 2.21875 -6.8125 2.015625 -6.8125 2.015625 -6.53125 C 2.015625 -6.34375 2.140625 -6.34375 2.4375 -6.34375 C 2.640625 -6.34375 2.828125 -6.34375 3.046875 -6.328125 L 1.625 -0.671875 C 1.578125 -0.5 1.5625 -0.5 1.390625 -0.484375 C 1.21875 -0.46875 1.03125 -0.46875 0.859375 -0.46875 C 0.609375 -0.46875 0.59375 -0.46875 0.546875 -0.453125 C 0.421875 -0.375 0.421875 -0.21875 0.421875 -0.171875 C 0.421875 -0.15625 0.4375 0 0.640625 0 C 0.890625 0 1.15625 -0.015625 1.40625 -0.015625 C 1.65625 -0.015625 1.90625 -0.03125 2.15625 -0.03125 C 2.421875 -0.03125 2.671875 -0.015625 2.921875 -0.015625 C 3.1875 -0.015625 3.453125 0 3.703125 0 C 3.796875 0 3.859375 0 3.921875 -0.0625 C 3.96875 -0.125 3.984375 -0.265625 3.984375 -0.28125 C 3.984375 -0.46875 3.84375 -0.46875 3.578125 -0.46875 C 3.375 -0.46875 3.1875 -0.484375 2.96875 -0.484375 L 3.484375 -2.546875 L 4.71875 -3.40625 L 6.203125 -0.53125 C 6 -0.46875 5.703125 -0.46875 5.671875 -0.46875 C 5.53125 -0.46875 5.46875 -0.46875 5.421875 -0.390625 C 5.375 -0.34375 5.359375 -0.203125 5.359375 -0.171875 C 5.359375 -0.171875 5.359375 0 5.5625 0 C 5.890625 0 6.703125 -0.03125 7.03125 -0.03125 C 7.25 -0.03125 7.46875 -0.015625 7.671875 -0.015625 C 7.875 -0.015625 8.078125 0 8.265625 0 C 8.34375 0 8.53125 0 8.53125 -0.28125 C 8.53125 -0.46875 8.375 -0.46875 8.21875 -0.46875 C 7.765625 -0.46875 7.734375 -0.5 7.65625 -0.671875 Z M 5.859375 -4.171875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-1">
|
||||||
|
<path d="M 5.984375 -6.15625 C 6.015625 -6.3125 6.03125 -6.3125 6.109375 -6.328125 C 6.21875 -6.34375 6.359375 -6.34375 6.484375 -6.34375 C 6.734375 -6.34375 6.890625 -6.34375 6.890625 -6.640625 C 6.890625 -6.65625 6.890625 -6.8125 6.6875 -6.8125 C 6.484375 -6.8125 6.265625 -6.796875 6.0625 -6.796875 C 5.84375 -6.796875 5.609375 -6.78125 5.375 -6.78125 C 4.984375 -6.78125 4.03125 -6.8125 3.640625 -6.8125 C 3.53125 -6.8125 3.34375 -6.8125 3.34375 -6.53125 C 3.34375 -6.34375 3.515625 -6.34375 3.6875 -6.34375 L 4.03125 -6.34375 C 4.421875 -6.34375 4.4375 -6.34375 4.6875 -6.3125 L 3.484375 -1.5 C 3.234375 -0.484375 2.609375 -0.1875 2.140625 -0.1875 C 2.0625 -0.1875 1.625 -0.203125 1.328125 -0.421875 C 1.875 -0.5625 2.046875 -1.03125 2.046875 -1.296875 C 2.046875 -1.625 1.78125 -1.859375 1.4375 -1.859375 C 1.046875 -1.859375 0.5625 -1.546875 0.5625 -0.921875 C 0.5625 -0.234375 1.25 0.171875 2.203125 0.171875 C 3.3125 0.171875 4.515625 -0.28125 4.796875 -1.453125 Z M 5.984375 -6.15625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-2">
|
||||||
|
<path d="M 4.265625 -3.9375 L 5.421875 -3.9375 C 5.609375 -3.9375 5.796875 -3.9375 5.796875 -4.234375 C 5.796875 -4.40625 5.625 -4.40625 5.453125 -4.40625 L 4.34375 -4.40625 L 4.671875 -6.21875 C 4.703125 -6.390625 4.703125 -6.40625 4.796875 -6.5 C 4.921875 -6.625 5.03125 -6.625 5.09375 -6.625 C 5.234375 -6.625 5.3125 -6.59375 5.4375 -6.546875 C 5.203125 -6.421875 5.015625 -6.171875 5.015625 -5.90625 C 5.015625 -5.609375 5.25 -5.453125 5.5 -5.453125 C 5.90625 -5.453125 6.21875 -5.796875 6.21875 -6.1875 C 6.21875 -6.6875 5.703125 -6.96875 5.09375 -6.96875 C 4.625 -6.96875 4.0625 -6.78125 3.71875 -6.234375 C 3.484375 -5.859375 3.421875 -5.46875 3.234375 -4.40625 L 2.265625 -4.40625 C 2.078125 -4.40625 1.90625 -4.40625 1.90625 -4.125 C 1.90625 -3.9375 2.078125 -3.9375 2.234375 -3.9375 L 3.15625 -3.9375 L 2.390625 0.28125 C 2.375 0.375 2.265625 1 2.21875 1.140625 C 2.203125 1.1875 2.03125 1.65625 1.71875 1.65625 C 1.53125 1.65625 1.453125 1.625 1.375 1.59375 C 1.625 1.46875 1.8125 1.21875 1.8125 0.9375 C 1.8125 0.640625 1.578125 0.484375 1.328125 0.484375 C 0.921875 0.484375 0.609375 0.828125 0.609375 1.21875 C 0.609375 1.75 1.1875 2 1.703125 2 C 2.4375 2 2.96875 1.265625 3.046875 1.140625 C 3.46875 0.484375 3.703125 -0.78125 3.734375 -0.9375 Z M 4.265625 -3.9375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-3">
|
||||||
|
<path d="M 3.5625 -2.109375 C 3.71875 -2.109375 3.953125 -2.109375 3.953125 -2.359375 C 3.953125 -2.578125 3.765625 -2.578125 3.578125 -2.578125 L 1.875 -2.578125 C 2.03125 -3.203125 2.40625 -3.9375 3.59375 -3.9375 L 4 -3.9375 C 4.140625 -3.9375 4.40625 -3.9375 4.40625 -4.203125 C 4.40625 -4.28125 4.359375 -4.40625 4.21875 -4.40625 L 3.796875 -4.40625 C 3.265625 -4.40625 2.203125 -4.40625 1.34375 -3.640625 C 0.875 -3.21875 0.5 -2.5625 0.5 -1.78125 C 0.5 -0.421875 1.640625 0.078125 2.796875 0.078125 C 2.9375 0.078125 3.265625 0.078125 3.734375 -0.09375 C 3.78125 -0.09375 4.328125 -0.3125 4.328125 -0.46875 C 4.328125 -0.578125 4.265625 -0.765625 4.140625 -0.765625 C 4.109375 -0.765625 4.078125 -0.765625 3.984375 -0.703125 C 3.390625 -0.34375 3.078125 -0.28125 2.828125 -0.28125 C 2.578125 -0.28125 1.65625 -0.328125 1.65625 -1.359375 C 1.65625 -1.625 1.703125 -1.875 1.765625 -2.109375 Z M 3.5625 -2.109375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-2-4">
|
||||||
|
<path d="M 4.40625 -4 C 3.859375 -3.890625 3.8125 -3.40625 3.8125 -3.296875 C 3.8125 -3.078125 3.96875 -2.84375 4.296875 -2.84375 C 4.640625 -2.84375 5.015625 -3.125 5.015625 -3.625 C 5.015625 -4.078125 4.65625 -4.484375 4.046875 -4.484375 C 3.484375 -4.484375 3.015625 -4.21875 2.71875 -3.890625 C 2.484375 -4.359375 1.921875 -4.484375 1.5625 -4.484375 C 1.1875 -4.484375 0.921875 -4.28125 0.703125 -3.921875 C 0.453125 -3.53125 0.3125 -3 0.3125 -2.9375 C 0.3125 -2.796875 0.46875 -2.796875 0.5625 -2.796875 C 0.671875 -2.796875 0.703125 -2.796875 0.75 -2.859375 C 0.78125 -2.875 0.78125 -2.890625 0.828125 -3.140625 C 1.03125 -3.890625 1.25 -4.140625 1.515625 -4.140625 C 1.65625 -4.140625 1.734375 -4.03125 1.734375 -3.78125 C 1.734375 -3.59375 1.703125 -3.484375 1.59375 -3.015625 C 1.546875 -2.859375 1.390625 -2.203125 1.328125 -1.953125 C 1.28125 -1.765625 1.171875 -1.3125 1.125 -1.140625 C 1.0625 -0.875 0.9375 -0.421875 0.9375 -0.359375 C 0.9375 -0.15625 1.109375 0.078125 1.40625 0.078125 C 1.609375 0.078125 1.953125 -0.046875 2.0625 -0.453125 C 2.078125 -0.484375 2.75 -3.1875 2.765625 -3.234375 C 2.796875 -3.390625 2.796875 -3.40625 2.9375 -3.5625 C 3.15625 -3.84375 3.53125 -4.140625 4.03125 -4.140625 C 4.265625 -4.140625 4.375 -4.03125 4.40625 -4 Z M 4.40625 -4 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-3-0">
|
||||||
|
<path d="M 2.515625 0 L 2.515625 -0.25 L 2.34375 -0.25 C 1.765625 -0.25 1.765625 -0.328125 1.765625 -0.5625 L 1.765625 -4.171875 C 1.765625 -4.421875 1.765625 -4.5 2.34375 -4.5 L 2.515625 -4.5 L 2.515625 -4.75 L 1.4375 -4.71875 L 0.359375 -4.75 L 0.359375 -4.5 L 0.53125 -4.5 C 1.109375 -4.5 1.109375 -4.421875 1.109375 -4.171875 L 1.109375 -0.5625 C 1.109375 -0.328125 1.109375 -0.25 0.53125 -0.25 L 0.359375 -0.25 L 0.359375 0 L 1.4375 -0.03125 Z M 2.515625 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-3-1">
|
||||||
|
<path d="M 4.734375 -3.125 L 4.53125 -4.71875 L 0.390625 -4.71875 L 0.390625 -4.46875 L 0.5625 -4.46875 C 1.09375 -4.46875 1.109375 -4.40625 1.109375 -4.15625 L 1.109375 -0.5625 C 1.109375 -0.328125 1.09375 -0.25 0.5625 -0.25 L 0.390625 -0.25 L 0.390625 0 L 1.453125 -0.03125 L 2.65625 0 L 2.65625 -0.25 L 2.421875 -0.25 C 1.765625 -0.25 1.765625 -0.34375 1.765625 -0.5625 L 1.765625 -2.234375 L 2.4375 -2.234375 C 3.140625 -2.234375 3.234375 -2.03125 3.234375 -1.421875 L 3.46875 -1.421875 L 3.46875 -3.296875 L 3.234375 -3.296875 C 3.234375 -2.703125 3.140625 -2.484375 2.4375 -2.484375 L 1.765625 -2.484375 L 1.765625 -4.203125 C 1.765625 -4.421875 1.765625 -4.46875 2.09375 -4.46875 L 3.078125 -4.46875 C 4.1875 -4.46875 4.375 -4.09375 4.5 -3.125 Z M 4.734375 -3.125 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-3-2">
|
||||||
|
<path d="M 5.46875 0 L 5.46875 -0.25 L 5.296875 -0.25 C 4.765625 -0.25 4.75 -0.3125 4.75 -0.5625 L 4.75 -4.1875 C 4.75 -4.421875 4.765625 -4.5 5.296875 -4.5 L 5.46875 -4.5 L 5.46875 -4.75 L 4.421875 -4.71875 L 3.375 -4.75 L 3.375 -4.5 L 3.546875 -4.5 C 4.078125 -4.5 4.09375 -4.421875 4.09375 -4.1875 L 4.09375 -2.59375 L 1.765625 -2.59375 L 1.765625 -4.1875 C 1.765625 -4.421875 1.78125 -4.5 2.3125 -4.5 L 2.484375 -4.5 L 2.484375 -4.75 L 1.4375 -4.71875 L 0.390625 -4.75 L 0.390625 -4.5 L 0.5625 -4.5 C 1.09375 -4.5 1.109375 -4.421875 1.109375 -4.1875 L 1.109375 -0.5625 C 1.109375 -0.328125 1.09375 -0.25 0.5625 -0.25 L 0.390625 -0.25 L 0.390625 0 L 1.4375 -0.03125 L 2.484375 0 L 2.484375 -0.25 L 2.3125 -0.25 C 1.78125 -0.25 1.765625 -0.3125 1.765625 -0.5625 L 1.765625 -2.34375 L 4.09375 -2.34375 L 4.09375 -0.5625 C 4.09375 -0.328125 4.078125 -0.25 3.546875 -0.25 L 3.375 -0.25 L 3.375 0 L 4.421875 -0.03125 Z M 5.46875 0 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-3-3">
|
||||||
|
<path d="M 5.546875 0 L 5.546875 -0.25 L 5.40625 -0.25 C 4.9375 -0.25 4.890625 -0.3125 4.8125 -0.515625 L 3.125 -4.796875 C 3.078125 -4.90625 3.0625 -4.953125 2.921875 -4.953125 C 2.796875 -4.953125 2.78125 -4.90625 2.734375 -4.796875 L 1.125 -0.734375 C 1.0625 -0.5625 0.9375 -0.25 0.3125 -0.25 L 0.3125 0 C 0.546875 -0.015625 0.796875 -0.03125 1.03125 -0.03125 C 1.3125 -0.03125 1.828125 0 1.859375 0 L 1.859375 -0.25 C 1.5625 -0.25 1.359375 -0.390625 1.359375 -0.578125 C 1.359375 -0.640625 1.375 -0.65625 1.390625 -0.71875 L 1.734375 -1.578125 L 3.703125 -1.578125 L 4.109375 -0.5625 C 4.125 -0.53125 4.140625 -0.484375 4.140625 -0.4375 C 4.140625 -0.25 3.765625 -0.25 3.578125 -0.25 L 3.578125 0 L 4.609375 -0.03125 C 4.9375 -0.03125 5.46875 0 5.546875 0 Z M 3.609375 -1.828125 L 1.828125 -1.828125 L 2.71875 -4.09375 Z M 3.609375 -1.828125 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-3-4">
|
||||||
|
<path d="M 5.171875 -1.625 C 5.171875 -1.703125 5.171875 -1.765625 5.0625 -1.765625 C 5.015625 -1.765625 4.9375 -1.765625 4.9375 -1.671875 C 4.875 -0.546875 3.9375 -0.109375 3.25 -0.109375 C 2.5 -0.109375 1.234375 -0.5625 1.234375 -2.375 C 1.234375 -4.25 2.578125 -4.640625 3.234375 -4.640625 C 3.921875 -4.640625 4.734375 -4.171875 4.921875 -2.984375 C 4.9375 -2.90625 5 -2.90625 5.046875 -2.90625 C 5.171875 -2.90625 5.171875 -2.9375 5.171875 -3.078125 L 5.171875 -4.703125 C 5.171875 -4.828125 5.171875 -4.890625 5.078125 -4.890625 C 5.046875 -4.890625 5.015625 -4.890625 4.953125 -4.8125 L 4.59375 -4.28125 C 4.296875 -4.5625 3.8125 -4.890625 3.15625 -4.890625 C 1.6875 -4.890625 0.484375 -3.765625 0.484375 -2.375 C 0.484375 -0.96875 1.703125 0.140625 3.15625 0.140625 C 4.375 0.140625 5.171875 -0.78125 5.171875 -1.625 Z M 5.171875 -1.625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-4-0">
|
||||||
|
<path d="M 11.5625 -4.28125 C 11.5625 -4.578125 11.28125 -4.578125 11.03125 -4.578125 L 6.46875 -4.578125 L 6.46875 -9.140625 C 6.46875 -9.375 6.46875 -9.671875 6.1875 -9.671875 C 5.875 -9.671875 5.875 -9.390625 5.875 -9.140625 L 5.875 -4.578125 L 1.328125 -4.578125 C 1.078125 -4.578125 0.796875 -4.578125 0.796875 -4.296875 C 0.796875 -3.984375 1.0625 -3.984375 1.328125 -3.984375 L 5.875 -3.984375 L 5.875 0.5625 C 5.875 0.8125 5.875 1.09375 6.171875 1.09375 C 6.46875 1.09375 6.46875 0.828125 6.46875 0.5625 L 6.46875 -3.984375 L 11.03125 -3.984375 C 11.265625 -3.984375 11.5625 -3.984375 11.5625 -4.28125 Z M 11.5625 -4.28125 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-5-0">
|
||||||
|
<path d="M 6.890625 -2.484375 C 6.890625 -2.6875 6.703125 -2.6875 6.5625 -2.6875 L 1.15625 -2.6875 C 1.015625 -2.6875 0.828125 -2.6875 0.828125 -2.484375 C 0.828125 -2.28125 1.015625 -2.28125 1.15625 -2.28125 L 6.5625 -2.28125 C 6.703125 -2.28125 6.890625 -2.28125 6.890625 -2.484375 Z M 6.890625 -2.484375 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-6-0">
|
||||||
|
<path d="M 4.578125 -1 C 4.578125 -1.078125 4.484375 -1.078125 4.46875 -1.078125 C 4.359375 -1.078125 4.359375 -1.046875 4.328125 -0.96875 C 4.171875 -0.40625 3.875 -0.125 3.59375 -0.125 C 3.453125 -0.125 3.421875 -0.21875 3.421875 -0.375 C 3.421875 -0.53125 3.453125 -0.625 3.578125 -0.9375 C 3.671875 -1.140625 3.953125 -1.890625 3.953125 -2.28125 C 3.953125 -2.953125 3.40625 -3.0625 3.046875 -3.0625 C 2.46875 -3.0625 2.078125 -2.71875 1.875 -2.4375 C 1.828125 -2.90625 1.40625 -3.0625 1.125 -3.0625 C 0.828125 -3.0625 0.671875 -2.84375 0.578125 -2.6875 C 0.421875 -2.4375 0.328125 -2.03125 0.328125 -2 C 0.328125 -1.90625 0.421875 -1.90625 0.4375 -1.90625 C 0.546875 -1.90625 0.546875 -1.9375 0.59375 -2.125 C 0.703125 -2.53125 0.828125 -2.875 1.109375 -2.875 C 1.28125 -2.875 1.328125 -2.71875 1.328125 -2.53125 C 1.328125 -2.40625 1.265625 -2.140625 1.21875 -1.953125 L 1.078125 -1.328125 L 0.84375 -0.4375 C 0.828125 -0.34375 0.78125 -0.171875 0.78125 -0.15625 C 0.78125 0 0.90625 0.0625 1.015625 0.0625 C 1.140625 0.0625 1.25 -0.015625 1.28125 -0.078125 C 1.328125 -0.140625 1.375 -0.375 1.40625 -0.515625 L 1.5625 -1.140625 C 1.609375 -1.296875 1.640625 -1.453125 1.6875 -1.609375 C 1.765625 -1.890625 1.765625 -1.953125 1.96875 -2.234375 C 2.171875 -2.515625 2.5 -2.875 3.015625 -2.875 C 3.421875 -2.875 3.421875 -2.515625 3.421875 -2.390625 C 3.421875 -1.96875 3.125 -1.203125 3.015625 -0.90625 C 2.9375 -0.703125 2.90625 -0.640625 2.90625 -0.53125 C 2.90625 -0.15625 3.21875 0.0625 3.578125 0.0625 C 4.265625 0.0625 4.578125 -0.890625 4.578125 -1 Z M 4.578125 -1 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-7-0">
|
||||||
|
<path d="M 7.734375 -1.0625 C 7.734375 -1.171875 7.625 -1.1875 7.546875 -1.1875 C 7.390625 -1.1875 7.0625 -1.078125 6.78125 -0.859375 C 6.375 -0.859375 6.0625 -0.859375 5.90625 -2.09375 L 5.734375 -3.625 C 8.359375 -5.0625 9.015625 -5.71875 9.015625 -6.234375 C 9.015625 -6.640625 8.640625 -6.8125 8.34375 -6.8125 C 7.90625 -6.8125 7.21875 -6.328125 7.21875 -6.078125 C 7.21875 -6.03125 7.234375 -5.96875 7.390625 -5.953125 C 7.703125 -5.921875 7.71875 -5.671875 7.71875 -5.609375 C 7.71875 -5.5 7.6875 -5.453125 7.453125 -5.265625 C 7.03125 -4.953125 6.328125 -4.5625 5.671875 -4.1875 C 5.53125 -5.109375 5.53125 -5.578125 5.421875 -6.03125 C 5.1875 -6.8125 4.671875 -6.8125 4.359375 -6.8125 C 3.015625 -6.8125 2.421875 -6 2.421875 -5.75 C 2.421875 -5.640625 2.53125 -5.625 2.59375 -5.625 C 2.59375 -5.625 2.9375 -5.625 3.375 -5.953125 C 3.6875 -5.953125 4.0625 -5.953125 4.203125 -4.984375 L 4.375 -3.484375 C 3.703125 -3.125 2.796875 -2.625 2.0625 -2.140625 C 1.609375 -1.859375 0.5625 -1.1875 0.5625 -0.578125 C 0.5625 -0.171875 0.90625 0 1.21875 0 C 1.65625 0 2.34375 -0.484375 2.34375 -0.734375 C 2.34375 -0.84375 2.234375 -0.859375 2.15625 -0.859375 C 1.984375 -0.890625 1.84375 -1.03125 1.84375 -1.203125 C 1.84375 -1.328125 1.890625 -1.375 2.15625 -1.5625 C 2.640625 -1.921875 3.375 -2.328125 4.4375 -2.921875 C 4.65625 -1.125 4.671875 -1 4.703125 -0.890625 C 4.921875 0 5.453125 0 5.78125 0 C 7.15625 0 7.734375 -0.828125 7.734375 -1.0625 Z M 7.734375 -1.0625 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-8-0">
|
||||||
|
<path d="M 2.078125 -3.5 C 2.078125 -3.71875 1.890625 -3.890625 1.671875 -3.890625 C 1.390625 -3.890625 1.328125 -3.65625 1.296875 -3.5625 L 0.375 -0.5625 L 0.328125 -0.4375 C 0.328125 -0.359375 0.546875 -0.28125 0.609375 -0.28125 C 0.65625 -0.28125 0.6875 -0.3125 0.703125 -0.390625 L 2.015625 -3.28125 C 2.046875 -3.359375 2.078125 -3.40625 2.078125 -3.5 Z M 2.078125 -3.5 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-8-1">
|
||||||
|
<path d="M 5.3125 -0.6875 C 5.3125 -0.734375 5.265625 -0.734375 5.234375 -0.734375 C 5.125 -0.734375 4.84375 -0.625 4.703125 -0.421875 C 4.46875 -0.421875 4.203125 -0.421875 4.078125 -1.0625 L 3.875 -2.46875 C 3.875 -2.5 3.890625 -2.515625 3.90625 -2.53125 L 4.15625 -2.65625 C 6.21875 -3.78125 6.21875 -4.09375 6.21875 -4.34375 C 6.21875 -4.546875 6.109375 -4.75 5.828125 -4.75 C 5.609375 -4.75 5.265625 -4.5 5.265625 -4.390625 C 5.265625 -4.328125 5.296875 -4.328125 5.34375 -4.328125 C 5.515625 -4.296875 5.578125 -4.15625 5.578125 -4.015625 C 5.578125 -3.875 5.578125 -3.796875 4.9375 -3.40625 C 4.8125 -3.3125 4.671875 -3.21875 3.84375 -2.78125 C 3.75 -3.28125 3.703125 -3.84375 3.640625 -4.09375 C 3.515625 -4.65625 3.265625 -4.75 2.953125 -4.75 C 2.1875 -4.75 1.78125 -4.234375 1.78125 -4.078125 C 1.78125 -4.015625 1.828125 -4.015625 1.859375 -4.015625 C 1.984375 -4.015625 2.265625 -4.125 2.40625 -4.328125 C 2.625 -4.328125 2.875 -4.328125 3 -3.75 L 3.1875 -2.421875 C 2.796875 -2.21875 2.0625 -1.828125 1.640625 -1.578125 C 0.546875 -0.890625 0.484375 -0.625 0.484375 -0.40625 C 0.484375 -0.203125 0.59375 0 0.890625 0 C 1.09375 0 1.453125 -0.234375 1.453125 -0.375 C 1.453125 -0.421875 1.390625 -0.421875 1.359375 -0.421875 C 1.203125 -0.4375 1.140625 -0.5625 1.140625 -0.734375 C 1.140625 -0.890625 1.140625 -0.984375 1.984375 -1.484375 L 3.21875 -2.15625 C 3.328125 -1.625 3.40625 -0.921875 3.421875 -0.78125 C 3.53125 -0.3125 3.640625 0 4.140625 0 C 4.90625 0 5.3125 -0.5 5.3125 -0.6875 Z M 5.3125 -0.6875 "/>
|
||||||
|
</g>
|
||||||
|
<g id="glyph-8-2">
|
||||||
|
<path d="M 5.125 -0.984375 C 5.125 -1.015625 5.109375 -1.046875 5.0625 -1.046875 C 4.953125 -1.046875 4.5 -0.890625 4.421875 -0.609375 C 4.3125 -0.3125 4.234375 -0.3125 4.0625 -0.3125 C 3.6875 -0.3125 3.1875 -0.4375 2.84375 -0.53125 C 2.484375 -0.625 2.109375 -0.703125 1.75 -0.703125 C 1.71875 -0.703125 1.578125 -0.703125 1.484375 -0.6875 C 1.859375 -1.234375 1.953125 -1.578125 2.0625 -2.015625 C 2.203125 -2.53125 2.40625 -3.25 2.75 -3.828125 C 3.09375 -4.390625 3.265625 -4.421875 3.5 -4.421875 C 3.828125 -4.421875 4.046875 -4.1875 4.046875 -3.84375 C 4.046875 -3.734375 4.03125 -3.65625 4.03125 -3.625 C 4.03125 -3.59375 4.046875 -3.5625 4.109375 -3.5625 C 4.125 -3.5625 4.296875 -3.59375 4.546875 -3.765625 C 4.6875 -3.859375 4.765625 -3.9375 4.765625 -4.203125 C 4.765625 -4.46875 4.609375 -4.890625 4.0625 -4.890625 C 3.453125 -4.890625 2.78125 -4.484375 2.421875 -4.046875 C 1.953125 -3.515625 1.640625 -2.8125 1.359375 -1.671875 C 1.1875 -1.03125 0.9375 -0.5 0.609375 -0.234375 C 0.546875 -0.171875 0.359375 0 0.359375 0.09375 C 0.359375 0.140625 0.421875 0.140625 0.4375 0.140625 C 0.6875 0.140625 1 -0.15625 1.09375 -0.25 C 1.296875 -0.25 1.578125 -0.234375 2.203125 -0.078125 C 2.734375 0.0625 3.109375 0.140625 3.5 0.140625 C 4.375 0.140625 5.125 -0.65625 5.125 -0.984375 Z M 5.125 -0.984375 "/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<clipPath id="clip-0">
|
||||||
|
<path clip-rule="nonzero" d="M 172 0.046875 L 310 0.046875 L 310 110 L 172 110 Z M 172 0.046875 "/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="clip-1">
|
||||||
|
<path clip-rule="nonzero" d="M 309 74 L 330.339844 74 L 330.339844 106 L 309 106 Z M 309 74 "/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="clip-2">
|
||||||
|
<path clip-rule="nonzero" d="M 33 86 L 316 86 L 316 117.554688 L 33 117.554688 Z M 33 86 "/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(79.998779%, 79.998779%, 79.998779%)" fill-opacity="1" d="M 173.285156 109.414062 L 309.019531 109.414062 L 309.019531 1.042969 L 173.285156 1.042969 Z M 173.285156 109.414062 "/>
|
||||||
|
<g clip-path="url(#clip-0)">
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-dasharray="2.98883 2.98883" stroke-miterlimit="10" d="M -79.416496 -36.815469 L 56.658887 -36.815469 L 56.658887 71.827888 L -79.416496 71.827888 Z M -79.416496 -36.815469 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-0" x="176.596333" y="9.832774"/>
|
||||||
|
<use xlink:href="#glyph-0-1" x="183.044681" y="9.832774"/>
|
||||||
|
<use xlink:href="#glyph-0-2" x="187.268584" y="9.832774"/>
|
||||||
|
<use xlink:href="#glyph-0-3" x="194.307626" y="9.832774"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-4" x="199.239089" y="9.832774"/>
|
||||||
|
<use xlink:href="#glyph-0-5" x="202.993139" y="9.832774"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-6" x="210.500444" y="9.832774"/>
|
||||||
|
<use xlink:href="#glyph-0-7" x="216.245206" y="9.832774"/>
|
||||||
|
<use xlink:href="#glyph-0-1" x="218.591288" y="9.832774"/>
|
||||||
|
<use xlink:href="#glyph-0-8" x="222.81519" y="9.832774"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-0-9" x="227.269646" y="9.832774"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -28.347109 -28.345023 L 28.345746 -28.345023 L 28.345746 28.347832 L -28.347109 28.347832 Z M -28.347109 -28.345023 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-0" x="240.701281" y="76.113256"/>
|
||||||
|
<use xlink:href="#glyph-1-1" x="247.464835" y="76.113256"/>
|
||||||
|
<use xlink:href="#glyph-1-2" x="250.225509" y="76.113256"/>
|
||||||
|
<use xlink:href="#glyph-1-3" x="255.194326" y="76.113256"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-1-4" x="260.437421" y="76.113256"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -17.006188 35.012973 L 17.008742 35.012973 L 17.008742 63.357442 L -17.006188 63.357442 Z M -17.006188 35.012973 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-0" x="240.86487" y="26.292422"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-3-0" x="250.516622" y="27.782678"/>
|
||||||
|
<use xlink:href="#glyph-3-1" x="253.387497" y="27.782678"/>
|
||||||
|
<use xlink:href="#glyph-3-1" x="258.515003" y="27.782678"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -51.522374 -0.00055342 C -51.522374 5.501516 -55.982771 9.961913 -61.48484 9.961913 C -66.98691 9.961913 -71.447306 5.501516 -71.447306 -0.00055342 C -71.447306 -5.502623 -66.98691 -9.96302 -61.48484 -9.96302 C -55.982771 -9.96302 -51.522374 -5.502623 -51.522374 -0.00055342 Z M -51.522374 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-0" x="184.991243" y="76.846414"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -128.672746 -14.172788 L -94.622572 -14.172788 L -94.622572 14.171681 L -128.672746 14.171681 Z M -128.672746 -14.172788 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-0" x="127.465765" y="75.354163"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-3-2" x="137.116519" y="76.845417"/>
|
||||||
|
<use xlink:href="#glyph-3-3" x="142.982787" y="76.845417"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-3-4" x="148.633409" y="76.845417"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -186.364197 -14.172788 L -152.345351 -14.172788 L -152.345351 14.171681 L -186.364197 14.171681 Z M -186.364197 -14.172788 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-1" x="79.937172" y="76.099291"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -209.539462 -0.00055342 C -209.539462 5.501516 -213.999859 9.961913 -219.501928 9.961913 C -225.003998 9.961913 -229.464395 5.501516 -229.464395 -0.00055342 C -229.464395 -5.502623 -225.003998 -9.96302 -219.501928 -9.96302 C -213.999859 -9.96302 -209.539462 -5.502623 -209.539462 -0.00055342 Z M -209.539462 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-4-0" x="27.37323" y="76.846414"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-5-0" x="23.837114" y="90.412332"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 28.843086 17.308448 L 48.685781 17.308448 L 48.685781 49.185207 L 22.138785 49.185207 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054563 0.000542718 L 1.609831 1.68445 L 3.086187 0.000542718 L 1.609831 -1.683365 Z M 6.054563 0.000542718 " transform="matrix(-0.997494, 0, 0, 0.997494, 277.418296, 23.628365)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-2" x="285.083778" y="49.685651"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-6-0" x="290.728597" y="51.175907"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -17.507444 49.185207 L -61.48484 49.185207 L -61.48484 14.594616 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.055312 0.000369931 L 1.61058 1.684277 L 3.086936 0.000369931 L 1.61058 -1.683537 Z M 6.055312 0.000369931 " transform="matrix(0, 0.997494, 0.997494, 0, 191.171506, 55.299706)"/>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -51.522374 -0.00055342 L -33.477152 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054936 -0.00055342 L 1.610204 1.683354 L 3.08656 -0.00055342 L 1.610204 -1.684461 Z M 6.054936 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 216.276644, 72.690854)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-2" x="213.178428" y="66.949279"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 28.843086 -17.305639 L 72.401463 -17.305639 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 327.929688 89.953125 L 323.496094 88.277344 L 324.96875 89.953125 L 323.496094 91.632812 Z M 327.929688 89.953125 "/>
|
||||||
|
<g clip-path="url(#clip-1)">
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054222 0.00150087 L 1.609489 1.681492 L 3.085846 0.00150087 L 1.609489 -1.682407 Z M 6.054222 0.00150087 " transform="matrix(0.997494, 0, 0, -0.997494, 321.890638, 89.954622)"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-7-0" x="315.956217" y="86.145053"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -94.125231 -0.00055342 L -76.08001 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.055139 -0.00055342 L 1.610406 1.683354 L 3.086762 -0.00055342 L 1.610406 -1.684461 Z M 6.055139 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 173.780348, 72.690854)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-2" x="162.422942" y="66.949279"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-8-0" x="169.166001" y="63.342341"/>
|
||||||
|
</g>
|
||||||
|
<g clip-path="url(#clip-2)">
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 62.861932 -17.305639 L 62.861932 -43.977949 L -219.501928 -43.977949 L -219.501928 -14.595723 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054205 0.00032845 L 1.609473 1.684236 L 3.085829 0.00032845 L 1.609473 -1.683579 Z M 6.054205 0.00032845 " transform="matrix(0, -0.997494, -0.997494, 0, 33.551109, 90.082002)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 317.195312 89.953125 C 317.195312 88.855469 316.304688 87.96875 315.207031 87.96875 C 314.109375 87.96875 313.21875 88.855469 313.21875 89.953125 C 313.21875 91.050781 314.109375 91.941406 315.207031 91.941406 C 316.304688 91.941406 317.195312 91.050781 317.195312 89.953125 Z M 317.195312 89.953125 "/>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -209.539462 -0.00055342 L -191.494241 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.054238 -0.00055342 L 1.609505 1.683354 L 3.085862 -0.00055342 L 1.609505 -1.684461 Z M 6.054238 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 58.656247, 72.690854)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-3" x="50.287661" y="67.391169"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-8-1" x="55.090595" y="68.881425"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -151.848011 -0.00055342 L -133.806705 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.051883 -0.00055342 L 1.607151 1.683354 L 3.087423 -0.00055342 L 1.607151 -1.684461 Z M 6.051883 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 116.201564, 72.690854)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-3" x="109.040056" y="67.391169"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-8-2" x="113.84299" y="68.881425"/>
|
||||||
|
</g>
|
||||||
|
<path fill="none" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -234.097098 -0.00055342 L -252.14232 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 252.502633, 72.690854)"/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" stroke-width="0.99628" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.05444 -0.00055342 L 1.609708 1.683354 L 3.086064 -0.00055342 L 1.609708 -1.684461 Z M 6.05444 -0.00055342 " transform="matrix(0.997494, 0, 0, -0.997494, 16.159951, 72.690854)"/>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-2-4" x="4.804928" y="67.391169"/>
|
||||||
|
</g>
|
||||||
|
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
|
||||||
|
<use xlink:href="#glyph-8-1" x="10.058729" y="68.881425"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 44 KiB |
BIN
figs/nhexa_multi_body_plant_dL.pdf
Normal file
BIN
figs/nhexa_multi_body_plant_dL.png
Normal file
After Width: | Height: | Size: 91 KiB |
2382
figs/nhexa_multi_body_plant_fm.pdf
Normal file
BIN
figs/nhexa_multi_body_plant_fm.png
Normal file
After Width: | Height: | Size: 99 KiB |
BIN
figs/nhexa_parallel_architecture_shen.pdf
Normal file
BIN
figs/nhexa_parallel_architecture_shen.png
Normal file
After Width: | Height: | Size: 97 KiB |
1803
figs/nhexa_plant_frame_cartesian.pdf
Normal file
BIN
figs/nhexa_plant_frame_cartesian.png
Normal file
After Width: | Height: | Size: 96 KiB |
BIN
figs/nhexa_plant_frame_struts.pdf
Normal file
BIN
figs/nhexa_plant_frame_struts.png
Normal file
After Width: | Height: | Size: 91 KiB |
BIN
figs/nhexa_serial_architecture_kenton.pdf
Normal file
BIN
figs/nhexa_serial_architecture_kenton.png
Normal file
After Width: | Height: | Size: 107 KiB |
BIN
figs/nhexa_simscape_screenshot.jpg
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
figs/nhexa_simscape_screenshot.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
figs/nhexa_stages_nazaretski.pdf
Normal file
BIN
figs/nhexa_stages_nazaretski.png
Normal file
After Width: | Height: | Size: 148 KiB |
BIN
figs/nhexa_stages_sapoti.pdf
Normal file
BIN
figs/nhexa_stages_sapoti.png
Normal file
After Width: | Height: | Size: 362 KiB |
BIN
figs/nhexa_stages_schroer.pdf
Normal file
BIN
figs/nhexa_stages_schroer.png
Normal file
After Width: | Height: | Size: 197 KiB |
BIN
figs/nhexa_stages_villar.pdf
Normal file
BIN
figs/nhexa_stages_villar.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
figs/nhexa_stewart_architecture.pdf
Normal file
BIN
figs/nhexa_stewart_architecture.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
figs/nhexa_stewart_decentralized_control.pdf
Normal file
BIN
figs/nhexa_stewart_decentralized_control.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
figs/nhexa_stewart_loop_closure.pdf
Normal file
BIN
figs/nhexa_stewart_loop_closure.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
figs/nhexa_stewart_model_def.pdf
Normal file
BIN
figs/nhexa_stewart_model_def.png
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
figs/nhexa_stewart_model_input_outputs.pdf
Normal file
BIN
figs/nhexa_stewart_model_input_outputs.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
figs/nhexa_stewart_notations.pdf
Normal file
BIN
figs/nhexa_stewart_notations.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
figs/nhexa_stewart_piezo_furutani.pdf
Normal file
BIN
figs/nhexa_stewart_piezo_furutani.png
Normal file
After Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 34 KiB |
BIN
figs/nhexa_stewart_vc_preumont.pdf
Normal file
BIN
figs/nhexa_stewart_vc_preumont.png
Normal file
After Width: | Height: | Size: 204 KiB |
BIN
matlab/mat/nano_hexapod.mat
Normal file
BIN
matlab/mat/nano_hexapod_model_conf_log.mat
Normal file
BIN
matlab/mat/nano_hexapod_model_controller.mat
Normal file
BIN
matlab/nano_hexapod_model.slx
Normal file
79
matlab/nhexa_1_stewart_platform.m
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
%% Clear Workspace and Close figures
|
||||||
|
clear; close all; clc;
|
||||||
|
|
||||||
|
%% Intialize Laplace variable
|
||||||
|
s = zpk('s');
|
||||||
|
|
||||||
|
%% Path for functions, data and scripts
|
||||||
|
addpath('./mat/'); % Path for Data
|
||||||
|
addpath('./src/'); % Path for functions
|
||||||
|
addpath('./subsystems/'); % Path for Subsystems Simulink files
|
||||||
|
|
||||||
|
%% Data directory
|
||||||
|
data_dir = './mat/';
|
||||||
|
|
||||||
|
% Simulink Model name
|
||||||
|
mdl = 'nano_hexapod_model';
|
||||||
|
|
||||||
|
%% Colors for the figures
|
||||||
|
colors = colororder;
|
||||||
|
|
||||||
|
%% Frequency Vector [Hz]
|
||||||
|
freqs = logspace(0, 3, 1000);
|
||||||
|
|
||||||
|
%% Estimate the errors associated with approximate forward kinematics using the Jacobian matrix
|
||||||
|
stewart = initializeSimplifiedNanoHexapod('H', 100e-3);
|
||||||
|
|
||||||
|
Xrs = logspace(-6, -1, 10); % Wanted X translation of the mobile platform [m]
|
||||||
|
phis = linspace(-pi, pi, 100); % Tested azimutal angles [rad]
|
||||||
|
thetas = linspace(0, pi, 100); % Tested polar angles [rad]
|
||||||
|
|
||||||
|
% Compute the strut exact length for each X-position
|
||||||
|
Xrs_errors = zeros(1, length(Xrs)); % Maximum distance error [m]
|
||||||
|
Rrs_errors = zeros(1, length(Xrs)); % Maximum angular error [rad]
|
||||||
|
for i = 1:length(Xrs)
|
||||||
|
Xrs_error_min = 0;
|
||||||
|
Rrs_error_min = 0;
|
||||||
|
for theta = thetas
|
||||||
|
for phi = phis
|
||||||
|
ix = [sin(theta)*cos(phi); sin(theta)*sin(phi);cos(theta)]; % Unit vector for the displacement direction
|
||||||
|
[~, L_exact] = inverseKinematics(stewart, 'AP', Xrs(i)*ix); % Compute exact strut length for the wanted position
|
||||||
|
Xrs_approx = inv(stewart.geometry.J)*L_exact; % Approximate the position using the Jacobian
|
||||||
|
Xrs_error = norm(Xrs(i)*ix - Xrs_approx(1:3), 2); % Compute the position estimation error
|
||||||
|
Rrs_error = norm(Xrs_approx(4:6), 2); % Compute the angular estimation error
|
||||||
|
if Xrs_error > Xrs_error_min
|
||||||
|
Xrs_error_min = Xrs_error;
|
||||||
|
end
|
||||||
|
if Rrs_error > Rrs_error_min
|
||||||
|
Rrs_error_min = Rrs_error;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Xrs_errors(i) = Xrs_error_min;
|
||||||
|
Rrs_errors(i) = Rrs_error_min;
|
||||||
|
end
|
||||||
|
|
||||||
|
%% Errors associated with the use of the Jacobian matrix to solve the forward kinematic problem
|
||||||
|
figure;
|
||||||
|
yyaxis left
|
||||||
|
hold on;
|
||||||
|
plot(1e6*Xrs, 1e9*Xrs_errors, 'DisplayName', '$\epsilon_D$');
|
||||||
|
plot(1e6*Xrs, 1e6*Xrs, '--', 'DisplayName', '$0.1\%$ error');
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
xlim([1, 1e4]); ylim([1, 1e4]);
|
||||||
|
xlabel('Motion Stroke');
|
||||||
|
ylabel('Kinematic Errors');
|
||||||
|
xticks([1, 10, 100, 1000, 10000]);
|
||||||
|
yticks([1, 10, 100, 1000, 10000]);
|
||||||
|
xticklabels({'$1\mu m$', '$10\mu m$', '$100\mu m$', '$1mm$', '$10mm$'});
|
||||||
|
yticklabels({'$1nm$', '$10nm$', '$100nm$', '$1\mu m$', '$10\mu m$'});
|
||||||
|
|
||||||
|
yyaxis right
|
||||||
|
plot(1e6*Xrs, 1e9*Rrs_errors, 'DisplayName', '$\epsilon_R$');
|
||||||
|
set(gca, 'YScale', 'log');
|
||||||
|
ylim([1, 1e4]);
|
||||||
|
yticks([1, 10, 100, 1000, 10000]);
|
||||||
|
yticklabels({'$1$nrad', '$10$nrad', '$100$nrad', '$1\mu$rad', '$10\mu$rad'});
|
224
matlab/nhexa_2_model.m
Normal file
@@ -0,0 +1,224 @@
|
|||||||
|
%% Clear Workspace and Close figures
|
||||||
|
clear; close all; clc;
|
||||||
|
|
||||||
|
%% Intialize Laplace variable
|
||||||
|
s = zpk('s');
|
||||||
|
|
||||||
|
%% Path for functions, data and scripts
|
||||||
|
addpath('./mat/'); % Path for Data
|
||||||
|
addpath('./src/'); % Path for functions
|
||||||
|
addpath('./subsystems/'); % Path for Subsystems Simulink files
|
||||||
|
|
||||||
|
%% Data directory
|
||||||
|
data_dir = './mat/';
|
||||||
|
|
||||||
|
% Simulink Model name
|
||||||
|
mdl = 'nano_hexapod_model';
|
||||||
|
|
||||||
|
%% Colors for the figures
|
||||||
|
colors = colororder;
|
||||||
|
|
||||||
|
%% Frequency Vector [Hz]
|
||||||
|
freqs = logspace(0, 3, 1000);
|
||||||
|
|
||||||
|
%% Plant using Analytical Equations
|
||||||
|
% Stewart platform definition
|
||||||
|
k = 1e6; % Actuator stiffness [N/m]
|
||||||
|
c = 1e1; % Actuator damping [N/(m/s)]
|
||||||
|
|
||||||
|
stewart = initializeSimplifiedNanoHexapod(...
|
||||||
|
'Mpm', 1e-3, ...
|
||||||
|
'actuator_type', '1dof', ...
|
||||||
|
'actuator_k', k, ...
|
||||||
|
'actuator_kp', 0, ...
|
||||||
|
'actuator_c', c ...
|
||||||
|
);
|
||||||
|
|
||||||
|
% Payload: Cylinder
|
||||||
|
h = 300e-3; % Height of the cylinder [m]
|
||||||
|
r = 110e-3; % Radius of the cylinder [m]
|
||||||
|
m = 10; % Mass of the payload [kg]
|
||||||
|
initializeSample('type', 'cylindrical', 'm', m, 'H', h, 'R', r);
|
||||||
|
|
||||||
|
% Mass Matrix
|
||||||
|
M = zeros(6,6);
|
||||||
|
M(1,1) = m;
|
||||||
|
M(2,2) = m;
|
||||||
|
M(3,3) = m;
|
||||||
|
M(4,4) = 1/12*m*(3*r^2 + h^2);
|
||||||
|
M(5,5) = 1/12*m*(3*r^2 + h^2);
|
||||||
|
M(6,6) = 1/2*m*r^2;
|
||||||
|
|
||||||
|
% Stiffness and Damping matrices
|
||||||
|
K = k*eye(6);
|
||||||
|
C = c*eye(6);
|
||||||
|
|
||||||
|
% Compute plant in the frame of the struts
|
||||||
|
G_analytical = inv(ss(inv(stewart.geometry.J')*M*inv(stewart.geometry.J)*s^2 + C*s + K));
|
||||||
|
|
||||||
|
% Compare with Simscape model
|
||||||
|
initializeLoggingConfiguration('log', 'none');
|
||||||
|
initializeController('type', 'open-loop');
|
||||||
|
|
||||||
|
% Input/Output definition
|
||||||
|
clear io; io_i = 1;
|
||||||
|
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Inputs [N]
|
||||||
|
io(io_i) = linio([mdl, '/plant'], 2, 'openoutput', [], 'dL'); io_i = io_i + 1; % Encoders [m]
|
||||||
|
|
||||||
|
G_simscape = linearize(mdl, io);
|
||||||
|
G_simscape.InputName = {'f1', 'f2', 'f3', 'f4', 'f5', 'f6'};
|
||||||
|
G_simscape.OutputName = {'dL1', 'dL2', 'dL3', 'dL4', 'dL5', 'dL6'};
|
||||||
|
|
||||||
|
%% Comparison of the analytical transfer functions and the multi-body model
|
||||||
|
figure;
|
||||||
|
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||||
|
|
||||||
|
ax1 = nexttile([2,1]);
|
||||||
|
hold on;
|
||||||
|
for i = 1:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_simscape(i,1), freqs, 'Hz'))), 'color', [colors(i,:), 0.5], 'linewidth', 2.5, ...
|
||||||
|
'DisplayName', sprintf('$l_%i/f_1$ - Multi-Body', i))
|
||||||
|
end
|
||||||
|
for i = 1:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_analytical(i,1), freqs, 'Hz'))), '--', 'color', [colors(i,:)], ...
|
||||||
|
'DisplayName', sprintf('$l_%i/f_1$ - Analytical', i))
|
||||||
|
end
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
|
||||||
|
ylim([1e-9, 1e-4]);
|
||||||
|
leg = legend('location', 'northwest', 'FontSize', 6, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
|
ax2 = nexttile;
|
||||||
|
hold on;
|
||||||
|
for i = 1:6
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_simscape(i,1), freqs, 'Hz'))), 'color', [colors(i,:),0.5], 'linewidth', 2.5);
|
||||||
|
end
|
||||||
|
for i = 1:6
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_analytical(i,1), freqs, 'Hz'))), '--', 'color', colors(i,:));
|
||||||
|
end
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
|
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
|
||||||
|
ylim([-180, 180]);
|
||||||
|
yticks([-180, -90, 0, 90, 180]);
|
||||||
|
|
||||||
|
linkaxes([ax1,ax2],'x');
|
||||||
|
xlim([freqs(1), freqs(end)]);
|
||||||
|
|
||||||
|
%% Multi-Body model of the Nano-Hexapod
|
||||||
|
% Initialize 1DoF
|
||||||
|
initializeSimplifiedNanoHexapod('flex_type_F', '2dof', 'flex_type_M', '3dof', 'actuator_type', '1dof');
|
||||||
|
initializeSample('type', 'cylindrical', 'm', 10, 'H', 300e-3);
|
||||||
|
initializeLoggingConfiguration('log', 'none');
|
||||||
|
initializeController('type', 'open-loop');
|
||||||
|
|
||||||
|
% Input/Output definition
|
||||||
|
clear io; io_i = 1;
|
||||||
|
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Inputs [N]
|
||||||
|
io(io_i) = linio([mdl, '/plant'], 2, 'openoutput', [], 'dL'); io_i = io_i + 1; % Encoders [m]
|
||||||
|
io(io_i) = linio([mdl, '/plant'], 2, 'openoutput', [], 'fn'); io_i = io_i + 1; % Force Sensors [N]
|
||||||
|
|
||||||
|
% With no payload
|
||||||
|
G = linearize(mdl, io);
|
||||||
|
G.InputName = {'f1', 'f2', 'f3', 'f4', 'f5', 'f6'};
|
||||||
|
G.OutputName = {'dL1', 'dL2', 'dL3', 'dL4', 'dL5', 'dL6', ...
|
||||||
|
'fn1', 'fn2', 'fn3', 'fn4', 'fn5', 'fn6'};
|
||||||
|
|
||||||
|
%% Multi-Body model of the Nano-Hexapod without parallel stiffness
|
||||||
|
% Initialize 1DoF
|
||||||
|
initializeSimplifiedNanoHexapod('flex_type_F', '2dof', 'flex_type_M', '3dof', 'actuator_type', '1dof', 'actuator_kp', 0);
|
||||||
|
|
||||||
|
% With no payload
|
||||||
|
G_no_kp = linearize(mdl, io);
|
||||||
|
G_no_kp.InputName = {'f1', 'f2', 'f3', 'f4', 'f5', 'f6'};
|
||||||
|
G_no_kp.OutputName = {'dL1', 'dL2', 'dL3', 'dL4', 'dL5', 'dL6', ...
|
||||||
|
'fn1', 'fn2', 'fn3', 'fn4', 'fn5', 'fn6'};
|
||||||
|
|
||||||
|
%% Transfer function from actuator force inputs to displacement of each strut
|
||||||
|
figure;
|
||||||
|
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||||
|
|
||||||
|
ax1 = nexttile([2,1]);
|
||||||
|
hold on;
|
||||||
|
for i = 1:5
|
||||||
|
for j = i+1:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G(i,j), freqs, 'Hz'))), 'color', [0, 0, 0, 0.2], ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
end
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G(1,1), freqs, 'Hz'))), 'color', colors(1,:), ...
|
||||||
|
'DisplayName', '$l_i/f_i$')
|
||||||
|
for i = 2:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G(i,i), freqs, 'Hz'))), 'color', colors(1,:), ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G(1,2), freqs, 'Hz'))), 'color', [0, 0, 0, 0.2], ...
|
||||||
|
'DisplayName', '$l_i/f_j$')
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
|
||||||
|
ylim([1e-9, 1e-4]);
|
||||||
|
leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
|
ax2 = nexttile;
|
||||||
|
hold on;
|
||||||
|
for i = 1:6
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G(i,i), freqs, 'Hz'))), 'color', [colors(1,:),0.5]);
|
||||||
|
end
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
|
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
|
||||||
|
ylim([-180, 180]);
|
||||||
|
yticks([-180, -90, 0, 90, 180]);
|
||||||
|
|
||||||
|
linkaxes([ax1,ax2],'x');
|
||||||
|
xlim([freqs(1), freqs(end)]);
|
||||||
|
|
||||||
|
%% Transfer function from actuator force inputs to force sensor in each strut
|
||||||
|
figure;
|
||||||
|
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||||
|
|
||||||
|
ax1 = nexttile([2,1]);
|
||||||
|
hold on;
|
||||||
|
for i = 1:5
|
||||||
|
for j = i+1:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G(6+i,j), freqs, 'Hz'))), 'color', [0, 0, 0, 0.2], ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
end
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G(7,1), freqs, 'Hz'))), 'color', colors(1,:), ...
|
||||||
|
'DisplayName', '$f_{ni}/f_i$')
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_no_kp(7,1), freqs, 'Hz'))), 'color', colors(2,:), ...
|
||||||
|
'DisplayName', '$f_{ni}/f_i$ (no $k_p$)')
|
||||||
|
for i = 2:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G(6+i,i), freqs, 'Hz'))), 'color', colors(1,:), ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_no_kp(6+i,i), freqs, 'Hz'))), 'color', colors(2,:), ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G(7,2), freqs, 'Hz'))), 'color', [0, 0, 0, 0.2], ...
|
||||||
|
'DisplayName', '$f_{ni}/f_j$')
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]);
|
||||||
|
ylim([1e-4, 1e2]);
|
||||||
|
leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
|
ax2 = nexttile;
|
||||||
|
hold on;
|
||||||
|
for i = 1:6
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G(6+i,i), freqs, 'Hz'))), 'color', colors(1,:));
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_no_kp(6+i,i), freqs, 'Hz'))), 'color', colors(2,:));
|
||||||
|
end
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
|
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
|
||||||
|
ylim([-180, 180]);
|
||||||
|
yticks([-180, -90, 0, 90, 180]);
|
||||||
|
|
||||||
|
linkaxes([ax1,ax2],'x');
|
||||||
|
xlim([freqs(1), freqs(end)]);
|
397
matlab/nhexa_3_control.m
Normal file
@@ -0,0 +1,397 @@
|
|||||||
|
%% Clear Workspace and Close figures
|
||||||
|
clear; close all; clc;
|
||||||
|
|
||||||
|
%% Intialize Laplace variable
|
||||||
|
s = zpk('s');
|
||||||
|
|
||||||
|
%% Path for functions, data and scripts
|
||||||
|
addpath('./mat/'); % Path for Data
|
||||||
|
addpath('./src/'); % Path for functions
|
||||||
|
addpath('./subsystems/'); % Path for Subsystems Simulink files
|
||||||
|
|
||||||
|
%% Data directory
|
||||||
|
data_dir = './mat/';
|
||||||
|
|
||||||
|
% Simulink Model name
|
||||||
|
mdl = 'nano_hexapod_model';
|
||||||
|
|
||||||
|
%% Colors for the figures
|
||||||
|
colors = colororder;
|
||||||
|
|
||||||
|
%% Frequency Vector [Hz]
|
||||||
|
freqs = logspace(0, 3, 1000);
|
||||||
|
|
||||||
|
%% Identify plant from actuator forces to external metrology
|
||||||
|
stewart = initializeSimplifiedNanoHexapod();
|
||||||
|
initializeSample('type', 'cylindrical', 'm', 10, 'H', 300e-3);
|
||||||
|
initializeLoggingConfiguration('log', 'none');
|
||||||
|
initializeController('type', 'open-loop');
|
||||||
|
|
||||||
|
% Input/Output definition
|
||||||
|
clear io; io_i = 1;
|
||||||
|
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Inputs [N]
|
||||||
|
io(io_i) = linio([mdl, '/plant'], 1, 'openoutput'); io_i = io_i + 1; % External Metrology [m, rad]
|
||||||
|
|
||||||
|
% With no payload
|
||||||
|
G = linearize(mdl, io);
|
||||||
|
G.InputName = {'f1', 'f2', 'f3', 'f4', 'f5', 'f6'};
|
||||||
|
G.OutputName = {'Dx', 'Dy', 'Dz', 'Rx', 'Ry', 'Rz'};
|
||||||
|
|
||||||
|
%% Plant in the Cartesian Frame
|
||||||
|
G_cart = G*inv(stewart.geometry.J');
|
||||||
|
G_cart.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'};
|
||||||
|
|
||||||
|
%% Plant in the frame of the struts
|
||||||
|
G_struts = stewart.geometry.J*G;
|
||||||
|
G_struts.OutputName = {'D1', 'D2', 'D3', 'D4', 'D5', 'D6'};
|
||||||
|
|
||||||
|
%% Bode plot of the plant projected in the frame of the struts
|
||||||
|
figure;
|
||||||
|
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||||
|
|
||||||
|
ax1 = nexttile([2,1]);
|
||||||
|
hold on;
|
||||||
|
for i = 1:5
|
||||||
|
for j = i+1:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_struts(i,j), freqs, 'Hz'))), 'color', [0, 0, 0, 0.2], ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
end
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_struts(1,1), freqs, 'Hz'))), 'color', colors(1,:), ...
|
||||||
|
'DisplayName', '$-\epsilon_{\mathcal{L}i}/f_i$')
|
||||||
|
for i = 2:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_struts(i,i), freqs, 'Hz'))), 'color', colors(1,:), ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_struts(1,2), freqs, 'Hz'))), 'color', [0, 0, 0, 0.2], ...
|
||||||
|
'DisplayName', '$-\epsilon_{\mathcal{L}i}/f_j$')
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
|
||||||
|
ylim([1e-9, 1e-4]);
|
||||||
|
leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
|
ax2 = nexttile;
|
||||||
|
hold on;
|
||||||
|
for i = 1:6
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_struts(i,i), freqs, 'Hz'))), 'color', [colors(1,:),0.5]);
|
||||||
|
end
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
|
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
|
||||||
|
ylim([-180, 180]);
|
||||||
|
yticks([-180, -90, 0, 90, 180]);
|
||||||
|
|
||||||
|
linkaxes([ax1,ax2],'x');
|
||||||
|
xlim([freqs(1), freqs(end)]);
|
||||||
|
|
||||||
|
%% Bode plot of the plant projected in the Cartesian frame
|
||||||
|
figure;
|
||||||
|
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||||
|
|
||||||
|
ax1 = nexttile([2,1]);
|
||||||
|
hold on;
|
||||||
|
for i = 1:5
|
||||||
|
for j = i+1:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_cart(i,j), freqs, 'Hz'))), 'color', [0, 0, 0, 0.2], ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
end
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_cart(1,1), freqs, 'Hz'))), 'color', colors(1,:), ...
|
||||||
|
'DisplayName', '$\epsilon_{D_x}/\mathcal{F}_x$ [m/N]')
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_cart(2,2), freqs, 'Hz'))), 'color', colors(2,:), ...
|
||||||
|
'DisplayName', '$\epsilon_{D_y}/\mathcal{F}_y$ [m/N]')
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_cart(3,3), freqs, 'Hz'))), 'color', colors(3,:), ...
|
||||||
|
'DisplayName', '$\epsilon_{D_z}/\mathcal{F}_z$ [m/N]')
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_cart(4,4), freqs, 'Hz'))), 'color', colors(4,:), ...
|
||||||
|
'DisplayName', '$\epsilon_{R_x}/\mathcal{M}_x$ [rad/Nm]')
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_cart(5,5), freqs, 'Hz'))), 'color', colors(5,:), ...
|
||||||
|
'DisplayName', '$\epsilon_{R_y}/\mathcal{M}_y$ [rad/Nm]')
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_cart(6,6), freqs, 'Hz'))), 'color', colors(6,:), ...
|
||||||
|
'DisplayName', '$\epsilon_{R_z}/\mathcal{M}_z$ [rad/Nm]')
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_cart(1,5), freqs, 'Hz'))), 'color', [0, 0, 0, 0.5], ...
|
||||||
|
'DisplayName', 'Coupling')
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
ylabel('Amplitude'); set(gca, 'XTickLabel',[]);
|
||||||
|
ylim([1e-9, 4e-3]);
|
||||||
|
leg = legend('location', 'southwest', 'FontSize', 7, 'NumColumns', 3);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
|
ax2 = nexttile;
|
||||||
|
hold on;
|
||||||
|
for i = 1:6
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_cart(i,i), freqs, 'Hz'))), 'color', colors(i,:));
|
||||||
|
end
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
|
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
|
||||||
|
ylim([-180, 180]);
|
||||||
|
yticks([-180, -90, 0, 90, 180]);
|
||||||
|
|
||||||
|
linkaxes([ax1,ax2],'x');
|
||||||
|
xlim([freqs(1), freqs(end)]);
|
||||||
|
|
||||||
|
%% Identify the IFF Plant
|
||||||
|
stewart = initializeSimplifiedNanoHexapod('actuator_kp', 0); % Ignoring parallel stiffness for now
|
||||||
|
initializeSample('type', 'cylindrical', 'm', 10, 'H', 300e-3);
|
||||||
|
initializeLoggingConfiguration('log', 'none');
|
||||||
|
initializeController('type', 'open-loop');
|
||||||
|
|
||||||
|
% Input/Output definition
|
||||||
|
clear io; io_i = 1;
|
||||||
|
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Inputs [N]
|
||||||
|
io(io_i) = linio([mdl, '/plant'], 2, 'openoutput', [], 'fn'); io_i = io_i + 1; % Force Sensors [N]
|
||||||
|
|
||||||
|
% With no payload
|
||||||
|
G_iff = linearize(mdl, io);
|
||||||
|
G_iff.InputName = {'f1', 'f2', 'f3', 'f4', 'f5', 'f6'};
|
||||||
|
G_iff.OutputName = {'fm1', 'fm2', 'fm3', 'fm4', 'fm5', 'fm6'};
|
||||||
|
|
||||||
|
%% IFF Controller Design
|
||||||
|
Kiff = -500/s * ... % Gain
|
||||||
|
eye(6); % Diagonal 6x6 controller (i.e. decentralized)
|
||||||
|
|
||||||
|
Kiff.InputName = {'fm1', 'fm2', 'fm3', 'fm4', 'fm5', 'fm6'};
|
||||||
|
Kiff.OutputName = {'f1', 'f2', 'f3', 'f4', 'f5', 'f6'};
|
||||||
|
|
||||||
|
%% Root Locus plot of the Decentralized IFF Control
|
||||||
|
gains = logspace(-2, 1, 200);
|
||||||
|
|
||||||
|
figure;
|
||||||
|
tiledlayout(1, 1, 'TileSpacing', 'compact', 'Padding', 'None');
|
||||||
|
nexttile();
|
||||||
|
hold on;
|
||||||
|
plot(real(pole(G_iff)), imag(pole(G_iff)), 'x', 'color', colors(1,:), ...
|
||||||
|
'DisplayName', '$g = 0$');
|
||||||
|
plot(real(tzero(G_iff)), imag(tzero(G_iff)), 'o', 'color', colors(1,:), ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
|
||||||
|
for g = gains
|
||||||
|
clpoles = pole(feedback(G_iff, g*Kiff, +1));
|
||||||
|
plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:), ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
|
||||||
|
% Optimal gain
|
||||||
|
clpoles = pole(feedback(G_iff, Kiff, +1));
|
||||||
|
plot(real(clpoles), imag(clpoles), 'kx', ...
|
||||||
|
'DisplayName', '$g_{opt}$');
|
||||||
|
hold off;
|
||||||
|
axis equal;
|
||||||
|
xlim([-600, 50]); ylim([-50, 600]);
|
||||||
|
xticks([-600:100:0]);
|
||||||
|
yticks([0:100:600]);
|
||||||
|
set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]);
|
||||||
|
xlabel('Real part'); ylabel('Imaginary part');
|
||||||
|
|
||||||
|
%% Loop gain for the Decentralized IFF
|
||||||
|
figure;
|
||||||
|
tiledlayout(3, 1, 'TileSpacing', 'compact', 'Padding', 'None');
|
||||||
|
|
||||||
|
ax1 = nexttile([2,1]);
|
||||||
|
hold on;
|
||||||
|
plot(freqs, abs(squeeze(freqresp(-G_iff(1,1)*Kiff(1,1), freqs, 'Hz'))));
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
ylabel('Loop Gain'); set(gca, 'XTickLabel',[]);
|
||||||
|
ylim([1e-2, 1e2]);
|
||||||
|
% leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
% leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
|
ax2 = nexttile;
|
||||||
|
hold on;
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(-G_iff(1,1)*Kiff(1,1), freqs, 'Hz'))));
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
|
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||||
|
hold off;
|
||||||
|
yticks(-360:90:360);
|
||||||
|
ylim([-180, 180])
|
||||||
|
|
||||||
|
linkaxes([ax1,ax2],'x');
|
||||||
|
xlim([1, 1e3]);
|
||||||
|
|
||||||
|
%% Identify the IFF Plant
|
||||||
|
initializeController('type', 'iff');
|
||||||
|
|
||||||
|
% Input/Output definition
|
||||||
|
clear io; io_i = 1;
|
||||||
|
io(io_i) = linio([mdl, '/Controller'], 1, 'input'); io_i = io_i + 1; % Actuator Inputs [N]
|
||||||
|
io(io_i) = linio([mdl, '/plant'], 1, 'openoutput'); io_i = io_i + 1; % External Metrology [m,rad]
|
||||||
|
|
||||||
|
% With no payload
|
||||||
|
G_hac = linearize(mdl, io);
|
||||||
|
G_hac.InputName = {'f1', 'f2', 'f3', 'f4', 'f5', 'f6'};
|
||||||
|
G_hac.OutputName = {'Dx', 'Dy', 'Dz', 'Rx', 'Ry', 'Rz'};
|
||||||
|
|
||||||
|
%% Plant in the frame of the struts
|
||||||
|
G_hac_struts = stewart.geometry.J*G_hac;
|
||||||
|
G_hac_struts.OutputName = {'D1', 'D2', 'D3', 'D4', 'D5', 'D6'};
|
||||||
|
|
||||||
|
%% Bode plot of the plant projected in the frame of the struts
|
||||||
|
figure;
|
||||||
|
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||||
|
|
||||||
|
ax1 = nexttile([2,1]);
|
||||||
|
hold on;
|
||||||
|
for i = 1:5
|
||||||
|
for j = i+1:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_struts(i,j), freqs, 'Hz'))), 'color', [0,0,0,0.1], ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
end
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_struts(1,1), freqs, 'Hz'))), 'color', colors(1,:), ...
|
||||||
|
'DisplayName', '$-\epsilon_{\mathcal{L}i}/f_i$')
|
||||||
|
for i = 2:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_struts(i,i), freqs, 'Hz'))), 'color', colors(1,:), ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_struts(1,2), freqs, 'Hz'))), 'color', [0,0,0,0.1], ...
|
||||||
|
'DisplayName', '$-\epsilon_{\mathcal{L}i}/f_j$')
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
|
||||||
|
ylim([1e-9, 1e-4]);
|
||||||
|
leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
|
ax2 = nexttile;
|
||||||
|
hold on;
|
||||||
|
for i = 1:6
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_struts(i,i), freqs, 'Hz'))), 'color', colors(1,:));
|
||||||
|
end
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
|
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
|
||||||
|
ylim([-180, 180]);
|
||||||
|
yticks([-180, -90, 0, 90, 180]);
|
||||||
|
|
||||||
|
linkaxes([ax1,ax2],'x');
|
||||||
|
xlim([freqs(1), freqs(end)]);
|
||||||
|
|
||||||
|
%% Bode plot of the plant projected in the frame of the struts
|
||||||
|
figure;
|
||||||
|
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||||
|
|
||||||
|
ax1 = nexttile([2,1]);
|
||||||
|
hold on;
|
||||||
|
for i = 1:5
|
||||||
|
for j = i+1:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_hac_struts(i,j), freqs, 'Hz'))), 'color', [0,0,0,0.1], ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
end
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_struts(1,1), freqs, 'Hz'))), 'color', [colors(1,:), 0.2], ...
|
||||||
|
'DisplayName', '$-\epsilon_{\mathcal{L}i}/f_i$')
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_hac_struts(1,1), freqs, 'Hz'))), 'color', colors(2,:), ...
|
||||||
|
'DisplayName', '$-\epsilon_{\mathcal{L}i}/f_i^\prime$')
|
||||||
|
for i = 2:6
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_struts(i,i), freqs, 'Hz'))), 'color', [colors(1,:), 0.2], ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_hac_struts(i,i), freqs, 'Hz'))), 'color', colors(2,:), ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_hac_struts(1,2), freqs, 'Hz'))), 'color', [0,0,0,0.1], ...
|
||||||
|
'DisplayName', '$-\epsilon_{\mathcal{L}i}/f_j^\prime$')
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
|
||||||
|
ylim([1e-9, 1e-4]);
|
||||||
|
leg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
|
ax2 = nexttile;
|
||||||
|
hold on;
|
||||||
|
for i = 1:6
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_struts(i,i), freqs, 'Hz'))), 'color', [colors(1,:), 0.2]);
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_hac_struts(i,i), freqs, 'Hz'))), 'color', colors(2,:));
|
||||||
|
end
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
|
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
|
||||||
|
ylim([-180, 180]);
|
||||||
|
yticks([-180, -90, 0, 90, 180]);
|
||||||
|
|
||||||
|
linkaxes([ax1,ax2],'x');
|
||||||
|
xlim([freqs(1), freqs(end)]);
|
||||||
|
|
||||||
|
%% High Authority Controller - Mid Stiffness Nano-Hexapod
|
||||||
|
% Wanted crossover
|
||||||
|
wc = 2*pi*20; % [rad/s]
|
||||||
|
|
||||||
|
% Integrator
|
||||||
|
H_int = wc/s;
|
||||||
|
|
||||||
|
% Lead to increase phase margin
|
||||||
|
a = 2; % Amount of phase lead / width of the phase lead / high frequency gain
|
||||||
|
H_lead = 1/sqrt(a)*(1 + s/(wc/sqrt(a)))/(1 + s/(wc*sqrt(a)));
|
||||||
|
|
||||||
|
% Low Pass filter to increase robustness
|
||||||
|
H_lpf = 1/(1 + s/2/pi/200);
|
||||||
|
|
||||||
|
% Gain to have unitary crossover at 5Hz
|
||||||
|
H_gain = 1./abs(evalfr(G_hac_struts(1, 1), 1j*wc));
|
||||||
|
|
||||||
|
% Decentralized HAC
|
||||||
|
Khac = H_gain * ... % Gain
|
||||||
|
H_int * ... % Integrator
|
||||||
|
H_lpf * ... % Low Pass filter
|
||||||
|
eye(6); % 6x6 Diagonal
|
||||||
|
|
||||||
|
%% Plot of the eigenvalues of L in the complex plane
|
||||||
|
Ldet = zeros(6, length(freqs));
|
||||||
|
Lmimo = squeeze(freqresp(G_hac_struts*Khac, freqs, 'Hz'));
|
||||||
|
for i_f = 2:length(freqs)
|
||||||
|
Ldet(:, i_f) = eig(squeeze(Lmimo(:,:,i_f)));
|
||||||
|
end
|
||||||
|
mod_margin = min(min(abs(Ldet + ones(size(Ldet)))));
|
||||||
|
|
||||||
|
figure;
|
||||||
|
hold on;
|
||||||
|
for i = 1:6
|
||||||
|
plot(real(squeeze(Ldet(i,:))), imag(squeeze(Ldet(i,:))), ...
|
||||||
|
'.', 'color', colors(1, :), ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
plot(real(squeeze(Ldet(i,:))), -imag(squeeze(Ldet(i,:))), ...
|
||||||
|
'.', 'color', colors(1, :), ...
|
||||||
|
'HandleVisibility', 'off');
|
||||||
|
end
|
||||||
|
plot(-1, 0, 'kx', 'HandleVisibility', 'off');
|
||||||
|
patch(-1 + mod_margin*cos([0:0.1:2*pi+0.1]), mod_margin*sin([0:0.1:2*pi+0.1]), colors(5,:), 'linestyle', '--', 'EdgeColor','black', 'FaceAlpha', 0.5, 'HandleVisibility', 'off');
|
||||||
|
text(-1,0.1, 'Robustness', 'FontSize', 8, 'horizontalalignment', 'center')
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'lin'); set(gca, 'YScale', 'lin');
|
||||||
|
xlabel('Real Part'); ylabel('Imaginary Part');
|
||||||
|
axis square
|
||||||
|
xlim([-1.8, 0.2]); ylim([-1, 1]);
|
||||||
|
|
||||||
|
%% Loop gain for the Decentralized HAC_IFF
|
||||||
|
i_fb = find(abs(squeeze(freqresp(G_hac_struts(1,1)*Khac(1,1), freqs, 'Hz')))<1, 1);
|
||||||
|
|
||||||
|
figure;
|
||||||
|
tiledlayout(3, 1, 'TileSpacing', 'compact', 'Padding', 'None');
|
||||||
|
|
||||||
|
ax1 = nexttile([2,1]);
|
||||||
|
hold on;
|
||||||
|
patch([freqs(1:i_fb), freqs(i_fb), freqs(1)], [abs(squeeze(freqresp(G_hac_struts(1,1)*Khac(1,1), [freqs(1:i_fb)], 'Hz'))); 1; 1], colors(5,:), 'EdgeColor','none', 'FaceAlpha', 0.5)
|
||||||
|
plot(freqs, abs(squeeze(freqresp(G_hac_struts(1,1)*Khac(1,1), freqs, 'Hz'))));
|
||||||
|
text(1.2,2.5,{'Disturbance', 'rejection'}, 'FontSize', 8)
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
|
ylabel('Loop Gain'); set(gca, 'XTickLabel',[]);
|
||||||
|
ylim([1e-2, 1e2]);
|
||||||
|
|
||||||
|
ax2 = nexttile;
|
||||||
|
hold on;
|
||||||
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_hac_struts(1,1)*Khac(1,1), freqs, 'Hz'))));
|
||||||
|
hold off;
|
||||||
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
|
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||||
|
hold off;
|
||||||
|
yticks(-360:90:360);
|
||||||
|
ylim([-180, 180])
|
||||||
|
|
||||||
|
linkaxes([ax1,ax2],'x');
|
||||||
|
xlim([1, 1e3]);
|
37
matlab/src/computeJacobian.m
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
function [stewart] = computeJacobian(stewart)
|
||||||
|
% computeJacobian -
|
||||||
|
%
|
||||||
|
% Syntax: [stewart] = computeJacobian(stewart)
|
||||||
|
%
|
||||||
|
% Inputs:
|
||||||
|
% - stewart - With at least the following fields:
|
||||||
|
% - geometry.As [3x6] - The 6 unit vectors for each strut expressed in {A}
|
||||||
|
% - geometry.Ab [3x6] - The 6 position of the joints bi expressed in {A}
|
||||||
|
% - actuators.K [6x1] - Total stiffness of the actuators
|
||||||
|
%
|
||||||
|
% Outputs:
|
||||||
|
% - stewart - With the 3 added field:
|
||||||
|
% - geometry.J [6x6] - The Jacobian Matrix
|
||||||
|
% - geometry.K [6x6] - The Stiffness Matrix
|
||||||
|
% - geometry.C [6x6] - The Compliance Matrix
|
||||||
|
|
||||||
|
assert(isfield(stewart.geometry, 'As'), 'stewart.geometry should have attribute As')
|
||||||
|
As = stewart.geometry.As;
|
||||||
|
|
||||||
|
assert(isfield(stewart.geometry, 'Ab'), 'stewart.geometry should have attribute Ab')
|
||||||
|
Ab = stewart.geometry.Ab;
|
||||||
|
|
||||||
|
assert(isfield(stewart.actuators, 'k'), 'stewart.actuators should have attribute k')
|
||||||
|
Ki = stewart.actuators.k;
|
||||||
|
|
||||||
|
J = [As' , cross(Ab, As)'];
|
||||||
|
|
||||||
|
K = J'*diag(Ki)*J;
|
||||||
|
|
||||||
|
C = inv(K);
|
||||||
|
|
||||||
|
stewart.geometry.J = J;
|
||||||
|
stewart.geometry.K = K;
|
||||||
|
stewart.geometry.C = C;
|
||||||
|
|
||||||
|
end
|
80
matlab/src/computeJointsPose.m
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
function [stewart] = computeJointsPose(stewart)
|
||||||
|
% computeJointsPose -
|
||||||
|
%
|
||||||
|
% Syntax: [stewart] = computeJointsPose(stewart)
|
||||||
|
%
|
||||||
|
% Inputs:
|
||||||
|
% - stewart - A structure with the following fields
|
||||||
|
% - platform_F.Fa [3x6] - Its i'th column is the position vector of joint ai with respect to {F}
|
||||||
|
% - platform_M.Mb [3x6] - Its i'th column is the position vector of joint bi with respect to {M}
|
||||||
|
% - platform_F.FO_A [3x1] - Position of {A} with respect to {F}
|
||||||
|
% - platform_M.MO_B [3x1] - Position of {B} with respect to {M}
|
||||||
|
% - geometry.FO_M [3x1] - Position of {M} with respect to {F}
|
||||||
|
%
|
||||||
|
% Outputs:
|
||||||
|
% - stewart - A structure with the following added fields
|
||||||
|
% - geometry.Aa [3x6] - The i'th column is the position of ai with respect to {A}
|
||||||
|
% - geometry.Ab [3x6] - The i'th column is the position of bi with respect to {A}
|
||||||
|
% - geometry.Ba [3x6] - The i'th column is the position of ai with respect to {B}
|
||||||
|
% - geometry.Bb [3x6] - The i'th column is the position of bi with respect to {B}
|
||||||
|
% - geometry.l [6x1] - The i'th element is the initial length of strut i
|
||||||
|
% - geometry.As [3x6] - The i'th column is the unit vector of strut i expressed in {A}
|
||||||
|
% - geometry.Bs [3x6] - The i'th column is the unit vector of strut i expressed in {B}
|
||||||
|
% - struts_F.l [6x1] - Length of the Fixed part of the i'th strut
|
||||||
|
% - struts_M.l [6x1] - Length of the Mobile part of the i'th strut
|
||||||
|
% - platform_F.FRa [3x3x6] - The i'th 3x3 array is the rotation matrix to orientate the bottom of the i'th strut from {F}
|
||||||
|
% - platform_M.MRb [3x3x6] - The i'th 3x3 array is the rotation matrix to orientate the top of the i'th strut from {M}
|
||||||
|
|
||||||
|
assert(isfield(stewart.platform_F, 'Fa'), 'stewart.platform_F should have attribute Fa')
|
||||||
|
Fa = stewart.platform_F.Fa;
|
||||||
|
|
||||||
|
assert(isfield(stewart.platform_M, 'Mb'), 'stewart.platform_M should have attribute Mb')
|
||||||
|
Mb = stewart.platform_M.Mb;
|
||||||
|
|
||||||
|
assert(isfield(stewart.platform_F, 'FO_A'), 'stewart.platform_F should have attribute FO_A')
|
||||||
|
FO_A = stewart.platform_F.FO_A;
|
||||||
|
|
||||||
|
assert(isfield(stewart.platform_M, 'MO_B'), 'stewart.platform_M should have attribute MO_B')
|
||||||
|
MO_B = stewart.platform_M.MO_B;
|
||||||
|
|
||||||
|
assert(isfield(stewart.geometry, 'FO_M'), 'stewart.geometry should have attribute FO_M')
|
||||||
|
FO_M = stewart.geometry.FO_M;
|
||||||
|
|
||||||
|
Aa = Fa - repmat(FO_A, [1, 6]);
|
||||||
|
Bb = Mb - repmat(MO_B, [1, 6]);
|
||||||
|
|
||||||
|
Ab = Bb - repmat(-MO_B-FO_M+FO_A, [1, 6]);
|
||||||
|
Ba = Aa - repmat( MO_B+FO_M-FO_A, [1, 6]);
|
||||||
|
|
||||||
|
As = (Ab - Aa)./vecnorm(Ab - Aa); % As_i is the i'th vector of As
|
||||||
|
|
||||||
|
l = vecnorm(Ab - Aa)';
|
||||||
|
|
||||||
|
Bs = (Bb - Ba)./vecnorm(Bb - Ba);
|
||||||
|
|
||||||
|
FRa = zeros(3,3,6);
|
||||||
|
MRb = zeros(3,3,6);
|
||||||
|
|
||||||
|
for i = 1:6
|
||||||
|
FRa(:,:,i) = [cross([0;1;0], As(:,i)) , cross(As(:,i), cross([0;1;0], As(:,i))) , As(:,i)];
|
||||||
|
FRa(:,:,i) = FRa(:,:,i)./vecnorm(FRa(:,:,i));
|
||||||
|
|
||||||
|
MRb(:,:,i) = [cross([0;1;0], Bs(:,i)) , cross(Bs(:,i), cross([0;1;0], Bs(:,i))) , Bs(:,i)];
|
||||||
|
MRb(:,:,i) = MRb(:,:,i)./vecnorm(MRb(:,:,i));
|
||||||
|
end
|
||||||
|
|
||||||
|
stewart.geometry.Aa = Aa;
|
||||||
|
stewart.geometry.Ab = Ab;
|
||||||
|
stewart.geometry.Ba = Ba;
|
||||||
|
stewart.geometry.Bb = Bb;
|
||||||
|
stewart.geometry.As = As;
|
||||||
|
stewart.geometry.Bs = Bs;
|
||||||
|
stewart.geometry.l = l;
|
||||||
|
|
||||||
|
stewart.struts_F.l = l/2;
|
||||||
|
stewart.struts_M.l = l/2;
|
||||||
|
|
||||||
|
stewart.platform_F.FRa = FRa;
|
||||||
|
stewart.platform_M.MRb = MRb;
|
||||||
|
|
||||||
|
end
|
80
matlab/src/describeStewartPlatform.m
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
function [] = describeStewartPlatform(stewart)
|
||||||
|
% describeStewartPlatform - Display some text describing the current defined Stewart Platform
|
||||||
|
%
|
||||||
|
% Syntax: [] = describeStewartPlatform(args)
|
||||||
|
%
|
||||||
|
% Inputs:
|
||||||
|
% - stewart
|
||||||
|
%
|
||||||
|
% Outputs:
|
||||||
|
|
||||||
|
arguments
|
||||||
|
stewart
|
||||||
|
end
|
||||||
|
|
||||||
|
fprintf('GEOMETRY:\n')
|
||||||
|
fprintf('- The height between the fixed based and the top platform is %.3g [mm].\n', 1e3*stewart.geometry.H)
|
||||||
|
|
||||||
|
if stewart.platform_M.MO_B(3) > 0
|
||||||
|
fprintf('- Frame {A} is located %.3g [mm] above the top platform.\n', 1e3*stewart.platform_M.MO_B(3))
|
||||||
|
else
|
||||||
|
fprintf('- Frame {A} is located %.3g [mm] below the top platform.\n', - 1e3*stewart.platform_M.MO_B(3))
|
||||||
|
end
|
||||||
|
|
||||||
|
fprintf('- The initial length of the struts are:\n')
|
||||||
|
fprintf('\t %.3g, %.3g, %.3g, %.3g, %.3g, %.3g [mm]\n', 1e3*stewart.geometry.l)
|
||||||
|
fprintf('\n')
|
||||||
|
|
||||||
|
fprintf('ACTUATORS:\n')
|
||||||
|
if stewart.actuators.type == 1
|
||||||
|
fprintf('- The actuators are modelled as 1DoF.\n')
|
||||||
|
fprintf('- The Stiffness and Damping of each actuators is:\n')
|
||||||
|
fprintf('\t k = %.0e [N/m] \t c = %.0e [N/(m/s)]\n', stewart.actuators.k(1), stewart.actuators.c(1))
|
||||||
|
if stewart.actuators.kp > 0
|
||||||
|
fprintf('\t Added parallel stiffness: kp = %.0e [N/m] \t c = %.0e [N/(m/s)]\n', stewart.actuators.kp(1))
|
||||||
|
end
|
||||||
|
elseif stewart.actuators.type == 2
|
||||||
|
fprintf('- The actuators are modelled as 2DoF (APA).\n')
|
||||||
|
fprintf('- The vertical stiffness and damping contribution of the piezoelectric stack is:\n')
|
||||||
|
fprintf('\t ka = %.0e [N/m] \t ca = %.0e [N/(m/s)]\n', stewart.actuators.ka(1), stewart.actuators.ca(1))
|
||||||
|
fprintf('- Vertical stiffness when the piezoelectric stack is removed is:\n')
|
||||||
|
fprintf('\t kr = %.0e [N/m] \t cr = %.0e [N/(m/s)]\n', stewart.actuators.kr(1), stewart.actuators.cr(1))
|
||||||
|
elseif stewart.actuators.type == 3
|
||||||
|
fprintf('- The actuators are modelled with a flexible element (FEM).\n')
|
||||||
|
end
|
||||||
|
fprintf('\n')
|
||||||
|
|
||||||
|
fprintf('JOINTS:\n')
|
||||||
|
|
||||||
|
switch stewart.joints_F.type
|
||||||
|
case 1
|
||||||
|
fprintf('- The joints on the fixed based are universal joints (2DoF)\n')
|
||||||
|
case 2
|
||||||
|
fprintf('- The joints on the fixed based are spherical joints (3DoF)\n')
|
||||||
|
end
|
||||||
|
|
||||||
|
switch stewart.joints_M.type
|
||||||
|
case 1
|
||||||
|
fprintf('- The joints on the mobile based are universal joints (2DoF)\n')
|
||||||
|
case 2
|
||||||
|
fprintf('- The joints on the mobile based are spherical joints (3DoF)\n')
|
||||||
|
end
|
||||||
|
|
||||||
|
fprintf('- The position of the joints on the fixed based with respect to {F} are (in [mm]):\n')
|
||||||
|
fprintf('\t % .3g \t % .3g \t % .3g\n', 1e3*stewart.platform_F.Fa)
|
||||||
|
|
||||||
|
fprintf('- The position of the joints on the mobile based with respect to {M} are (in [mm]):\n')
|
||||||
|
fprintf('\t % .3g \t % .3g \t % .3g\n', 1e3*stewart.platform_M.Mb)
|
||||||
|
fprintf('\n')
|
||||||
|
|
||||||
|
fprintf('KINEMATICS:\n')
|
||||||
|
|
||||||
|
if isfield(stewart.kinematics, 'K')
|
||||||
|
fprintf('- The Stiffness matrix K is (in [N/m]):\n')
|
||||||
|
fprintf('\t % .0e \t % .0e \t % .0e \t % .0e \t % .0e \t % .0e\n', stewart.kinematics.K)
|
||||||
|
end
|
||||||
|
|
||||||
|
if isfield(stewart.kinematics, 'C')
|
||||||
|
fprintf('- The Damping matrix C is (in [m/N]):\n')
|
||||||
|
fprintf('\t % .0e \t % .0e \t % .0e \t % .0e \t % .0e \t % .0e\n', stewart.kinematics.C)
|
||||||
|
end
|
240
matlab/src/displayArchitecture.m
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
function [] = displayArchitecture(stewart, args)
|
||||||
|
% displayArchitecture - 3D plot of the Stewart platform architecture
|
||||||
|
%
|
||||||
|
% Syntax: [] = displayArchitecture(args)
|
||||||
|
%
|
||||||
|
% Inputs:
|
||||||
|
% - stewart
|
||||||
|
% - args - Structure with the following fields:
|
||||||
|
% - AP [3x1] - The wanted position of {B} with respect to {A}
|
||||||
|
% - ARB [3x3] - The rotation matrix that gives the wanted orientation of {B} with respect to {A}
|
||||||
|
% - ARB [3x3] - The rotation matrix that gives the wanted orientation of {B} with respect to {A}
|
||||||
|
% - F_color [color] - Color used for the Fixed elements
|
||||||
|
% - M_color [color] - Color used for the Mobile elements
|
||||||
|
% - L_color [color] - Color used for the Legs elements
|
||||||
|
% - frames [true/false] - Display the Frames
|
||||||
|
% - legs [true/false] - Display the Legs
|
||||||
|
% - joints [true/false] - Display the Joints
|
||||||
|
% - labels [true/false] - Display the Labels
|
||||||
|
% - platforms [true/false] - Display the Platforms
|
||||||
|
% - views ['all', 'xy', 'yz', 'xz', 'default'] -
|
||||||
|
%
|
||||||
|
% Outputs:
|
||||||
|
|
||||||
|
arguments
|
||||||
|
stewart
|
||||||
|
args.AP (3,1) double {mustBeNumeric} = zeros(3,1)
|
||||||
|
args.ARB (3,3) double {mustBeNumeric} = eye(3)
|
||||||
|
args.F_color = [0 0.4470 0.7410]
|
||||||
|
args.M_color = [0.8500 0.3250 0.0980]
|
||||||
|
args.L_color = [0 0 0]
|
||||||
|
args.frames logical {mustBeNumericOrLogical} = true
|
||||||
|
args.legs logical {mustBeNumericOrLogical} = true
|
||||||
|
args.joints logical {mustBeNumericOrLogical} = true
|
||||||
|
args.labels logical {mustBeNumericOrLogical} = true
|
||||||
|
args.platforms logical {mustBeNumericOrLogical} = true
|
||||||
|
args.views char {mustBeMember(args.views,{'all', 'xy', 'xz', 'yz', 'default'})} = 'default'
|
||||||
|
end
|
||||||
|
|
||||||
|
assert(isfield(stewart.platform_F, 'FO_A'), 'stewart.platform_F should have attribute FO_A')
|
||||||
|
FO_A = stewart.platform_F.FO_A;
|
||||||
|
|
||||||
|
assert(isfield(stewart.platform_M, 'MO_B'), 'stewart.platform_M should have attribute MO_B')
|
||||||
|
MO_B = stewart.platform_M.MO_B;
|
||||||
|
|
||||||
|
assert(isfield(stewart.geometry, 'H'), 'stewart.geometry should have attribute H')
|
||||||
|
H = stewart.geometry.H;
|
||||||
|
|
||||||
|
assert(isfield(stewart.platform_F, 'Fa'), 'stewart.platform_F should have attribute Fa')
|
||||||
|
Fa = stewart.platform_F.Fa;
|
||||||
|
|
||||||
|
assert(isfield(stewart.platform_M, 'Mb'), 'stewart.platform_M should have attribute Mb')
|
||||||
|
Mb = stewart.platform_M.Mb;
|
||||||
|
|
||||||
|
if ~strcmp(args.views, 'all')
|
||||||
|
figure;
|
||||||
|
else
|
||||||
|
f = figure('visible', 'off');
|
||||||
|
end
|
||||||
|
|
||||||
|
hold on;
|
||||||
|
|
||||||
|
FTa = [eye(3), FO_A; ...
|
||||||
|
zeros(1,3), 1];
|
||||||
|
ATb = [args.ARB, args.AP; ...
|
||||||
|
zeros(1,3), 1];
|
||||||
|
BTm = [eye(3), -MO_B; ...
|
||||||
|
zeros(1,3), 1];
|
||||||
|
|
||||||
|
FTm = FTa*ATb*BTm;
|
||||||
|
|
||||||
|
d_unit_vector = H/4;
|
||||||
|
|
||||||
|
d_label = H/20;
|
||||||
|
|
||||||
|
Ff = [0, 0, 0];
|
||||||
|
if args.frames
|
||||||
|
quiver3(Ff(1)*ones(1,3), Ff(2)*ones(1,3), Ff(3)*ones(1,3), ...
|
||||||
|
[d_unit_vector 0 0], [0 d_unit_vector 0], [0 0 d_unit_vector], '-', 'Color', args.F_color)
|
||||||
|
|
||||||
|
if args.labels
|
||||||
|
text(Ff(1) + d_label, ...
|
||||||
|
Ff(2) + d_label, ...
|
||||||
|
Ff(3) + d_label, '$\{F\}$', 'Color', args.F_color);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if args.frames
|
||||||
|
quiver3(FO_A(1)*ones(1,3), FO_A(2)*ones(1,3), FO_A(3)*ones(1,3), ...
|
||||||
|
[d_unit_vector 0 0], [0 d_unit_vector 0], [0 0 d_unit_vector], '-', 'Color', args.F_color)
|
||||||
|
|
||||||
|
if args.labels
|
||||||
|
text(FO_A(1) + d_label, ...
|
||||||
|
FO_A(2) + d_label, ...
|
||||||
|
FO_A(3) + d_label, '$\{A\}$', 'Color', args.F_color);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if args.platforms && stewart.platform_F.type == 1
|
||||||
|
theta = [0:0.01:2*pi+0.01]; % Angles [rad]
|
||||||
|
v = null([0; 0; 1]'); % Two vectors that are perpendicular to the circle normal
|
||||||
|
center = [0; 0; 0]; % Center of the circle
|
||||||
|
radius = stewart.platform_F.R; % Radius of the circle [m]
|
||||||
|
|
||||||
|
points = center*ones(1, length(theta)) + radius*(v(:,1)*cos(theta) + v(:,2)*sin(theta));
|
||||||
|
|
||||||
|
plot3(points(1,:), ...
|
||||||
|
points(2,:), ...
|
||||||
|
points(3,:), '-', 'Color', args.F_color);
|
||||||
|
end
|
||||||
|
|
||||||
|
if args.joints
|
||||||
|
scatter3(Fa(1,:), ...
|
||||||
|
Fa(2,:), ...
|
||||||
|
Fa(3,:), 'MarkerEdgeColor', args.F_color);
|
||||||
|
if args.labels
|
||||||
|
for i = 1:size(Fa,2)
|
||||||
|
text(Fa(1,i) + d_label, ...
|
||||||
|
Fa(2,i), ...
|
||||||
|
Fa(3,i), sprintf('$a_{%i}$', i), 'Color', args.F_color);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Fm = FTm*[0; 0; 0; 1]; % Get the position of frame {M} w.r.t. {F}
|
||||||
|
|
||||||
|
if args.frames
|
||||||
|
FM_uv = FTm*[d_unit_vector*eye(3); zeros(1,3)]; % Rotated Unit vectors
|
||||||
|
quiver3(Fm(1)*ones(1,3), Fm(2)*ones(1,3), Fm(3)*ones(1,3), ...
|
||||||
|
FM_uv(1,1:3), FM_uv(2,1:3), FM_uv(3,1:3), '-', 'Color', args.M_color)
|
||||||
|
|
||||||
|
if args.labels
|
||||||
|
text(Fm(1) + d_label, ...
|
||||||
|
Fm(2) + d_label, ...
|
||||||
|
Fm(3) + d_label, '$\{M\}$', 'Color', args.M_color);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
FB = FO_A + args.AP;
|
||||||
|
|
||||||
|
if args.frames
|
||||||
|
FB_uv = FTm*[d_unit_vector*eye(3); zeros(1,3)]; % Rotated Unit vectors
|
||||||
|
quiver3(FB(1)*ones(1,3), FB(2)*ones(1,3), FB(3)*ones(1,3), ...
|
||||||
|
FB_uv(1,1:3), FB_uv(2,1:3), FB_uv(3,1:3), '-', 'Color', args.M_color)
|
||||||
|
|
||||||
|
if args.labels
|
||||||
|
text(FB(1) - d_label, ...
|
||||||
|
FB(2) + d_label, ...
|
||||||
|
FB(3) + d_label, '$\{B\}$', 'Color', args.M_color);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if args.platforms && stewart.platform_M.type == 1
|
||||||
|
theta = [0:0.01:2*pi+0.01]; % Angles [rad]
|
||||||
|
v = null((FTm(1:3,1:3)*[0;0;1])'); % Two vectors that are perpendicular to the circle normal
|
||||||
|
center = Fm(1:3); % Center of the circle
|
||||||
|
radius = stewart.platform_M.R; % Radius of the circle [m]
|
||||||
|
|
||||||
|
points = center*ones(1, length(theta)) + radius*(v(:,1)*cos(theta) + v(:,2)*sin(theta));
|
||||||
|
|
||||||
|
plot3(points(1,:), ...
|
||||||
|
points(2,:), ...
|
||||||
|
points(3,:), '-', 'Color', args.M_color);
|
||||||
|
end
|
||||||
|
|
||||||
|
if args.joints
|
||||||
|
Fb = FTm*[Mb;ones(1,6)];
|
||||||
|
|
||||||
|
scatter3(Fb(1,:), ...
|
||||||
|
Fb(2,:), ...
|
||||||
|
Fb(3,:), 'MarkerEdgeColor', args.M_color);
|
||||||
|
|
||||||
|
if args.labels
|
||||||
|
for i = 1:size(Fb,2)
|
||||||
|
text(Fb(1,i) + d_label, ...
|
||||||
|
Fb(2,i), ...
|
||||||
|
Fb(3,i), sprintf('$b_{%i}$', i), 'Color', args.M_color);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if args.legs
|
||||||
|
for i = 1:6
|
||||||
|
plot3([Fa(1,i), Fb(1,i)], ...
|
||||||
|
[Fa(2,i), Fb(2,i)], ...
|
||||||
|
[Fa(3,i), Fb(3,i)], '-', 'Color', args.L_color);
|
||||||
|
|
||||||
|
if args.labels
|
||||||
|
text((Fa(1,i)+Fb(1,i))/2 + d_label, ...
|
||||||
|
(Fa(2,i)+Fb(2,i))/2, ...
|
||||||
|
(Fa(3,i)+Fb(3,i))/2, sprintf('$%i$', i), 'Color', args.L_color);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
switch args.views
|
||||||
|
case 'default'
|
||||||
|
view([1 -0.6 0.4]);
|
||||||
|
case 'xy'
|
||||||
|
view([0 0 1]);
|
||||||
|
case 'xz'
|
||||||
|
view([0 -1 0]);
|
||||||
|
case 'yz'
|
||||||
|
view([1 0 0]);
|
||||||
|
end
|
||||||
|
axis equal;
|
||||||
|
axis off;
|
||||||
|
|
||||||
|
if strcmp(args.views, 'all')
|
||||||
|
hAx = findobj('type', 'axes');
|
||||||
|
|
||||||
|
figure;
|
||||||
|
s1 = subplot(2,2,1);
|
||||||
|
copyobj(get(hAx(1), 'Children'), s1);
|
||||||
|
view([0 0 1]);
|
||||||
|
axis equal;
|
||||||
|
axis off;
|
||||||
|
title('Top')
|
||||||
|
|
||||||
|
s2 = subplot(2,2,2);
|
||||||
|
copyobj(get(hAx(1), 'Children'), s2);
|
||||||
|
view([1 -0.6 0.4]);
|
||||||
|
axis equal;
|
||||||
|
axis off;
|
||||||
|
|
||||||
|
s3 = subplot(2,2,3);
|
||||||
|
copyobj(get(hAx(1), 'Children'), s3);
|
||||||
|
view([1 0 0]);
|
||||||
|
axis equal;
|
||||||
|
axis off;
|
||||||
|
title('Front')
|
||||||
|
|
||||||
|
s4 = subplot(2,2,4);
|
||||||
|
copyobj(get(hAx(1), 'Children'), s4);
|
||||||
|
view([0 -1 0]);
|
||||||
|
axis equal;
|
||||||
|
axis off;
|
||||||
|
title('Side')
|
||||||
|
|
||||||
|
close(f);
|
||||||
|
end
|
41
matlab/src/generateGeneralConfiguration.m
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
function [stewart] = generateGeneralConfiguration(stewart, args)
|
||||||
|
% generateGeneralConfiguration - Generate a Very General Configuration
|
||||||
|
%
|
||||||
|
% Syntax: [stewart] = generateGeneralConfiguration(stewart, args)
|
||||||
|
%
|
||||||
|
% Inputs:
|
||||||
|
% - args - Can have the following fields:
|
||||||
|
% - FH [1x1] - Height of the position of the fixed joints with respect to the frame {F} [m]
|
||||||
|
% - FR [1x1] - Radius of the position of the fixed joints in the X-Y [m]
|
||||||
|
% - FTh [6x1] - Angles of the fixed joints in the X-Y plane with respect to the X axis [rad]
|
||||||
|
% - MH [1x1] - Height of the position of the mobile joints with respect to the frame {M} [m]
|
||||||
|
% - FR [1x1] - Radius of the position of the mobile joints in the X-Y [m]
|
||||||
|
% - MTh [6x1] - Angles of the mobile joints in the X-Y plane with respect to the X axis [rad]
|
||||||
|
%
|
||||||
|
% Outputs:
|
||||||
|
% - stewart - updated Stewart structure with the added fields:
|
||||||
|
% - platform_F.Fa [3x6] - Its i'th column is the position vector of joint ai with respect to {F}
|
||||||
|
% - platform_M.Mb [3x6] - Its i'th column is the position vector of joint bi with respect to {M}
|
||||||
|
|
||||||
|
arguments
|
||||||
|
stewart
|
||||||
|
args.FH (1,1) double {mustBeNumeric, mustBeNonnegative} = 15e-3
|
||||||
|
args.FR (1,1) double {mustBeNumeric, mustBePositive} = 115e-3;
|
||||||
|
args.FTh (6,1) double {mustBeNumeric} = [-10, 10, 120-10, 120+10, 240-10, 240+10]*(pi/180);
|
||||||
|
args.MH (1,1) double {mustBeNumeric, mustBeNonnegative} = 15e-3
|
||||||
|
args.MR (1,1) double {mustBeNumeric, mustBePositive} = 90e-3;
|
||||||
|
args.MTh (6,1) double {mustBeNumeric} = [-60+10, 60-10, 60+10, 180-10, 180+10, -60-10]*(pi/180);
|
||||||
|
end
|
||||||
|
|
||||||
|
Fa = zeros(3,6);
|
||||||
|
Mb = zeros(3,6);
|
||||||
|
|
||||||
|
for i = 1:6
|
||||||
|
Fa(:,i) = [args.FR*cos(args.FTh(i)); args.FR*sin(args.FTh(i)); args.FH];
|
||||||
|
Mb(:,i) = [args.MR*cos(args.MTh(i)); args.MR*sin(args.MTh(i)); -args.MH];
|
||||||
|
end
|
||||||
|
|
||||||
|
stewart.platform_F.Fa = Fa;
|
||||||
|
stewart.platform_M.Mb = Mb;
|
||||||
|
|
||||||
|
end
|
24
matlab/src/initializeController.m
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
function [] = initializeController(args)
|
||||||
|
|
||||||
|
arguments
|
||||||
|
args.type char {mustBeMember(args.type,{'open-loop', 'iff'})} = 'open-loop'
|
||||||
|
end
|
||||||
|
|
||||||
|
controller = struct();
|
||||||
|
|
||||||
|
switch args.type
|
||||||
|
case 'open-loop'
|
||||||
|
controller.type = 1;
|
||||||
|
controller.name = 'Open-Loop';
|
||||||
|
case 'iff'
|
||||||
|
controller.type = 2;
|
||||||
|
controller.name = 'Decentralized Integral Force Feedback';
|
||||||
|
end
|
||||||
|
|
||||||
|
if exist('./mat', 'dir')
|
||||||
|
save('mat/nano_hexapod_model_controller.mat', 'controller');
|
||||||
|
elseif exist('./matlab', 'dir')
|
||||||
|
save('matlab/mat/nano_hexapod_model_controller.mat', 'controller');
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
61
matlab/src/initializeCylindricalPlatforms.m
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
function [stewart] = initializeCylindricalPlatforms(stewart, args)
|
||||||
|
% initializeCylindricalPlatforms - Initialize the geometry of the Fixed and Mobile Platforms
|
||||||
|
%
|
||||||
|
% Syntax: [stewart] = initializeCylindricalPlatforms(args)
|
||||||
|
%
|
||||||
|
% Inputs:
|
||||||
|
% - args - Structure with the following fields:
|
||||||
|
% - Fpm [1x1] - Fixed Platform Mass [kg]
|
||||||
|
% - Fph [1x1] - Fixed Platform Height [m]
|
||||||
|
% - Fpr [1x1] - Fixed Platform Radius [m]
|
||||||
|
% - Mpm [1x1] - Mobile Platform Mass [kg]
|
||||||
|
% - Mph [1x1] - Mobile Platform Height [m]
|
||||||
|
% - Mpr [1x1] - Mobile Platform Radius [m]
|
||||||
|
%
|
||||||
|
% Outputs:
|
||||||
|
% - stewart - updated Stewart structure with the added fields:
|
||||||
|
% - platform_F [struct] - structure with the following fields:
|
||||||
|
% - type = 1
|
||||||
|
% - M [1x1] - Fixed Platform Mass [kg]
|
||||||
|
% - I [3x3] - Fixed Platform Inertia matrix [kg*m^2]
|
||||||
|
% - H [1x1] - Fixed Platform Height [m]
|
||||||
|
% - R [1x1] - Fixed Platform Radius [m]
|
||||||
|
% - platform_M [struct] - structure with the following fields:
|
||||||
|
% - M [1x1] - Mobile Platform Mass [kg]
|
||||||
|
% - I [3x3] - Mobile Platform Inertia matrix [kg*m^2]
|
||||||
|
% - H [1x1] - Mobile Platform Height [m]
|
||||||
|
% - R [1x1] - Mobile Platform Radius [m]
|
||||||
|
|
||||||
|
arguments
|
||||||
|
stewart
|
||||||
|
args.Fpm (1,1) double {mustBeNumeric, mustBePositive} = 1
|
||||||
|
args.Fph (1,1) double {mustBeNumeric, mustBePositive} = 10e-3
|
||||||
|
args.Fpr (1,1) double {mustBeNumeric, mustBePositive} = 125e-3
|
||||||
|
args.Mpm (1,1) double {mustBeNumeric, mustBePositive} = 1
|
||||||
|
args.Mph (1,1) double {mustBeNumeric, mustBePositive} = 10e-3
|
||||||
|
args.Mpr (1,1) double {mustBeNumeric, mustBePositive} = 100e-3
|
||||||
|
end
|
||||||
|
|
||||||
|
I_F = diag([1/12*args.Fpm * (3*args.Fpr^2 + args.Fph^2), ...
|
||||||
|
1/12*args.Fpm * (3*args.Fpr^2 + args.Fph^2), ...
|
||||||
|
1/2 *args.Fpm * args.Fpr^2]);
|
||||||
|
|
||||||
|
I_M = diag([1/12*args.Mpm * (3*args.Mpr^2 + args.Mph^2), ...
|
||||||
|
1/12*args.Mpm * (3*args.Mpr^2 + args.Mph^2), ...
|
||||||
|
1/2 *args.Mpm * args.Mpr^2]);
|
||||||
|
|
||||||
|
stewart.platform_F.type = 1;
|
||||||
|
|
||||||
|
stewart.platform_F.I = I_F;
|
||||||
|
stewart.platform_F.M = args.Fpm;
|
||||||
|
stewart.platform_F.R = args.Fpr;
|
||||||
|
stewart.platform_F.H = args.Fph;
|
||||||
|
|
||||||
|
stewart.platform_M.type = 1;
|
||||||
|
|
||||||
|
stewart.platform_M.I = I_M;
|
||||||
|
stewart.platform_M.M = args.Mpm;
|
||||||
|
stewart.platform_M.R = args.Mpr;
|
||||||
|
stewart.platform_M.H = args.Mph;
|
||||||
|
|
||||||
|
end
|
50
matlab/src/initializeCylindricalStruts.m
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
function [stewart] = initializeCylindricalStruts(stewart, args)
|
||||||
|
% initializeCylindricalStruts - Define the mass and moment of inertia of cylindrical struts
|
||||||
|
%
|
||||||
|
% Syntax: [stewart] = initializeCylindricalStruts(args)
|
||||||
|
%
|
||||||
|
% Inputs:
|
||||||
|
% - args - Structure with the following fields:
|
||||||
|
% - Fsm [1x1] - Mass of the Fixed part of the struts [kg]
|
||||||
|
% - Fsh [1x1] - Height of cylinder for the Fixed part of the struts [m]
|
||||||
|
% - Fsr [1x1] - Radius of cylinder for the Fixed part of the struts [m]
|
||||||
|
% - Msm [1x1] - Mass of the Mobile part of the struts [kg]
|
||||||
|
% - Msh [1x1] - Height of cylinder for the Mobile part of the struts [m]
|
||||||
|
% - Msr [1x1] - Radius of cylinder for the Mobile part of the struts [m]
|
||||||
|
%
|
||||||
|
% Outputs:
|
||||||
|
% - stewart - updated Stewart structure with the added fields:
|
||||||
|
% - struts_F [struct] - structure with the following fields:
|
||||||
|
% - M [6x1] - Mass of the Fixed part of the struts [kg]
|
||||||
|
% - I [3x3x6] - Moment of Inertia for the Fixed part of the struts [kg*m^2]
|
||||||
|
% - H [6x1] - Height of cylinder for the Fixed part of the struts [m]
|
||||||
|
% - R [6x1] - Radius of cylinder for the Fixed part of the struts [m]
|
||||||
|
% - struts_M [struct] - structure with the following fields:
|
||||||
|
% - M [6x1] - Mass of the Mobile part of the struts [kg]
|
||||||
|
% - I [3x3x6] - Moment of Inertia for the Mobile part of the struts [kg*m^2]
|
||||||
|
% - H [6x1] - Height of cylinder for the Mobile part of the struts [m]
|
||||||
|
% - R [6x1] - Radius of cylinder for the Mobile part of the struts [m]
|
||||||
|
|
||||||
|
arguments
|
||||||
|
stewart
|
||||||
|
args.Fsm (1,1) double {mustBeNumeric, mustBePositive} = 0.1
|
||||||
|
args.Fsh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3
|
||||||
|
args.Fsr (1,1) double {mustBeNumeric, mustBePositive} = 5e-3
|
||||||
|
args.Msm (1,1) double {mustBeNumeric, mustBePositive} = 0.1
|
||||||
|
args.Msh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3
|
||||||
|
args.Msr (1,1) double {mustBeNumeric, mustBePositive} = 5e-3
|
||||||
|
end
|
||||||
|
|
||||||
|
stewart.struts_M.type = 1;
|
||||||
|
|
||||||
|
stewart.struts_M.M = args.Msm;
|
||||||
|
stewart.struts_M.R = args.Msr;
|
||||||
|
stewart.struts_M.H = args.Msh;
|
||||||
|
|
||||||
|
stewart.struts_F.type = 1;
|
||||||
|
|
||||||
|
stewart.struts_F.M = args.Fsm;
|
||||||
|
stewart.struts_F.R = args.Fsr;
|
||||||
|
stewart.struts_F.H = args.Fsh;
|
||||||
|
|
||||||
|
end
|