From 5f121f8dc41b585b5d471498b50829f6010846c8 Mon Sep 17 00:00:00 2001
From: Raphael Grimm <raphael.grimm@kit.edu>
Date: Tue, 24 Apr 2018 22:01:10 +0200
Subject: [PATCH] Add more doxygen

---
 .../images/NJointControllerAtomicDataFlow.svg |   2 +-
 .../images/NJointControllerAtomicDataFlow.xml |   2 +-
 .../NJointControllerGeneralDataFlow.svg       |   2 +-
 .../NJointControllerGeneralDataFlow.xml       |   2 +-
 .../NJointControllerTripleBufferDataFlow.svg  |   2 +-
 .../NJointControllerTripleBufferDataFlow.xml  |   2 +-
 .../NJointControllerWorkerThreadDataFlow.svg  |   2 +-
 .../NJointControllerWorkerThreadDataFlow.xml  |   2 +-
 etc/doxygen/images/RobotModuleInteraction.svg |   2 +
 etc/doxygen/images/RobotModuleInteraction.xml |   1 +
 etc/doxygen/images/RobotUnitLifeCycle.svg     |   2 +
 etc/doxygen/images/RobotUnitLifeCycle.xml     |   1 +
 .../NJointControllers/NJointController.h      | 438 +++++++++++++++++-
 13 files changed, 431 insertions(+), 29 deletions(-)
 create mode 100644 etc/doxygen/images/RobotModuleInteraction.svg
 create mode 100644 etc/doxygen/images/RobotModuleInteraction.xml
 create mode 100644 etc/doxygen/images/RobotUnitLifeCycle.svg
 create mode 100644 etc/doxygen/images/RobotUnitLifeCycle.xml

diff --git a/etc/doxygen/images/NJointControllerAtomicDataFlow.svg b/etc/doxygen/images/NJointControllerAtomicDataFlow.svg
index ce7ead509..e0cccb8b9 100644
--- a/etc/doxygen/images/NJointControllerAtomicDataFlow.svg
+++ b/etc/doxygen/images/NJointControllerAtomicDataFlow.svg
@@ -1,2 +1,2 @@
 <!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
diff --git a/etc/doxygen/images/NJointControllerAtomicDataFlow.xml b/etc/doxygen/images/NJointControllerAtomicDataFlow.xml
index e7ff81b81..1804a9890 100644
--- a/etc/doxygen/images/NJointControllerAtomicDataFlow.xml
+++ b/etc/doxygen/images/NJointControllerAtomicDataFlow.xml
@@ -1 +1 @@
-<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
diff --git a/etc/doxygen/images/NJointControllerGeneralDataFlow.svg b/etc/doxygen/images/NJointControllerGeneralDataFlow.svg
index a51e800c3..249e30f24 100644
--- a/etc/doxygen/images/NJointControllerGeneralDataFlow.svg
+++ b/etc/doxygen/images/NJointControllerGeneralDataFlow.svg
@@ -1,2 +1,2 @@
 <!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;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==&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.17 174.83 L 190.67 174.83 L 190.67 121.2" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 190.67 115.95 L 194.17 122.95 L 190.67 121.2 L 187.17 122.95 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 579 174.83 L 467.33 174.83 L 467.33 121.2" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 467.33 115.95 L 470.83 122.95 L 467.33 121.2 L 463.83 122.95 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="155" width="250" height="40" fill="#ffffff" stroke="#000000" transform="rotate(270,298,175)" pointer-events="none"/><g transform="translate(219.5,161.5)rotate(270,78,13.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="156" 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: 157px; 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 Non-blocking Communication)</font></div></div></foreignObject><text x="78" 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><path d="M 579 174.83 L 324.53 174.83" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 319.28 174.83 L 326.28 171.33 L 324.53 174.83 L 326.28 178.33 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(398.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="464" y="165" width="250" height="20" fill="#e1d5e7" stroke="#9673a6" transform="rotate(270,589,175)" pointer-events="none"/><g transform="translate(555.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.17 174.83 L 179 174.83 L 179 177.33 L 86.2 177.33" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 80.95 177.33 L 87.95 173.83 L 86.2 177.33 L 87.95 180.83 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 224.81 L 155.62 191.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 155.62 185.93 L 159.12 192.93 L 155.62 191.18 L 152.12 192.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;540e3684-599b-54a4-ef23-75810fbedebd&quot;&gt;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=&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 175 L 191 175 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,140.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 579 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="155" width="250" height="40" fill="#ffffff" stroke="#000000" transform="rotate(270,298,175)" pointer-events="none"/><g transform="translate(219.5,161.5)rotate(270,78,13.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="156" 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: 157px; 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 Non-blocking Communication)</font></div></div></foreignObject><text x="78" 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><path d="M 579 175 L 324.37 175" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 319.12 175 L 326.12 171.5 L 324.37 175 L 326.12 178.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(398.5,169.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="464" y="165" width="250" height="20" fill="#e1d5e7" stroke="#9673a6" transform="rotate(270,589,175)" pointer-events="none"/><g transform="translate(555.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 175 L 179 175 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 224.81 L 155.62 191.18" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 155.62 185.93 L 159.12 192.93 L 155.62 191.18 L 152.12 192.93 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/></g></svg>
