Skip to content
Snippets Groups Projects
Commit d35be12d authored by Raphael Grimm's avatar Raphael Grimm
Browse files

Merge branch 'RobotUnit_v3' into 'master'

Robot unit v3

See merge request ArmarX/RobotAPI!39
parents 44cc5fd3 b43fa632
No related branches found
No related tags found
No related merge requests found
Showing
with 145 additions and 77 deletions
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" style="background-color: rgb(255, 255, 255);" xmlns:xlink="http://www.w3.org/1999/xlink" width="602px" height="302px" version="1.1" content="&lt;mxfile userAgent=&quot;Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0&quot; version=&quot;6.1.0.3&quot; editor=&quot;www.draw.io&quot; type=&quot;device&quot;&gt;&lt;diagram name=&quot;Page-1&quot;&gt;7Vttk9o2EP41zLSdOUay/MbHg1zTzFw7mdw1bT8KW4AbYVEhDi6/PpItYQuZCxzG0PbywbFXQi/77LNarXQ9NJpv3nO8mP3KUkJ7Hkg3PfSu53kRiOVTCZ5LQRAHpWDKs7QUwUrwkH0lWgi0dJWlZGlVFIxRkS1sYcLynCTCkmHO2dquNmHU7nWBp8QRPCSYutI/slTMSqkHAKgKfiHZdCZ2S8Y4+TLlbJXrDnsemhT/yuI5No3p+ssZTtm6JkJ3PTTijInybb4ZEap0a/RW/u7nPaXbgXOSi4N+oAqLgYhnM3uSSmXoT8bFjE1ZjuldJR0WEySqCSC/ZmJO5SuUr2STiT+VuO8F+vMvXfQ3EeJZQ41XgklR1fg9Ywtdz52BnpQaVk2g5/OesDkR/FlW4IRikT3ZGGJtCtNtve1PP7JMduGBjTG+yOt7cRBBXz/LFrQNh35otygwnxKhG6mr+Lh2JTf6MRgEHiqfkd3Lkq14Qpxe5Ett7pWogHcf1OANau2gBkE/hAPgR+Uz2EE6eh3SLzcbxGE3QIfawJ4wXWkN3X++hyOWC84oJdwxg+U6m1OcK7zXs0yQhwVOVNFaencb9b2QPREuyOZF0DZGvcDSix/r73XlakPjT2c1L4uM8AWgP8nlAOdTObGj+oOwoT8P2d1hKgjPsSBDxYnlqXSE6Dx0rLNRVZJI8eeyKArM9+lUNVZW2m0pG2iLLwmjZVHbnLaU/qKGBw4Rel5I5cCGE1YQt9J9+M+KmYKbZaGQW1khXmyqMvk2Vf//vkilFZim5DDK1spCB1RJC2FjxYnsAI+LCgqhhSJ9MdFg2AveSQmm2TSXgkSqW/IVDRW9Mhmg3OqCeZamhUFQPCZ0uI06RowyXvRr4o5Gzhrbc1i7jan08KywpInN0t5iT6+Mr/XKpgqbTJbk5GUORP89XoUuryBAlyOW/0asZmIZ42uDWJEX2BEEvCKauTHGp8cT4opJRmlNxSkm8SSR8qUMWb6QWkmYxGTcrPxt3PP9UEQr1AucSAA1RR6eCeUOjDxM826gEXQeZ5j1t4bUg6ixbMwrgrVA4R/sVkohW4hMOb49zP7xUMYfHZwebhGmFMUW5UIXwqgxND3dqw5iB6jHwt9LCwA/XUIXdtwMzY6lA11Aw8KaMj6rV62LN9P9vul6oDvbRQ5av7FcCtSa4GLV1ioxmZAwaVwl0mgwBuDUVWKzsyScedXY191hMJ55FQkchD9ijmULhC9P5yMEjYR8yrAsvBVsniXLtqjGmVz+JKflp1Jkk43s2x3tNZEb6EW2s/QGDmqNi7/fird0+dfhGv/KVi7mWY9GV+53+rX0bez7l4oRoOfy0FGI2rAsDp/20TuTGxjaDspz5u/DBgfVyvxdSz/dICqtHrxzcEMh1AA5bGXKZ9psl271rJvtlWDlIIofmL03JRPRsPMWKikyXErcsnz6WGRIbvyT8bItvW6iTWtoG3gh2IDXhSka+t1RFLmpgRYoig4/Z+ieoqjJK/2/KXoEXhegqJsTuThFUdghRd1UQxsU3Zf7vAqKnuks6N9M0cPx6p6ipuFromjgBvpno6h/QBRxPEW3Wr1GipqLMW8UfQ1eF6Do6RsT1Jj36ff7140WBJVIdzNjPPsqR4qpFhzul/b7H8/2P7E6aY5DD4TxIAwC6O67m7jZTj7exXo0w/lU5S3ricAdeM598H6Bc3eTCe3+2N2MpobBh0QB8EGdZU/UMnDkCuGkQncS7ASmAYmaEuyDMEI4bCnB7oc759yhm2FvPjltxbTdYHiEabKiRQIV5GQtn9uTuE4NHNbNu6zXwYWt+FIGDk0jZ72hCk7S4nXcUA2RdZV0YDffzn3VCLzYyavvq8rP6n57Wb36IwJ09w0=&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g transform="translate(0.5,0.5)"><path d="M 432.29 105.81 L 432.29 159.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 432.29 164.88 L 428.79 157.88 L 432.29 159.63 L 435.79 157.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 155.62 106.81 L 155.62 160.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 155.62 165.88 L 152.12 158.88 L 155.62 160.63 L 159.12 158.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 23 L 0 0 L 600 0 L 600 23 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 23 L 0 300 L 600 300 L 600 23" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(257.5,5.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="85" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 86px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">LVL1Controller</div></div></foreignObject><text x="43" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">LVL1Controller</text></switch></g><path d="M 278.21 174.31 L 190.62 174.31 L 190.62 121.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 190.62 116.12 L 194.12 123.12 L 190.62 121.37 L 187.12 123.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(178.5,139.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;"><font style="font-size: 8px">Update</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 580.28 175 L 467.17 175 L 467.17 121.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 467.17 116.12 L 470.67 123.12 L 467.17 121.37 L 463.67 123.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(454.5,132.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;"><font style="font-size: 8px">Update</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 0 48 L 0 25 L 300 25 L 300 48 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 48 L 0 300 L 300 300 L 300 48" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(141.5,30.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="16" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 17px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">RT</div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">RT</text></switch></g><rect x="138" y="85" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(156.5,86.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="32" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 33px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">State<br /><font style="font-size: 8px">(<font>optional</font>)</font></div></div></foreignObject><text x="16" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="10" y="162" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(20.5,170.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Targets *</div></div></foreignObject><text x="24" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Targets *</text></switch></g><rect x="138" y="225" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(150.5,226.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="45" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 46px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Values *<br /><font style="font-size: 8px">(<font>optional</font>)</font></div></div></foreignObject><text x="23" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 300 48 L 300 25 L 600 25 L 600 48 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 300 48 L 300 300 L 600 300 L 600 48" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(428.5,30.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="42" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 43px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Non RT<br /></div></div></foreignObject><text x="21" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">Non RT&lt;br&gt;</text></switch></g><rect x="173" y="154" width="250" height="40" fill="#ffffff" stroke="#000000" transform="rotate(270,298,174)" pointer-events="none"/><g transform="translate(266.5,160.5)rotate(270,31.5,13.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="63" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 64px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Parameters<br /><font style="font-size: 10px">(via Atomics)</font></div></div></foreignObject><text x="32" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="414.57" y="85" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(433.5,86.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="32" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 33px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">State<br /><font style="font-size: 8px">(<font style="font-size: 8px">optional</font>)</font></div></div></foreignObject><text x="16" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="284" y="54" width="30" height="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(286.5,49.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font style="font-size: 8px">Atomic</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="284" y="96" width="30" height="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(286.5,91.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font style="font-size: 8px">Atomic</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="284" y="68" width="30" height="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(286.5,63.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font style="font-size: 8px">Atomic</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="284" y="82" width="30" height="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(286.5,77.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font style="font-size: 8px">Atomic</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><g transform="translate(268.5,135.5)rotate(-90,0,0)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font style="font-size: 30px">...</font></div></div></foreignObject><text x="12" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 580.28 175 L 449.24 175 L 449.24 174.31 L 324.57 174.31" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 319.32 174.31 L 326.32 170.81 L 324.57 174.31 L 326.32 177.81 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(399.5,168.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="98" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">Change Parameters</div></div></foreignObject><text x="49" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">Change Parameters</text></switch></g><rect x="465" y="165" width="250" height="20" fill="#e1d5e7" stroke="#9673a6" transform="rotate(270,590,175)" pointer-events="none"/><g transform="translate(556.5,168.5)rotate(270,33,6)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="66" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 67px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Ice Interface</div></div></foreignObject><text x="33" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Ice Interface</text></switch></g><path d="M 278.21 174.31 L 178.9 174.31 L 178.9 177.07 L 86.64 177.07" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 81.39 177.07 L 88.39 173.57 L 86.64 177.07 L 88.39 180.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(124.5,169.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="108" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">Calculate new Targets</div></div></foreignObject><text x="54" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">Calculate new Targets</text></switch></g><path d="M 155.62 223.81 L 155.62 190.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 155.62 184.93 L 159.12 191.93 L 155.62 190.18 L 152.12 191.93 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" style="background-color: rgb(255, 255, 255);" xmlns:xlink="http://www.w3.org/1999/xlink" width="601px" height="301px" version="1.1" content="&lt;mxfile userAgent=&quot;Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0&quot; version=&quot;8.5.12&quot; editor=&quot;www.draw.io&quot; type=&quot;device&quot;&gt;&lt;diagram name=&quot;Page-1&quot; id=&quot;775d93bb-e439-393a-9cf0-e3d5a865d32a&quot;&gt;7Vttc+I2EP41zLSdCSNZfuNj4K7X67Q3N5f07aNiC+OesKgQgdyvP8mWsIVMDoIxtE0+gL0SK2uffVarlTNAk/nmHceL2a8sJXTggXQzQG8GngdRBOWXkjxVkhBFlSDjeao71YK7/AvRQqClqzwlS6ujYIyKfGELE1YUJBGWDHPO1na3KaP2qAucEUdwl2DqSv/IUzGrpB4AoG74ieTZTOy2PODkc8bZqtADDjw0Lf+q5jk2ynT/5QynbN0QobcDNOGMiepqvpkQqoxr7Fb97sc9rdsH56QQB/1ANZYPIp7M7EkqjaFvGRczlrEC07e1dFxOkCgVQN7NxJzKSygvySYXfyrx0Av07V+66W8ixJOGGq8Ek6Ja+S+MLXQ/dwZ6UuqxGgI9n3eEzYngT7IDJxSL/NHGEGtXyLb9tj/9yHI5hAeM24LIG3pxEEFff1YajA/7oa1RYJ4RoZU0TXyc3iAOhjEYBR6qPiN7lCVb8YQ4o8iLxtxrUQnvPqjBK9RVj2gUDEM4An5UfQY7SEcvQ/p5tUEc9gN0qB3sEdOVttCHn5XeCSsEZ5QS7jjCcp3PKS4U4utZLsjdAieqaS0DvI37XtAeCRdk8yxsG2NgYFnGj/X9ug62oYmos0acRUb4DNSf5IKAi0xO7KjxIGwZz0P2cJgKwgssyFixYnkqISE6DyGbfFSdJFL8qWqKAnN/OlmNn1WeW8lG2ucrymhZ1DWrLaM/a+GRQ4WBF1L5YOMpK6lb2z78Z8VMw82yNMit7BAvNnWbvMrU92+LVHqBUSUfo9JWNTqgSloIGytO5AD4oeygEFooepYTDcaD4I2UYJpnhRQk0tySr2is6JXLFOVWN8zzNC0dguIHQsfbvGPCKOPluCbzaOWs8T2HtdusSj+elZi0sVn6W+zptfGlcdl0YdPpkpy80IHov8er0OUVBOhyxPJfidVOLON8XRAr8gI7h4BXRDM3y/h0f0JeMc0pbZg4xSSeJlK+lCnLZ9JoCZOYPLQbf5v5fDsV0Qb1AicTQG2Zh2eSuQMzD6PeTTSC3vMMs/42kLoTDZY98JpgHVD4O1tLJWQLkavAt4fZ3x/K+KOT08M9Ylu9iC3KhS6EUWtqenpUHcUOUPdlvJceAH64hC3svBmaPUsPtoCGhQ1j/K4utS1eXffbruuB/nwXOWh9YIUUqDXBxaqrVWI6JWHSukqk0egBgFNXic3OknDmVWPfcIfBeOZVJHAQ/og5lhoIX57ORwhaCfmYY9l4K9g8T5ZdUY0zufxJTstbZcg2H9m3O9rrIjfQi+xg6Y0c1FoXf7+TaOnyr8c1/oVaLhZZj0ZX7neGjQJu7PuXyhGg5/LQMYjasCwOn/bRO5MbGNoBynPm78OWANXJ/F1PP90haqsevHNwUyHUAjnsZMpn2mxXYfWsm+2VYNVDlD8we29KpqJl5y1UUWS8lLjlRXZfVkhu/JPxsj296aJta2gXeCHYgteFKRr6/VEUuaWBDiiKDj9n6J+iqC0q/b8pegReF6CoWxO5OEVR2CNF3VJDFxTdV/u8Coqe6Szo30zRw/Hqn6JG8TVRNHAT/bNR1D8gizieolurXiNFzasxrxR9CV4XoOjpGxPUWvcZDofXjRYEtUgPM2M8/yKfFFMtODwu7Y8/nh1/YnXSHIceCONRGATQ3Xe3cbOberyL9WSGi0zVLZuFwB14zn3wfoFzd1MJ7f/Y3TxNA4P3iQLgvTrLnqpl4MgVwimF7hTYCUwDErUV2EdhhHDYUYHdD3fOuUO3wt5+ctqJa7vJ8ATTZEXLAiooyFp+bk/ienVw2HTvql8PL2zFl3JwaJSc9R1VcJIVr+Md1RBZL5OObPXdvLEagWcHefEbq/K2fsO96l7/HwF6+xU=&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g transform="translate(0.5,0.5)"><path d="M 432.29 105.81 L 432.29 159.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 432.29 164.88 L 428.79 157.88 L 432.29 159.63 L 435.79 157.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 155.62 106.81 L 155.62 160.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 155.62 165.88 L 152.12 158.88 L 155.62 160.63 L 159.12 158.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 23 L 0 0 L 600 0 L 600 23 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 23 L 0 300 L 600 300 L 600 23" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(252.5,6.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="94" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 95px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">NJointController</div></div></foreignObject><text x="47" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">NJointController</text></switch></g><path d="M 278 174 L 191 174 L 191 121.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 191 116.12 L 194.5 123.12 L 191 121.37 L 187.5 123.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(179.5,139.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;"><font style="font-size: 8px">Update</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 580 175 L 467 175 L 467 121.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 467 116.12 L 470.5 123.12 L 467 121.37 L 463.5 123.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(454.5,133.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;"><font style="font-size: 8px">Update</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 0 48 L 0 25 L 300 25 L 300 48 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 48 L 0 300 L 300 300 L 300 48" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(141.5,31.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="16" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 17px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">RT</div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">RT</text></switch></g><rect x="138" y="85" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(156.5,86.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="32" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 33px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">State<br /><font style="font-size: 8px">(<font>optional</font>)</font></div></div></foreignObject><text x="16" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="10" y="162" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(20.5,170.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Targets *</div></div></foreignObject><text x="24" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Targets *</text></switch></g><rect x="138" y="225" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(150.5,226.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="45" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 46px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Values *<br /><font style="font-size: 8px">(<font>optional</font>)</font></div></div></foreignObject><text x="23" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 300 48 L 300 25 L 600 25 L 600 48 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 300 48 L 300 300 L 600 300 L 600 48" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(428.5,31.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="42" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 43px; white-space: nowrap; overflow-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Non RT<br /></div></div></foreignObject><text x="21" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">Non RT&lt;br&gt;</text></switch></g><rect x="173" y="154" width="250" height="40" fill="#ffffff" stroke="#000000" transform="rotate(270,298,174)" pointer-events="none"/><g transform="translate(266.5,160.5)rotate(270,31.5,13.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="63" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 64px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Parameters<br /><font style="font-size: 10px">(via Atomics)</font></div></div></foreignObject><text x="32" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="414.57" y="85" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(433.5,86.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="32" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 33px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">State<br /><font style="font-size: 8px">(<font style="font-size: 8px">optional</font>)</font></div></div></foreignObject><text x="16" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="284" y="54" width="30" height="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(286.5,49.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font style="font-size: 8px">Atomic</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="284" y="96" width="30" height="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(286.5,91.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font style="font-size: 8px">Atomic</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="284" y="68" width="30" height="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(286.5,63.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font style="font-size: 8px">Atomic</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="284" y="82" width="30" height="10" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(286.5,77.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font style="font-size: 8px">Atomic</font></div></div></foreignObject><text x="12" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><g transform="translate(268.5,135.5)rotate(-90,0,0)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="24" height="34" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font style="font-size: 30px">...</font></div></div></foreignObject><text x="12" y="23" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 580 175 L 449 175 L 449 174 L 324.37 174" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 319.12 174 L 326.12 170.5 L 324.37 174 L 326.12 177.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(399.5,168.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="98" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">Change Parameters</div></div></foreignObject><text x="49" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">Change Parameters</text></switch></g><rect x="465" y="165" width="250" height="20" fill="#e1d5e7" stroke="#9673a6" transform="rotate(270,590,175)" pointer-events="none"/><g transform="translate(556.5,168.5)rotate(270,33,6)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="66" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 67px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Ice Interface</div></div></foreignObject><text x="33" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Ice Interface</text></switch></g><path d="M 278 174 L 179 174 L 179 177 L 86.37 177" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 81.12 177 L 88.12 173.5 L 86.37 177 L 88.12 180.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(124.5,170.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="108" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;">Calculate new Targets</div></div></foreignObject><text x="54" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">Calculate new Targets</text></switch></g><path d="M 155.62 223.81 L 155.62 190.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 155.62 184.93 L 159.12 191.93 L 155.62 190.18 L 152.12 191.93 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/></g></svg>
\ No newline at end of file
<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0" version="6.1.0.3" editor="www.draw.io" type="device"><diagram name="Page-1">7Vttk9o2EP41zLSdOUay/MbHg1zTzFw7mdw1bT8KW4AbYVEhDi6/PpItYQuZCxzG0PbywbFXQi/77LNarXQ9NJpv3nO8mP3KUkJ7Hkg3PfSu53kRiOVTCZ5LQRAHpWDKs7QUwUrwkH0lWgi0dJWlZGlVFIxRkS1sYcLynCTCkmHO2dquNmHU7nWBp8QRPCSYutI/slTMSqkHAKgKfiHZdCZ2S8Y4+TLlbJXrDnsemhT/yuI5No3p+ssZTtm6JkJ3PTTijInybb4ZEap0a/RW/u7nPaXbgXOSi4N+oAqLgYhnM3uSSmXoT8bFjE1ZjuldJR0WEySqCSC/ZmJO5SuUr2STiT+VuO8F+vMvXfQ3EeJZQ41XgklR1fg9Ywtdz52BnpQaVk2g5/OesDkR/FlW4IRikT3ZGGJtCtNtve1PP7JMduGBjTG+yOt7cRBBXz/LFrQNh35otygwnxKhG6mr+Lh2JTf6MRgEHiqfkd3Lkq14Qpxe5Ett7pWogHcf1OANau2gBkE/hAPgR+Uz2EE6eh3SLzcbxGE3QIfawJ4wXWkN3X++hyOWC84oJdwxg+U6m1OcK7zXs0yQhwVOVNFaencb9b2QPREuyOZF0DZGvcDSix/r73XlakPjT2c1L4uM8AWgP8nlAOdTObGj+oOwoT8P2d1hKgjPsSBDxYnlqXSE6Dx0rLNRVZJI8eeyKArM9+lUNVZW2m0pG2iLLwmjZVHbnLaU/qKGBw4Rel5I5cCGE1YQt9J9+M+KmYKbZaGQW1khXmyqMvk2Vf//vkilFZim5DDK1spCB1RJC2FjxYnsAI+LCgqhhSJ9MdFg2AveSQmm2TSXgkSqW/IVDRW9Mhmg3OqCeZamhUFQPCZ0uI06RowyXvRr4o5Gzhrbc1i7jan08KywpInN0t5iT6+Mr/XKpgqbTJbk5GUORP89XoUuryBAlyOW/0asZmIZ42uDWJEX2BEEvCKauTHGp8cT4opJRmlNxSkm8SSR8qUMWb6QWkmYxGTcrPxt3PP9UEQr1AucSAA1RR6eCeUOjDxM826gEXQeZ5j1t4bUg6ixbMwrgrVA4R/sVkohW4hMOb49zP7xUMYfHZwebhGmFMUW5UIXwqgxND3dqw5iB6jHwt9LCwA/XUIXdtwMzY6lA11Aw8KaMj6rV62LN9P9vul6oDvbRQ5av7FcCtSa4GLV1ioxmZAwaVwl0mgwBuDUVWKzsyScedXY191hMJ55FQkchD9ijmULhC9P5yMEjYR8yrAsvBVsniXLtqjGmVz+JKflp1Jkk43s2x3tNZEb6EW2s/QGDmqNi7/fird0+dfhGv/KVi7mWY9GV+53+rX0bez7l4oRoOfy0FGI2rAsDp/20TuTGxjaDspz5u/DBgfVyvxdSz/dICqtHrxzcEMh1AA5bGXKZ9psl271rJvtlWDlIIofmL03JRPRsPMWKikyXErcsnz6WGRIbvyT8bItvW6iTWtoG3gh2IDXhSka+t1RFLmpgRYoig4/Z+ieoqjJK/2/KXoEXhegqJsTuThFUdghRd1UQxsU3Zf7vAqKnuks6N9M0cPx6p6ipuFromjgBvpno6h/QBRxPEW3Wr1GipqLMW8UfQ1eF6Do6RsT1Jj36ff7140WBJVIdzNjPPsqR4qpFhzul/b7H8/2P7E6aY5DD4TxIAwC6O67m7jZTj7exXo0w/lU5S3ricAdeM598H6Bc3eTCe3+2N2MpobBh0QB8EGdZU/UMnDkCuGkQncS7ASmAYmaEuyDMEI4bCnB7oc759yhm2FvPjltxbTdYHiEabKiRQIV5GQtn9uTuE4NHNbNu6zXwYWt+FIGDk0jZ72hCk7S4nXcUA2RdZV0YDffzn3VCLzYyavvq8rP6n57Wb36IwJ09w0=</diagram></mxfile>
\ No newline at end of file
<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0" version="8.5.12" editor="www.draw.io" type="device"><diagram name="Page-1" id="775d93bb-e439-393a-9cf0-e3d5a865d32a">7Vttc+I2EP41zLSdCSNZfuNj4K7X67Q3N5f07aNiC+OesKgQgdyvP8mWsIVMDoIxtE0+gL0SK2uffVarlTNAk/nmHceL2a8sJXTggXQzQG8GngdRBOWXkjxVkhBFlSDjeao71YK7/AvRQqClqzwlS6ujYIyKfGELE1YUJBGWDHPO1na3KaP2qAucEUdwl2DqSv/IUzGrpB4AoG74ieTZTOy2PODkc8bZqtADDjw0Lf+q5jk2ynT/5QynbN0QobcDNOGMiepqvpkQqoxr7Fb97sc9rdsH56QQB/1ANZYPIp7M7EkqjaFvGRczlrEC07e1dFxOkCgVQN7NxJzKSygvySYXfyrx0Av07V+66W8ixJOGGq8Ek6Ja+S+MLXQ/dwZ6UuqxGgI9n3eEzYngT7IDJxSL/NHGEGtXyLb9tj/9yHI5hAeM24LIG3pxEEFff1YajA/7oa1RYJ4RoZU0TXyc3iAOhjEYBR6qPiN7lCVb8YQ4o8iLxtxrUQnvPqjBK9RVj2gUDEM4An5UfQY7SEcvQ/p5tUEc9gN0qB3sEdOVttCHn5XeCSsEZ5QS7jjCcp3PKS4U4utZLsjdAieqaS0DvI37XtAeCRdk8yxsG2NgYFnGj/X9ug62oYmos0acRUb4DNSf5IKAi0xO7KjxIGwZz0P2cJgKwgssyFixYnkqISE6DyGbfFSdJFL8qWqKAnN/OlmNn1WeW8lG2ucrymhZ1DWrLaM/a+GRQ4WBF1L5YOMpK6lb2z78Z8VMw82yNMit7BAvNnWbvMrU92+LVHqBUSUfo9JWNTqgSloIGytO5AD4oeygEFooepYTDcaD4I2UYJpnhRQk0tySr2is6JXLFOVWN8zzNC0dguIHQsfbvGPCKOPluCbzaOWs8T2HtdusSj+elZi0sVn6W+zptfGlcdl0YdPpkpy80IHov8er0OUVBOhyxPJfidVOLON8XRAr8gI7h4BXRDM3y/h0f0JeMc0pbZg4xSSeJlK+lCnLZ9JoCZOYPLQbf5v5fDsV0Qb1AicTQG2Zh2eSuQMzD6PeTTSC3vMMs/42kLoTDZY98JpgHVD4O1tLJWQLkavAt4fZ3x/K+KOT08M9Ylu9iC3KhS6EUWtqenpUHcUOUPdlvJceAH64hC3svBmaPUsPtoCGhQ1j/K4utS1eXffbruuB/nwXOWh9YIUUqDXBxaqrVWI6JWHSukqk0egBgFNXic3OknDmVWPfcIfBeOZVJHAQ/og5lhoIX57ORwhaCfmYY9l4K9g8T5ZdUY0zufxJTstbZcg2H9m3O9rrIjfQi+xg6Y0c1FoXf7+TaOnyr8c1/oVaLhZZj0ZX7neGjQJu7PuXyhGg5/LQMYjasCwOn/bRO5MbGNoBynPm78OWANXJ/F1PP90haqsevHNwUyHUAjnsZMpn2mxXYfWsm+2VYNVDlD8we29KpqJl5y1UUWS8lLjlRXZfVkhu/JPxsj296aJta2gXeCHYgteFKRr6/VEUuaWBDiiKDj9n6J+iqC0q/b8pegReF6CoWxO5OEVR2CNF3VJDFxTdV/u8Coqe6Szo30zRw/Hqn6JG8TVRNHAT/bNR1D8gizieolurXiNFzasxrxR9CV4XoOjpGxPUWvcZDofXjRYEtUgPM2M8/yKfFFMtODwu7Y8/nh1/YnXSHIceCONRGATQ3Xe3cbOberyL9WSGi0zVLZuFwB14zn3wfoFzd1MJ7f/Y3TxNA4P3iQLgvTrLnqpl4MgVwimF7hTYCUwDErUV2EdhhHDYUYHdD3fOuUO3wt5+ctqJa7vJ8ATTZEXLAiooyFp+bk/ienVw2HTvql8PL2zFl3JwaJSc9R1VcJIVr+Md1RBZL5OObPXdvLEagWcHefEbq/K2fsO96l7/HwF6+xU=</diagram></mxfile>
\ No newline at end of file
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" style="background-color: rgb(255, 255, 255);" xmlns:xlink="http://www.w3.org/1999/xlink" width="412px" height="90px" version="1.1" content="&lt;mxfile userAgent=&quot;Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0&quot; version=&quot;8.9.9&quot; editor=&quot;www.draw.io&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;ef5abcf2-3e1d-c766-55b0-b941bf7457f1&quot; name=&quot;Page-1&quot;&gt;zVZNj5swEP013PkKSa/JpttK7aWp1O3RhQl4axjkDAv019fEQzBLU1WqNkoOkefNp988SLxoV3aPWtTFZ8xAeaGfdV704IXherU23wPQWyDxNxbItcwsFEzAQf4CBn1GG5nBaRZIiIpkPQdTrCpIaYYJrbGdhx1RzbvWIocFcEiFWqLfZEaFRTcrf8I/gMyLsXPgs+eHSH/mGpuK+3lhdDx/rLsUYy2OPxUiw9aBor0X7TQi2VPZ7UAN1I602bz3V7yXuTVU9E8Jic14EaqBceTzYNSPZJgMw7sxtm0hCQ61SAdPazZvsIJKZazAHMWptss4yg5Mgy3XBk3QXR0wuFzbqAmwBNK9CeGE+B2nsJLCNdutsxcms3BWMmKClZBfKk9smAMTcoWc1b2Ts0lekZPcjJxkSUVmniE2UVOBOVZC7Sd0e34whss/+HNyoJP05Jy/c4jhQfdPrjF6noGo5xeHaAgNNPX8hFhzNTvlMNrfOTY3wUanHMV7JqFz4Kj4z5vQoATJl3n1/+E1XGjuy9f7Ul2Q+HPVjXK6gerWb6E631Fd4KoucFUXvLnq4qXqwhupLl6o7uNuf1+yizc3k50xp5/gs8/5mxPtfwM=&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g transform="translate(0.5,0.5)"><ellipse cx="371" cy="40" rx="40" ry="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><ellipse cx="366" cy="45" rx="40" ry="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><path d="M 68.14 21 L 325.2 21" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 330.45 21 L 323.45 24.5 L 325.2 21 L 323.45 17.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="40" cy="49" rx="40" ry="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(31.5,42.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="16" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 17px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">RT</div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">RT</text></switch></g><path d="M 331.57 77 L 74.51 77" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 69.26 77 L 76.26 73.5 L 74.51 77 L 76.26 80.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="360" cy="49" rx="40" ry="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(349.5,42.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="20" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 21px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">ICE</div></div></foreignObject><text x="10" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">ICE</text></switch></g></g></svg>
\ No newline at end of file
<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0" version="8.9.9" editor="www.draw.io" type="device"><diagram id="ef5abcf2-3e1d-c766-55b0-b941bf7457f1" name="Page-1">zVZNj5swEP013PkKSa/JpttK7aWp1O3RhQl4axjkDAv019fEQzBLU1WqNkoOkefNp988SLxoV3aPWtTFZ8xAeaGfdV704IXherU23wPQWyDxNxbItcwsFEzAQf4CBn1GG5nBaRZIiIpkPQdTrCpIaYYJrbGdhx1RzbvWIocFcEiFWqLfZEaFRTcrf8I/gMyLsXPgs+eHSH/mGpuK+3lhdDx/rLsUYy2OPxUiw9aBor0X7TQi2VPZ7UAN1I602bz3V7yXuTVU9E8Jic14EaqBceTzYNSPZJgMw7sxtm0hCQ61SAdPazZvsIJKZazAHMWptss4yg5Mgy3XBk3QXR0wuFzbqAmwBNK9CeGE+B2nsJLCNdutsxcms3BWMmKClZBfKk9smAMTcoWc1b2Ts0lekZPcjJxkSUVmniE2UVOBOVZC7Sd0e34whss/+HNyoJP05Jy/c4jhQfdPrjF6noGo5xeHaAgNNPX8hFhzNTvlMNrfOTY3wUanHMV7JqFz4Kj4z5vQoATJl3n1/+E1XGjuy9f7Ul2Q+HPVjXK6gerWb6E631Fd4KoucFUXvLnq4qXqwhupLl6o7uNuf1+yizc3k50xp5/gs8/5mxPtfwM=</diagram></mxfile>
\ No newline at end of file
etc/doxygen/images/NJointControllerGeneralDataFlow.png

