<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/28.1.2 Chrome/138.0.7204.243 Electron/37.4.0 Safari/537.36" version="28.1.2" pages="5">
  <diagram id="oK3GaRgvP6PnulbUcUcA" name="Controller">
    <mxGraphModel dx="1963" dy="1140" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="GNP__N1gZL6EY5EZ9odj-5" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/jpeg,[encoded data, 8292 characters];" parent="1" vertex="1">
          <mxGeometry x="956.75" y="440" width="102.5" height="102.5" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-8" value="&lt;b style=&quot;font-size: 15px;&quot;&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;Web&amp;nbsp;&lt;/font&gt;&lt;/b&gt;&lt;div style=&quot;font-size: 15px;&quot;&gt;&lt;b style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;Application&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#76608a;fontColor=#ffffff;strokeColor=#432D57;" parent="1" vertex="1">
          <mxGeometry x="773" y="440" width="108" height="108" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-16" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="3" y="560" width="1160" height="830" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-17" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/png,[encoded data, 4700 characters];" parent="1" vertex="1">
          <mxGeometry x="481" y="606.97" width="179" height="99.31" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-18" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/png,[encoded data, 4996 characters];" parent="1" vertex="1">
          <mxGeometry x="109.99" y="590" width="230.01" height="58.42" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-19" value="&lt;b&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;VDA5050 connector&lt;/font&gt;&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;strokeWidth=0;" parent="1" vertex="1">
          <mxGeometry x="74" y="780" width="299.99" height="37.28" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-20" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#1bd7e4;strokeColor=#006EAF;strokeWidth=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="129.99" y="650" as="sourcePoint" />
            <mxPoint x="129.99" y="780" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-21" value="&lt;font style=&quot;font-size: 9px;&quot;&gt;ORDER TOPIC&lt;/font&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];rotation=-90;" parent="GNP__N1gZL6EY5EZ9odj-20" vertex="1" connectable="0">
          <mxGeometry x="-0.1122" y="1" relative="1" as="geometry">
            <mxPoint x="-1" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-22" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#1bd7e4;strokeColor=#006EAF;strokeWidth=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="179.99" y="650" as="sourcePoint" />
            <mxPoint x="179.99" y="780" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-23" value="&lt;font style=&quot;font-size: 9px;&quot;&gt;ACTION TOPIC&lt;/font&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];rotation=-90;" parent="GNP__N1gZL6EY5EZ9odj-22" vertex="1" connectable="0">
          <mxGeometry x="-0.1122" y="1" relative="1" as="geometry">
            <mxPoint x="-1" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-24" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#1bd7e4;strokeColor=#006EAF;strokeWidth=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="229.99" y="779.7128571428572" as="sourcePoint" />
            <mxPoint x="229.99" y="648.5699999999999" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-25" value="&lt;font style=&quot;font-size: 9px;&quot;&gt;STATE TOPIC&lt;/font&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];rotation=-90;" parent="GNP__N1gZL6EY5EZ9odj-24" vertex="1" connectable="0">
          <mxGeometry x="-0.1122" y="1" relative="1" as="geometry">
            <mxPoint x="-1" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-26" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#1bd7e4;strokeColor=#006EAF;strokeWidth=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="279.99" y="779.7128571428572" as="sourcePoint" />
            <mxPoint x="279.99" y="648.5699999999999" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-27" value="&lt;font style=&quot;font-size: 9px;&quot;&gt;VISUALIZATION TOPIC&lt;/font&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];rotation=-90;" parent="GNP__N1gZL6EY5EZ9odj-26" vertex="1" connectable="0">
          <mxGeometry x="-0.1122" y="1" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-28" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#1bd7e4;strokeColor=#006EAF;strokeWidth=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="329.99" y="779.7128571428572" as="sourcePoint" />
            <mxPoint x="329.99" y="648.5699999999999" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-29" value="&lt;font style=&quot;font-size: 9px;&quot;&gt;CONNECTION TOPIC&lt;/font&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];rotation=-90;" parent="GNP__N1gZL6EY5EZ9odj-28" vertex="1" connectable="0">
          <mxGeometry x="-0.1122" y="1" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-30" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" parent="1" vertex="1">
          <mxGeometry x="868" y="806.28" width="280" height="90" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-31" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="1035" y="830" width="80" height="43" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-32" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="1045" y="840" width="80" height="40" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-33" value="Nodes" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="1055" y="850" width="80" height="40" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-34" value="&lt;font color=&quot;#ffffff&quot;&gt;&lt;b&gt;OPC UA Address space&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="868" y="804" width="170" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-35" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;" parent="1" vertex="1">
          <mxGeometry x="481" y="717.9300000000001" width="662" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-36" value="&lt;b&gt;&lt;font style=&quot;font-size: 22px;&quot;&gt;SEVER&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="546.78" y="684.64" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-37" value="&lt;b&gt;OPC UA Server API (user defined)&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="463" y="717.9300000000001" width="248" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-38" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="658" y="818" width="140" height="60" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-39" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="668" y="828" width="140" height="60" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-40" value="&lt;b&gt;Subsription&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="678" y="838" width="140" height="60" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-41" value="" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="911" y="830" width="90" height="50" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-42" value="" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="901" y="834" width="90" height="50" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-43" value="Monitored item" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="889" y="839" width="90" height="50" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-44" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=3.1496;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" parent="1" source="GNP__N1gZL6EY5EZ9odj-40" target="GNP__N1gZL6EY5EZ9odj-43" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="758" y="948" as="sourcePoint" />
            <mxPoint x="808" y="898" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-45" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#b1ddf0;strokeColor=#10739e;strokeWidth=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="978" y="801" as="sourcePoint" />
            <mxPoint x="978" y="751" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-46" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#b1ddf0;strokeColor=#10739e;strokeWidth=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1028" y="752" as="sourcePoint" />
            <mxPoint x="1028" y="802" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-47" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#b1ddf0;strokeColor=#10739e;strokeWidth=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="728" y="809" as="sourcePoint" />
            <mxPoint x="728" y="759" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-48" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#b1ddf0;strokeColor=#10739e;strokeWidth=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="778" y="760" as="sourcePoint" />
            <mxPoint x="778" y="810" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-49" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="663" y="677.28" width="420" height="40" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-50" value="Req Msg" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="1" vertex="1">
          <mxGeometry x="922.75" y="686.5699999999999" width="67" height="20" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-51" value="Rsp Msg" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="1" vertex="1">
          <mxGeometry x="1006.25" y="686.28" width="67" height="20" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-52" value="Pub Msg" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="1" vertex="1">
          <mxGeometry x="682" y="686.28" width="67" height="20" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-53" value="Sub Msg" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="1" vertex="1">
          <mxGeometry x="773" y="686.28" width="67" height="20" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-54" value="From&amp;nbsp;&lt;div&gt;OPC UA&amp;nbsp;&lt;/div&gt;&lt;div&gt;client&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="916" y="607.28" width="80.5" height="40" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-55" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="GNP__N1gZL6EY5EZ9odj-54" target="GNP__N1gZL6EY5EZ9odj-50" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="956.75" y="817.28" as="sourcePoint" />
            <mxPoint x="1006.75" y="767.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-56" value="To&amp;nbsp;&lt;div&gt;OPC UA&amp;nbsp;&lt;/div&gt;&lt;div&gt;client&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="999.5" y="607.28" width="80.5" height="40" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-57" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="GNP__N1gZL6EY5EZ9odj-51" target="GNP__N1gZL6EY5EZ9odj-56" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1096.75" y="647.28" as="sourcePoint" />
            <mxPoint x="1035.25" y="684.64" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-58" value="From&amp;nbsp;&lt;div&gt;OPC UA&amp;nbsp;&lt;/div&gt;&lt;div&gt;client&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="675.25" y="607.28" width="80.5" height="40" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-59" value="To&amp;nbsp;&lt;div&gt;OPC UA&amp;nbsp;&lt;/div&gt;&lt;div&gt;client&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="760" y="607.28" width="83" height="40" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-60" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="801.1600000000001" y="686.5699999999999" as="sourcePoint" />
            <mxPoint x="801.1600000000001" y="647.5699999999999" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-61" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="GNP__N1gZL6EY5EZ9odj-58" target="GNP__N1gZL6EY5EZ9odj-52" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="606" y="706.28" as="sourcePoint" />
            <mxPoint x="606" y="667.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-62" value="&lt;blockquote style=&quot;margin: 0 0 0 40px; border: none; padding: 0px;&quot;&gt;&lt;b style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 19px;&quot;&gt;Interface layer&lt;/font&gt;&lt;/b&gt;&lt;/blockquote&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#A680B8;strokeColor=#666666;perimeterSpacing=0;fillStyle=hatch;gradientColor=#b3b3b3;shadow=1;align=center;" parent="1" vertex="1">
          <mxGeometry x="53" y="987.28" width="430" height="41" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-63" value="&lt;blockquote style=&quot;margin: 0 0 0 40px; border: none; padding: 0px;&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;Middle Ware&lt;/font&gt;&lt;/b&gt;&lt;/blockquote&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=#6d8764;fontColor=#ffffff;strokeColor=#3A5431;" parent="1" vertex="1">
          <mxGeometry x="24" y="1217.28" width="1130" height="40" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-64" value="&lt;blockquote style=&quot;margin: 0 0 0 40px; border: none; padding: 0px;&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 17px;&quot;&gt;Objects Optional&lt;/font&gt;&lt;/b&gt;&lt;/blockquote&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=center;fillColor=#bac8d3;strokeColor=#23445d;" parent="1" vertex="1">
          <mxGeometry x="562" y="988.28" width="580" height="40" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-65" value="" style="endArrow=none;html=1;rounded=0;strokeWidth=3.1496;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="23" y="947.28" as="sourcePoint" />
            <mxPoint x="1153" y="947.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-66" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="203" y="947.28" as="sourcePoint" />
            <mxPoint x="203" y="907.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-67" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.511;entryY=0.024;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="GNP__N1gZL6EY5EZ9odj-62" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="272" y="947.28" as="sourcePoint" />
            <mxPoint x="752" y="1057.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-68" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="749" y="947" as="sourcePoint" />
            <mxPoint x="749" y="898" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-69" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1007.5699999999999" y="945.28" as="sourcePoint" />
            <mxPoint x="1007.5699999999999" y="896.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-70" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="GNP__N1gZL6EY5EZ9odj-64" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="852" y="947.28" as="sourcePoint" />
            <mxPoint x="283" y="998.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-71" value="Use" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=7.0866;" parent="1" vertex="1">
          <mxGeometry x="194" y="917.28" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-72" value="Use" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="738" y="907.28" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-73" value="Use" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1006.25" y="907.28" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-74" value="&lt;b style=&quot;text-align: left;&quot;&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;BaseNavigation&lt;/font&gt;&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#647687;fontColor=#ffffff;strokeColor=#314354;" parent="1" vertex="1">
          <mxGeometry x="96" y="1087.28" width="130" height="60" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-75" value="&lt;div style=&quot;text-align: left; font-size: 15px;&quot;&gt;&lt;b&gt;BaseLocalization&lt;/b&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#647687;fontColor=#ffffff;strokeColor=#314354;" parent="1" vertex="1">
          <mxGeometry x="297" y="1087.28" width="140" height="60" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-76" value="&lt;font size=&quot;1&quot; style=&quot;&quot;&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;Monitoring&lt;/b&gt;&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#647687;fontColor=#ffffff;strokeColor=#314354;" parent="1" vertex="1">
          <mxGeometry x="572.25" y="1087.28" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-77" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;Nova Controller&lt;/b&gt;&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#647687;fontColor=#ffffff;strokeColor=#314354;" parent="1" vertex="1">
          <mxGeometry x="725" y="1087.28" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-78" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" parent="1" source="GNP__N1gZL6EY5EZ9odj-74" target="GNP__N1gZL6EY5EZ9odj-62" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="507" y="977.28" as="sourcePoint" />
            <mxPoint x="557" y="927.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-79" value="Implement" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="GNP__N1gZL6EY5EZ9odj-78" vertex="1" connectable="0">
          <mxGeometry x="-0.0518" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-80" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="GNP__N1gZL6EY5EZ9odj-76" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="425" y="1097.28" as="sourcePoint" />
            <mxPoint x="632.25" y="1028.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-81" value="&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;Belts Conveyer&lt;/font&gt;&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#647687;fontColor=#ffffff;strokeColor=#314354;" parent="1" vertex="1">
          <mxGeometry x="878" y="1087.28" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-82" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="367" y="1087.28" as="sourcePoint" />
            <mxPoint x="367" y="1028.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-83" value="Implement" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="GNP__N1gZL6EY5EZ9odj-82" vertex="1" connectable="0">
          <mxGeometry x="0.0098" y="1" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-84" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="779" y="1087.28" as="sourcePoint" />
            <mxPoint x="779" y="1028.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-85" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="938" y="1087.28" as="sourcePoint" />
            <mxPoint x="938" y="1028.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-86" value="Use" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="620" y="1047.28" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-87" value="Use" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="766" y="1047.28" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-88" value="Use" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="928" y="1047.28" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-89" value="&lt;span style=&quot;font-size: 15px;&quot;&gt;&lt;b&gt;Safety&lt;/b&gt;&lt;/span&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#647687;fontColor=#ffffff;strokeColor=#314354;" parent="1" vertex="1">
          <mxGeometry x="1029" y="1087.28" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-90" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1086" y="1087.28" as="sourcePoint" />
            <mxPoint x="1086" y="1028.28" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-91" value="Use" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1079" y="1047.28" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-92" value="&lt;b&gt;VDA5050 API (user defined)&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;" parent="1" vertex="1">
          <mxGeometry x="23" y="873" width="401" height="30" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-93" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#b1ddf0;strokeColor=#10739e;strokeWidth=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="200" y="870" as="sourcePoint" />
            <mxPoint x="200" y="820" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-94" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#b1ddf0;strokeColor=#10739e;strokeWidth=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="250" y="821" as="sourcePoint" />
            <mxPoint x="250" y="871" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-95" value="Optional Components" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FF9933;strokeColor=#C73500;fontColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="62" y="1447.28" width="130" height="48" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-96" value="Hardware / Embedded" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="294" y="1449.28" width="139" height="48" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-97" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;MoveBase&lt;/b&gt;&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FF9933;strokeColor=#C73500;fontColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="96" y="1300" width="130" height="48" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-98" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;LocBase&lt;/b&gt;&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FF9933;strokeColor=#C73500;fontColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="297" y="1300" width="130" height="48" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-99" value="Delta Modbus" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="963" y="1292" width="120" height="48" as="geometry" />
        </mxCell>
        <mxCell id="GNP__N1gZL6EY5EZ9odj-100" value="Nova Modbus" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="773" y="1292" width="120" height="48" as="geometry" />
        </mxCell>
        <mxCell id="aWR6YIs5rDZ8mmdKk4SI-1" value="CAN BMS" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="573.25" y="1292" width="120" height="48" as="geometry" />
        </mxCell>
        <mxCell id="aWR6YIs5rDZ8mmdKk4SI-5" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/jpeg,[encoded data, 8200 characters];" parent="1" vertex="1">
          <mxGeometry x="31" y="150" width="140" height="140" as="geometry" />
        </mxCell>
        <mxCell id="aWR6YIs5rDZ8mmdKk4SI-6" value="&lt;b style=&quot;font-size: 15px;&quot;&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;Web&amp;nbsp;&lt;/font&gt;&lt;/b&gt;&lt;div style=&quot;font-size: 15px;&quot;&gt;&lt;b&gt;Fleet Manager&lt;/b&gt;&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#76608a;fontColor=#ffffff;strokeColor=#432D57;" parent="1" vertex="1">
          <mxGeometry x="226" y="152" width="128" height="128" as="geometry" />
        </mxCell>
        <mxCell id="aWR6YIs5rDZ8mmdKk4SI-16" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.174;exitY=0.003;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="GNP__N1gZL6EY5EZ9odj-16" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="321" y="510" as="sourcePoint" />
            <mxPoint x="206.26999999999998" y="460.48" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="K_Wnh8fXGfPSRPP2CCX3-1" value="Client" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="aWR6YIs5rDZ8mmdKk4SI-16" vertex="1" connectable="0">
          <mxGeometry x="0.0486" y="2" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="aWR6YIs5rDZ8mmdKk4SI-18" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="GNP__N1gZL6EY5EZ9odj-8" target="aWR6YIs5rDZ8mmdKk4SI-6" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="301" y="550" as="sourcePoint" />
            <mxPoint x="351" y="500" as="targetPoint" />
            <Array as="points">
              <mxPoint x="825" y="216" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="aWR6YIs5rDZ8mmdKk4SI-19" value="&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;HTTP REG/RES&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="557.5" y="190" width="117.75" height="30" as="geometry" />
        </mxCell>
        <mxCell id="aWR6YIs5rDZ8mmdKk4SI-21" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="107" y="334" width="195" height="125" as="geometry" />
        </mxCell>
        <mxCell id="aWR6YIs5rDZ8mmdKk4SI-22" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/jpeg,[encoded data, 6604 characters];" parent="1" vertex="1">
          <mxGeometry x="117.99" y="338" width="172.81" height="115" as="geometry" />
        </mxCell>
        <mxCell id="aWR6YIs5rDZ8mmdKk4SI-23" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="aWR6YIs5rDZ8mmdKk4SI-5" target="aWR6YIs5rDZ8mmdKk4SI-21" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="301" y="550" as="sourcePoint" />
            <mxPoint x="351" y="500" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="K_Wnh8fXGfPSRPP2CCX3-3" value="Client" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="aWR6YIs5rDZ8mmdKk4SI-23" vertex="1" connectable="0">
          <mxGeometry x="-0.0821" y="-1" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="aWR6YIs5rDZ8mmdKk4SI-25" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="aWR6YIs5rDZ8mmdKk4SI-21" target="aWR6YIs5rDZ8mmdKk4SI-6" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="201" y="340" as="sourcePoint" />
            <mxPoint x="214" y="348" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="K_Wnh8fXGfPSRPP2CCX3-2" value="Client" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="aWR6YIs5rDZ8mmdKk4SI-25" vertex="1" connectable="0">
          <mxGeometry x="-0.0253" y="-2" relative="1" as="geometry">
            <mxPoint y="-1" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="7BLa-X7dFT5Gh9GHB0NR-1" value="&lt;span style=&quot;font-size: 22px;&quot;&gt;&lt;b&gt;Client&lt;/b&gt;&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="330" y="612.28" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="2oMzaUo-12nQadJn4oUR-2" value="&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;AmrController&lt;/b&gt;&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1073.25" y="560" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="bjmOGGOBRA6H6Nk0BenB-5" value="" style="curved=1;endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1012.25" y="843" as="sourcePoint" />
            <mxPoint x="1002.25" y="863" as="targetPoint" />
            <Array as="points">
              <mxPoint x="1002.25" y="843" />
              <mxPoint x="1022.25" y="843" />
              <mxPoint x="1032.25" y="853" />
              <mxPoint x="1022.25" y="873" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="rSY1iIy9RQ-YeejGb1Ug-1" value="&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="520" y="990" width="80" height="30" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="6YWQVVu4UIYYf_JpWajj" name="base_navigation">
    <mxGraphModel dx="1616" dy="998" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="1654" background="none" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="390" y="570" width="130" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="400" y="580" width="130" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-3" value="Sensor Transform" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="410" y="590" width="130" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-4" value="Odometry&lt;br&gt;Source" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="410" y="675" width="130" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-5" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="638.5" y="460" width="450" height="320" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-6" value="global_planner" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="670" y="500" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-7" value="local_planner" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="670" y="680" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-8" value="recovery_behaviors" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="794" y="590" width="139" height="50" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-9" value="local_costmap" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="935" y="680" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-10" value="global_costmap" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="935" y="500" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-11" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="1170" y="591" width="140" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-12" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="1180" y="601" width="140" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-13" value="Laser Sensor&lt;br&gt;Sources" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="1190" y="611" width="140" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-14" value="Pnkx Loc" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#808080;" parent="1" vertex="1">
          <mxGeometry x="416" y="484" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-15" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#999999;" parent="1" vertex="1">
          <mxGeometry x="1170" y="500" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-16" value="&lt;b style=&quot;text-align: left;&quot;&gt;move_base_core::BaseNavigation&lt;br&gt;interface layer&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#A680B8;strokeColor=#666666;perimeterSpacing=0;fillStyle=hatch;gradientColor=#b3b3b3;shadow=1;" parent="1" vertex="1">
          <mxGeometry x="868" y="377" width="206" height="41" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-17" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-6" target="Ml84xAnuYVmnA4KlcGYH-7" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="710" y="591" as="sourcePoint" />
            <mxPoint x="760" y="541" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-18" value="global path" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="Ml84xAnuYVmnA4KlcGYH-17" vertex="1" connectable="0">
          <mxGeometry x="-0.3899" y="-1" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-19" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-9" target="Ml84xAnuYVmnA4KlcGYH-7" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="820" y="841" as="sourcePoint" />
            <mxPoint x="760" y="771" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-20" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-4" target="Ml84xAnuYVmnA4KlcGYH-7" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="630" y="811" as="sourcePoint" />
            <mxPoint x="680" y="761" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-21" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" target="Ml84xAnuYVmnA4KlcGYH-10" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="995" y="681" as="sourcePoint" />
            <mxPoint x="1000" y="541" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-22" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="Ml84xAnuYVmnA4KlcGYH-11" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="995" y="621" as="sourcePoint" />
            <mxPoint x="1145" y="621" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-23" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-10" target="Ml84xAnuYVmnA4KlcGYH-6" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="790" y="511" as="sourcePoint" />
            <mxPoint x="840" y="461" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-24" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=1;exitDx=0;exitDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-10" target="Ml84xAnuYVmnA4KlcGYH-8" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="790" y="511" as="sourcePoint" />
            <mxPoint x="840" y="461" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-25" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-9" target="Ml84xAnuYVmnA4KlcGYH-8" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="790" y="641" as="sourcePoint" />
            <mxPoint x="840" y="591" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-26" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-27" target="Ml84xAnuYVmnA4KlcGYH-6" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="620" y="401" as="sourcePoint" />
            <mxPoint x="870" y="581" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-27" value="&lt;b style=&quot;&quot;&gt;&lt;font&gt;&quot;move_base_simple/goal&quot;&lt;br&gt;geometry_msgs/PoseStamped&lt;/font&gt;&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="425" y="410" width="176" height="33.5" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-28" value="&lt;font style=&quot;color: rgb(0, 0, 0);&quot;&gt;Dynamically allocated from loader controller plugin&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#C3ABD0;fillStyle=auto;fontColor=#ffffff;strokeColor=#6D1F00;align=left;" parent="1" vertex="1">
          <mxGeometry x="844" y="269" width="290" height="76" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-29" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-15" target="Ml84xAnuYVmnA4KlcGYH-10" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1170" y="495" as="sourcePoint" />
            <mxPoint x="1005" y="500" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-30" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#999999;" parent="1" vertex="1">
          <mxGeometry x="1180" y="510" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-31" value="Map server&lt;br&gt;sources" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#999999;" parent="1" vertex="1">
          <mxGeometry x="1190" y="520" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-32" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-3" target="Ml84xAnuYVmnA4KlcGYH-5" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="880" y="611" as="sourcePoint" />
            <mxPoint x="930" y="561" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-33" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-14" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="570" y="560" as="sourcePoint" />
            <mxPoint x="560" y="621" as="targetPoint" />
            <Array as="points">
              <mxPoint x="560" y="509" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-34" value="" style="endArrow=none;html=1;rounded=0;entryX=0.995;entryY=0.306;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="Ml84xAnuYVmnA4KlcGYH-4" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="560" y="621" as="sourcePoint" />
            <mxPoint x="930" y="881" as="targetPoint" />
            <Array as="points">
              <mxPoint x="560" y="693" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-35" value="/odom" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="558" y="707" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-36" value="/tf" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="575" y="591" width="30" height="30" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-37" value="Sensor&lt;br&gt;topics" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="1100" y="584" width="60" height="40" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-38" value="Map&lt;br&gt;topics" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="1104" y="485" width="50" height="40" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-39" value="&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;base controller&lt;/font&gt;&lt;/b&gt;&lt;br&gt;eg. diff_driver_controller,&lt;br&gt;steer_drive_controller" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="790" y="831" width="150" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-40" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-5" target="Ml84xAnuYVmnA4KlcGYH-39" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="930" y="661" as="sourcePoint" />
            <mxPoint x="980" y="611" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-41" value="&quot;/cmd_vel&quot; geometry_msgs/Twist" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="890" y="791" width="97" height="30" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-42" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-39" target="Ml84xAnuYVmnA4KlcGYH-4" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="940" y="712" as="sourcePoint" />
            <mxPoint x="990" y="662" as="targetPoint" />
            <Array as="points">
              <mxPoint x="475" y="862" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-43" value="&lt;font style=&quot;font-size: 15px;&quot;&gt;&lt;b&gt;User controller&lt;/b&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="835" y="260" width="127" height="30" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-44" value="&lt;b&gt;Move base&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="1016" y="455" width="80" height="30" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-45" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.585;entryY=-0.004;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-28" target="Ml84xAnuYVmnA4KlcGYH-16" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1047" y="331.7500000000001" as="sourcePoint" />
            <mxPoint x="956" y="352.75" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-46" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#4D4D4D;" parent="1" vertex="1">
          <mxGeometry x="1115" y="780" width="230" height="111" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-47" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1134" y="792" width="20" height="21" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-48" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="1134" y="862" width="20" height="20" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-49" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#808080;" parent="1" vertex="1">
          <mxGeometry x="1134" y="829" width="20" height="19" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-50" value="Provided node" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="1164" y="787.5" width="100" height="30" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-51" value="Optional provided node" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="1164" y="823.5" width="150" height="30" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-52" value="plataform specific node" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="1164" y="857" width="150" height="30" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-53" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.529;exitY=0.999;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="1" source="Ml84xAnuYVmnA4KlcGYH-16" target="Ml84xAnuYVmnA4KlcGYH-5" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1110" y="395" as="sourcePoint" />
            <mxPoint x="1160" y="345" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-54" value="+ &lt;b&gt;&lt;font style=&quot;color: rgb(0, 0, 0);&quot;&gt;BaseNavigation interface layer&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&#x9;Lớp trung gian định nghĩa các phương thức và thuộc tính liên quan đến phần di chuyển navigation. Chương trình điều khiển sử dụng interface này để kết nết nối với navigation frame work&amp;nbsp;" style="text;fillColor=none;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1411" y="277" width="530" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-55" value="+&amp;nbsp;&lt;b&gt;global_costmap&lt;/b&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&#x9;Bản đồ chi phí toàn cục được xây dựng dựa trên dữ liệu map_grid từ map_server.&amp;nbsp;&amp;nbsp;&lt;br&gt;Dùng cho làm dữ liệu để&amp;nbsp;lập kế hoạch đường đi toàn cục (global path). Đặt gốc tf có id là &#39;map&#39; là gốc tọa độ của bản đồ.&amp;nbsp;" style="text;fillColor=none;whiteSpace=wrap;fontStyle=0;html=1;" parent="1" vertex="1">
          <mxGeometry x="1411" y="350" width="590" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-56" value="+&amp;nbsp;&lt;b&gt;global_costmap&lt;/b&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&#x9;Bản đồ chi phí cục cục bộ được xây dựng dựa trên dữ liệu map_grid và cảm biến môi trường như laser, camera.&amp;nbsp;Dùng làm cho lập kế hoạch đường đi cục bộ&amp;nbsp;(local path). Đặt gốc tf có id là &#39;odom&#39; là gốc tọa độ của bản đồ.&amp;nbsp;" style="text;fillColor=none;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1411" y="430" width="590" height="60" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-57" value="+&lt;b&gt;&amp;nbsp;global_planner&amp;nbsp;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&#x9;Là một plugin (nav_core) được sử dụng để tìm đường đi từ điểm xuất phát đến đích, tránh các vùng có chi phí cao (obstacle hoặc vùng nguy hiểm) trên bản đồ.&amp;nbsp;&lt;br&gt;&lt;br&gt;-&amp;nbsp;Nhận thông tin từ global_costmap&amp;nbsp; có chứa các vùng cấm (obstacle) và vùng chi phí cao (inflation layer).&lt;br&gt;- Tính toán đường đi tối ưu từ vị trí hiện tại đến mục tiêu, tránh vật cản.&lt;br&gt;- Trả về một dãy các điểm (poses) tạo thành đường đi — để sau đó được theo dõi bởi local_planner" style="text;fillColor=none;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1411" y="516" width="590" height="126" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-58" value="+&lt;b&gt; local_planner&amp;nbsp;&lt;/b&gt;&lt;br&gt;&amp;nbsp;&#x9;Là một plugin (nav_core) được sử dụng để theo dõi đường đi đã lên kế hoạch bởi global_planner và tính toán điều hướng robot di chuyển.&amp;nbsp;&lt;br&gt;&lt;br&gt;-&amp;nbsp;Tính toán vận tốc điều khiển cho robot (tức là lệnh vận tốc cmd_vel).&lt;br&gt;-&amp;nbsp;Tránh vật cản mới (động hoặc chưa được biết trong bản đồ toàn cục).&lt;br&gt;-&amp;nbsp;Đảm bảo robot đi đúng hướng của đường đi global nhưng vẫn an toàn và trơn tru" style="text;fillColor=none;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="1408" y="650" width="590" height="126" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-59" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/png,[encoded data, 71840 characters];" parent="1" vertex="1">
          <mxGeometry x="424.91999999999996" y="937.24" width="537.08" height="382.76" as="geometry" />
        </mxCell>
        <mxCell id="Ml84xAnuYVmnA4KlcGYH-60" value="+ &lt;b&gt;recovery_behaviors&lt;/b&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp; &amp;nbsp;Là các hành vi phục hồi (hành vi dự phòng) được gọi ra khi robot gặp sự cố không thể tiếp tục di chuyển được, ví dụ như:&amp;nbsp;&lt;br&gt;- Robot bị mắc kẹt (stuck).&amp;nbsp;&lt;br&gt;- Không tìm được đường đi (global_planner thất bại).&amp;nbsp;&lt;br&gt;- Không tính được lệnh vận tốc an toàn (local_planner thất bại)." style="text;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="1408" y="791" width="560" height="70" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="IggdPjFkJeZ00LLJ9xy6" name="DockingTo Logic">
    <mxGraphModel dx="2172" dy="1283" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1654" pageHeight="1169" background="none" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="rWsgzlK2--SMGekuj6x--5" value="Global Paths" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;startSize=8;endSize=8;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" target="y_vBMroxB3n00J9GlSVh-1" parent="1" source="ancokU4ZG07h2iD857r--1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="280" y="505" as="sourcePoint" />
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="y_vBMroxB3n00J9GlSVh-1" value="local_planner" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="365" y="270" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="xDPgm7vT0_fv6KvDYzeP-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#4D4D4D;" vertex="1" parent="1">
          <mxGeometry x="1250" y="903.11" width="230" height="111" as="geometry" />
        </mxCell>
        <mxCell id="xDPgm7vT0_fv6KvDYzeP-2" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="1269" y="915.11" width="20" height="21" as="geometry" />
        </mxCell>
        <mxCell id="xDPgm7vT0_fv6KvDYzeP-3" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" vertex="1" parent="1">
          <mxGeometry x="1269" y="985.11" width="20" height="20" as="geometry" />
        </mxCell>
        <mxCell id="xDPgm7vT0_fv6KvDYzeP-4" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#808080;" vertex="1" parent="1">
          <mxGeometry x="1269" y="952.11" width="20" height="19" as="geometry" />
        </mxCell>
        <mxCell id="xDPgm7vT0_fv6KvDYzeP-5" value="Provided node" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
          <mxGeometry x="1299" y="910.61" width="100" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xDPgm7vT0_fv6KvDYzeP-6" value="Optional provided node" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
          <mxGeometry x="1299" y="946.61" width="150" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xDPgm7vT0_fv6KvDYzeP-7" value="plataform specific node" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
          <mxGeometry x="1299" y="980.11" width="150" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xDPgm7vT0_fv6KvDYzeP-17" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;fontSize=12;curved=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.051;entryY=0.015;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="y_vBMroxB3n00J9GlSVh-1" target="-Ekw91Sz8yxSiZUPebfl-8">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="450" y="480" as="sourcePoint" />
            <mxPoint x="430" y="390" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="ancokU4ZG07h2iD857r--10" value="Implement" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" vertex="1" connectable="0" parent="xDPgm7vT0_fv6KvDYzeP-17">
          <mxGeometry x="-0.3" relative="1" as="geometry">
            <mxPoint x="1" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="m_Ppg5b6Khmnmid__6mt-1" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/png,[encoded data, 269636 characters];" vertex="1" parent="1">
          <mxGeometry x="670" y="767" width="241.6" height="247.11" as="geometry" />
        </mxCell>
        <mxCell id="m_Ppg5b6Khmnmid__6mt-3" value="2" style="shape=umlFrame;whiteSpace=wrap;html=1;pointerEvents=0;" vertex="1" parent="1">
          <mxGeometry x="670" y="764.19" width="240" height="250" as="geometry" />
        </mxCell>
        <mxCell id="ancokU4ZG07h2iD857r--1" value="global_planner" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="150" y="270" width="120" height="50" as="geometry" />
        </mxCell>
        <mxCell id="eudX-TjIh1tD35AA8hcj-25" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/png,[encoded data, 131308 characters];" vertex="1" parent="1">
          <mxGeometry x="392.5" y="772.5" width="255.52" height="222.5" as="geometry" />
        </mxCell>
        <mxCell id="eudX-TjIh1tD35AA8hcj-26" value="1" style="shape=umlFrame;whiteSpace=wrap;html=1;pointerEvents=0;" vertex="1" parent="1">
          <mxGeometry x="392.5" y="765" width="257.5" height="230" as="geometry" />
        </mxCell>
        <mxCell id="eudX-TjIh1tD35AA8hcj-27" value="&lt;span style=&quot;color: rgb(255, 255, 255); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; background-color: rgb(18, 18, 18); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;Global Paths&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;fontSize=9;" vertex="1" parent="1">
          <mxGeometry x="400" y="933.56" width="82.5" height="20" as="geometry" />
        </mxCell>
        <mxCell id="eudX-TjIh1tD35AA8hcj-28" value="&lt;span style=&quot;color: rgb(255, 255, 255); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; background-color: rgb(18, 18, 18); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;Transform paths&lt;/span&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;" style="text;whiteSpace=wrap;html=1;fontSize=9;" vertex="1" parent="1">
          <mxGeometry x="572.5" y="853.56" width="70" height="20" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-8" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="380" y="405" width="860" height="340" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-9" value="" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="1">
          <mxGeometry x="410" y="515" width="20" height="110" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-10" value="return" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=-5;fontSize=12;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-9">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="310" y="620" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-11" value="" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="1">
          <mxGeometry x="650" y="515" width="20" height="110" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-12" value="Transform paths&lt;div&gt;&amp;nbsp;to local map&lt;/div&gt;" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=5;fontSize=12;startSize=8;endSize=8;exitX=1;exitY=0;exitDx=0;exitDy=5;exitPerimeter=0;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-9" target="-Ekw91Sz8yxSiZUPebfl-11">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="540" y="520" as="sourcePoint" />
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-13" value="" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=-5;fontSize=12;entryX=1;entryY=1;entryDx=0;entryDy=-5;entryPerimeter=0;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-11" target="-Ekw91Sz8yxSiZUPebfl-9">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="530" y="620" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-14" value="&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;base controller&lt;/font&gt;&lt;/b&gt;&lt;br&gt;eg. diff_driver_controller,&lt;br&gt;steer_drive_controller" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" vertex="1" parent="1">
          <mxGeometry x="160" y="585" width="150" height="60" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-15" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#4A0600;fontColor=#ffffff;strokeColor=#B20000;" vertex="1" parent="1">
          <mxGeometry x="407.05999999999995" y="680" width="25" height="25" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-16" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-9" target="-Ekw91Sz8yxSiZUPebfl-15">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="440" y="640" as="sourcePoint" />
            <mxPoint x="800" y="350" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-17" value="Throw&amp;nbsp;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" vertex="1" connectable="0" parent="-Ekw91Sz8yxSiZUPebfl-16">
          <mxGeometry x="0.3509" y="2" relative="1" as="geometry">
            <mxPoint x="-2" y="58" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-18" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#4A0600;fontColor=#ffffff;strokeColor=#B20000;" vertex="1" parent="1">
          <mxGeometry x="647.5" y="685" width="25" height="25" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-19" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-11" target="-Ekw91Sz8yxSiZUPebfl-18">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="660" y="630" as="sourcePoint" />
            <mxPoint x="1040.44" y="355" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-20" value="Throw&amp;nbsp;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" vertex="1" connectable="0" parent="-Ekw91Sz8yxSiZUPebfl-19">
          <mxGeometry x="0.3509" y="2" relative="1" as="geometry">
            <mxPoint x="-2" y="58" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-21" value="" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="1">
          <mxGeometry x="880" y="515" width="20" height="110" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-22" value="Moving and Reaching&lt;div&gt;&amp;nbsp;goal&lt;/div&gt;" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=5;fontSize=12;startSize=8;endSize=8;exitX=1;exitY=0;exitDx=0;exitDy=5;exitPerimeter=0;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-11" target="-Ekw91Sz8yxSiZUPebfl-21">
          <mxGeometry x="-0.0026" relative="1" as="geometry">
            <mxPoint x="704" y="520" as="sourcePoint" />
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-23" value="" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=-5;fontSize=12;entryX=1;entryY=1;entryDx=0;entryDy=-5;entryPerimeter=0;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-21" target="-Ekw91Sz8yxSiZUPebfl-11">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="704" y="620" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-24" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#4A0600;fontColor=#ffffff;strokeColor=#B20000;" vertex="1" parent="1">
          <mxGeometry x="880" y="680" width="25" height="25" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-25" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-21" target="-Ekw91Sz8yxSiZUPebfl-24">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="934" y="630" as="sourcePoint" />
            <mxPoint x="1314.44" y="355" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-26" value="Throw&amp;nbsp;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" vertex="1" connectable="0" parent="-Ekw91Sz8yxSiZUPebfl-25">
          <mxGeometry x="0.3509" y="2" relative="1" as="geometry">
            <mxPoint x="-2" y="55" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-29" value="MKT Local planner" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
          <mxGeometry x="380" y="405" width="130" height="30" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-30" value="Goal" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;labelBackgroundColor=default;" vertex="1" parent="1">
          <mxGeometry x="787.6" y="944.19" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-31" value="" style="html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="1">
          <mxGeometry x="1100" y="515" width="20" height="110" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-32" value="" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=5;fontSize=12;startSize=8;endSize=8;exitX=1;exitY=0;exitDx=0;exitDy=5;exitPerimeter=0;" edge="1" target="-Ekw91Sz8yxSiZUPebfl-31" parent="1" source="-Ekw91Sz8yxSiZUPebfl-21">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1050" y="540" as="sourcePoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-35" value="Is Goal reached&amp;nbsp;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" vertex="1" connectable="0" parent="-Ekw91Sz8yxSiZUPebfl-32">
          <mxGeometry x="0.1625" y="2" relative="1" as="geometry">
            <mxPoint x="-6" y="-23" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-33" value="" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=-5;fontSize=12;entryX=1;entryY=1;entryDx=0;entryDy=-5;entryPerimeter=0;" edge="1" source="-Ekw91Sz8yxSiZUPebfl-31" parent="1" target="-Ekw91Sz8yxSiZUPebfl-21">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1050" y="610" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-36" value="Transform paths Algorithm" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="600" y="415" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-37" value="Navigation&lt;div&gt;&amp;nbsp;Algorithm&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="832.5" y="415" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-38" value="Goal Checker" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="1050" y="415" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-40" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-11" target="-Ekw91Sz8yxSiZUPebfl-36">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="780" y="685" as="sourcePoint" />
            <mxPoint x="830" y="635" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-41" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-21" target="-Ekw91Sz8yxSiZUPebfl-37">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="770" y="515" as="sourcePoint" />
            <mxPoint x="770" y="475" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-42" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-31" target="-Ekw91Sz8yxSiZUPebfl-38">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1220" y="885" as="sourcePoint" />
            <mxPoint x="1220" y="845" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-44" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/png,[encoded data, 105492 characters];" vertex="1" parent="1">
          <mxGeometry x="930" y="765" width="267.72" height="250" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-45" value="3" style="shape=umlFrame;whiteSpace=wrap;html=1;pointerEvents=0;" vertex="1" parent="1">
          <mxGeometry x="930" y="764.19" width="270" height="250" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-46" value="" style="endArrow=none;dashed=1;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="-Ekw91Sz8yxSiZUPebfl-47" target="-Ekw91Sz8yxSiZUPebfl-31">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="1350" y="590" as="sourcePoint" />
            <mxPoint x="1010" y="700" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-47" value="End" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
          <mxGeometry x="1090" y="672.5" width="40" height="40" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-49" value="&lt;h1 style=&quot;margin-top: 0px;&quot;&gt;&lt;span style=&quot;font-size: 12px;&quot;&gt;Transform paths Algorithm&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;Thuật toán dich chuyển gốc tọa độ map -&amp;gt; odom, trích xuất một phần paths nằm trong phạm vi bản đồ cục bộ (local costmap). Mục đích tối ưu dữ liệu xử lý khi chạy trong thời gian thực&lt;/p&gt;" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;textShadow=0;labelBorderColor=default;align=left;labelBackgroundColor=default;" vertex="1" parent="1">
          <mxGeometry x="560" y="205" width="177.5" height="155" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-51" value="&lt;h1 style=&quot;margin-top: 0px;&quot;&gt;&lt;span style=&quot;font-size: 12px; text-align: center;&quot;&gt;Navigation&lt;/span&gt;&lt;span style=&quot;font-size: 12px; text-align: center; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&amp;nbsp;Algorithm&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;Thuật toán bám đường với chức năng tính gia tốc, tốc độ, hướng di chuyển của robot&amp;nbsp;&amp;nbsp;&lt;/p&gt;" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;textShadow=0;labelBorderColor=default;labelBackgroundColor=default;" vertex="1" parent="1">
          <mxGeometry x="802.5" y="205" width="180" height="115" as="geometry" />
        </mxCell>
        <mxCell id="-Ekw91Sz8yxSiZUPebfl-52" value="&lt;h1 style=&quot;margin-top: 0px;&quot;&gt;&lt;span style=&quot;font-size: 12px; text-align: center;&quot;&gt;Goal Checker&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;Thuật toán kiểm tra vị trí của robot với đích đến&lt;/p&gt;" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;textShadow=1;labelBorderColor=default;labelBackgroundColor=none;" vertex="1" parent="1">
          <mxGeometry x="1020" y="205" width="180" height="95" as="geometry" />
        </mxCell>
        <mxCell id="VJLmjIsyXuOWypGXHYP3-1" value="Odometry&lt;br&gt;Source" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" vertex="1" parent="1">
          <mxGeometry x="160" y="490" width="150" height="60" as="geometry" />
        </mxCell>
        <mxCell id="VJLmjIsyXuOWypGXHYP3-2" value="get" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontSize=12;entryX=0;entryY=0;entryDx=0;entryDy=5;entryPerimeter=0;" edge="1" parent="1" source="VJLmjIsyXuOWypGXHYP3-1" target="-Ekw91Sz8yxSiZUPebfl-9">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="340" y="750" as="targetPoint" />
            <mxPoint x="440" y="750" as="sourcePoint" />
          </mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram name="diff_driver_controller" id="MMzWF9Ccrwh_1tzrhLVn">
    <mxGraphModel dx="1630" dy="870" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#82b366;" parent="1" vertex="1">
          <mxGeometry x="90" y="118" width="310" height="430" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-2" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="eVjOs_GBgMHd-5_3SdSV-1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="10" y="178" as="sourcePoint" />
            <mxPoint x="53" y="176.67000000000002" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-3" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;/cmd_vel&lt;/font&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="SOsW3ZffpFhgjvOfzQsk-2" vertex="1" connectable="0">
          <mxGeometry x="-0.0286" y="-2" relative="1" as="geometry">
            <mxPoint x="-11" y="-18" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-5" value="&lt;b&gt;&lt;font style=&quot;font-size: 16px;&quot;&gt;Diff Drive Controller&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="76" y="110" width="180" height="30" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-13" value="update()" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#808080;strokeColor=#23445d;" parent="1" vertex="1">
          <mxGeometry x="120" y="601" width="96" height="43" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-14" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" parent="1" edge="1" target="SOsW3ZffpFhgjvOfzQsk-1" source="SOsW3ZffpFhgjvOfzQsk-13">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="334" y="658" as="sourcePoint" />
            <mxPoint x="334" y="668" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-18" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#666666;" parent="1" vertex="1">
          <mxGeometry x="262" y="300" width="120" height="130" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-19" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;font face=&quot;SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace, Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji, Twemoji Mozilla&quot; color=&quot;#c9d1d9&quot;&gt;L model 1&lt;/font&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="277" y="330" width="90" height="24" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-20" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;font face=&quot;SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace, Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji, Twemoji Mozilla&quot; color=&quot;#c9d1d9&quot;&gt;L model n&lt;/font&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="277" y="387" width="90" height="20" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-21" value="&lt;b&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Left drive&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="256" y="300" width="90" height="30" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-23" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="322" y="357" as="sourcePoint" />
            <mxPoint x="322" y="387" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-24" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#666666;" parent="1" vertex="1">
          <mxGeometry x="100" y="299" width="120" height="130" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-25" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;font face=&quot;SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace, Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji, Twemoji Mozilla&quot; color=&quot;#c9d1d9&quot;&gt;R model 1&lt;/font&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="115" y="335" width="90" height="20" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-26" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;font face=&quot;SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace, Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji, Twemoji Mozilla&quot; color=&quot;#c9d1d9&quot;&gt;R model n&lt;/font&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="115" y="386" width="90" height="20" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-27" value="&lt;b&gt;&lt;font style=&quot;font-size: 14px;&quot;&gt;Right drive&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="90" y="305" width="100" height="30" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-28" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="160" y="358" as="sourcePoint" />
            <mxPoint x="160" y="388" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-29" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#C3ABD0;fillStyle=auto;fontColor=#ffffff;strokeColor=#6D1F00;" parent="1" vertex="1">
          <mxGeometry x="450" y="118" width="357" height="90" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-31" value="&lt;font size=&quot;1&quot; style=&quot;&quot;&gt;&lt;b style=&quot;font-size: 13px;&quot;&gt;models::BaseSteerDrive interface layer&lt;br&gt;&lt;br&gt;&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="442" y="232" width="256" height="30" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-32" value="&lt;font style=&quot;font-size: 15px;&quot;&gt;&lt;b style=&quot;&quot;&gt;Model&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="444" y="110" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-33" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#C9C9C9;strokeColor=#666666;perimeterSpacing=0;fillStyle=hatch;gradientColor=#b3b3b3;shadow=1;" parent="1" vertex="1">
          <mxGeometry x="449" y="250" width="358" height="98" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-35" value="Dynamically allocated from loader controller plugin" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="460" y="140" width="280" height="30" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-36" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FF9933;strokeColor=#C73500;fontColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="447" y="408" width="360" height="100" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-37" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="449" y="638" width="360" height="170" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-38" value="&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;Real driver motor&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="442" y="644" width="98" height="30" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-40" value="write()" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#999999;strokeColor=#23445d;" parent="1" vertex="1">
          <mxGeometry x="487" y="538" width="100" height="43" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-41" value="read()" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#808080;strokeColor=#23445d;" parent="1" vertex="1">
          <mxGeometry x="672" y="538" width="96" height="43" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-43" value="&lt;b&gt;Embeded Controller&lt;/b&gt;&lt;div&gt;e.g PID loop&amp;nbsp;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#B3B3B3;strokeColor=#56517e;" parent="1" vertex="1">
          <mxGeometry x="477" y="688" width="124" height="36" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-45" value="&lt;b&gt;Actuators&lt;/b&gt;&lt;br&gt;&lt;div&gt;e.g Servos&amp;nbsp;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#B3B3B3;strokeColor=#56517e;" parent="1" vertex="1">
          <mxGeometry x="477" y="748" width="124" height="36" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-46" value="&lt;b&gt;Encoders&lt;/b&gt;&lt;br&gt;&lt;div&gt;Sensors on the real motor&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#B3B3B3;strokeColor=#56517e;" parent="1" vertex="1">
          <mxGeometry x="645" y="748" width="150" height="36" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-47" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" target="SOsW3ZffpFhgjvOfzQsk-41" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="721" y="748" as="sourcePoint" />
            <mxPoint x="721" y="588" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-48" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="SOsW3ZffpFhgjvOfzQsk-40" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="539" y="588" as="sourcePoint" />
            <mxPoint x="537" y="688" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-49" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="SOsW3ZffpFhgjvOfzQsk-43" target="SOsW3ZffpFhgjvOfzQsk-45" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="367" y="694" as="sourcePoint" />
            <mxPoint x="357" y="784" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-51" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" target="SOsW3ZffpFhgjvOfzQsk-52" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="719.5" y="428" as="sourcePoint" />
            <mxPoint x="732" y="328" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-52" value="&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; GetVelocityLimit ()&lt;/font&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; GetVelocity ()&lt;/font&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; Position ()&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1A1A1A;align=left;" parent="1" vertex="1">
          <mxGeometry x="647" y="270" width="145" height="58" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-54" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="SOsW3ZffpFhgjvOfzQsk-41" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="407" y="468" as="sourcePoint" />
            <mxPoint x="719.5" y="488" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-56" value="&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; &amp;nbsp;SetVelocityLimit ()&amp;nbsp;&lt;/font&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; &amp;nbsp;SetVelocity ()&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; &amp;nbsp;SetPosition ()&lt;/font&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#1A1A1A;fillColor=#1A1A1A;align=left;" parent="1" vertex="1">
          <mxGeometry x="461" y="270" width="150" height="58" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-57" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="SOsW3ZffpFhgjvOfzQsk-52" target="Ni3ECevP8Za24oxqFHZ1-2" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="897" y="338" as="sourcePoint" />
            <mxPoint x="628.9999999999998" y="203.9999999999999" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-58" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="Ni3ECevP8Za24oxqFHZ1-2" target="SOsW3ZffpFhgjvOfzQsk-56" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="407" y="468" as="sourcePoint" />
            <mxPoint x="457" y="418" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-59" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="SOsW3ZffpFhgjvOfzQsk-56" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="407" y="468" as="sourcePoint" />
            <mxPoint x="536" y="428" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-61" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="SOsW3ZffpFhgjvOfzQsk-40" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="537" y="488" as="sourcePoint" />
            <mxPoint x="497" y="418" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-63" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;font face=&quot;SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace, Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji, Twemoji Mozilla&quot;&gt;&lt;span style=&quot;white-space-collapse: preserve; caret-color: rgb(203, 208, 218);&quot;&gt;pluginlib::ClassLoader::&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;background-color: initial; text-align: center; caret-color: rgb(203, 208, 218); white-space-collapse: preserve;&quot;&gt;&lt;font face=&quot;SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace, Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji, Twemoji Mozilla&quot;&gt;createInstance&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="556" y="383" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-64" value="&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; &amp;nbsp;SetVelocityLimit ()&amp;nbsp;&lt;/font&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; &amp;nbsp;SetVelocity ()&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; &amp;nbsp;SetPosition ()&lt;/font&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#1A1A1A;fillColor=#1A1A1A;align=left;" parent="1" vertex="1">
          <mxGeometry x="466" y="429" width="150" height="58" as="geometry" />
        </mxCell>
        <mxCell id="SOsW3ZffpFhgjvOfzQsk-65" value="&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; GetVelocityLimit ()&lt;/font&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; GetVelocity ()&lt;/font&gt;&lt;div&gt;&lt;font color=&quot;#ffffff&quot;&gt;&amp;nbsp; Position ()&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1A1A1A;align=left;" parent="1" vertex="1">
          <mxGeometry x="650" y="429" width="145" height="58" as="geometry" />
        </mxCell>
        <mxCell id="Ni3ECevP8Za24oxqFHZ1-2" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;font face=&quot;SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace, Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji, Twemoji Mozilla&quot; color=&quot;#c9d1d9&quot;&gt;Controller&lt;/font&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="573" y="168" width="107" height="34" as="geometry" />
        </mxCell>
        <mxCell id="CPcGtrMQgUb-2AQVbBM9-1" value="Optional Components" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FF9933;strokeColor=#C73500;fontColor=#000000;" vertex="1" parent="1">
          <mxGeometry x="10" y="732" width="130" height="67" as="geometry" />
        </mxCell>
        <mxCell id="CPcGtrMQgUb-2AQVbBM9-2" value="Hardware / Embedded" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="166" y="732" width="139" height="67" as="geometry" />
        </mxCell>
        <mxCell id="eVjOs_GBgMHd-5_3SdSV-1" value="Kinematics converter" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFD966;" vertex="1" parent="1">
          <mxGeometry x="103" y="158" width="277" height="40" as="geometry" />
        </mxCell>
        <mxCell id="eVjOs_GBgMHd-5_3SdSV-2" value="Odometry" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFD966;" vertex="1" parent="1">
          <mxGeometry x="165" y="478" width="170" height="50" as="geometry" />
        </mxCell>
        <mxCell id="eVjOs_GBgMHd-5_3SdSV-3" value="" style="curved=1;endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="SOsW3ZffpFhgjvOfzQsk-19">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="334" y="201" as="sourcePoint" />
            <mxPoint x="450" y="163" as="targetPoint" />
            <Array as="points">
              <mxPoint x="420" y="325" />
              <mxPoint x="417" y="238" />
              <mxPoint x="420" y="163" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="eVjOs_GBgMHd-5_3SdSV-4" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="SOsW3ZffpFhgjvOfzQsk-24" target="eVjOs_GBgMHd-5_3SdSV-2">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="-107" y="335" as="sourcePoint" />
            <mxPoint x="245" y="475" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="eVjOs_GBgMHd-5_3SdSV-5" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="SOsW3ZffpFhgjvOfzQsk-18" target="eVjOs_GBgMHd-5_3SdSV-2">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="223" y="495" as="sourcePoint" />
            <mxPoint x="238.19999999999982" y="476.53999999999996" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="DpE4LGwmrmzAVMHJNY1C-1" value="Limit velocities and accelerations" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFD966;" vertex="1" parent="1">
          <mxGeometry x="100" y="228" width="280" height="43.5" as="geometry" />
        </mxCell>
        <mxCell id="DpE4LGwmrmzAVMHJNY1C-4" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.495;exitY=0.98;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="eVjOs_GBgMHd-5_3SdSV-1" target="DpE4LGwmrmzAVMHJNY1C-1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="380" y="308" as="sourcePoint" />
            <mxPoint x="430" y="258" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="DpE4LGwmrmzAVMHJNY1C-5" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="DpE4LGwmrmzAVMHJNY1C-1" target="SOsW3ZffpFhgjvOfzQsk-24">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="320" y="458" as="sourcePoint" />
            <mxPoint x="370" y="408" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="DpE4LGwmrmzAVMHJNY1C-6" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.716;entryY=-0.014;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="DpE4LGwmrmzAVMHJNY1C-1" target="SOsW3ZffpFhgjvOfzQsk-21">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="320" y="458" as="sourcePoint" />
            <mxPoint x="370" y="408" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="DpE4LGwmrmzAVMHJNY1C-7" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="eVjOs_GBgMHd-5_3SdSV-2" target="K050-TUOp0ZbJL0FTSjv-1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="290" y="488" as="sourcePoint" />
            <mxPoint x="330" y="638" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="K050-TUOp0ZbJL0FTSjv-1" value="Odometry&lt;br&gt;Source" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" vertex="1" parent="1">
          <mxGeometry x="262" y="601" width="130" height="47" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="ndz0RI-vqnR3E2vGuCD-" name="Modbus">
    <mxGraphModel dx="1412" dy="886" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="WG-fUT-Usi0estlntUMP-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="360" y="200" width="420" height="240" as="geometry" />
        </mxCell>
        <mxCell id="WG-fUT-Usi0estlntUMP-2" value="Python3&lt;div&gt;Chươnh trình camera AI&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6E6E6;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="420" y="280" width="130" height="60" as="geometry" />
        </mxCell>
        <mxCell id="WG-fUT-Usi0estlntUMP-3" value="ROS" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#CCCCCC;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="610" y="280" width="130" height="60" as="geometry" />
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-1" value="Controller Nova" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6AB0B0;strokeColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="500" y="550" width="140" height="60" as="geometry" />
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-2" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="310" y="480" as="sourcePoint" />
            <mxPoint x="840" y="480" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-3" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="xOGOJyOVz8dqvLvlhLey-1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="570" y="480" as="sourcePoint" />
            <mxPoint x="660" y="420" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-4" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" target="WG-fUT-Usi0estlntUMP-2" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="485" y="480" as="sourcePoint" />
            <mxPoint x="660" y="420" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-5" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="680" y="480" as="sourcePoint" />
            <mxPoint x="680" y="340" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-6" value="&lt;b&gt;Modbus TCP&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="525" y="450" width="90" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-7" value="Modbus Server" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="540" y="620" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-8" value="Modbus Client" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="650" y="240" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-9" value="Modbus Client" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="455" y="240" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-10" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=6.206896551724139;endSize=6.264367816091955;strokeColor=#FFD966;fillColor=#FFD966;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="470" y="410" as="sourcePoint" />
            <mxPoint x="470" y="350" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-11" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=6.206896551724139;endSize=6.264367816091955;strokeColor=#0066CC;fillColor=#0066CC;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="500" y="354" as="sourcePoint" />
            <mxPoint x="500" y="414" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-12" value="&lt;b&gt;IPC Kernel&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="360" y="200" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-13" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;Read/write&amp;nbsp;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;request&lt;/font&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="515" y="360" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-14" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;Response&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="400" y="360" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-19" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=6.206896551724139;endSize=6.264367816091955;strokeColor=#FFD966;fillColor=#FFD966;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="662.5" y="410" as="sourcePoint" />
            <mxPoint x="662.5" y="350" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-20" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;endWidth=6.206896551724139;endSize=6.264367816091955;strokeColor=#0066CC;fillColor=#0066CC;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="692.5" y="354" as="sourcePoint" />
            <mxPoint x="692.5" y="414" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-21" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;Read/write&amp;nbsp;&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;request&lt;/font&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="707.5" y="360" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-22" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;Response&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="592.5" y="360" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="xOGOJyOVz8dqvLvlhLey-27" value="&lt;b&gt;EtherNet&amp;nbsp;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="260" y="450" width="60" height="30" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