\ No newline at end of file
diff --git a/etc/doxygen/images/NJointControllerGeneralDataFlow.xml b/etc/doxygen/images/NJointControllerGeneralDataFlow.xml
index 9dd261ed0..04d06cd22 100644
--- a/etc/doxygen/images/NJointControllerGeneralDataFlow.xml
+++ b/etc/doxygen/images/NJointControllerGeneralDataFlow.xml
@@ -1 +1 @@
-<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
diff --git a/etc/doxygen/images/NJointControllerTripleBufferDataFlow.svg b/etc/doxygen/images/NJointControllerTripleBufferDataFlow.svg
index 9b114c273..0abd7e978 100644
--- a/etc/doxygen/images/NJointControllerTripleBufferDataFlow.svg
+++ b/etc/doxygen/images/NJointControllerTripleBufferDataFlow.svg
@@ -1,2 +1,2 @@
 <!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;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g transform="translate(0.5,0.5)"><path d="M 467.17 106.03 L 467.17 130.17 L 467.17 159.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 467.17 164.92 L 463.67 157.92 L 467.17 159.67 L 470.67 157.92 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 200.28 179.83 L 190.62 179.83 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,124.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 502.34 175 L 502.34 121.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 502.34 116.12 L 505.84 123.12 L 502.34 121.37 L 498.84 123.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(489.5,127.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 230 25 L 230 48 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 48 L 0 300 L 230 300 L 230 48" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(106.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 370 48 L 370 25 L 600 25 L 600 48 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 370 48 L 370 300 L 600 300 L 600 48" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(463.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="449.57" y="85" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(468.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><path d="M 580.28 175 L 474.76 175 L 474.76 174.31 L 376.37 174.02" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 371.12 174 L 378.13 170.52 L 376.37 174.02 L 378.11 177.52 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(425.5,169.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 230 177 L 154.76 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(100.5,171.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 230 48 L 230 25 L 370 25 L 370 48 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 48 L 230 300 L 370 300 L 370 48" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(266.5,30.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="67" 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: 68px; 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;">TripleBuffer</div></div></foreignObject><text x="34" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">TripleBuffer</text></switch></g><rect x="230" y="50" width="45" height="250" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(237.5,168.5)rotate(-90,15,6)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="30" 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: 31px; 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;">Read</div></div></foreignObject><text x="15" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Read</text></switch></g><rect x="325" y="50" width="45" height="250" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(333.5,168.5)rotate(-90,14,6)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" 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: 29px; 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;">Write</div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Write</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"/><rect x="278" y="50" width="45" height="250" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(280.5,168.5)rotate(-90,20,6)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" 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: 41px; 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;">Hidden</div></div></foreignObject><text x="20" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Hidden</text></switch></g></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;fc77a887-41d1-ed7b-0bc0-1c9de38fa8ce&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g transform="translate(0.5,0.5)"><path d="M 467 106 L 467 130 L 467 159.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 467 164.88 L 463.5 157.88 L 467 159.63 L 470.5 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 200 180 L 191 180 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,124.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 502 175 L 502 121.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 502 116.12 L 505.5 123.12 L 502 121.37 L 498.5 123.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(489.5,128.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 230 25 L 230 48 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 48 L 0 300 L 230 300 L 230 48" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(106.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 370 48 L 370 25 L 600 25 L 600 48 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 370 48 L 370 300 L 600 300 L 600 48" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(463.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="449.57" y="85" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(468.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><path d="M 580 175 L 475 175 L 475 174 L 376.37 174" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 371.12 174 L 378.12 170.5 L 376.37 174 L 378.12 177.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(425.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 230 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(100.5,171.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 230 48 L 230 25 L 370 25 L 370 48 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 230 48 L 230 300 L 370 300 L 370 48" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(266.5,31.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="67" 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: 68px; 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;">TripleBuffer</div></div></foreignObject><text x="34" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">TripleBuffer</text></switch></g><rect x="230" y="50" width="45" height="250" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(237.5,168.5)rotate(-90,15,6)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="30" 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: 31px; 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;">Read</div></div></foreignObject><text x="15" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Read</text></switch></g><rect x="325" y="50" width="45" height="250" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(333.5,168.5)rotate(-90,14,6)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="28" 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: 29px; 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;">Write</div></div></foreignObject><text x="14" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Write</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"/><rect x="278" y="50" width="45" height="250" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(280.5,168.5)rotate(-90,20,6)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="40" 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: 41px; 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;">Hidden</div></div></foreignObject><text x="20" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Hidden</text></switch></g></g></svg>
\ No newline at end of file
diff --git a/etc/doxygen/images/NJointControllerTripleBufferDataFlow.xml b/etc/doxygen/images/NJointControllerTripleBufferDataFlow.xml
index af98949fb..6f16331ce 100644
--- a/etc/doxygen/images/NJointControllerTripleBufferDataFlow.xml
+++ b/etc/doxygen/images/NJointControllerTripleBufferDataFlow.xml
@@ -1 +1 @@
-<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
diff --git a/etc/doxygen/images/NJointControllerWorkerThreadDataFlow.svg b/etc/doxygen/images/NJointControllerWorkerThreadDataFlow.svg
index 1efe44f90..982541f57 100644
--- a/etc/doxygen/images/NJointControllerWorkerThreadDataFlow.svg
+++ b/etc/doxygen/images/NJointControllerWorkerThreadDataFlow.svg
@@ -1,2 +1,2 @@
 <!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="702px" 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;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g transform="translate(0.5,0.5)"><path d="M 151 158 L 150.7 95.03" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 150.67 89.78 L 154.21 96.77 L 150.7 95.03 L 147.21 96.8 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(137.5,109.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 115.62 75.81 L 115.62 129.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 115.62 134.88 L 112.12 127.88 L 115.62 129.63 L 119.12 127.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 23 L 0 0 L 700 0 L 700 23 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 23 L 0 300 L 700 300 L 700 23" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(307.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 0 48 L 0 25 L 200 25 L 200 48 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 48 L 0 300 L 200 300 L 200 48" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(91.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="98" y="59" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(116.5,60.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="136" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(20.5,144.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="63" y="223" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(75.5,224.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 200 151 L 139.83 151.17 L 86.2 151.17" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 80.95 151.17 L 87.95 147.67 L 86.2 151.17 L 87.95 154.67 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(105.5,138.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="68" height="24" 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<br />Targets</div></div></foreignObject><text x="34" y="18" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">Calculate new&lt;br&gt;Targets</text></switch></g><path d="M 200 48 L 200 25 L 500 25 L 500 48 Z" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="none"/><path d="M 200 48 L 200 300 L 500 300 L 500 48" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(315.5,30.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="69" 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: 70px; 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;">WorkerTask</div></div></foreignObject><text x="35" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">WorkerTask</text></switch></g><path d="M 372 180 L 372.3 130.03" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 372.33 124.78 L 375.79 131.81 L 372.3 130.03 L 368.79 131.76 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(361.5,140.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><rect x="152" y="208" width="125" height="60" fill="#ffffff" stroke="#000000" transform="rotate(270,214.5,238)" pointer-events="none"/><g transform="translate(153.5,217.5)rotate(270,60.5,20.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="121" 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: 121px; 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;">Sensor Values<br /><font style="font-size: 10px">(via Non-blocking Communication)</font></div></div></foreignObject><text x="61" y="27" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="152" y="83" width="125" height="60" fill="#ffffff" stroke="#000000" transform="rotate(270,214.5,113)" pointer-events="none"/><g transform="translate(153.5,92.5)rotate(270,60.5,20.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="121" 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: 121px; 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;">Calculation results<br /><font style="font-size: 10px">(via Non-blocking Communication)</font></div></div></foreignObject><text x="61" y="27" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 679 175.33 L 614 175.33 L 614 121.7" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 614 116.45 L 617.5 123.45 L 614 121.7 L 610.5 123.45 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(600.5,136.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 500 48 L 500 25 L 700 25 L 700 48 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 500 48 L 500 300 L 700 300 L 700 48" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(578.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><path d="M 580.29 101.81 L 580.29 155.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 580.29 160.88 L 576.79 153.88 L 580.29 155.63 L 583.79 153.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="373" y="155" width="250" height="40" fill="#ffffff" stroke="#000000" transform="rotate(270,498,175)" pointer-events="none"/><g transform="translate(419.5,161.5)rotate(270,78,13.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="156" 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: 157px; 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 Non-blocking Communication)</font></div></div></foreignObject><text x="78" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="561.57" y="85" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(580.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><path d="M 679 175.33 L 524.53 175.33" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 519.28 175.33 L 526.28 171.83 L 524.53 175.33 L 526.28 178.83 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(569.5,162.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="57" height="24" 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 <br />Parameters</div></div></foreignObject><text x="29" y="18" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">Change &lt;br&gt;Parameters</text></switch></g><rect x="564" y="165" width="250" height="20" fill="#e1d5e7" stroke="#9673a6" transform="rotate(270,689,175)" pointer-events="none"/><g transform="translate(655.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 478.17 175.33 L 259.83 175.33 L 259.83 112.83 L 251.2 112.83" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 245.95 112.83 L 252.95 109.33 L 251.2 112.83 L 252.95 116.33 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(306.5,169.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="105" 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;">Expensive calculation</div></div></foreignObject><text x="53" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">Expensive calculation</text></switch></g><path d="M 133.17 237.83 L 159 237.83 L 178.13 237.89" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 183.38 237.91 L 176.37 241.39 L 178.13 237.89 L 176.39 234.39 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 337.33 121.17 L 337.33 146.17 L 337.33 164.8" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 337.33 170.05 L 333.83 163.05 L 337.33 164.8 L 340.83 163.05 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="320" y="94" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(338.5,95.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><path d="M 133.17 237.83 L 139.83 237.83 L 139.83 180.03" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 139.83 174.78 L 143.33 181.78 L 139.83 180.03 L 136.33 181.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 244.83 237.83 L 359.83 237.83 L 359.83 190.03" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 359.83 184.78 L 363.33 191.78 L 359.83 190.03 L 356.33 191.78 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="701px" height="302px" 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;b0089374-96cf-f724-51f3-db687a304ca3&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g transform="translate(0.5,0.5)"><path d="M 151 158 L 151 95.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 151 90.12 L 154.5 97.12 L 151 95.37 L 147.5 97.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(138.5,109.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 115.62 75.81 L 115.62 129.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 115.62 134.88 L 112.12 127.88 L 115.62 129.63 L 119.12 127.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 23 L 0 0 L 700 0 L 700 23 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 23 L 0 300 L 700 300 L 700 23" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(302.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 0 48 L 0 25 L 200 25 L 200 48 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 48 L 0 300 L 200 300 L 200 48" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(91.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="98" y="59" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(116.5,60.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="136" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(20.5,144.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="63" y="223" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(75.5,224.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 200 151 L 86.37 151" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 81.12 151 L 88.12 147.5 L 86.37 151 L 88.12 154.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(105.5,138.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="68" height="24" 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<br />Targets</div></div></foreignObject><text x="34" y="18" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">Calculate new&lt;br&gt;Targets</text></switch></g><path d="M 200 48 L 200 25 L 500 25 L 500 48 Z" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="none"/><path d="M 200 48 L 200 300 L 500 300 L 500 48" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(315.5,31.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="69" 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: 70px; 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;">WorkerTask</div></div></foreignObject><text x="35" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">WorkerTask</text></switch></g><path d="M 372 180 L 372.89 130.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 372.98 125.12 L 376.35 132.18 L 372.89 130.37 L 369.36 132.05 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(361.5,141.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><rect x="152" y="208" width="125" height="60" fill="#ffffff" stroke="#000000" transform="rotate(270,214.5,238)" pointer-events="none"/><g transform="translate(153.5,217.5)rotate(270,60.5,20.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="121" 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: 121px; 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;">Sensor Values<br /><font style="font-size: 10px">(via Non-blocking Communication)</font></div></div></foreignObject><text x="61" y="27" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="152" y="83" width="125" height="60" fill="#ffffff" stroke="#000000" transform="rotate(270,214.5,113)" pointer-events="none"/><g transform="translate(153.5,92.5)rotate(270,60.5,20.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="121" 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: 121px; 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;">Calculation results<br /><font style="font-size: 10px">(via Non-blocking Communication)</font></div></div></foreignObject><text x="61" y="27" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 679 175 L 614 175 L 614 121.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 614 116.12 L 617.5 123.12 L 614 121.37 L 610.5 123.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(601.5,136.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 500 48 L 500 25 L 700 25 L 700 48 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 500 48 L 500 300 L 700 300 L 700 48" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(578.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><path d="M 580.29 101.81 L 580.29 155.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 580.29 160.88 L 576.79 153.88 L 580.29 155.63 L 583.79 153.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="373" y="155" width="250" height="40" fill="#ffffff" stroke="#000000" transform="rotate(270,498,175)" pointer-events="none"/><g transform="translate(419.5,161.5)rotate(270,78,13.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="156" 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: 157px; 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 Non-blocking Communication)</font></div></div></foreignObject><text x="78" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="561.57" y="85" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(580.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><path d="M 679 175 L 524.37 175" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 519.12 175 L 526.12 171.5 L 524.37 175 L 526.12 178.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(569.5,162.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="57" height="24" 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 <br />Parameters</div></div></foreignObject><text x="29" y="18" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">Change &lt;br&gt;Parameters</text></switch></g><rect x="564" y="165" width="250" height="20" fill="#e1d5e7" stroke="#9673a6" transform="rotate(270,689,175)" pointer-events="none"/><g transform="translate(655.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 478 175 L 260 175 L 260 113 L 251.37 113" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 246.12 113 L 253.12 109.5 L 251.37 113 L 253.12 116.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(307.5,169.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="105" 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;">Expensive calculation</div></div></foreignObject><text x="53" y="11" fill="#000000" text-anchor="middle" font-size="11px" font-family="Helvetica">Expensive calculation</text></switch></g><path d="M 133 238 L 178.13 238" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 183.38 238 L 176.38 241.5 L 178.13 238 L 176.38 234.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 338 121 L 338 146 L 337.25 164.64" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 337.04 169.88 L 333.83 162.75 L 337.25 164.64 L 340.82 163.03 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="320" y="94" width="70" height="30" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(338.5,95.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><path d="M 133 238 L 140 238 L 140 180.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 140 175.12 L 143.5 182.12 L 140 180.37 L 136.5 182.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 245 238 L 360 238 L 360 190.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 360 185.12 L 363.5 192.12 L 360 190.37 L 356.5 192.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/></g></svg>
\ No newline at end of file
diff --git a/etc/doxygen/images/NJointControllerWorkerThreadDataFlow.xml b/etc/doxygen/images/NJointControllerWorkerThreadDataFlow.xml
index 5304d71bd..8a921963d 100644
--- a/etc/doxygen/images/NJointControllerWorkerThreadDataFlow.xml
+++ b/etc/doxygen/images/NJointControllerWorkerThreadDataFlow.xml
@@ -1 +1 @@
-<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
diff --git a/etc/doxygen/images/RobotModuleInteraction.svg b/etc/doxygen/images/RobotModuleInteraction.svg
new file mode 100644
index 000000000..75d07f378
--- /dev/null
+++ b/etc/doxygen/images/RobotModuleInteraction.svg
@@ -0,0 +1,2 @@
+<!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
diff --git a/etc/doxygen/images/RobotModuleInteraction.xml b/etc/doxygen/images/RobotModuleInteraction.xml
new file mode 100644
index 000000000..c38e6c1f4
--- /dev/null
+++ b/etc/doxygen/images/RobotModuleInteraction.xml
@@ -0,0 +1 @@
+<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
diff --git a/etc/doxygen/images/RobotUnitLifeCycle.svg b/etc/doxygen/images/RobotUnitLifeCycle.svg
new file mode 100644
index 000000000..b15480d07
--- /dev/null
+++ b/etc/doxygen/images/RobotUnitLifeCycle.svg
@@ -0,0 +1,2 @@
+<!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="640px" height="1201px" 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;4786f273-7f41-1df8-2594-ed1a9b5c68ee&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g transform="translate(0.5,0.5)"><rect x="98.5" y="769.5" width="250" height="130" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><rect x="98.5" y="789.5" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(147.5,798.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="151" 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: 152px; 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;">_preOnConnectComponent</div></div></foreignObject><text x="76" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_preOnConnectComponent</text></switch></g><rect x="98.5" y="819.5" width="250" height="30" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(165.5,828.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="115" 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: 116px; 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;">onConnectRobotUnit</div></div></foreignObject><text x="58" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">onConnectRobotUnit</text></switch></g><rect x="98.5" y="849.5" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(145.5,858.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="156" 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: 157px; 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;">_postOnConnectComponent</div></div></foreignObject><text x="78" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_postOnConnectComponent</text></switch></g><rect x="98.5" y="769.5" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(101.5,773.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="152" 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: 153px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&gt;&gt;&gt; <b>onConnectComponent</b></div></div></foreignObject><text x="76" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&gt;&gt;&gt; &lt;b&gt;onConnectComponent&lt;/b&gt;</text></switch></g><rect x="98.5" y="879.5" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(101.5,883.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="152" 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: 153px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&lt;&lt;&lt; <b>onConnectComponent</b></div></div></foreignObject><text x="76" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;&lt;&lt; &lt;b&gt;onConnectComponent&lt;/b&gt;</text></switch></g><rect x="98.5" y="299.71" width="250" height="130" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><rect x="98.5" y="299.71" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(101.5,303.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="169" 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: 170px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div align="left">&gt;&gt;&gt; <b>onDisconnectComponent</b></div></div></div></foreignObject><text x="85" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;div align="left"&gt;&gt;&gt;&gt; &lt;b&gt;onDisconnectComponent&lt;/b&gt;&lt;/div&gt;</text></switch></g><rect x="98.5" y="409.71" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(101.5,413.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="169" 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: 170px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&lt;&lt;&lt; <b>onDisconnectComponent</b></div></div></foreignObject><text x="85" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;&lt;&lt; &lt;b&gt;onDisconnectComponent&lt;/b&gt;</text></switch></g><rect x="98.5" y="319.5" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(140.5,328.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="166" 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: 167px; 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;">_preOnDisconnectComponent</div></div></foreignObject><text x="83" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_preOnDisconnectComponent</text></switch></g><rect x="98.5" y="349.5" width="250" height="30" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(158.5,358.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="130" 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: 131px; 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;">onDisconnectRobotUnit</div></div></foreignObject><text x="65" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">onDisconnectRobotUnit</text></switch></g><rect x="98.5" y="379.5" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(137.5,388.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="171" 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: 172px; 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;">_postOnDisconnectComponent</div></div></foreignObject><text x="86" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_postOnDisconnectComponent</text></switch></g><path d="M 224 430 L 224 763.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 224 768.88 L 220.5 761.88 L 224 763.63 L 227.5 761.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 161 900 L 161 915 L 80 915 L 80 280 L 161 280 L 161 293.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 161 298.88 L 157.5 291.88 L 161 293.63 L 164.5 291.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 286 900 L 286 920 L 307 920 L 307 933.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 307 938.88 L 303.5 931.88 L 307 933.63 L 310.5 931.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 306 260 L 306 280 L 286 280 L 286 293.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 286 298.88 L 282.5 291.88 L 286 293.63 L 289.5 291.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="388.5" y="300" width="250" height="30" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(454.5,308.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="117" 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: 118px; 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;">Implementation Code</div></div></foreignObject><text x="59" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Implementation Code</text></switch></g><path d="M 431 260 L 431 280 L 451 280 L 451 293.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 451 298.88 L 447.5 291.88 L 451 293.63 L 454.5 291.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="389" y="490" width="250" height="30" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(455.5,498.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="117" 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: 118px; 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;">Implementation Code</div></div></foreignObject><text x="59" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Implementation Code</text></switch></g><rect x="389" y="679.5" width="250" height="30" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(455.5,688.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="117" 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: 118px; 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;">Implementation Code</div></div></foreignObject><text x="59" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Implementation Code</text></switch></g><rect x="388.5" y="869.5" width="250" height="30" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(454.5,878.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="117" 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: 118px; 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;">Implementation Code</div></div></foreignObject><text x="59" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Implementation Code</text></switch></g><rect x="243.5" y="20" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(312.5,28.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="112" 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: 113px; 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;">_preOnInitRobotUnit</div></div></foreignObject><text x="56" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_preOnInitRobotUnit</text></switch></g><rect x="243.5" y="50" width="250" height="30" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(325.5,58.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; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">onInitRobotUnit</div></div></foreignObject><text x="43" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">onInitRobotUnit</text></switch></g><rect x="243.5" y="80" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(309.5,88.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="117" 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: 118px; 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;">_postOnInitRobotUnit</div></div></foreignObject><text x="59" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_postOnInitRobotUnit</text></switch></g><rect x="243.5" y="130" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(274.5,138.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="187" 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: 188px; 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;">_preFinishComponentInitialization</div></div></foreignObject><text x="94" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_preFinishComponentInitialization</text></switch></g><rect x="243.5" y="190" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(272.5,198.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="192" 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: 193px; 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;">_postFinishComponentInitialization</div></div></foreignObject><text x="96" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_postFinishComponentInitialization</text></switch></g><rect x="243.5" y="160" width="250" height="30" fill="#ffe6cc" stroke="#d79b00" pointer-events="none"/><g transform="translate(250.5,168.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="236" 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: 237px; 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;">InitializingComponent → InitializingDevices</div></div></foreignObject><text x="118" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">InitializingComponent → InitializingDevices</text></switch></g><rect x="243.5" y="0" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(246.5,3.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="121" 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: 122px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&gt;&gt;&gt; <b>onInitComponent</b></div></div></foreignObject><text x="61" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&gt;&gt;&gt; &lt;b&gt;onInitComponent&lt;/b&gt;</text></switch></g><rect x="243.5" y="240" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(246.5,243.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="121" 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: 122px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&lt;&lt;&lt; <b>onInitComponent</b></div></div></foreignObject><text x="61" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;&lt;&lt; &lt;b&gt;onInitComponent&lt;/b&gt;</text></switch></g><rect x="243.5" y="110" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(246.5,113.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="188" 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: 189px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&gt;&gt;&gt; <b>finishComponentInitialization</b></div></div></foreignObject><text x="94" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&gt;&gt;&gt; &lt;b&gt;finishComponentInitialization&lt;/b&gt;</text></switch></g><rect x="243.5" y="220" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(246.5,223.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="188" 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: 189px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&lt;&lt;&lt; <b>finishComponentInitialization</b></div></div></foreignObject><text x="94" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;&lt;&lt; &lt;b&gt;finishComponentInitialization&lt;/b&gt;</text></switch></g><rect x="389" y="555" width="250" height="90" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><rect x="389" y="555" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(441.5,563.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="145" 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: 146px; 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;">_preFinishUnitInitialization</div></div></foreignObject><text x="73" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_preFinishUnitInitialization</text></switch></g><rect x="389" y="615" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(438.5,623.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="150" 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: 151px; 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;">_postFinishUnitInitialization</div></div></foreignObject><text x="75" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_postFinishUnitInitialization</text></switch></g><rect x="389" y="585" width="250" height="30" fill="#ffe6cc" stroke="#d79b00" pointer-events="none"/><g transform="translate(396.5,593.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="235" 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: 236px; 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;">InitializingUnits → InitializingControlThread</div></div></foreignObject><text x="118" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">InitializingUnits → InitializingControlThread</text></switch></g><rect x="389" y="535.21" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(391.5,538.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="145" 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: 146px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div align="left">&gt;&gt;&gt; <b>finishUnitInitialization</b></div></div></div></foreignObject><text x="73" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="389" y="645.21" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(391.5,648.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="145" 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: 146px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&lt;&lt;&lt; <b>finishUnitInitialization</b></div></div></foreignObject><text x="73" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;&lt;&lt; &lt;b&gt;finishUnitInitialization&lt;/b&gt;</text></switch></g><path d="M 514 520 L 514 528.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 514 533.88 L 510.5 526.88 L 514 528.63 L 517.5 526.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="389" y="365" width="250" height="90" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><rect x="389" y="365" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(433.5,373.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="161" 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: 162px; 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;">_preFinishDeviceInitialization</div></div></foreignObject><text x="81" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_preFinishDeviceInitialization</text></switch></g><rect x="389" y="425" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(430.5,433.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="166" 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: 167px; 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;">_postFinishDeviceInitialization</div></div></foreignObject><text x="83" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_postFinishDeviceInitialization</text></switch></g><rect x="389" y="395" width="250" height="30" fill="#ffe6cc" stroke="#d79b00" pointer-events="none"/><g transform="translate(413.5,403.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="200" 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: 201px; 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;">InitializingDevices → InitializingUnits</div></div></foreignObject><text x="100" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">InitializingDevices → InitializingUnits</text></switch></g><rect x="389" y="345.21" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(391.5,348.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="162" 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: 163px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div align="left">&gt;&gt;&gt; <b>finishDeviceInitialization</b></div></div></div></foreignObject><text x="81" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="389" y="455.21" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(391.5,458.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="162" 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: 163px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&lt;&lt;&lt; <b>finishDeviceInitialization</b></div></div></foreignObject><text x="81" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;&lt;&lt; &lt;b&gt;finishDeviceInitialization&lt;/b&gt;</text></switch></g><path d="M 514 330 L 514 338.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 514 343.88 L 510.5 336.88 L 514 338.63 L 517.5 336.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="388.5" y="744.5" width="250" height="90" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><rect x="388.5" y="744.5" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(412.5,753.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="202" 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: 203px; 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;">_preFinishControlThreadInitialization</div></div></foreignObject><text x="101" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_preFinishControlThreadInitialization</text></switch></g><rect x="388.5" y="804.5" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(409.5,813.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="207" 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: 208px; 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;">_postFinishControlThreadInitialization</div></div></foreignObject><text x="104" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_postFinishControlThreadInitialization</text></switch></g><rect x="388.5" y="774.5" width="250" height="30" fill="#ffe6cc" stroke="#d79b00" pointer-events="none"/><g transform="translate(413.5,783.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="199" 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: 200px; 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;">InitializingControlThread → Running</div></div></foreignObject><text x="100" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">InitializingControlThread → Running</text></switch></g><rect x="388.5" y="724.71" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(391.5,728.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="204" 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: 205px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div align="left">&gt;&gt;&gt; <b>finishControlThreadInitialization</b></div></div></div></foreignObject><text x="102" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;div align="left"&gt;&gt;&gt;&gt; &lt;b&gt;finishControlThreadInitialization&lt;/b&gt;&lt;/div&gt;</text></switch></g><rect x="388.5" y="834.71" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(391.5,838.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="204" 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: 205px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&lt;&lt;&lt; <b>finishControlThreadInitialization</b></div></div></foreignObject><text x="102" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;&lt;&lt; &lt;b&gt;finishControlThreadInitialization&lt;/b&gt;</text></switch></g><rect x="244" y="959.71" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(246.5,963.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="102" 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: 103px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><div align="left">&gt;&gt;&gt; <b>finishRunning</b></div></div></div></foreignObject><text x="51" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="244" y="1069.71" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(246.5,1073.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="102" 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: 103px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&lt;&lt;&lt; <b>finishRunning</b></div></div></foreignObject><text x="51" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;&lt;&lt; &lt;b&gt;finishRunning&lt;/b&gt;</text></switch></g><rect x="244" y="979.5" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(316.5,988.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="105" 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: 106px; 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;">_preFinishRunning</div></div></foreignObject><text x="53" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_preFinishRunning</text></switch></g><rect x="244" y="1039.5" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(313.5,1048.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="110" 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: 111px; 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;">_postFinishRunning</div></div></foreignObject><text x="55" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_postFinishRunning</text></switch></g><rect x="244" y="1089.5" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(306.5,1098.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="125" 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: 126px; 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;">_preOnExitComponent</div></div></foreignObject><text x="63" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_preOnExitComponent</text></switch></g><rect x="244" y="1119.5" width="250" height="30" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(324.5,1128.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="89" 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: 90px; 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;">onExitRobotUnit</div></div></foreignObject><text x="45" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">onExitRobotUnit</text></switch></g><rect x="244" y="1149.5" width="250" height="30" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(303.5,1158.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="130" 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: 131px; 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;">_postOnExitComponent</div></div></foreignObject><text x="65" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">_postOnExitComponent</text></switch></g><rect x="244" y="1009.5" width="250" height="30" fill="#ffe6cc" stroke="#d79b00" pointer-events="none"/><g transform="translate(317.5,1018.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="102" 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: 103px; 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;">Running → Exiting</div></div></foreignObject><text x="51" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Running → Exiting</text></switch></g><rect x="244" y="939.5" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(246.5,943.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="126" 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: 127px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&gt;&gt;&gt; <b>onExitComponent</b></div></div></foreignObject><text x="63" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&gt;&gt;&gt; &lt;b&gt;onExitComponent&lt;/b&gt;</text></switch></g><rect x="244" y="1179.5" width="250" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(246.5,1183.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="126" 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: 127px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">&lt;&lt;&lt; <b>onExitComponent</b></div></div></foreignObject><text x="63" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;&lt;&lt; &lt;b&gt;onExitComponent&lt;/b&gt;</text></switch></g><path d="M 514 710 L 514 718.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 514 723.88 L 510.5 716.88 L 514 718.63 L 517.5 716.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 514 475 L 514 483.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 514 488.88 L 510.5 481.88 L 514 483.63 L 517.5 481.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 514 665 L 514 673.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 514 678.88 L 510.5 671.88 L 514 673.63 L 517.5 671.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 451 900 L 451 920 L 432 920 L 432 933.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 432 938.88 L 428.5 931.88 L 432 933.63 L 435.5 931.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 514 855 L 514 863.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 514 868.88 L 510.5 861.88 L 514 863.63 L 517.5 861.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="0" y="60" width="210" height="20" fill="#d5e8d4" stroke="#82b366" pointer-events="none"/><g transform="translate(2.5,63.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="202" 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: 203px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Implemented by a deriving RobotUnit</div></div></foreignObject><text x="101" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Implemented by a deriving RobotUnit</text></switch></g><rect x="0" y="40" width="210" height="20" fill="#ffe6cc" stroke="#d79b00" pointer-events="none"/><g transform="translate(2.5,43.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="146" 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: 147px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">RobotUnit Phase transition</div></div></foreignObject><text x="73" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">RobotUnit Phase transition</text></switch></g><rect x="0" y="20" width="210" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="none"/><g transform="translate(2.5,23.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="167" 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: 168px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Begin/End marker for functions</div></div></foreignObject><text x="84" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Begin/End marker for functions</text></switch></g><rect x="0" y="80" width="210" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(2.5,83.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="151" 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: 152px; white-space: nowrap; overflow-wrap: normal;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Hook for RobotUnitModules</div></div></foreignObject><text x="76" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Hook for RobotUnitModules</text></switch></g><rect x="0" y="0" width="210" height="20" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(2.5,3.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;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><b>Legend</b></div></div></foreignObject><text x="21" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">&lt;b&gt;Legend&lt;/b&gt;</text></switch></g></g></svg>
\ No newline at end of file
diff --git a/etc/doxygen/images/RobotUnitLifeCycle.xml b/etc/doxygen/images/RobotUnitLifeCycle.xml
new file mode 100644
index 000000000..19d571000
--- /dev/null
+++ b/etc/doxygen/images/RobotUnitLifeCycle.xml
@@ -0,0 +1 @@
+<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
diff --git a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointController.h b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointController.h
index ac7b028fe..225baa06b 100644
--- a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointController.h
+++ b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointController.h
@@ -84,28 +84,87 @@ namespace armarx
 
     /**
     * @ingroup Library-RobotUnit
-    * @brief A high level controller writing its results into targes.
+    * @brief A high level controller writing its results into \ref ControlTargetBase "ControlTargets".
     *
     * This is the abstract base class for all NJointControllers.
     * It implements basic management routines required by the RobotUnit and some basic ice calls.
-    * NJointControllers are intantiated and managed by RobotUnits.
+    * \ref NJointController "NJointControllers" are instantiated and managed by the \ref RobotUnit.
     *
-    * Each NJointController has to do the following in their constructor:
-    * \li Request joints in exactly one control mode from the robot unit (the control mode can't be changed later)
-    *     You will receive pointer targets where it can store its results.
-    * \li Get pointer to the state of required joints / sensors. (you can't request other data at a later point)
-    *     You will receive pointer to the values.
+    * A \ref NJointController calculates \ref ControlTargetBase "ControlTargets" for a set of
+    * \ref ControlDevice "ControlDevices" in a specific ControlMode.
+    * This ControlMode is defined for each \ref ControlDevice during construction.
     *
-    * Each controller has two parts:
+    * \section nj-state Requested and Active
+    * A \ref NJointController can is requested / not requested and active / inactive.
+    * All four combinations are possible.
+    *
+    * \subsection nj-state-req Requested / Not Requested
+    * If the user wants this \ref NJointController to be executed it is in a requested state (see \ref isControllerRequested).
+    * Otherwise the controler is not requested.
+    *
+    * Calling \ref activateController sets the state to requested.
+    * Calling \ref deactivateController sets the state to not requested.
+    * If the \ref NJointController causes an error or a different \ref NJointController using one or more of the same
+    * \ref ControlDevice's is requested, this \ref NJointController is deactivated.
+    *
+    *
+    * \subsection nj-state-act Active / Inactive
+    * Is the \ref NJointController executed by the \ref RobotUnitModules::ControlThread "ControlThread" it is active
+    * (see \ref isControllerActive).
+    *
+    * To be executed by the \ref RobotUnitModules::ControlThread "ControlThread", the \ref NJointController has to be
+    * requested at some point in the past.
+    *
+    * If a controller is active, it has to write a valid \ref ControlTargetBase "ControlTarget"
+    * for each of its \ref ControlDevice "ControlDevicea" (if it fails, it will be deactivated).
+    *
+    * \section Constructor
+    * In the Constructor, a \ref NJointController has to declare all \ref ControlDevice "ControlDevices" it uses.
+    *
+    * The constructor takes a pointer to a configuration structure of the type \ref NJointController::ConfigPtrT.
+    * If an implementation requires a special configuration structure (e.g.: SomeOtherCfg), it has to override this type by calling adding
+    * \code{.cpp}
+    * using ConfigPtrT = SomeOtherCfgPtr;
+    * \endcode
+    * to it's clas definition.
+    * The type SomeOtherCfg has to derive \ref NJointControllerConfigPtr.
+    *
+    * There is a way to generate a small gui widget for controller construction (see this \ref nj-ctor-gui "section").
+    *
+    * \subsection nj-ctor-req-ctrl Using ControlTargets
+    * A \ref NJointController can use \ref peekControlDevice to examine a \ref ControlDevice before using it
+    * (e.g.: checking the supported \ref ControlTargetBase "ControlTargets").
+    *
+    * If a \ref ControlDevice should be used by this \ref NJointController, it has to call \ref useControlDevice.
+    * This sets the ControlMode for the \ref ControlDevice and returns a pointer to the \ref ControlTargetBase "ControlTarget".
+    * This pointer has to be used to send commands in each iteration of \ref rtRun.
+    * The ControlMode can't be changed afterwards (A new \ref NJointController has to be created).
+    *
+    *
+    * \subsection nj-ctor-req-sens Using SensorValues
+    * A \ref NJointController can use \ref peekSensorDevice to examine a \ref SensorDevice before using it.
+    *
+    * If a \ref SensorDevice should be used by this \ref NJointController, it has to call \ref useSensorDevice.
+    * This returns a pointer to the \ref SensorValueBase "SensorValue".
+    *
+    * \subsection nj-ctor-rob A synchronized Virtualrobot
+    * If the controller needs a simox robot in \ref rtRun, it should call \ref useSynchronizedRtRobot.
+    * This will provide a simoxRobot via \ref rtGetRobot.
+    * This robot is synchronized with the real robots state before calling \ref rtRun
+    *
+    * \section nj-parts Rt and non Rt
+    * Each \ref NJointController has two parts:
     * \li The RT controll loop
     * \li The NonRT ice communication
     *
-    * \section rtcontrollloop The RT controll loop (rtRun)
-    * Here you have access to the robots current state and write your results into targets.
+    * \subsection rtcontrollloop The Rt controll loop (\ref rtRun)
     * \warning This part has to satisfy realtime conditions!
-    * All realtime able functions of this class have the 'rt' prefix.
+    * All realtime functions of \ref NJointController have the 'rt' prefix.
     *
-    * You must not:
+    * Here the \ref NJointController has access to the robot's current state
+    * and has to write results into \ref ControlTargetBase "ControlTargets".
+    *
+    * It must not:
     * \li call any blocking operation
     * \li allocate ram on the heap (since this is a blocking operation)
     * \li resize any datastructure (e.g. vector::resize) (this sometimes allocates ram on the heap)
@@ -114,24 +173,19 @@ namespace armarx
     * \li make network calls (e.g. through ice) (this blocks/allocates ram on the heap) (using begin_... end_... version of ice calls IS NO SOLUTION)
     * \li do any expensive calculations (e.g. calculate IK, run some solver, invert big matrices)
     *
-    * \section nonrtpart The NonRT ice communication
+    * \subsection nonrtpart The NonRT ice communication
     * This part consits of any ice communication.
-    * Here you could get new controll parameters or targets from other components.
+    * Here the \ref NJointController can get new controll parameters or targets from other components.
     *
     * \section rtnrtcomm Communication between RT and NonRT
     * All communication between RT and NonRT has to be lockfree.
-    * So you have to use constructs like atomics or TripleBuffers (See armarx::NJointControllerWithTripleBuffer).
+    * The \ref NJointController has to use constructs like atomics or
+    * \ref TripleBuffer "TripleBuffers" (See \ref armarx::NJointControllerWithTripleBuffer).
     *
     * \image html NJointControllerGeneralDataFlow.svg "General Dataflow in a NJointController"
     *
-    *
-    *
-    *
     * \image html NJointControllerAtomicDataFlow.svg "Dataflow in a NJointController using atomics for communication between RT and NonRT"
     *
-    *
-    *
-    *
     * \image html NJointControllerTripleBufferDataFlow.svg "Dataflow in a NJointController using a triple buffer for communication between RT and NonRT"
     *
     * \section expensivework How to do expensive calculations
@@ -148,6 +202,348 @@ namespace armarx
     *
     * \image html NJointControllerWorkerThreadDataFlow.svg "Dataflow in a NJointController using a worker thread"
     *
+    * \section nj-ctor-gui Providing a gui for controller construction.
+    * By implementing these functions:
+    * \code{.cpp}
+     static WidgetDescription::WidgetPtr GenerateConfigDescription
+     (
+        const boost::shared_ptr<VirtualRobot::Robot>& robot,
+        const std::map<std::string, ConstControlDevicePtr>& controlDevices,
+        const std::map<std::string, ConstSensorDevicePtr>& sensorDevices
+     ); //describes how the widget is supposed to look
+     static ConfigPtrT GenerateConfigFromVariants(const StringVariantBaseMap&); // turns the resulting variants into a config
+    * \endcode
+    *
+    * The \ref RobotUnitGui will provide a widget to configure and construct a \ref NJointController of this type.
+    *
+    * \section Examples
+    *
+    * \subsection nj-example-1 A simple pass Position controller
+    * \note The code can be found in the Tutorial package
+    *
+    * \subsection nj-example-1-h Header
+    * Include headers
+    * \code{.cpp}
+        #include <RobotAPI/components/units/RobotUnit/RobotUnit.h>
+        #include <RobotAPI/components/units/RobotUnit/ControlTargets/ControlTarget1DoFActuator.h>
+        #include <RobotAPI/components/units/RobotUnit/SensorValues/SensorValue1DoFActuator.h>
+    * \endcode
+    *
+    * Open the namespace
+    * \code{.cpp}
+        namespace armarx
+        {
+    * \endcode
+    *
+    * Typedef some pointers
+    * \code{.cpp}
+            TYPEDEF_PTRS_HANDLE(NJointPositionPassThroughController);
+            TYPEDEF_PTRS_HANDLE(NJointPositionPassThroughControllerConfig);
+    * \endcode
+    *
+    * The config has to inherit \ref NJointControllerConfig and consists only of the joint name
+    * \code{.cpp}
+            class NJointPositionPassThroughControllerConfig : virtual public NJointControllerConfig
+            {
+            public:
+                NJointPositionPassThroughControllerConfig(const std::string& name): deviceName {name} {}
+                std::string deviceName;
+            };
+    * \endcode
+    *
+    * The controller class has to inherit \ref NJointController
+    * \code{.cpp}
+            class NJointPositionPassThroughController: public NJointController
+            {
+            public:            
+    * \endcode
+    *
+    * The \ref NJointController provides a config widget for the \ref RobotUnitGuiPlugin
+    * \code{.cpp}
+                static WidgetDescription::WidgetPtr GenerateConfigDescription
+                (
+                    const boost::shared_ptr<VirtualRobot::Robot>&,
+                    const std::map<std::string, ConstControlDevicePtr>& controlDevices,
+                    const std::map<std::string, ConstSensorDevicePtr>& sensorDevices
+                );
+                static NJointControllerConfigPtr GenerateConfigFromVariants(const StringVariantBaseMap& values);
+    * \endcode
+    *
+    * The ctor receives a pointer to the \ref RobotUnit, a pointer to the config and a pointer to a VirtualRobot model.
+    * \code{.cpp}
+                NJointPositionPassThroughController(
+                    const RobotUnitPtr& prov,
+                    NJointControllerConfigPtr config,
+                    const boost::shared_ptr<VirtualRobot::Robot>& r
+                );
+    * \endcode
+    *
+    * The function to provide the class name.
+    * \code{.cpp}
+                std::string getClassName(const Ice::Current&) const override;
+    * \endcode
+    *
+    * This controller provides widgets for function calls.
+    * \code{.cpp}
+                WidgetDescription::StringWidgetDictionary getFunctionDescriptions(const Ice::Current&) const override;
+                void callDescribedFunction(const std::string& name, const StringVariantBaseMap& value, const Ice::Current&) override;
+    * \endcode
+    *
+    * The run function executed to calculate new targets
+    * \code{.cpp}
+                void rtRun(const IceUtil::Time& sensorValuesTimestamp, const IceUtil::Time& timeSinceLastIteration) override;
+    * \endcode
+    *
+    * Hooks for this \ref NJointController to execute code during publishing.
+    * \code{.cpp}
+                void onPublishActivation(const DebugDrawerInterfacePrx&, const DebugObserverInterfacePrx&) override;
+                void onPublishDeactivation(const DebugDrawerInterfacePrx& drawer, const DebugObserverInterfacePrx&) override;
+                void onPublish(const SensorAndControl&, const DebugDrawerInterfacePrx& drawer, const DebugObserverInterfacePrx&) override;
+    * \endcode
+    *
+    * This \ref NJointController uses one position \ref SensorValue1DoFActuatorPosition "SensorValue", calculates one
+    * position \ref ControlTarget1DoFActuatorPosition "ControlTarget" and stores the current position target and position value in atomics.
+    * \code{.cpp}
+                const SensorValue1DoFActuatorPosition* sensor;
+                ControlTarget1DoFActuatorPosition* target;
+                std::atomic<float> targetPos {0};
+                std::atomic<float> currentPos {0};
+    * \endcode
+    *
+    * Close the class and the namespace
+    * \code{.cpp}
+            };
+        }
+    * \endcode
+    *
+    * \subsection nj-example-1-c Source file
+    *
+    * Include the required headers.
+    * \code{.cpp}
+        #include "NJointPositionPassThroughController.h"
+        #include <RobotAPI/libraries/core/Pose.h>
+    * \endcode
+    *
+    * Open the namespace
+    * \code{.cpp}
+        namespace armarx
+        {
+    * \endcode
+    *
+    * This generates a config widget used to display a config gui in \ref RobotUnitGui.
+    * It consist out of a \ref HBoxLayout containing a \ref Label and a \ref StringComboBox
+    * \code{.cpp}
+            WidgetDescription::WidgetPtr NJointPositionPassThroughController::GenerateConfigDescription(const boost::shared_ptr<VirtualRobot::Robot>&, const std::map<std::string, ConstControlDevicePtr>& controlDevices, const std::map<std::string, ConstSensorDevicePtr>& sensorDevices)
+            {
+                using namespace armarx::WidgetDescription;
+                HBoxLayoutPtr layout = new HBoxLayout;
+                LabelPtr label = new Label;
+                label->text = "control device name";
+                layout->children.emplace_back(label);
+                StringComboBoxPtr box = new StringComboBox;
+                box->defaultIndex = 0;
+    * \endcode
+    *
+    * The \ref StringComboBox only contains the names of \ref ControlDevice "ControlDevices" accepting
+    * a position \ref ControlTarget1DoFActuatorPosition "ControlTarget" and providing a position
+    * \ref SensorValue1DoFActuatorPosition "SensorValue"
+    * \code{.cpp}
+                //filter control devices
+                for (const auto& name2dev : controlDevices)
+                {
+                    const ConstControlDevicePtr& dev = name2dev.second;
+                    const auto& name = name2dev.first;
+                    if (
+                        dev->hasJointController(ControlModes::Position1DoF) &&
+                        dev->getJointController(ControlModes::Position1DoF)->getControlTarget()->isA<ControlTarget1DoFActuatorPosition>() &&
+                        sensorDevices.count(name) &&
+                        sensorDevices.at(name)->getSensorValue()->isA<SensorValue1DoFActuatorPosition>()
+                    )
+                    {
+                        box->options.emplace_back(name);
+                    }
+                }
+                box->name = "name";
+                layout->children.emplace_back(box);
+                return layout;
+            }
+    * \endcode
+    *
+    * This turns a map of variants into the config required by this \ref NJointController.
+    * The \ref Variant for the key 'name' defines the \ref ControlDevice.
+    * \code{.cpp}
+            NJointControllerConfigPtr NJointPositionPassThroughController::GenerateConfigFromVariants(const StringVariantBaseMap& values)
+            {
+                //you should check here for types null additional params etc
+                return new NJointPositionPassThroughControllerConfig {values.at("name")->getString()};
+            }
+    * \endcode
+    *
+    * The constructors implementation.
+    * \code{.cpp}
+            NJointPositionPassThroughController::NJointPositionPassThroughController(
+                const RobotUnitPtr& ru,
+                NJointControllerConfigPtr config,
+                const boost::shared_ptr<VirtualRobot::Robot>&
+            )
+            {
+                ARMARX_CHECK_EXPRESSION(ru);
+    * \endcode
+    *
+    * It checks whether the provided config has the correct type.
+    * \code{.cpp}
+                NJointPositionPassThroughControllerConfigPtr cfg = NJointPositionPassThroughControllerConfigPtr::dynamicCast(config);
+                ARMARX_CHECK_EXPRESSION_W_HINT(cfg, "The provided config has the wrong type! The type is " << config->ice_id());
+    * \endcode
+    *
+    * Then it retrieves the \ref SensorValue1DoFActuatorPosition "SensorValue" and
+    * \ref ControlTarget1DoFActuatorPosition "ControlTarget", casts then to the required types and stores them to the member variables.
+    * \code{.cpp}
+                const SensorValueBase* sv = useSensorValue(cfg->deviceName);
+                ControlTargetBase* ct = useControlTarget(cfg->deviceName, ControlModes::Position1DoF);
+                ARMARX_CHECK_EXPRESSION(sv->asA<SensorValue1DoFActuatorPosition>());
+                ARMARX_CHECK_EXPRESSION(ct->asA<ControlTarget1DoFActuatorPosition>());
+                sensor = sv->asA<SensorValue1DoFActuatorPosition>();
+                target = ct->asA<ControlTarget1DoFActuatorPosition>();
+            }            
+    * \endcode
+    *
+    * The class name has to be unique, hence the c++ class name should be used.
+    * \code{.cpp}
+            std::string NJointPositionPassThroughController::getClassName(const Ice::Current&) const
+            {
+                return "NJointPositionPassThroughController";
+            }
+
+    * \endcode
+    *
+    * This \ref NJointController provides two widgets for function calls.
+    * \code{.cpp}
+            WidgetDescription::StringWidgetDictionary NJointPositionPassThroughController::getFunctionDescriptions(const Ice::Current&) const
+            {
+                using namespace armarx::WidgetDescription;
+    * \endcode
+    *
+    * The first widget has a \ref Label and a \ref FloatSpinBox.
+    * \code{.cpp}
+                HBoxLayoutPtr layoutSetPos = new HBoxLayout;
+                {
+                    LabelPtr label = new Label;
+                    label->text = "positiontarget";
+                    layoutSetPos->children.emplace_back(label);
+                    FloatSpinBoxPtr spin = new FloatSpinBox;
+                    spin->defaultValue = 0;
+                    spin->max = 1;
+                    spin->min = -1;
+    * \endcode
+    *
+    * The \ref FloatSpinBox creates a variant called 'spinmearound'
+    * \code{.cpp}
+                    spin->name = "spinmearound";
+                    layoutSetPos->children.emplace_back(spin);
+                }
+    * \endcode
+    *
+    * The second widget also has a \ref Label and a \ref FloatSpinBox.
+    * \code{.cpp}
+                VBoxLayoutPtr layoutSetHalfPos = new VBoxLayout;
+                {
+                    LabelPtr label = new Label;
+                    label->text = "positiontarget / 2";
+                    layoutSetHalfPos->children.emplace_back(label);
+                    FloatSpinBoxPtr spin = new FloatSpinBox;
+                    spin->defaultValue = 0;
+                    spin->max = 0.5;
+                    spin->min = -0.5;
+                    spin->name = "spinmehalfaround";
+                    layoutSetHalfPos->children.emplace_back(spin);
+                }
+    * \endcode
+    *
+    * This returns a map of boths widgets.
+    * The keys will be used to identify the called function.
+    * \code{.cpp}
+                return {{"SetPosition", layoutSetPos}, {"SetPositionHalf", layoutSetHalfPos}};
+            }            
+    * \endcode
+    *
+    * This function is called from the \ref RobotUnitGuiPlugin when the prior defined functions are called.
+    * Both functions set the target position.
+    * \code{.cpp}
+            void NJointPositionPassThroughController::callDescribedFunction(const std::string& name, const StringVariantBaseMap& value, const Ice::Current&)
+            {
+                if (name == "SetPosition")
+                {
+                    //you should check here for types null additional params etc
+                    targetPos = value.at("spinmearound")->getFloat();
+                }
+                else if (name == "SetPositionHalf")
+                {
+                    //you should check here for types null additional params etc
+                    targetPos = value.at("spinmehalfaround")->getFloat() * 2;
+                }
+                else
+                {
+                    ARMARX_ERROR << "CALLED UNKNOWN REMOTE FUNCTION: " << name;
+                }
+            }            
+    * \endcode
+    *
+    * The \ref rtRun function sets the \ref ControlTarget1DoFActuatorPosition "ControlTarget" to the
+    * target value set via the atomic and stores the current
+    * \ref SensorValue1DoFActuatorPosition "SensorValue" to the other atomic.
+    * \code{.cpp}
+            void NJointPositionPassThroughController::rtRun(const IceUtil::Time& t, const IceUtil::Time&)
+            {
+                ARMARX_RT_LOGF_ERROR("A MESSAGE PARAMETER %f", t.toSecondsDouble()).deactivateSpam(1);
+                ARMARX_RT_LOGF_IMPORTANT("A MESSAGE WITHOUT PARAMETERS").deactivateSpam(1);
+                target->position = targetPos;
+                currentPos = sensor->position;
+            }
+    * \endcode
+    *
+    * The publish activation \ref onPublishActivation "hook" does nothing, but could be used to call
+    * \ref DebugDraver::setRobotVisu.
+    * \code{.cpp}
+            void NJointPositionPassThroughController::onPublishActivation(const DebugDrawerInterfacePrx&, const DebugObserverInterfacePrx&)
+            {
+                //we could do some setup for the drawer here. e.g. add a robot
+            }
+
+    * \endcode
+    *
+    * The publish deactivation \ref onPublishDeactivation "hook" clears the \ref DebugDrawer layer
+    * \code{.cpp}
+            void NJointPositionPassThroughController::onPublishDeactivation(const DebugDrawerInterfacePrx& drawer, const DebugObserverInterfacePrx&)
+            {
+                drawer->removeLayer("Layer_" + getInstanceName());
+            }
+
+    * \endcode
+    *
+    * The publish \ref onPublish "hook" draws a sphere with radius of the position stored in the atomic times 2000 to the \ref DebugDrawer.
+    * \code{.cpp}
+            void NJointPositionPassThroughController::onPublish(const SensorAndControl&, const DebugDrawerInterfacePrx& drawer, const DebugObserverInterfacePrx&)
+            {
+                drawer->setSphereVisu("Layer_" + getInstanceName(), "positionball", new Vector3, armarx::DrawColor {1, 1, 1, 1}, currentPos * 2000);
+            }            
+    * \endcode
+    *
+    * This registers a factory for this \ref NJointController.
+    * This factory is used by the \ref RobotUnit to create the \ref NJointController.
+    * The passed name has to match the name returned by \ref getClassName.
+    * \code{.cpp}
+            NJointControllerRegistration<NJointPositionPassThroughController> registrationControllerNJointPositionPassThroughController("NJointPositionPassThroughController");
+    * \endcode
+    *
+    * This statically asserts a factory for the type NJointPositionPassThroughController is present.
+    * \code{.cpp}
+            ARMARX_ASSERT_NJOINTCONTROLLER_HAS_CONSTRUCTION_GUI(NJointPositionPassThroughController);
+    * \endcode
+    * Close the namespace
+    * \code{.cpp}
+        }
+    * \endcode
     */
     class NJointController:
         virtual public NJointControllerInterface,
-- 
GitLab