15 KiB

<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0" version="6.1.0.3" editor="www.draw.io" type="device"><diagram name="Page-1">7Vltc+I2EP41zLSdCSO/m48Hl15vJu3cXK7X9qOwZeNGWFSIQPrru7IkbCHDkUDgppN8cKxdeWXtPs/uCg+CyXzzgePF7FeWEzrwUb4ZBO8Hvp9GMVyl4EkJ4tRTgpJXuRJ1BPfVv0QLkZauqpwsrYmCMSqqhS3MWF2TTFgyzDlb29MKRu1VF7gkjuA+w9SV/lHlYqakPkKoVfxCqnImdjVTnD2UnK1qveDAD4rmT6nn2BjT85cznLN1RxTcDoIJZ0you/lmQqj0rfGbeu7nPdrti3NSi6MekMrmRcST2T3JwRl6yLiYsZLVmN620nGzQSJNIBjNxJzCrQe3ZFOJP6V46Ed6+JdW/U2EeNKhxivBQNQav2Nsoee5O9Cbkq/VEej9fCBsTgR/ggmcUCyqRzuGWEOh3M7bPvqJVbCEjzYGfIk/BOwmXqivyoLBcBjbFgXmJRHaSNfFz7MbpdEwRaPID9Q1sVdZshXPiLMK3HT23oqa8O4LNXoLtZqRjKJh7I1QmKhrtBPp5GWRPmw2SuPLBDrWAHvEdKU9dPf1zpuwWnBGKeEODJbrak5xLeO9nlWC3C9wJlVryO521PeG7JFwQTYHg7Yx7kWWX8JUj9dtqo1NPp11smxghAcC/RnKAa5L2Niz1vO8nvX8wF4OU0F4jQUZS04sT6WjF7wOHbtslJMgUvxJqZLIjE+nqkGZwq2SjTTiFWG0LDk3py2nH/TwyCHCwI8pvNi4YA1xW9/H/6yYUdwsG4e8gwnpYtPq4K6U/39f5IACYwpeQ1lTSieoQAthx4oTWABPmwkyQgtJ+maj0XgQvQcJplVZgyADdwNfg7GkVwUNyjutmFd53gCC4imh423XMWGU8WZd03f0ctZgz2HttqfSr2e1JX1sBrylvq6ML83KZgoriiU5ucyh5P/Hq9jllYeC6xErfCNWP7EM+M5BrMSP7A7C+45o5vYYn7+c0FcUFaUdF+eYpEUG8iW0LA+ko4mzlEz7nb/te77dimiH+pHTCQR9nYdvWrkjOw9j3m00oov3Gab+diJ1Lzosm/KWYGeg8A+2FSVkC1HJxLeH2T8ey/hnN6fHI8Jog9SiXOyGMOltTU/PqqPUCdSXJt8DAtBP1/CF3Td75sRyAV94hoUdZ3yVt9oXb9D9NnR9dDnsBk60fmM1CGRNcGN1ripRFCTOeqtEnoymCJ1aJTY7JeGVq8a+5Y4L4ytXkciJ8CfMMVggfHk6Hz3US8jHCoMSoHQzpSx7qOoShhM2n69q6NkkMc/FP85EYw+G0rt9wNl3ZNqLmxvPT3YyqBvK3o4gPEsKdUl5wcL/QitXS7fPji4cgoad33TTMLxW4+Ah9zg2mUFWkUmly9ILn4qvcCg2aeryZ2LzNp0YfMxkAD7Kg2YhgXhqStqpfsTLI5L0Vb9RnAQ4PlP1C2Mb2F7slr/+Y81ZoO02xRNMsxVtEhmqyRqu2zb5ogD3uvBW8y7wa2p6LYB7xsirfj5CJ3nx+/h8FIfWd56Rbf48H5MSdHCRF39MgmH78VlNb7/wB7f/AQ==</diagram></mxfile>
\ No newline at end of file
<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0" version="8.5.12" editor="www.draw.io" type="device"><diagram name="Page-1" id="540e3684-599b-54a4-ef23-75810fbedebd">7Vlfk9o2EP80zLSdOUbyfx4DuabptJlMLm3SR2HLxj1hUSEOrp++K1vCFjKEOzjIdI4HY+0uK2l3f7srNPAn8807QRaz33lG2cBD2Wbgvx14HvZjDF+K8thQIj9uCIUoMy3UEu7Kf6kmIk1dlRldWoKScybLhU1MeVXRVFo0IgRf22I5Z/asC1JQh3CXEuZSv5SZnDVUDyHUMn6hZTGTu5wpSe8LwVeVnnDg+Xn9adhzYpRp+eWMZHzdIfm3A38iOJfN23wzoUwZ19it+d3Pe7jbhQtayaN+oJj1QuSj2T3NwBh6yIWc8YJXhN221HG9QapUIBjN5JzBK4ZXuinlV0UeeqEe/qVZf1MpH7WryUpyILXKf+N8oeXcHehNqWV1CHo/7yifUykeQUBQRmT5YPuQ6FAotnLbn37kJUzhIRO2KPaGXhLGONDPRoOJ4SCyNUoiCiq1kq6Jn6Y3TMJhgkah5zfP2J5lyVcipc4s8NLZe0uq3bvP1ejV1Y1EPAqHER6hIG6e4Y6n4+d5+rDaMIku4+hIB9gDYSttoQ+/Kr0TXknBGaPCCYTlupwzUimPr2elpHcLkirWGhK87fe9TnugQtLNQbdtjIGRZZkg0eN1m2wjk1FnnTzrG+IBV3+CgkCqAjb2pPkw7pnP8+3pCJNUVETSsULF8lRAYv9lANnFoxICT4nHhhWHZnw6WE2cNZHb0EY65hvIaFp8blRbRj9o4ZEDhYEXMVjYOOc1dFvbR/+suGHcLGuDvAGBZLFpefBWqO8/FhlEgVEFy2i0NUzHqQALaftKUJiATGsB5aGFgme90XA8CN8ChbCyqICQgrkBr/5YwauEFuWNZszLLKsDgpEpZeNt3zHhjIt6XtN59GLWxJ6D2m1XpZdnNSZ9aIZ4SzxdG5+bl40Iz/MlPbnQofj/h6vIxRVG/vWAFbwCqx9YJvjOAazYC+0eAn9HMHO7jE+fT+gr8pKxjokzQpM8BfoSWpZ72uFEaUKn/cbfdj7fbkW0Qb3Q6QT8vs7DM83ckZ2HUe82GuHF+wxTfzueupMdlE1FC7AzQPgHW0tD5AtZqsS3B9k/Hov4Jzenx0fE9t+LxIJc5Low7m1NT8+qo8Rx1Oc630MEoJ+uYQu7b8bmzHIBW2CDwo4x/lSv2havofvt0PXQ5WLXd7z1gVdAUDXB9dW5qkSe0yjtrRJZPJoidGqV2OyUhBeuGvumO86NL1xFQsfDH4kgoIGK5el4xKgXkA8lASaE0s2U8fS+rAoYTvh8vqqgZ1PAPBf+BJe1Phgq6/YFzr4j0964ucFevJNBXVf2dgTBWVKoC8oLFv5narlaun2yd+EQNOz8q5sEwbUaB4zc49hkBllFJZUuSi98Kr7Codikqcufic1qOj54nyoHvFcHzVwF4qkpaaf6UZyFNO6rfqMo9kl0puoXRHZg48gtf/3HmrOEttsUTwhLV6xOZKiia3hu2+SLBjjuhncjd4F/U5NrBTg2Sl70AgmdZMXv4wIpCqybnpGt/jzXSTE6OMmzr5Ng2F4/N+LtJb9/+x8=</diagram></mxfile>
\ No newline at end of file
<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0" version="6.1.0.3" editor="www.draw.io" type="device"><diagram name="Page-1">7Vpdj9o4FP01SLuVFtlJnI/Hgc62lWZX1cxsu300iQPZmpg1ZoD++jqJncQ4MDAEplLbhzS+dmzn3nPuPQ4zcMfzzTuOF7O/WELowAHJZuC+HThOAEJ5LQzbyoBCVBmmPEsqE2wMD9k3ooxAWVdZQpbGQMEYFdnCNMYsz0ksDBvmnK3NYSmj5qoLPCWW4SHG1LZ+zhIxq6wOAKDpeE+y6Uzs9kxw/HXK2SpXCw4cNy3/Vd1zrCdT45cznLB1y+TeDtwxZ0xUd/PNmNDCt9pv1XN/7umtN85JLo56oOgsNyK2+u1JIp2hmoyLGZuyHNPbxjoqX5AUUwDZmok5lbdQ3pJNJv4tzEMHqeYX1fUfEWKrQo1XgklTM/kdYws1zn4D9VLFtloG9T7vCJsTwbdyACcUi+zJjCFWUJjW4+pHP7JMLuEAhVoIQTB0QhRAT12rGRSGfc83ZxSYT4lQk7RdfNq8khvDEETIcatrYK6yZCseE2uVG87xtjVsUQxYHn4583UgeHbXhx6QN9UedKsVisZUom0f8jQFfnrkBREa+jACXlBd0Q7wdiBxLPAOT4tC/wW4e0GgfYX3J0xXykN3n+7gmOWCM0oJt2CwXGdzivMi3utZJsjDAsdF11oWGzPqe0P2RLggm4NB22j3AsMvXqja6ybz+zq9z1pJ39XGA4G+l9UJ51P5YietB2HHeo5rLoepIDzHgowKTizPjBKEbq90lMHdVnwMkG6fT0iNpYoClS0KrsNSB5iBg+FO/PtK1RHsXKe3xAsji5ADx6fSnaOUlTtpMOD/v2K6449lGbIbOSBcbJo+eTct/v9nkUg06qnkNqrZqk4LXJKewsQMJ3IBPCkHFHBSjpKj0WiA3koLptk0l4ZYAkLmDXdU0DyTuu1GdcyzJCmBSfGE0FEtxsaMMl6uq+VYZ+7QHLCyRy011fYGbbXWlVXAEIWOEgwvxZ0ewtJ0Sc7NwnU577vctqstuDzzK5Ip5vt2NoDA7TsdGF4/SCzvF7G6iaXB1wexAgeZSgb+QDSztc794xn6Js0obbk4wSRMY2lfSun0lbR6/Dgkk27n1/rreUmkHOogS5FItdOhSLSkPFIB6eltwYOurne0amhF6kG0WDbhDcF6oPBv5iyVkS1EViS+Pcz+/VjGnyySj0eE7nVDg3K+HcKgUyKfn1Wj0ArUY5nvJQLAm9fwxY4M1CenK/gCagnacsan4lb54hd0n4duLeOvEC/XitbfLJeGoibYseqrSqQp8ePOKpEE0QSAc6uE6nUDkwiXqhp6uZ3jV0cV6QrjhU/NwA7xFcvIC2d5NfLuO17txVgQDVvfTUPPe60qBIGt7cczCdECoR8xx3JGwpeWiy5yxLrMKerS30928wUMPHOKPd81XyLufCtYH+IiUh+K401aAPZELHMmWS1JI5sFxqycS2CCSNCVcyM/cLHfU871/J2jj9+RdDvFdC8csKXYGNN4RcuEB3KyltdanPXIBP1JoW58qXnR87fE8DpcqHNSzYWLfX6Hnv2575FnC0pGK6kU+Bm6Yw96u9y8F9G7nuhQEdA7VUUcjWhk6+l7gpNTs8OM8eybrJSYKvAe5RkVmVOO4R7q8ATqg9sIWp74zDNxcqLs2RXqkchMe1f1jN7vRX+nPK+s/xi/U/qu8YNidFR1P3GRABxcpMe0iXRxbgjxPksSkl+JEYf5AM1DLXJtKdwXI2Sz+XuUypPNH/24t98B</diagram></mxfile>
\ No newline at end of file
<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0" version="8.5.12" editor="www.draw.io" type="device"><diagram name="Page-1" id="fc77a887-41d1-ed7b-0bc0-1c9de38fa8ce">7Vpbk9o2FP41zLSdKSPZli+PC9km6bSZzO62aR6FLcCNsKgQC+TXR8KSbSHDcjFsZpp9YK0jWZdzvu/ok6DnD2frtxzPp3+yjNCeB7J1z3/T8zzoR1D+U5ZNaQn9qDRMeJ7pRrXhMf9KtBFo6zLPyMJqKBijIp/bxpQVBUmFZcOcs5XdbMyoPeocT4hjeEwxda2f8kxMS6sHAKgr3pF8MhW7NSOcfplwtiz0gD3PH2//yuoZNp3p9ospztiqYfLve/6QMybKp9l6SKhyrvFb+d5ve2qriXNSiKNeUJXbiYiNWT3JpDN0kXExZRNWYHpfWwfbBRLVBZClqZhR+QjlI1nn4h9l7ntIFz/rqn+JEBsdarwUTJrqzv9gbK7buSvQi1LTahj0et4SNiOCb2QDTigW+bMdQ6yhMKnaVa9+ZLkcwgMGthBEfS9GEQz0Z9mDwXAQ2j0KzCdE6E6aLj6tXxSjfgwS5PnlZ2SPsmBLnhJnlDvO8abRbK4aLA4vzl4OBC/O+tAL8qGcgyk1QlGbtmjbhzxDgf898qIE9UOYgCAqP9EO8HYgcSzwDneL4vAM3J0R6FDj/RnTpfbQh99Vv0NWCM4oJdwBwmKVzyguVMRX01yQxzlOVdVK7jd23PcG7ZlwQdYHw7Y2DgaWZ4JYl1d17g9Ngp820r5vjAdC/SD3J1xM5MJOGg/ClvE83x4OU0F4gQUZKFYsLowThH6nhJTB3ZSMjJApX05Jg6aSBKUtiW7DUw/YgYPxTvy7StYJbB2ns9QLE4eSPS+k0p2DMdvOpMZA+N+SmYpfF9uQ3ckG8Xxd18mnifr/1zyTaDRdyWmUvZWVDrgkPYWNGU7kAHi0baDgpB0lW6NBD72RFkzzSSENqQSEzBv+QNE8l8rtTlfM8izbApPiEaGDSo4NGWV8O64RZK25w3DAyR6V2NTT6zX1WltWAX0Ue1oynIs704SNxwtyaR6uNvSuN9zmfguuz/ySZJr5oZsNIPC7TgeW1w8SK/hBrHZiGfB1QazIQ7aWgd8RzVy18/B0gb4Z55Q2XJxhEo9TaV9I6fSFNGrCNCajdudXCuxlSaQd6iFHkUi106JIjKg8UgGZ7l3Bg26ud4xqaETqUTRYNuI1wTqg8E92L6WRzUWuEt8eZv98LONPFsnHI6K61IktyoVuCKNWiXx5Vk1iJ1BP23wvEQB+eQ1f7MhAc3a6gS+gkaANZ/ytHrUvfkD3ZehWMv4G8fKdaH1ghTSoPcGNVVe7xHhMwrR1l8iiZATApbuErvUjmwjX2jXMcDvHr5ZdpC2MVz41AzfEN9xGzuzl1ci773i1F2NR0m/cnMZB8Fq7EASuth9OJUQVQj9ijmWPhC8cF13liHWdU9S170928wWMAruLPTeb54i70AnW+1RF6r063owVYE/EMmeS1ZI0sqgw5uRcAjNEoracm4SRj8OOcm4Q7hx9wpak2yqmO+GAK8WGmKZLuk14oCAr+VmJsw6ZYK4UqsLnihcd3yXGt+FClZMqLlztAh4G7nXfE8/nlAyWUinwC3RHF4je9USLioDBqSriaEQjV08/EJydmh2mjOdf5U6JqQav65k6DJccwwPU4gnUBbcRdDzxiefi5ETZsSt0bWKnvZt6xrD7qt9UXratfx/fVIa+9ZVictTufuIgETg4SIdpE5lUVhPiXZ5lpLgGI07mA7QPtch3pXBXjJDF+hcppSfr3/34998A</diagram></mxfile>
\ No newline at end of file
<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0" version="6.1.0.3" editor="www.draw.io" type="device"><diagram name="Page-1">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</diagram></mxfile>
\ No newline at end of file
<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0" version="8.5.12" editor="www.draw.io" type="device"><diagram name="Page-1" id="b0089374-96cf-f724-51f3-db687a304ca3">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</diagram></mxfile>
\ No newline at end of file
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" style="background-color: rgb(255, 255, 255);" xmlns:xlink="http://www.w3.org/1999/xlink" width="412px" height="250px" version="1.1" content="&lt;mxfile userAgent=&quot;Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0&quot; version=&quot;8.9.9&quot; editor=&quot;www.draw.io&quot; type=&quot;device&quot;&gt;&lt;diagram&gt;zVdNj5swEP01XCu+Qsg12fRDai/NSrs9ujABusAgxyzQX18T2wEvmyhVKZBD5HnjGQ/P82wwnF1Wf6KkiL9hCKlhm2FtOA+Gba9Xa/7fAo0APNMXQESTUEBWBxyS3yBBU6JlEsJJm8gQU5YUOhhgnkPANIxQipU+7YipvmpBIhgAh4CkQ/QpCVksUH9ldvhnSKJYrWyZ0vOTBC8RxTKX6xm2czz/hDsjKpecf4pJiFUPcvaGs6OITIyyegdpS62iTcR9vOK91E0hZ/cE2CLglaQlqIrPdbFGccEDOO3c2FZxwuBQkKD1VHzjORazLOWWxYfkVIi9OCY18PxbmRsog/pqfdblqXkzAWbAaMOnyAB3I0NkI9lraVe9bZFcxr0dURiRjRBdMndk8IHk431unKVz43tvuPEm48YdUhFyBUkTKYsxwpyk+w7dnmXRPvyDqZMDdcKee+MfcgrngTbPfUN5fgFjjTw2SMmQQ92aXxELmU1U2ZamcXzCkgYSkpwxQiNQtNt3bwWFlLDkVU//L8SubhKbY/7XTFozMrmZj0hvoN7vj8vSr+WZun6VMCfQ73qUNjP7gv2w0hqtM1UTjthqm2GrefO1mj+6Zq+ffv+fyDlPv81AtE9IX4By7DGmQMJlKdixdQW77nQKVq/K417BNxRt9dtQ+EZsRNV1C5G0Zd1k9+4DUlD43k08PZ0zXsaqnJ6wv+z2yxKz6092HXOz+8Q7+3qf0c7+Dw==&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g transform="translate(0.5,0.5)"><ellipse cx="371" cy="40" rx="40" ry="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><ellipse cx="366" cy="45" rx="40" ry="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><path d="M 68.14 21 L 325.2 21" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 330.45 21 L 323.45 24.5 L 325.2 21 L 323.45 17.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 68.14 77 L 167.08 176.48" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 170.78 180.21 L 163.37 177.71 L 167.08 176.48 L 168.33 172.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="40" cy="49" rx="40" ry="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(31.5,42.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="16" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 17px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">RT</div></div></foreignObject><text x="8" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">RT</text></switch></g><path d="M 160.14 209 L 44.65 93.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 40.93 89.79 L 48.36 92.27 L 44.65 93.5 L 43.41 97.22 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 228.14 181 L 327.08 81.52" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 330.78 77.79 L 328.33 85.22 L 327.08 81.52 L 323.37 80.29 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="200" cy="209" rx="40" ry="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(161.5,195.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="77" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 77px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Worker Thread</div></div></foreignObject><text x="39" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Worker Thread</text></switch></g><path d="M 320.14 49 L 86.51 49" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 81.26 49 L 88.26 45.5 L 86.51 49 L 88.26 52.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 360.14 89 L 244.65 204.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 240.93 208.21 L 243.41 200.78 L 244.65 204.5 L 248.36 205.73 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="360" cy="49" rx="40" ry="40" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(349.5,42.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="20" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 21px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">ICE</div></div></foreignObject><text x="10" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">ICE</text></switch></g></g></svg>
\ No newline at end of file
<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0" version="8.9.9" editor="www.draw.io" type="device"><diagram id="ef5abcf2-3e1d-c766-55b0-b941bf7457f1" name="Page-1">zVfBcpswEP0arh1AGLtXO27amfZSZybpUYU1qAGWkUWAfn2FtRgIdqZtYoIPHu3bXWn1tE8aLLZJq1vJ8/gbhpBYrh1WFruxXHe5WOr/BqgN4NsrA0RShAZyOmAnfgOBNqGFCOEwCFSIiRL5EAwwyyBQA4xLieUwbI/JcNWcRzACdgFPxui9CFVs0NXC7vDPIKK4XdmxyfOTB4+RxCKj9SyX7Y8/4055OxfFH2IeYtmD2NZiG4mozCitNpA01La0mbxPF7ynuiVk6q8SfJPxxJMC2pKPham6JUNnaN61sS5joWCX86DxlPrkNRarNNGWo4f8kJvD2IsK9AJrmhukgupigc5p27qbAFNQstYhlOB9pBTqJHdJdtk7FyIz7h1Ji3HqhOg0c8eGHhAhF8hZzJ2clf+MHH8ycvwxFaHWEJkoVYwRZjzZduj6KIxm8zf2kByohHrojX9QiOZB1g99o/X8AqVqujh4oVBD3ZpfEXOazVTZlPYyx3onWMiAouicFZcRUJR3/iQkJFyJp+Hsr2q6Mz3WIzbD7J+ZdObFJJuISXek3u9389Kv49tD/bbCnOJyc8Zc/Eef2X3FflgMOq0z2y68bq+xca+5U6mWvblqL99/78LkVPcfG6n2HuUjSI3dxRJ4OC8JM3coYc+bTsLLazzBLwja6Teh8V23Db13FLT3NtejYfDcQzwHNqd6ir2RqL9stvMSsrea7C3WZveFd/T1vqLZ9g8=</diagram></mxfile>
\ No newline at end of file
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" style="background-color: rgb(255, 255, 255);" xmlns:xlink="http://www.w3.org/1999/xlink" width="881px" height="451px" version="1.1" content="&lt;mxfile userAgent=&quot;Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0&quot; version=&quot;8.5.12&quot; editor=&quot;www.draw.io&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;aa7b51f2-7f26-c434-b112-75c9c6c67d3e&quot; name=&quot;Page-1&quot;&gt;7Zrdc6M2EMD/Gs8kD/EAwuA82mlyfejNZS7X6d1TRwYZ6AFihBzb/esrkMSXiA22MW6nnkyCVh8s2t+udnEm4CnafSIw8T9jF4UTQ3N3E/DLxMg+OvuTSfZcYgGbCzwSuFykl4K34G8khJqQbgIXpbWBFOOQBkld6OA4Rg6tySAheFsftsZh/a4J9JAieHNgqEr/CFzqc+l8ppXyX1Hg+fLOuiZ6VtD56RG8icX9JgZY5x/eHUG5lhif+tDF24oIPE/AE8GY8qto94TCbG/ltvF5Lx/0FnoTFNMuEww+4R2GG/HokESQMEMu2M8TjhIcZ0txZeleblD+iChbRJuA5dYPKHpLoJP1bhkSTObTKGQtnV2qSgk93xGhaFcRCSU/IRwhSvZsiOh9sGd8yr4Oyra0ji6t41csA4QMCiC8YuVyU9iF2Jf2PZope6RsB3IZPqKJCfWxh2MYPpfSZX3DKpvzF6J0LzwAbihmonKF3zBOxDgUu4uMbNZchdj5yUUvQaZ2viZriWX02aFNT/GGOEJvIHwLEg+JUSYXZU900DAEhZAG73WHOWebQcs2WzDKWAqZbsuvX5ZfvhUiLxP9Hgc3gKbkTqBpghY2tYHYtP+VbKJdQL9nXVNDNn+IkZ2wNVVsrUtjm09lTwX3lQEJDmKaVlZ+zQQVFox6mALN8NscD0zt0AR2wVUoYSiepVvsml2Sh9JudtNuzFxkz/tmsvnjRDy6YncqK+A2YOnJytComEoo+YpXmN5kjAXWFWOsru7MOEG28DD7bBcrPfmkADxXnUpmZCM7VdNLdOuwV1ng0PCznUrXb40dY2x2rJtlRzmNj8HzYBmD0mOq5VmRAMerNMm3XFuTgFmopWOIo1+vmrw86r9X04BqX4EWTlD8zQ/iqx7+LayBx0uz1vUcMQ9UOKXRHBiG6ZWM2cjj9N4Wm/cwmAtTP1dGNl4hpYjEucTQzCMonWpvc5jYosYC/bEePIx5I/fgWolpJTb9awy7cSNwJEopE8zZZcPUYw+wtT8j7G5CtLi7nyabVRg4L5vYoQGO7+6vxng7ZvnATpgO5SMnB7XbqGgegNYTTWWCfVk0LYXM6vvNosD5nCPJhQuFwqtXO2YjDzE0tdwxBit3/sPvO2WiWfUdY6x8QCrTB05+vYQpGp9SvfEC47EF0qHeyZttddX/mXH3Q0SmwVVPmI/lCUBNII56wnJBKSYx2r9gcgMhu+kMrSF7MG9oe0M1TmXxAfLG6KnVx27ayV/MlpOjc9YlIdGmmmYKLzuz3JCvGgrerAZHXHml2lDfQpvaFFQ+Ur9iXXs6r/bb9dtcqKgpDsP2EqXv+HreWM6W6uD1OkV00nSxnmWPen4/sOYrCd4hRbKqycLT3aJwO/77PnM7FsbYZMyWOyt6wTDwMhcK0ZoOFcxavtIcLJjNTzgLRo//xpgZO1CrnAzEpAXEJnhW/tX6irCr/Bv1lnlH50yM7BRRa/kbJlwxVxvgbeZqRtkO5mLN8v95eJgp/2kKPP8D&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g transform="translate(0.5,0.5)"><rect x="365" y="0" width="150" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(385.5,8.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="108" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 109px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">armarx::Component</div></div></foreignObject><text x="54" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">armarx::Component</text></switch></g><path d="M 440 420 L 440 400 L 440 410 L 440 397.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 440 381.12 L 448 397.12 L 432 397.12 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="390" y="420" width="100" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(400.5,428.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="78" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 79px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&lt;ROBOT&gt;Unit</div></div></foreignObject><text x="39" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;ROBOT&gt;Unit</text></switch></g><path d="M 415 350 L 415 310 L 100 310 L 100 237.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 100 221.12 L 108 237.12 L 92 237.12 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 465 350 L 465 310 L 780 310 L 780 297.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 780 281.12 L 788 297.12 L 772 297.12 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="390" y="350" width="100" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(412.5,358.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">RobotUnit</div></div></foreignObject><text x="28" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">RobotUnit</text></switch></g><path d="M 780 190 L 780 150 L 503 150 L 503 127.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 503 111.12 L 511 127.12 L 495 127.12 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 100 190 L 100 150 L 378 150 L 378 127.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 378 111.12 L 386 127.12 L 370 127.12 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 200 205 L 312.76 205" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 297.88 210.33 L 313.88 205 L 297.88 199.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(239.5,199.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="36" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;"> friend </div></div></foreignObject><text x="18" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 150 220 L 170 220 L 170 235 L 312.76 235" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="1 4" pointer-events="none"/><path d="M 304.88 238 L 313.88 235 L 304.88 232" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(209.5,229.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="31" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;"> calls </div></div></foreignObject><text x="16" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 150 220 L 140 220 L 140 265 L 677.76 265" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="1 4" pointer-events="none"/><path d="M 669.88 268 L 678.88 265 L 669.88 262" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(298.5,259.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="168" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;"> calls _moduleA().publicFunction()</div></div></foreignObject><text x="84" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica"> calls _moduleA().publicFunction()</text></switch></g><rect x="0" y="190" width="200" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(22.5,198.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="154" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 155px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">armarx::RobotUnitModule::A</div></div></foreignObject><text x="77" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">armarx::RobotUnitModule::A</text></switch></g><path d="M 440 80 L 440 47.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 440 31.12 L 448 47.12 L 432 47.12 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="315" y="80" width="250" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(332.5,88.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="215" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 216px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">armarx::RobotUnitModule::ModuleBase</div></div></foreignObject><text x="108" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">armarx::RobotUnitModule::ModuleBase</text></switch></g><path d="M 565 205 L 677.76 205" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 662.88 210.33 L 678.88 205 L 662.88 199.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(604.5,199.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="36" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;"> friend </div></div></foreignObject><text x="18" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="315" y="190" width="250" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(327.5,198.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="225" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 226px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">armarx::RobotUnitModule::BAttorneyForA</div></div></foreignObject><text x="113" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">armarx::RobotUnitModule::BAttorneyForA</text></switch></g><path d="M 565 235 L 650 235 L 677.76 235" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="1 4" pointer-events="none"/><path d="M 669.88 238 L 678.88 235 L 669.88 232" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(606.5,229.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="31" height="11" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; white-space: nowrap; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;background-color:#ffffff;"> calls </div></div></foreignObject><text x="16" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="315" y="220" width="250" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(317.5,228.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="174" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 175px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">- PrivateFunctionForA(A&amp;) : void</div></div></foreignObject><text x="87" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">- PrivateFunctionForA(A&amp;) : void</text></switch></g><rect x="680" y="190" width="200" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(702.5,198.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="154" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 155px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">armarx::RobotUnitModule::B</div></div></foreignObject><text x="77" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">armarx::RobotUnitModule::B</text></switch></g><rect x="680" y="220" width="200" height="60" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(682.5,229.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="157" height="41" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 158px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">- privateFunctionForA() : void<br />- privateFunction() : void<br />+ publicFunction() : void</div></div></foreignObject><text x="79" y="27" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g></g></svg>
\ No newline at end of file
<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0" version="8.5.12" editor="www.draw.io" type="device"><diagram id="aa7b51f2-7f26-c434-b112-75c9c6c67d3e" name="Page-1">7Zrdc6M2EMD/Gs8kD/EAwuA82mlyfejNZS7X6d1TRwYZ6AFihBzb/esrkMSXiA22MW6nnkyCVh8s2t+udnEm4CnafSIw8T9jF4UTQ3N3E/DLxMg+OvuTSfZcYgGbCzwSuFykl4K34G8khJqQbgIXpbWBFOOQBkld6OA4Rg6tySAheFsftsZh/a4J9JAieHNgqEr/CFzqc+l8ppXyX1Hg+fLOuiZ6VtD56RG8icX9JgZY5x/eHUG5lhif+tDF24oIPE/AE8GY8qto94TCbG/ltvF5Lx/0FnoTFNMuEww+4R2GG/HokESQMEMu2M8TjhIcZ0txZeleblD+iChbRJuA5dYPKHpLoJP1bhkSTObTKGQtnV2qSgk93xGhaFcRCSU/IRwhSvZsiOh9sGd8yr4Oyra0ji6t41csA4QMCiC8YuVyU9iF2Jf2PZope6RsB3IZPqKJCfWxh2MYPpfSZX3DKpvzF6J0LzwAbihmonKF3zBOxDgUu4uMbNZchdj5yUUvQaZ2viZriWX02aFNT/GGOEJvIHwLEg+JUSYXZU900DAEhZAG73WHOWebQcs2WzDKWAqZbsuvX5ZfvhUiLxP9Hgc3gKbkTqBpghY2tYHYtP+VbKJdQL9nXVNDNn+IkZ2wNVVsrUtjm09lTwX3lQEJDmKaVlZ+zQQVFox6mALN8NscD0zt0AR2wVUoYSiepVvsml2Sh9JudtNuzFxkz/tmsvnjRDy6YncqK+A2YOnJytComEoo+YpXmN5kjAXWFWOsru7MOEG28DD7bBcrPfmkADxXnUpmZCM7VdNLdOuwV1ng0PCznUrXb40dY2x2rJtlRzmNj8HzYBmD0mOq5VmRAMerNMm3XFuTgFmopWOIo1+vmrw86r9X04BqX4EWTlD8zQ/iqx7+LayBx0uz1vUcMQ9UOKXRHBiG6ZWM2cjj9N4Wm/cwmAtTP1dGNl4hpYjEucTQzCMonWpvc5jYosYC/bEePIx5I/fgWolpJTb9awy7cSNwJEopE8zZZcPUYw+wtT8j7G5CtLi7nyabVRg4L5vYoQGO7+6vxng7ZvnATpgO5SMnB7XbqGgegNYTTWWCfVk0LYXM6vvNosD5nCPJhQuFwqtXO2YjDzE0tdwxBit3/sPvO2WiWfUdY6x8QCrTB05+vYQpGp9SvfEC47EF0qHeyZttddX/mXH3Q0SmwVVPmI/lCUBNII56wnJBKSYx2r9gcgMhu+kMrSF7MG9oe0M1TmXxAfLG6KnVx27ayV/MlpOjc9YlIdGmmmYKLzuz3JCvGgrerAZHXHml2lDfQpvaFFQ+Ur9iXXs6r/bb9dtcqKgpDsP2EqXv+HreWM6W6uD1OkV00nSxnmWPen4/sOYrCd4hRbKqycLT3aJwO/77PnM7FsbYZMyWOyt6wTDwMhcK0ZoOFcxavtIcLJjNTzgLRo//xpgZO1CrnAzEpAXEJnhW/tX6irCr/Bv1lnlH50yM7BRRa/kbJlwxVxvgbeZqRtkO5mLN8v95eJgp/2kKPP8D</diagram></mxfile>
\ No newline at end of file
This diff is collapsed.
<mxfile userAgent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0" version="8.5.12" editor="www.draw.io" type="device"><diagram id="4786f273-7f41-1df8-2594-ed1a9b5c68ee" name="Page-1">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</diagram></mxfile>
\ No newline at end of file
......@@ -29,7 +29,9 @@ set(LIB_FILES
RobotUnitObserver.cpp
BasicControllers.cpp
DefaultWidgetDescriptions.cpp
RobotSynchronization.cpp
#robot unit modules need to be added to the list below (but not here)
RobotUnitModules/RobotUnitModuleBase.cpp
ControlTargets/ControlTargetBase.cpp
......@@ -63,6 +65,8 @@ set(LIB_FILES
set(LIB_HEADERS
util.h
util/EigenForwardDeclarations.h
util/HeterogenousContinuousContainer.h
util/HeterogenousContinuousContainerMacros.h
util/KeyValueVector.h
util/AtomicWrapper.h
util/Time.h
......@@ -74,15 +78,18 @@ set(LIB_HEADERS
util/RtLogging.h
util/RtTiming.h
#robot unit modules need to be added to the list below (but not here)
RobotUnitModules/RobotUnitModuleBase.h
RobotUnitModules/RobotUnitModuleBase.ipp
RobotUnitModules/RobotUnitModules.h
PDController.h
Constants.h
ControlModes.h
RobotUnit.h
RobotUnit.ipp
RobotUnitObserver.h
BasicControllers.h
DefaultWidgetDescriptions.h
RobotSynchronization.h
ControlTargets/ControlTargetBase.h
ControlTargets/ControlTarget1DoFActuator.h
......@@ -106,7 +113,7 @@ set(LIB_HEADERS
JointControllers/JointController.h
NJointControllers/NJointController.h
NJointControllers/NJointController.hpp
NJointControllers/NJointController.ipp
NJointControllers/NJointTrajectoryController.h
NJointControllers/NJointKinematicUnitPassThroughController.h
NJointControllers/NJointHolonomicPlatformUnitVelocityPassThroughController.h
......@@ -123,6 +130,87 @@ set(LIB_HEADERS
Devices/RTThreadTimingsSensorDevice.h
)
###########################################################################
#since the robot unit is a complex class, it is split into several modules.
#one reason behind this is stopping developers from using datastructures in the wrong way (eg causing racing conditions)
#for the robot unit to work, ALL modules are required (a class has to derive all of them)
#modules are autodetected in the RobotUnitModules folder, but should be listed here anyways
#(since glob does not autodetect new files)
#(see: https://cmake.org/cmake/help/v3.0/command/file.html)
# > If no CMakeLists.txt file changes when a source is added or removed then the generated build system cannot know when to ask CMake to regenerate.
set(RobotUnitModules
Management
ControllerManagement
ControlThread
ControlThreadDataBuffer
Devices
Logging
Publisher
RobotData
SelfCollisionChecker
Units
)
file(GLOB_RECURSE files_full_path "${CMAKE_CURRENT_SOURCE_DIR}/RobotUnitModules/*")
set(files)
foreach(file_full_path ${files_full_path})
if(NOT "${file_full_path}" MATCHES "^.*\\.(autosave|swp|~|orig)$")
#remove prefix
string(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" file_rel_path "${file_full_path}")
list(APPEND files ${file_rel_path})
endif()
endforeach()
#remove base module / collection header
list(REMOVE_ITEM files RobotUnitModules/RobotUnitModuleBase.h)
list(REMOVE_ITEM files RobotUnitModules/RobotUnitModuleBase.cpp)
list(REMOVE_ITEM files RobotUnitModules/RobotUnitModuleBase.ipp)
list(REMOVE_ITEM files RobotUnitModules/RobotUnitModules.h)
#remove all expected files
foreach(module ${RobotUnitModules})
set(ModuleName RobotUnitModule${module})
set(ModuleFileBase "RobotUnitModules/${ModuleName}")
#h
list(FIND files "${ModuleFileBase}.h" idx)
if(idx EQUAL -1)
message(STATUS "Files:")
printlist(" " "${files}")
message(FATAL_ERROR "MODULE FILE NOT FOUND: '${ModuleFileBase}.h'")
endif()
list(REMOVE_ITEM files ${ModuleFileBase}.h)
list(APPEND LIB_HEADERS ${ModuleFileBase}.h)
#cpp
list(FIND files ${ModuleFileBase}.cpp idx)
if(idx EQUAL -1)
message(STATUS "Files:")
printlist(" " "${files}")
message(FATAL_ERROR "MODULE FILE NOT FOUND: '${ModuleFileBase}.cpp'")
endif()
list(REMOVE_ITEM files ${ModuleFileBase}.cpp)
list(APPEND LIB_FILES ${ModuleFileBase}.cpp)
#ipp
list(FIND files ${ModuleFileBase}.ipp idx)
if(NOT idx EQUAL -1)
list(APPEND LIB_HEADERS ${ModuleFileBase}.ipp)
list(REMOVE_ITEM files ${ModuleFileBase}.ipp)
endif()
message(STATUS "Found RobotUnitModule ${ModuleName}")
endforeach()
#check remaining files
foreach(f ${files})
if(f MATCHES ".*/RobotUnitModule[a-zA-Z]*.*" )
message(FATAL_ERROR "MODULE NOT ADDED TO LIST OF MODULES: ${f}" )
endif()
endforeach()
list_to_string(RobotUnitModules "," ${RobotUnitModules})
message(STATUS "collected these names for RobotUnitModules: ${RobotUnitModules}")
#done detecting modules!
###########################################################################
......@@ -130,3 +218,4 @@ add_subdirectory(test)
armarx_add_library("${LIB_NAME}" "${LIB_FILES}" "${LIB_HEADERS}" "${LIBS}")
target_compile_definitions("${LIB_NAME}" PUBLIC "-DRobotUnitModules=${RobotUnitModules}")
......@@ -32,14 +32,11 @@
#include "../util.h"
#include "../Constants.h"
#include "../ControlModes.h"
#include "../util/HeterogenousContinuousContainerMacros.h"
namespace armarx
{
/**
* @defgroup Library-RobotUnit RobotUnit
* @ingroup RobotAPI
* A description of the library RobotUnit.
*
* @class ControlTargetBase
* @ingroup Library-RobotUnit
* @brief Brief description of class JointControlTargetBase.
......@@ -86,74 +83,48 @@ namespace armarx
virtual std::string getDataFieldAsString(std::size_t i) const = 0;
//management functions
virtual void _copyTo(ControlTargetBase* target) const = 0;
template<class T, class = typename std::enable_if<std::is_base_of<ControlTargetBase, T>::value>::type>
void _copyTo(std::unique_ptr<T>& target) const
{
_copyTo(target.get());
}
virtual std::unique_ptr<ControlTargetBase> _clone() const = 0;
virtual std::size_t _sizeInBytes() const = 0;
virtual std::size_t _alignof() const = 0;
virtual ControlTargetBase* _placementConstruct(void* place) const = 0;
ARMARX_META_MAKE_HAS_MEMBER_FNC_CHECK(
ControlTargetHasGetClassMemberInfo,
GetClassMemberInfo, ControlTargetInfo<T>(*)(void));
ARMARX_PLACEMENT_CONSTRUCTION_HELPER_BASE(ControlTargetBase)
};
#define DETAIL_ControlTargetBase_DEFAULT_METHOD_IMPLEMENTATION \
virtual ControlTargetBase* _placementConstruct(void* place) const override \
{ \
return new(place) std::decay<decltype(*this)>::type; \
} \
virtual std::size_t _sizeInBytes() const override \
{ \
return sizeof(std::decay<decltype(*this)>::type); \
} \
virtual std::size_t _alignof() const override \
{ \
return alignof(std::decay<decltype(*this)>::type); \
} \
virtual void _copyTo(ControlTargetBase* target) const override \
{ \
const auto targAsThis = target->asA<std::decay<decltype(*this)>::type>(); \
ARMARX_CHECK_NOT_NULL(targAsThis); \
*targAsThis = *this; \
} \
virtual std::unique_ptr<ControlTargetBase> _clone() const override \
{ \
std::unique_ptr<ControlTargetBase> c {new std::decay<decltype(*this)>::type}; \
ControlTargetBase::_copyTo(c); \
return c; \
} \
virtual std::string getControlTargetType(bool withoutNamespaceSpecifier = false) const override \
{ \
return armarx::GetTypeString(*this, withoutNamespaceSpecifier); \
} \
void _check_for_static_GetClassMemberInfo_overload() \
{ \
static_assert(ControlTargetHasGetClassMemberInfo<std::decay<decltype(*this)>::type>::value, \
"This class has to implement GetClassMemberInfo() returning " \
"an instance of ControlTargetInfo<THIS_CLASS_TYPE>"); \
} \
virtual std::map<std::string, VariantBasePtr> toVariants(const IceUtil::Time& timestamp) const override \
{ \
return ControlTargetInfo<std::decay<decltype(*this)>::type>::ToVariants(timestamp,this); \
} \
virtual std::size_t getNumberOfDataFields() const override \
{ \
return ControlTargetInfo<std::decay<decltype(*this)>::type>::GetNumberOfDataFields(); \
} \
virtual std::string getDataFieldAsString(std::size_t i) const override \
{ \
return ControlTargetInfo<std::decay<decltype(*this)>::type>::GetDataFieldAsString(this, i); \
} \
virtual std::vector<std::string> getDataFieldNames() const override \
{ \
return ControlTargetInfo<std::decay<decltype(*this)>::type>::GetDataFieldNames(); \
#define DETAIL_ControlTargetBase_DEFAULT_METHOD_IMPLEMENTATION \
ARMARX_PLACEMENT_CONSTRUCTION_HELPER \
using ControlTargetBase = ::armarx::ControlTargetBase; \
using VariantBasePtr = ::armarx::VariantBasePtr; \
std::string getControlTargetType(bool withoutNamespaceSpecifier = false) const override \
{ \
return armarx::GetTypeString(*this, withoutNamespaceSpecifier); \
} \
void _check_for_static_GetClassMemberInfo_overload() \
{ \
static_assert(ControlTargetHasGetClassMemberInfo<std::decay<decltype(*this)>::type>::value, \
"This class has to implement GetClassMemberInfo() returning " \
"an instance of ControlTargetInfo<THIS_CLASS_TYPE>"); \
} \
std::map<std::string, VariantBasePtr> toVariants(const IceUtil::Time& timestamp) const override \
{ \
return ControlTargetInfo<std::decay<decltype(*this)>::type>::ToVariants(timestamp,this); \
} \
std::size_t getNumberOfDataFields() const override \
{ \
return ControlTargetInfo<std::decay<decltype(*this)>::type>::GetNumberOfDataFields(); \
} \
std::string getDataFieldAsString(std::size_t i) const override \
{ \
return ControlTargetInfo<std::decay<decltype(*this)>::type>::GetDataFieldAsString(this, i); \
} \
std::vector<std::string> getDataFieldNames() const override \
{ \
return ControlTargetInfo<std::decay<decltype(*this)>::type>::GetDataFieldNames(); \
}
#define make_DummyControlTarget(Suffix,ControlMode) \
......
......@@ -28,10 +28,6 @@
namespace armarx
{
/**
* @defgroup Library-RobotUnit RobotUnit
* @ingroup RobotAPI
* A description of the library RobotUnit.
*
* @class ControlTargetHolonomicPlatformVelocity
* @ingroup Library-RobotUnit
* @brief Brief description of class ControlTargetHolonomicPlatformVelocity.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment