diff --git a/source/RobotAPI/components/EarlyVisionGraph/IntensityGraph.cpp b/source/RobotAPI/components/EarlyVisionGraph/IntensityGraph.cpp
index 6d48757d107bc3f69b5aa174e772c72d8b96cb86..bfaa095cb80bb5db055e0e2fb63f4943dfad362c 100644
--- a/source/RobotAPI/components/EarlyVisionGraph/IntensityGraph.cpp
+++ b/source/RobotAPI/components/EarlyVisionGraph/IntensityGraph.cpp
@@ -154,7 +154,7 @@ bool CIntensityGraph::read(istream& infile)
         }
 
     }
-    catch (istream::failure e)
+    catch (istream::failure&)
     {
         printf("ERROR: failed to write FeatureGraph to file\n");
         return false;
@@ -229,7 +229,7 @@ bool CIntensityGraph::write(ostream& outfile)
         }
 
     }
-    catch (ostream::failure e)
+    catch (ostream::failure&)
     {
         printf("ERROR: failed to write FeatureGraph to file\n");
         return false;
diff --git a/source/RobotAPI/components/EarlyVisionGraph/SphericalGraph.cpp b/source/RobotAPI/components/EarlyVisionGraph/SphericalGraph.cpp
index 31b5b39a48ff36b62df0af05491778fe63690218..bfc4f3c8961490cc4fb3c6e6044d07396fd21dbd 100644
--- a/source/RobotAPI/components/EarlyVisionGraph/SphericalGraph.cpp
+++ b/source/RobotAPI/components/EarlyVisionGraph/SphericalGraph.cpp
@@ -207,7 +207,7 @@ bool CSphericalGraph::read(istream& infile)
         }
 
     }
-    catch (istream::failure e)
+    catch (istream::failure&)
     {
         printf("ERROR: failed to write FeatureGraph to file\n");
         return false;
@@ -279,7 +279,7 @@ bool CSphericalGraph::write(ostream& outfile)
         }
 
     }
-    catch (ostream::failure e)
+    catch (ostream::failure&)
     {
         printf("ERROR: failed to write FeatureGraph to file\n");
         return false;
diff --git a/source/RobotAPI/components/units/RobotUnit/util.h b/source/RobotAPI/components/units/RobotUnit/util.h
index de41855a1d8f6e0f6b760d2ef07c3ed85181bec1..e9bc00916c61b211b5e98f36ebe197ecd8ff090e 100644
--- a/source/RobotAPI/components/units/RobotUnit/util.h
+++ b/source/RobotAPI/components/units/RobotUnit/util.h
@@ -24,6 +24,7 @@
 #define _ARMARX_UNIT_RobotAPI_RobotUnit_util_H
 
 #include <ArmarXCore/core/util/PropagateConst.h>
+#include <ArmarXCore/core/ManagedIceObject.h>
 
 #include "util/EigenForwardDeclarations.h"
 #include "util/KeyValueVector.h"
@@ -33,16 +34,4 @@
 
 #include <type_traits>
 
-// ------------------------------------------------------------------------------- //
-// --------------------------- macros to typedef ptrs ---------------------------- //
-// ------------------------------------------------------------------------------- //
-#define TYPEDEF_PTRS_SHARED(T)                                      \
-    class T;                                                        \
-    using T##Ptr = ::std::shared_ptr<T>;                            \
-    using T##PropagateConstPtr = ::armarx::PropagateConst<T##Ptr>;  \
-    using Const##T##Ptr = ::std::shared_ptr<const T>
-
-#define TYPEDEF_PTRS_HANDLE(T)          \
-    class T;                            \
-    using T##Ptr = IceUtil::Handle<T>
 #endif
diff --git a/source/RobotAPI/drivers/WeissHapticSensor/WeissHapticSensor.cpp b/source/RobotAPI/drivers/WeissHapticSensor/WeissHapticSensor.cpp
index 614b0dbf17787eb2eb7bd8fe1e87f815b94d806a..fd31e894b7d45aeac3bd706866c4188fb5ec2cc2 100644
--- a/source/RobotAPI/drivers/WeissHapticSensor/WeissHapticSensor.cpp
+++ b/source/RobotAPI/drivers/WeissHapticSensor/WeissHapticSensor.cpp
@@ -15,9 +15,9 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  *
- * @package    
- * @author     
- * @date       
+ * @package
+ * @author
+ * @date
  * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
  *             GNU General Public License
  */
@@ -199,7 +199,7 @@ void WeissHapticSensor::frameAcquisitionTaskLoop()
                 lastFrameTime = now;
             }
         }
-        catch (ChecksumErrorException)
+        catch (ChecksumErrorException&)
         {
             ARMARX_WARNING << "Caught ChecksumErrorException on " << device << ", skipping frame";
         }
@@ -219,11 +219,6 @@ void WeissHapticSensor::frameAcquisitionTaskLoop()
             ARMARX_INFO << "[" << device << "] Starting periodic frame aquisition";
             sensor->startPeriodicFrameAcquisition(0);
         }
-
-        //usleep(3000);
-
-        //usleep(3000);
-        //usleep(1000000);
     }
 
     ARMARX_LOG << device << ": stopPeriodicFrameAcquisition";
diff --git a/source/RobotAPI/drivers/XsensIMU/IMU/Xsens/XsensMTiModule.cpp b/source/RobotAPI/drivers/XsensIMU/IMU/Xsens/XsensMTiModule.cpp
index cad622231046e90bb58b19abb4bbd23c712670f7..0df989f59170ce18d613205ad8f52cc97c54e73b 100644
--- a/source/RobotAPI/drivers/XsensIMU/IMU/Xsens/XsensMTiModule.cpp
+++ b/source/RobotAPI/drivers/XsensIMU/IMU/Xsens/XsensMTiModule.cpp
@@ -277,7 +277,7 @@ namespace IMU
 
             return (m_retVal = MTRV_OK);
 #else
-            char chPort[15];
+            char chPort[32];
             struct termios options;
 
             /* Open port */
@@ -1226,7 +1226,7 @@ namespace IMU
             }
 
             // Keep reading until an Ack or Error message is received (or timeout)
-            clock_t clkStart , clkOld;
+            clock_t clkStart, clkOld;
             bool msgRead = false;
 
             clkStart = clockms();           // Get current processor time
@@ -1333,7 +1333,7 @@ namespace IMU
 
             // Keep reading until an Ack or Error message is received (or timeout)
             bool msgRead = false;
-            clock_t clkStart , clkOld;
+            clock_t clkStart, clkOld;
 
             clkStart = clockms();   // Get current processor time
             clkOld = m_clkEnd;
@@ -1400,7 +1400,7 @@ namespace IMU
             unsigned char buffer[MAXMSGLEN ];
             short buflen;
 
-            clock_t clkStart , clkOld;
+            clock_t clkStart, clkOld;
 
             if (!(m_fileOpen || m_portOpen))
             {
@@ -2395,7 +2395,7 @@ namespace IMU
         //
         short CXsensMTiModule::getDeviceMode(unsigned short* numDevices)
         {
-            unsigned char mid = 0 , data[MAXMSGLEN ];
+            unsigned char mid = 0, data[MAXMSGLEN ];
             short datalen;
 
             if (numDevices != NULL)
@@ -3130,7 +3130,7 @@ namespace IMU
                     break;
 
                 default:
-                    for (int i = 0 , j = length - 1 ; i < length ; i++ , j--)
+                    for (int i = 0, j = length - 1 ; i < length ; i++, j--)
                     {
                         output[j] = input[i];
                     }
diff --git a/source/RobotAPI/drivers/XsensIMU/IMU/Xsens/XsensMTiModule.h b/source/RobotAPI/drivers/XsensIMU/IMU/Xsens/XsensMTiModule.h
index 54ba05d75115b066cbdf6adb377df62b2a3422cb..0a7bde26a7d0636970735d6a4a5ca9881a237712 100644
--- a/source/RobotAPI/drivers/XsensIMU/IMU/Xsens/XsensMTiModule.h
+++ b/source/RobotAPI/drivers/XsensIMU/IMU/Xsens/XsensMTiModule.h
@@ -150,217 +150,217 @@ namespace IMU
         // Maximum number of sensors supported
 #define MAXDEVICES                  20
 
-#define PREAMBLE                    (const unsigned char)0xFA
-#define BID_MASTER                  (const unsigned char)0xFF
-#define BID_MT                      (const unsigned char)0x01
+#define PREAMBLE                    (unsigned char)0xFA
+#define BID_MASTER                  (unsigned char)0xFF
+#define BID_MT                      (unsigned char)0x01
 #define EXTLENCODE                  0xFF
 
-#define LEN_MSGHEADER               (const unsigned short)4
-#define LEN_MSGEXTHEADER            (const unsigned short)6
-#define LEN_MSGHEADERCS             (const unsigned short)5
-#define LEN_MSGEXTHEADERCS          (const unsigned short)7
-#define LEN_CHECKSUM                (const unsigned short)1
-#define LEN_UNSIGSHORT              (const unsigned short)2
-#define LEN_UNSIGINT                (const unsigned short)4
-#define LEN_FLOAT                   (const unsigned short)4
+#define LEN_MSGHEADER               (unsigned short)4
+#define LEN_MSGEXTHEADER            (unsigned short)6
+#define LEN_MSGHEADERCS             (unsigned short)5
+#define LEN_MSGEXTHEADERCS          (unsigned short)7
+#define LEN_CHECKSUM                (unsigned short)1
+#define LEN_UNSIGSHORT              (unsigned short)2
+#define LEN_UNSIGINT                (unsigned short)4
+#define LEN_FLOAT                   (unsigned short)4
 
         // Maximum message/data length
-#define MAXDATALEN                  (const unsigned short)2048
-#define MAXSHORTDATALEN             (const unsigned short)254
-#define MAXMSGLEN                   (const unsigned short)(MAXDATALEN+7)
-#define MAXSHORTMSGLEN              (const unsigned short)(MAXSHORTDATALEN+5)
+#define MAXDATALEN                  (unsigned short)2048
+#define MAXSHORTDATALEN             (unsigned short)254
+#define MAXMSGLEN                   (unsigned short)(MAXDATALEN+7)
+#define MAXSHORTMSGLEN              (unsigned short)(MAXSHORTDATALEN+5)
 
         // DID Type (high nibble)
-#define DID_TYPEH_MASK              (const unsigned long)0x00F00000
-#define DID_TYPEH_MT                (const unsigned long)0x00000000
-#define DID_TYPEH_XM                (const unsigned long)0x00100000
-#define DID_TYPEH_MTI_MTX           (const unsigned long)0x00300000
+#define DID_TYPEH_MASK              (unsigned long)0x00F00000
+#define DID_TYPEH_MT                (unsigned long)0x00000000
+#define DID_TYPEH_XM                (unsigned long)0x00100000
+#define DID_TYPEH_MTI_MTX           (unsigned long)0x00300000
 
         // All Message identifiers
         // WakeUp state messages
-#define MID_WAKEUP                  (const unsigned char)0x3E
-#define MID_WAKEUPACK               (const unsigned char)0x3F
+#define MID_WAKEUP                  (unsigned char)0x3E
+#define MID_WAKEUPACK               (unsigned char)0x3F
 
         // Config state messages
-#define MID_REQDID                  (const unsigned char)0x00
-#define MID_DEVICEID                (const unsigned char)0x01
-#define LEN_DEVICEID                (const unsigned short)4
-#define MID_INITBUS                 (const unsigned char)0x02
-#define MID_INITBUSRESULTS          (const unsigned char)0x03
-#define LEN_INITBUSRESULTS          (const unsigned short)4
-#define MID_REQPERIOD               (const unsigned char)0x04
-#define MID_REQPERIODACK            (const unsigned char)0x05
-#define LEN_PERIOD                  (const unsigned short)2
-#define MID_SETPERIOD               (const unsigned char)0x04
-#define MID_SETPERIODACK            (const unsigned char)0x05
+#define MID_REQDID                  (unsigned char)0x00
+#define MID_DEVICEID                (unsigned char)0x01
+#define LEN_DEVICEID                (unsigned short)4
+#define MID_INITBUS                 (unsigned char)0x02
+#define MID_INITBUSRESULTS          (unsigned char)0x03
+#define LEN_INITBUSRESULTS          (unsigned short)4
+#define MID_REQPERIOD               (unsigned char)0x04
+#define MID_REQPERIODACK            (unsigned char)0x05
+#define LEN_PERIOD                  (unsigned short)2
+#define MID_SETPERIOD               (unsigned char)0x04
+#define MID_SETPERIODACK            (unsigned char)0x05
         // XbusMaster
-#define MID_SETBID                  (const unsigned char)0x06
-#define MID_SETBIDACK               (const unsigned char)0x07
-#define MID_AUTOSTART               (const unsigned char)0x06
-#define MID_AUTOSTARTACK            (const unsigned char)0x07
-#define MID_BUSPWROFF               (const unsigned char)0x08
-#define MID_BUSPWROFFACK            (const unsigned char)0x09
+#define MID_SETBID                  (unsigned char)0x06
+#define MID_SETBIDACK               (unsigned char)0x07
+#define MID_AUTOSTART               (unsigned char)0x06
+#define MID_AUTOSTARTACK            (unsigned char)0x07
+#define MID_BUSPWROFF               (unsigned char)0x08
+#define MID_BUSPWROFFACK            (unsigned char)0x09
         // End XbusMaster
-#define MID_REQDATALENGTH           (const unsigned char)0x0A
-#define MID_DATALENGTH              (const unsigned char)0x0B
-#define LEN_DATALENGTH              (const unsigned short)2
-#define MID_REQCONFIGURATION        (const unsigned char)0x0C
-#define MID_CONFIGURATION           (const unsigned char)0x0D
-#define LEN_CONFIGURATION           (const unsigned short)118
-#define MID_RESTOREFACTORYDEF       (const unsigned char)0x0E
-#define MID_RESTOREFACTORYDEFACK    (const unsigned char)0x0F
-
-#define MID_GOTOMEASUREMENT         (const unsigned char)0x10
-#define MID_GOTOMEASUREMENTACK      (const unsigned char)0x11
-#define MID_REQFWREV                (const unsigned char)0x12
-#define MID_FIRMWAREREV             (const unsigned char)0x13
-#define LEN_FIRMWAREREV             (const unsigned short)3
+#define MID_REQDATALENGTH           (unsigned char)0x0A
+#define MID_DATALENGTH              (unsigned char)0x0B
+#define LEN_DATALENGTH              (unsigned short)2
+#define MID_REQCONFIGURATION        (unsigned char)0x0C
+#define MID_CONFIGURATION           (unsigned char)0x0D
+#define LEN_CONFIGURATION           (unsigned short)118
+#define MID_RESTOREFACTORYDEF       (unsigned char)0x0E
+#define MID_RESTOREFACTORYDEFACK    (unsigned char)0x0F
+
+#define MID_GOTOMEASUREMENT         (unsigned char)0x10
+#define MID_GOTOMEASUREMENTACK      (unsigned char)0x11
+#define MID_REQFWREV                (unsigned char)0x12
+#define MID_FIRMWAREREV             (unsigned char)0x13
+#define LEN_FIRMWAREREV             (unsigned short)3
         // XbusMaster
-#define MID_REQBTDISABLE            (const unsigned char)0x14
-#define MID_REQBTDISABLEACK         (const unsigned char)0x15
-#define MID_DISABLEBT               (const unsigned char)0x14
-#define MID_DISABLEBTACK            (const unsigned char)0x15
-#define MID_REQOPMODE               (const unsigned char)0x16
-#define MID_REQOPMODEACK            (const unsigned char)0x17
-#define MID_SETOPMODE               (const unsigned char)0x16
-#define MID_SETOPMODEACK            (const unsigned char)0x17
+#define MID_REQBTDISABLE            (unsigned char)0x14
+#define MID_REQBTDISABLEACK         (unsigned char)0x15
+#define MID_DISABLEBT               (unsigned char)0x14
+#define MID_DISABLEBTACK            (unsigned char)0x15
+#define MID_REQOPMODE               (unsigned char)0x16
+#define MID_REQOPMODEACK            (unsigned char)0x17
+#define MID_SETOPMODE               (unsigned char)0x16
+#define MID_SETOPMODEACK            (unsigned char)0x17
         // End XbusMaster
-#define MID_REQBAUDRATE             (const unsigned char)0x18
-#define MID_REQBAUDRATEACK          (const unsigned char)0x19
-#define LEN_BAUDRATE                (const unsigned short)1
-#define MID_SETBAUDRATE             (const unsigned char)0x18
-#define MID_SETBAUDRATEACK          (const unsigned char)0x19
+#define MID_REQBAUDRATE             (unsigned char)0x18
+#define MID_REQBAUDRATEACK          (unsigned char)0x19
+#define LEN_BAUDRATE                (unsigned short)1
+#define MID_SETBAUDRATE             (unsigned char)0x18
+#define MID_SETBAUDRATEACK          (unsigned char)0x19
         // XbusMaster
-#define MID_REQSYNCMODE             (const unsigned char)0x1A
-#define MID_REQSYNCMODEACK          (const unsigned char)0x1B
-#define MID_SETSYNCMODE             (const unsigned char)0x1A
-#define MID_SETSYNCMODEACK          (const unsigned char)0x1B
+#define MID_REQSYNCMODE             (unsigned char)0x1A
+#define MID_REQSYNCMODEACK          (unsigned char)0x1B
+#define MID_SETSYNCMODE             (unsigned char)0x1A
+#define MID_SETSYNCMODEACK          (unsigned char)0x1B
         // End XbusMaster
-#define MID_REQPRODUCTCODE          (const unsigned char)0x1C
-#define MID_PRODUCTCODE             (const unsigned char)0x1D
-
-#define MID_REQOUTPUTMODE           (const unsigned char)0xD0
-#define MID_REQOUTPUTMODEACK        (const unsigned char)0xD1
-#define LEN_OUTPUTMODE              (const unsigned short)2
-#define MID_SETOUTPUTMODE           (const unsigned char)0xD0
-#define MID_SETOUTPUTMODEACK        (const unsigned char)0xD1
-
-#define MID_REQOUTPUTSETTINGS       (const unsigned char)0xD2
-#define MID_REQOUTPUTSETTINGSACK    (const unsigned char)0xD3
-#define LEN_OUTPUTSETTINGS          (const unsigned short)4
-#define MID_SETOUTPUTSETTINGS       (const unsigned char)0xD2
-#define MID_SETOUTPUTSETTINGSACK    (const unsigned char)0xD3
-
-#define MID_REQOUTPUTSKIPFACTOR     (const unsigned char)0xD4
-#define MID_REQOUTPUTSKIPFACTORACK  (const unsigned char)0xD5
-#define LEN_OUTPUTSKIPFACTOR        (const unsigned short)2
-#define MID_SETOUTPUTSKIPFACTOR     (const unsigned char)0xD4
-#define MID_SETOUTPUTSKIPFACTORACK  (const unsigned char)0xD5
-
-#define MID_REQSYNCINSETTINGS       (const unsigned char)0xD6
-#define MID_REQSYNCINSETTINGSACK    (const unsigned char)0xD7
-#define LEN_SYNCINMODE              (const unsigned short)2
-#define LEN_SYNCINSKIPFACTOR        (const unsigned short)2
-#define LEN_SYNCINOFFSET            (const unsigned short)4
-#define MID_SETSYNCINSETTINGS       (const unsigned char)0xD6
-#define MID_SETSYNCINSETTINGSACK    (const unsigned char)0xD7
-
-#define MID_REQSYNCOUTSETTINGS      (const unsigned char)0xD8
-#define MID_REQSYNCOUTSETTINGSACK   (const unsigned char)0xD9
-#define LEN_SYNCOUTMODE             (const unsigned short)2
-#define LEN_SYNCOUTSKIPFACTOR       (const unsigned short)2
-#define LEN_SYNCOUTOFFSET           (const unsigned short)4
-#define LEN_SYNCOUTPULSEWIDTH       (const unsigned short)4
-#define MID_SETSYNCOUTSETTINGS      (const unsigned char)0xD8
-#define MID_SETSYNCOUTSETTINGSACK   (const unsigned char)0xD9
-
-#define MID_REQERRORMODE            (const unsigned char)0xDA
-#define MID_REQERRORMODEACK         (const unsigned char)0xDB
-#define LEN_ERRORMODE               (const unsigned short)2
-#define MID_SETERRORMODE            (const unsigned char)0xDA
-#define MID_SETERRORMODEACK         (const unsigned char)0xDB
-
-#define MID_REQTRANSMITDELAY        (const unsigned char)0xDC
-#define MID_REQTRANSMITDELAYACK     (const unsigned char)0xDD
-#define LEN_TRANSMITDELAY           (const unsigned short)2
-#define MID_SETTRANSMITDELAY        (const unsigned char)0xDC
-#define MID_SETTRANSMITDELAYACK     (const unsigned char)0xDD
+#define MID_REQPRODUCTCODE          (unsigned char)0x1C
+#define MID_PRODUCTCODE             (unsigned char)0x1D
+
+#define MID_REQOUTPUTMODE           (unsigned char)0xD0
+#define MID_REQOUTPUTMODEACK        (unsigned char)0xD1
+#define LEN_OUTPUTMODE              (unsigned short)2
+#define MID_SETOUTPUTMODE           (unsigned char)0xD0
+#define MID_SETOUTPUTMODEACK        (unsigned char)0xD1
+
+#define MID_REQOUTPUTSETTINGS       (unsigned char)0xD2
+#define MID_REQOUTPUTSETTINGSACK    (unsigned char)0xD3
+#define LEN_OUTPUTSETTINGS          (unsigned short)4
+#define MID_SETOUTPUTSETTINGS       (unsigned char)0xD2
+#define MID_SETOUTPUTSETTINGSACK    (unsigned char)0xD3
+
+#define MID_REQOUTPUTSKIPFACTOR     (unsigned char)0xD4
+#define MID_REQOUTPUTSKIPFACTORACK  (unsigned char)0xD5
+#define LEN_OUTPUTSKIPFACTOR        (unsigned short)2
+#define MID_SETOUTPUTSKIPFACTOR     (unsigned char)0xD4
+#define MID_SETOUTPUTSKIPFACTORACK  (unsigned char)0xD5
+
+#define MID_REQSYNCINSETTINGS       (unsigned char)0xD6
+#define MID_REQSYNCINSETTINGSACK    (unsigned char)0xD7
+#define LEN_SYNCINMODE              (unsigned short)2
+#define LEN_SYNCINSKIPFACTOR        (unsigned short)2
+#define LEN_SYNCINOFFSET            (unsigned short)4
+#define MID_SETSYNCINSETTINGS       (unsigned char)0xD6
+#define MID_SETSYNCINSETTINGSACK    (unsigned char)0xD7
+
+#define MID_REQSYNCOUTSETTINGS      (unsigned char)0xD8
+#define MID_REQSYNCOUTSETTINGSACK   (unsigned char)0xD9
+#define LEN_SYNCOUTMODE             (unsigned short)2
+#define LEN_SYNCOUTSKIPFACTOR       (unsigned short)2
+#define LEN_SYNCOUTOFFSET           (unsigned short)4
+#define LEN_SYNCOUTPULSEWIDTH       (unsigned short)4
+#define MID_SETSYNCOUTSETTINGS      (unsigned char)0xD8
+#define MID_SETSYNCOUTSETTINGSACK   (unsigned char)0xD9
+
+#define MID_REQERRORMODE            (unsigned char)0xDA
+#define MID_REQERRORMODEACK         (unsigned char)0xDB
+#define LEN_ERRORMODE               (unsigned short)2
+#define MID_SETERRORMODE            (unsigned char)0xDA
+#define MID_SETERRORMODEACK         (unsigned char)0xDB
+
+#define MID_REQTRANSMITDELAY        (unsigned char)0xDC
+#define MID_REQTRANSMITDELAYACK     (unsigned char)0xDD
+#define LEN_TRANSMITDELAY           (unsigned short)2
+#define MID_SETTRANSMITDELAY        (unsigned char)0xDC
+#define MID_SETTRANSMITDELAYACK     (unsigned char)0xDD
 
         // Xbus Master
-#define MID_REQXMERRORMODE          (const unsigned char)0x82
-#define MID_REQXMERRORMODEACK       (const unsigned char)0x83
-#define LEN_XMERRORMODE             (const unsigned short)2
-#define MID_SETXMERRORMODE          (const unsigned char)0x82
-#define MID_SETXMERRORMODEACK       (const unsigned char)0x83
-
-#define MID_REQBUFFERSIZE           (const unsigned char)0x84
-#define MID_REQBUFFERSIZEACK        (const unsigned char)0x85
-#define LEN_BUFFERSIZE              (const unsigned short)2
-#define MID_SETBUFFERSIZE           (const unsigned char)0x84
-#define MID_SETBUFFERSIZEACK        (const unsigned char)0x85
+#define MID_REQXMERRORMODE          (unsigned char)0x82
+#define MID_REQXMERRORMODEACK       (unsigned char)0x83
+#define LEN_XMERRORMODE             (unsigned short)2
+#define MID_SETXMERRORMODE          (unsigned char)0x82
+#define MID_SETXMERRORMODEACK       (unsigned char)0x83
+
+#define MID_REQBUFFERSIZE           (unsigned char)0x84
+#define MID_REQBUFFERSIZEACK        (unsigned char)0x85
+#define LEN_BUFFERSIZE              (unsigned short)2
+#define MID_SETBUFFERSIZE           (unsigned char)0x84
+#define MID_SETBUFFERSIZEACK        (unsigned char)0x85
         // End Xbus Master
 
-#define MID_REQHEADING              (const unsigned char)0x82
-#define MID_REQHEADINGACK           (const unsigned char)0x83
-#define LEN_HEADING                 (const unsigned short)4
-#define MID_SETHEADING              (const unsigned char)0x82
-#define MID_SETHEADINGACK           (const unsigned char)0x83
+#define MID_REQHEADING              (unsigned char)0x82
+#define MID_REQHEADINGACK           (unsigned char)0x83
+#define LEN_HEADING                 (unsigned short)4
+#define MID_SETHEADING              (unsigned char)0x82
+#define MID_SETHEADINGACK           (unsigned char)0x83
 
-#define MID_REQLOCATIONID           (const unsigned char)0x84
-#define MID_REQLOCATIONIDACK        (const unsigned char)0x85
-#define LEN_LOCATIONID              (const unsigned short)2
-#define MID_SETLOCATIONID           (const unsigned char)0x84
-#define MID_SETLOCATIONIDACK        (const unsigned char)0x85
+#define MID_REQLOCATIONID           (unsigned char)0x84
+#define MID_REQLOCATIONIDACK        (unsigned char)0x85
+#define LEN_LOCATIONID              (unsigned short)2
+#define MID_SETLOCATIONID           (unsigned char)0x84
+#define MID_SETLOCATIONIDACK        (unsigned char)0x85
 
-#define MID_REQEXTOUTPUTMODE        (const unsigned char)0x86
-#define MID_REQEXTOUTPUTMODEACK     (const unsigned char)0x87
-#define LEN_EXTOUTPUTMODE           (const unsigned short)2
-#define MID_SETEXTOUTPUTMODE        (const unsigned char)0x86
-#define MID_SETEXTOUTPUTMODEACK     (const unsigned char)0x87
+#define MID_REQEXTOUTPUTMODE        (unsigned char)0x86
+#define MID_REQEXTOUTPUTMODEACK     (unsigned char)0x87
+#define LEN_EXTOUTPUTMODE           (unsigned short)2
+#define MID_SETEXTOUTPUTMODE        (unsigned char)0x86
+#define MID_SETEXTOUTPUTMODEACK     (unsigned char)0x87
 
         // XbusMaster
-#define MID_REQBATLEVEL             (const unsigned char)0x88
-#define MID_BATLEVEL                (const unsigned char)0x89
+#define MID_REQBATLEVEL             (unsigned char)0x88
+#define MID_BATLEVEL                (unsigned char)0x89
         // End XbusMaster
 
-#define MID_REQINITTRACKMODE        (const unsigned char)0x88
-#define MID_REQINITTRACKMODEACK     (const unsigned char)0x89
-#define LEN_INITTRACKMODE           (const unsigned short)2
-#define MID_SETINITTRACKMODE        (const unsigned char)0x88
-#define MID_SETINITTRACKMODEACK     (const unsigned char)0x89
+#define MID_REQINITTRACKMODE        (unsigned char)0x88
+#define MID_REQINITTRACKMODEACK     (unsigned char)0x89
+#define LEN_INITTRACKMODE           (unsigned short)2
+#define MID_SETINITTRACKMODE        (unsigned char)0x88
+#define MID_SETINITTRACKMODEACK     (unsigned char)0x89
 
-#define MID_STOREFILTERSTATE        (const unsigned char)0x8A
-#define MID_STOREFILTERSTATEACK     (const unsigned char)0x8B
+#define MID_STOREFILTERSTATE        (unsigned char)0x8A
+#define MID_STOREFILTERSTATEACK     (unsigned char)0x8B
 
         // Measurement state
-#define MID_GOTOCONFIG              (const unsigned char)0x30
-#define MID_GOTOCONFIGACK           (const unsigned char)0x31
-#define MID_BUSDATA                 (const unsigned char)0x32
-#define MID_MTDATA                  (const unsigned char)0x32
+#define MID_GOTOCONFIG              (unsigned char)0x30
+#define MID_GOTOCONFIGACK           (unsigned char)0x31
+#define MID_BUSDATA                 (unsigned char)0x32
+#define MID_MTDATA                  (unsigned char)0x32
 
         // Manual
-#define MID_PREPAREDATA             (const unsigned char)0x32
-#define MID_REQDATA                 (const unsigned char)0x34
-#define MID_REQDATAACK              (const unsigned char)0x35
+#define MID_PREPAREDATA             (unsigned char)0x32
+#define MID_REQDATA                 (unsigned char)0x34
+#define MID_REQDATAACK              (unsigned char)0x35
 
         // MTData defines
         // Length of data blocks in bytes
-#define LEN_RAWDATA                 (const unsigned short)20
-#define LEN_CALIBDATA               (const unsigned short)36
-#define LEN_CALIB_ACCDATA           (const unsigned short)12
-#define LEN_CALIB_GYRDATA           (const unsigned short)12
-#define LEN_CALIB_MAGDATA           (const unsigned short)12
-#define LEN_ORIENT_QUATDATA         (const unsigned short)16
-#define LEN_ORIENT_EULERDATA        (const unsigned short)12
-#define LEN_ORIENT_MATRIXDATA       (const unsigned short)36
-#define LEN_SAMPLECNT               (const unsigned short)2
-#define LEN_TEMPDATA                (const unsigned short)4
+#define LEN_RAWDATA                 (unsigned short)20
+#define LEN_CALIBDATA               (unsigned short)36
+#define LEN_CALIB_ACCDATA           (unsigned short)12
+#define LEN_CALIB_GYRDATA           (unsigned short)12
+#define LEN_CALIB_MAGDATA           (unsigned short)12
+#define LEN_ORIENT_QUATDATA         (unsigned short)16
+#define LEN_ORIENT_EULERDATA        (unsigned short)12
+#define LEN_ORIENT_MATRIXDATA       (unsigned short)36
+#define LEN_SAMPLECNT               (unsigned short)2
+#define LEN_TEMPDATA                (unsigned short)4
 
         // Length of data blocks in floats
-#define LEN_CALIBDATA_FLT           (const unsigned short)9
-#define LEN_ORIENT_QUATDATA_FLT     (const unsigned short)4
-#define LEN_ORIENT_EULERDATA_FLT    (const unsigned short)3
-#define LEN_ORIENT_MATRIXDATA_FLT   (const unsigned short)9
+#define LEN_CALIBDATA_FLT           (unsigned short)9
+#define LEN_ORIENT_QUATDATA_FLT     (unsigned short)4
+#define LEN_ORIENT_EULERDATA_FLT    (unsigned short)3
+#define LEN_ORIENT_MATRIXDATA_FLT   (unsigned short)9
 
         // Indices of fields in DATA field of MTData message in bytes
         // use in combination with LEN_CALIB etc
@@ -508,27 +508,27 @@ namespace IMU
 #define INVALIDSETTINGVALUE         0xFFFFFFFF
 
         // Valid in all states
-#define MID_RESET                   (const unsigned char)0x40
-#define MID_RESETACK                (const unsigned char)0x41
-#define MID_ERROR                   (const unsigned char)0x42
-#define LEN_ERROR                   (const unsigned short)1
+#define MID_RESET                   (unsigned char)0x40
+#define MID_RESETACK                (unsigned char)0x41
+#define MID_ERROR                   (unsigned char)0x42
+#define LEN_ERROR                   (unsigned short)1
         // XbusMaster
-#define MID_XMPWROFF                (const unsigned char)0x44
+#define MID_XMPWROFF                (unsigned char)0x44
         // End XbusMaster
 
-#define MID_REQFILTERSETTINGS       (const unsigned char)0xA0
-#define MID_REQFILTERSETTINGSACK    (const unsigned char)0xA1
-#define LEN_FILTERSETTINGS          (const unsigned short)4
-#define MID_SETFILTERSETTINGS       (const unsigned char)0xA0
-#define MID_SETFILTERSETTINGSACK    (const unsigned char)0xA1
-#define MID_REQAMD                  (const unsigned char)0xA2
-#define MID_REQAMDACK               (const unsigned char)0xA3
-#define LEN_AMD                     (const unsigned short)2
-#define MID_SETAMD                  (const unsigned char)0xA2
-#define MID_SETAMDACK               (const unsigned char)0xA3
-#define MID_RESETORIENTATION        (const unsigned char)0xA4
-#define MID_RESETORIENTATIONACK     (const unsigned char)0xA5
-#define LEN_RESETORIENTATION        (const unsigned short)2
+#define MID_REQFILTERSETTINGS       (unsigned char)0xA0
+#define MID_REQFILTERSETTINGSACK    (unsigned char)0xA1
+#define LEN_FILTERSETTINGS          (unsigned short)4
+#define MID_SETFILTERSETTINGS       (unsigned char)0xA0
+#define MID_SETFILTERSETTINGSACK    (unsigned char)0xA1
+#define MID_REQAMD                  (unsigned char)0xA2
+#define MID_REQAMDACK               (unsigned char)0xA3
+#define LEN_AMD                     (unsigned short)2
+#define MID_SETAMD                  (unsigned char)0xA2
+#define MID_SETAMDACK               (unsigned char)0xA3
+#define MID_RESETORIENTATION        (unsigned char)0xA4
+#define MID_RESETORIENTATIONACK     (unsigned char)0xA5
+#define LEN_RESETORIENTATION        (unsigned short)2
 
         // All Messages
         // WakeUp state messages
diff --git a/source/RobotAPI/gui-plugins/DebugDrawerViewer/CMakeLists.txt b/source/RobotAPI/gui-plugins/DebugDrawerViewer/CMakeLists.txt
index 485f1ddde149f153d5b5b11ffb4765c8a080f60d..544e42db7e2fc93ae9da5a5981bfcb091b968866 100644
--- a/source/RobotAPI/gui-plugins/DebugDrawerViewer/CMakeLists.txt
+++ b/source/RobotAPI/gui-plugins/DebugDrawerViewer/CMakeLists.txt
@@ -2,7 +2,7 @@ armarx_set_target("DebugDrawerViewerGuiPlugin")
 
 set(SOURCES DebugDrawerViewerGuiPlugin.cpp DebugDrawerViewerWidgetController.cpp)
 set(HEADERS DebugDrawerViewerGuiPlugin.h   DebugDrawerViewerWidgetController.h)
-set(GUI_MOC_HDRS DebugDrawerViewerWidgetController.h)
+set(GUI_MOC_HDRS DebugDrawerViewerGuiPlugin.h DebugDrawerViewerWidgetController.h)
 set(GUI_UIS DebugDrawerViewerWidget.ui)
 
 set(COMPONENT_LIBS DebugDrawer)
diff --git a/source/RobotAPI/gui-plugins/DebugDrawerViewer/DebugDrawerViewerGuiPlugin.h b/source/RobotAPI/gui-plugins/DebugDrawerViewer/DebugDrawerViewerGuiPlugin.h
index 25c3246e68a33dd37fdebb6c1f908da2932ad642..4dc7932a617d5b7a48f00e7fa0f372904e91d6c4 100644
--- a/source/RobotAPI/gui-plugins/DebugDrawerViewer/DebugDrawerViewerGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/DebugDrawerViewer/DebugDrawerViewerGuiPlugin.h
@@ -39,7 +39,9 @@ namespace armarx
     class ARMARXCOMPONENT_IMPORT_EXPORT DebugDrawerViewerGuiPlugin:
         public armarx::ArmarXGuiPlugin
     {
+        Q_OBJECT
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+        Q_INTERFACES(ArmarXGuiInterface)
         Q_PLUGIN_METADATA(IID "ArmarXGuiInterface/1.00")
 #endif
     public:
diff --git a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h
index 1ce93d8fd833546d26a3a03748f03f827bce02e6..84bfe72bae61a634ac7471a7def83b6c088d029b 100644
--- a/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/HandUnitPlugin/HandUnitGuiPlugin.h
@@ -52,7 +52,9 @@ namespace armarx
     class HandUnitGuiPlugin :
         public ArmarXGuiPlugin
     {
+        Q_OBJECT
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+        Q_INTERFACES(ArmarXGuiInterface)
         Q_PLUGIN_METADATA(IID "ArmarXGuiInterface/1.00")
 #endif
     public:
diff --git a/source/RobotAPI/gui-plugins/HapticUnitPlugin/HapticUnitGuiPlugin.h b/source/RobotAPI/gui-plugins/HapticUnitPlugin/HapticUnitGuiPlugin.h
index e91226fbc96234c7f0c11f5af72bc73dbd340659..d44551c516d3109aaa1eafea89984cbc8e8ea3a6 100644
--- a/source/RobotAPI/gui-plugins/HapticUnitPlugin/HapticUnitGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/HapticUnitPlugin/HapticUnitGuiPlugin.h
@@ -48,7 +48,9 @@ namespace armarx
     class HapticUnitGuiPlugin :
         public ArmarXGuiPlugin
     {
+        Q_OBJECT
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+        Q_INTERFACES(ArmarXGuiInterface)
         Q_PLUGIN_METADATA(IID "ArmarXGuiInterface/1.00")
 #endif
     public:
diff --git a/source/RobotAPI/gui-plugins/HomogeneousMatrixCalculator/CMakeLists.txt b/source/RobotAPI/gui-plugins/HomogeneousMatrixCalculator/CMakeLists.txt
index c82e46125f351ddb1ff5ab5de3054e3ee057fd2e..e20e7bf935408a9c7a0d7d3eb0c2e671188b724a 100644
--- a/source/RobotAPI/gui-plugins/HomogeneousMatrixCalculator/CMakeLists.txt
+++ b/source/RobotAPI/gui-plugins/HomogeneousMatrixCalculator/CMakeLists.txt
@@ -22,7 +22,7 @@ set(HEADERS
     HomogeneousMatrixCalculatorWidgetController.h
 )
 
-set(GUI_MOC_HDRS HomogeneousMatrixCalculatorWidgetController.h)
+set(GUI_MOC_HDRS HomogeneousMatrixCalculatorGuiPlugin.h HomogeneousMatrixCalculatorWidgetController.h)
 set(GUI_UIS HomogeneousMatrixCalculatorWidget.ui)
 set(GUI_RCS icons.qrc)
 
diff --git a/source/RobotAPI/gui-plugins/HomogeneousMatrixCalculator/HomogeneousMatrixCalculatorGuiPlugin.h b/source/RobotAPI/gui-plugins/HomogeneousMatrixCalculator/HomogeneousMatrixCalculatorGuiPlugin.h
index d36d3b1eddb6e7d7272b03efe3977e69c51b5a40..7d54a3399171d0626fdddcf5968e0cda748cf6dc 100644
--- a/source/RobotAPI/gui-plugins/HomogeneousMatrixCalculator/HomogeneousMatrixCalculatorGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/HomogeneousMatrixCalculator/HomogeneousMatrixCalculatorGuiPlugin.h
@@ -39,7 +39,9 @@ namespace armarx
     class ARMARXCOMPONENT_IMPORT_EXPORT HomogeneousMatrixCalculatorGuiPlugin:
         public armarx::ArmarXGuiPlugin
     {
+        Q_OBJECT
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+        Q_INTERFACES(ArmarXGuiInterface)
         Q_PLUGIN_METADATA(IID "ArmarXGuiInterface/1.00")
 #endif
     public:
diff --git a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h
index 4f8b7b3352826a52112ee1712ab6119b0edb8c12..6a86de2dcb7e62d43115ee4bb914d9b262fdc86c 100644
--- a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h
@@ -72,7 +72,9 @@ namespace armarx
     class KinematicUnitGuiPlugin :
         public ArmarXGuiPlugin
     {
+        Q_OBJECT
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+        Q_INTERFACES(ArmarXGuiInterface)
         Q_PLUGIN_METADATA(IID "ArmarXGuiInterface/1.00")
 #endif
     public:
diff --git a/source/RobotAPI/gui-plugins/LaserScannerPlugin/CMakeLists.txt b/source/RobotAPI/gui-plugins/LaserScannerPlugin/CMakeLists.txt
index da9cd6bc3e82a071a09b63d982f6fdbf2af9e3b9..83a541da34230c8763977adcb49e82b5605ebe56 100644
--- a/source/RobotAPI/gui-plugins/LaserScannerPlugin/CMakeLists.txt
+++ b/source/RobotAPI/gui-plugins/LaserScannerPlugin/CMakeLists.txt
@@ -2,7 +2,7 @@ armarx_set_target("LaserScannerPluginGuiPlugin")
 
 set(SOURCES LaserScannerPluginGuiPlugin.cpp LaserScannerPluginWidgetController.cpp)
 set(HEADERS LaserScannerPluginGuiPlugin.h   LaserScannerPluginWidgetController.h)
-set(GUI_MOC_HDRS LaserScannerPluginWidgetController.h)
+set(GUI_MOC_HDRS LaserScannerPluginGuiPlugin.h   LaserScannerPluginWidgetController.h)
 set(GUI_UIS      LaserScannerPluginWidget.ui)
 
 set(COMPONENT_LIBS RobotAPICore SimpleConfigDialog)
diff --git a/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginGuiPlugin.h b/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginGuiPlugin.h
index baec543bd565bff609fb1ac2210533e7bb02f4ed..29630e9e5923531d7f4468caede62c65d4473fd7 100644
--- a/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/LaserScannerPlugin/LaserScannerPluginGuiPlugin.h
@@ -39,7 +39,9 @@ namespace armarx
     class ARMARXCOMPONENT_IMPORT_EXPORT LaserScannerPluginGuiPlugin:
         public armarx::ArmarXGuiPlugin
     {
+        Q_OBJECT
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+        Q_INTERFACES(ArmarXGuiInterface)
         Q_PLUGIN_METADATA(IID "ArmarXGuiInterface/1.00")
 #endif
     public:
diff --git a/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h b/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h
index 370b02cd4d4e29ad000c037cd39569da123d5d40..dd629640d34bfca89d30ee23c04a20c3d98146ac 100644
--- a/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h
@@ -72,7 +72,9 @@ namespace armarx
     class PlatformUnitGuiPlugin :
         public ArmarXGuiPlugin
     {
+        Q_OBJECT
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+        Q_INTERFACES(ArmarXGuiInterface)
         Q_PLUGIN_METADATA(IID "ArmarXGuiInterface/1.00")
 #endif
     public:
diff --git a/source/RobotAPI/gui-plugins/RobotUnitPlugin/CMakeLists.txt b/source/RobotAPI/gui-plugins/RobotUnitPlugin/CMakeLists.txt
index c96b118c426dc15c5dbf99a54a23f2b840c58891..8acf13526082b0f2158ddee8a222583c41e32a78 100644
--- a/source/RobotAPI/gui-plugins/RobotUnitPlugin/CMakeLists.txt
+++ b/source/RobotAPI/gui-plugins/RobotUnitPlugin/CMakeLists.txt
@@ -22,6 +22,7 @@ set(HEADERS
 )
 
 set(GUI_MOC_HDRS
+    RobotUnitPluginGuiPlugin.h
     RobotUnitPlugin/RobotUnitPluginWidgetController.h
 
     QWidgets/RobotUnitWidgetBase.h
diff --git a/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.cpp b/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.cpp
index 9c46fca5746daea2af6d67f8078e3cbf67ec57f9..0d7911871493b5d79b86678631914ffd9f17da2b 100644
--- a/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.cpp
@@ -109,9 +109,9 @@ void RobotUnitPluginWidgetController::onConnectComponent()
 {
     robotUnitPrx = getProxy<RobotUnitInterfacePrx>(robotUnitProxyName);
     listenerTopicName = robotUnitPrx->getListenerTopicName();
-    onConnectTimerId = startTimer(100);
     usingTopic(listenerTopicName);
     updateToolBarActionCheckedState();
+    QMetaObject::invokeMethod(this, "startOnConnectTimer", Qt::QueuedConnection);
 }
 
 void RobotUnitPluginWidgetController::onDisconnectComponent()
@@ -156,7 +156,7 @@ QPointer<QWidget> RobotUnitPluginWidgetController::getCustomTitlebarWidget(QWidg
         showCDevs = new QAction {"Control Devices", customToolbar};
         showCDevs->setCheckable(true);
         showCDevs->setToolTip("Hide/Show the list of Control Devices");
-        connect(showCDevs, SIGNAL(toggled(bool)), widget.groupBoxCDev, SLOT(setShown(bool)));
+        connect(showCDevs, SIGNAL(toggled(bool)), widget.groupBoxCDev, SLOT(setVisible(bool)));
         customToolbar->addAction(showCDevs);
         customToolbar->addSeparator();
 
@@ -165,7 +165,7 @@ QPointer<QWidget> RobotUnitPluginWidgetController::getCustomTitlebarWidget(QWidg
         showSDevs = new QAction {"Sensor Devices", customToolbar};
         showSDevs->setCheckable(true);
         showSDevs->setToolTip("Hide/Show the list of Sensor Devices");
-        connect(showSDevs, SIGNAL(toggled(bool)), widget.groupBoxSDev, SLOT(setShown(bool)));
+        connect(showSDevs, SIGNAL(toggled(bool)), widget.groupBoxSDev, SLOT(setVisible(bool)));
         customToolbar->addAction(showSDevs);
         customToolbar->addSeparator();
 
@@ -174,7 +174,7 @@ QPointer<QWidget> RobotUnitPluginWidgetController::getCustomTitlebarWidget(QWidg
         showNJoint = new QAction {"NJointControllers", customToolbar};
         showNJoint->setCheckable(true);
         showNJoint->setToolTip("Hide/Show the list of NJointControllers");
-        connect(showNJoint, SIGNAL(toggled(bool)), widget.groupBoxNJointCtrl, SLOT(setShown(bool)));
+        connect(showNJoint, SIGNAL(toggled(bool)), widget.groupBoxNJointCtrl, SLOT(setVisible(bool)));
         customToolbar->addAction(showNJoint);
         customToolbar->addSeparator();
 
@@ -183,7 +183,7 @@ QPointer<QWidget> RobotUnitPluginWidgetController::getCustomTitlebarWidget(QWidg
         showNJointClasses = new QAction {"NJointController Classes", customToolbar};
         showNJointClasses->setCheckable(true);
         showNJointClasses->setToolTip("Hide/Show the list of NJointControllers Classes");
-        connect(showNJointClasses, SIGNAL(toggled(bool)), widget.groupBoxNJointCtrlClasses, SLOT(setShown(bool)));
+        connect(showNJointClasses, SIGNAL(toggled(bool)), widget.groupBoxNJointCtrlClasses, SLOT(setVisible(bool)));
         customToolbar->addAction(showNJointClasses);
         customToolbar->addSeparator();
 
@@ -249,6 +249,11 @@ void RobotUnitPluginWidgetController::writeLogClicked()
     robotUnitPrx->writeRecentIterationsToFile("/tmp/RobotUnitLog-{DateTime}");
 }
 
+void RobotUnitPluginWidgetController::startOnConnectTimer()
+{
+    onConnectTimerId = startTimer(100);
+}
+
 void RobotUnitPluginWidgetController::updateToolBarActionCheckedState()
 {
     if (customToolbar)
@@ -261,18 +266,18 @@ void RobotUnitPluginWidgetController::updateToolBarActionCheckedState()
 }
 
 
-void armarx::RobotUnitPluginWidgetController::timerEvent(QTimerEvent *)
+void armarx::RobotUnitPluginWidgetController::timerEvent(QTimerEvent*)
 {
-    if(!robotUnitPrx)
+    if (!robotUnitPrx)
     {
         killTimer(onConnectTimerId);
     }
-    if(robotUnitPrx->isRunning())
+    if (robotUnitPrx->isRunning())
     {
-        QMetaObject::invokeMethod(this, "refreshNJointControllersClicked", Qt::QueuedConnection);
-        QMetaObject::invokeMethod(this, "refreshNJointControllerClassesClicked", Qt::QueuedConnection);
-        QMetaObject::invokeMethod(this, "refreshControlDevicesClicked", Qt::QueuedConnection);
-        QMetaObject::invokeMethod(this, "refreshSensorDevicesClicked", Qt::QueuedConnection);
+        refreshNJointControllersClicked();
+        refreshNJointControllerClassesClicked();
+        refreshControlDevicesClicked();
+        refreshSensorDevicesClicked();
         killTimer(onConnectTimerId);
     }
 }
diff --git a/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.h b/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.h
index f5673acaad40bb761db47e5b8c4fcafb0db4a11d..094a95fc6f785af605f7016299e1fa8c62db188d 100644
--- a/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.h
+++ b/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPlugin/RobotUnitPluginWidgetController.h
@@ -136,6 +136,8 @@ namespace armarx
 
         void writeLogClicked();
 
+        void startOnConnectTimer();
+
     private:
         virtual void timerEvent(QTimerEvent*) override;
         void updateToolBarActionCheckedState();
diff --git a/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPluginGuiPlugin.h b/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPluginGuiPlugin.h
index 5765be2776c83ea333598d455716fa45eaec2060..3021b4d75bea3fd4ae9b4ea7eef086e319362a8c 100644
--- a/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPluginGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/RobotUnitPlugin/RobotUnitPluginGuiPlugin.h
@@ -39,7 +39,9 @@ namespace armarx
     class ARMARXCOMPONENT_IMPORT_EXPORT RobotUnitPluginGuiPlugin:
         public armarx::ArmarXGuiPlugin
     {
+        Q_OBJECT
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+        Q_INTERFACES(ArmarXGuiInterface)
         Q_PLUGIN_METADATA(IID "ArmarXGuiInterface/1.00")
 #endif
     public:
diff --git a/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerGuiPlugin.h b/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerGuiPlugin.h
index 217301da564f4d3d0a82cf6b673b6aa1fc8375d6..c88592c3a72852d43549ceca96d5a925e719574b 100644
--- a/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/RobotViewerPlugin/RobotViewerGuiPlugin.h
@@ -64,7 +64,9 @@ namespace armarx
     class RobotViewerGuiPlugin :
         public ArmarXGuiPlugin
     {
+        Q_OBJECT
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+        Q_INTERFACES(ArmarXGuiInterface)
         Q_PLUGIN_METADATA(IID "ArmarXGuiInterface/1.00")
 #endif
     public:
diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/CMakeLists.txt b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/CMakeLists.txt
index 71cd02600f6c542138f905613a4bd3e0e48c3d57..a9eb9a8d5a10012032f6f113f263f0c93634e211 100644
--- a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/CMakeLists.txt
+++ b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/CMakeLists.txt
@@ -33,6 +33,7 @@ set(HEADERS
 )
 
 set(GUI_MOC_HDRS
+    SensorActorWidgetsPlugin.h
     ArmarXTCPMover/TCPMover.h
     ArmarXTCPMover/TCPMoverConfigDialog.h
 )
diff --git a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/SensorActorWidgetsPlugin.h b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/SensorActorWidgetsPlugin.h
index fb7bec0c9496f9796177ee749f302cb9e1ed5607..995d9503c6a9f00e622b32f7654499a5d4678f65 100644
--- a/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/SensorActorWidgetsPlugin.h
+++ b/source/RobotAPI/gui-plugins/SensorActorWidgetsPlugin/SensorActorWidgetsPlugin.h
@@ -39,7 +39,9 @@ namespace armarx
     class ARMARXCOMPONENT_IMPORT_EXPORT SensorActorPlugin :
         public ArmarXGuiPlugin
     {
+        Q_OBJECT
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+        Q_INTERFACES(ArmarXGuiInterface)
         Q_PLUGIN_METADATA(IID "ArmarXGuiInterface/1.00")
 #endif
     public:
diff --git a/source/RobotAPI/gui-plugins/ViewSelection/CMakeLists.txt b/source/RobotAPI/gui-plugins/ViewSelection/CMakeLists.txt
index 66107b6876aab63067b216f06243c72ce5bf7720..ef5a076922ed38c9977120703849550fcaa4fc7f 100644
--- a/source/RobotAPI/gui-plugins/ViewSelection/CMakeLists.txt
+++ b/source/RobotAPI/gui-plugins/ViewSelection/CMakeLists.txt
@@ -2,7 +2,7 @@ armarx_set_target("ViewSelectionGuiPlugin")
 
 set(SOURCES ViewSelectionGuiPlugin.cpp ViewSelectionWidgetController.cpp ViewSelectionConfigDialog.cpp)
 set(HEADERS ViewSelectionGuiPlugin.h   ViewSelectionWidgetController.h   ViewSelectionConfigDialog.h)
-set(GUI_MOC_HDRS ViewSelectionWidgetController.h ViewSelectionConfigDialog.h)
+set(GUI_MOC_HDRS ViewSelectionGuiPlugin.h ViewSelectionWidgetController.h ViewSelectionConfigDialog.h)
 set(GUI_UIS ViewSelectionWidget.ui ViewSelectionConfigDialog.ui)
 
 # Add more libraries you depend on here, e.g. ${QT_LIBRARIES}.
diff --git a/source/RobotAPI/gui-plugins/ViewSelection/ViewSelectionGuiPlugin.h b/source/RobotAPI/gui-plugins/ViewSelection/ViewSelectionGuiPlugin.h
index 28596d8fc9ff46fb0a7759601f9c835d6a42af60..ec6e2923fd7897a10414ad015977d447554b1b57 100644
--- a/source/RobotAPI/gui-plugins/ViewSelection/ViewSelectionGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/ViewSelection/ViewSelectionGuiPlugin.h
@@ -39,7 +39,9 @@ namespace armarx
     class ARMARXCOMPONENT_IMPORT_EXPORT ViewSelectionGuiPlugin:
         public armarx::ArmarXGuiPlugin
     {
+        Q_OBJECT
 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+        Q_INTERFACES(ArmarXGuiInterface)
         Q_PLUGIN_METADATA(IID "ArmarXGuiInterface/1.00")
 #endif
     public:
diff --git a/source/RobotAPI/interface/core/PoseBaseStdOverloads.h b/source/RobotAPI/interface/core/PoseBaseStdOverloads.h
index ebeda958f088b2f07cfade5169e83b0bcf45561c..873c5033ff94fbca618ff37d57c4a0cd9187013d 100644
--- a/source/RobotAPI/interface/core/PoseBaseStdOverloads.h
+++ b/source/RobotAPI/interface/core/PoseBaseStdOverloads.h
@@ -25,6 +25,8 @@
 #ifndef _ARMARX_ROBOTAPI_POSE_SLICE_STD_OVERLOADS_
 #define _ARMARX_ROBOTAPI_POSE_SLICE_STD_OVERLOADS_
 
+#include <cmath>
+
 #include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
 
 namespace std
diff --git a/source/RobotAPI/interface/visualization/DebugDrawerInterfaceStdOverloads.h b/source/RobotAPI/interface/visualization/DebugDrawerInterfaceStdOverloads.h
index c9b027134878d5d0890ba036812584f04982a2b5..324d8a7f892a215be306c411abf17bc7e0cd379d 100644
--- a/source/RobotAPI/interface/visualization/DebugDrawerInterfaceStdOverloads.h
+++ b/source/RobotAPI/interface/visualization/DebugDrawerInterfaceStdOverloads.h
@@ -26,6 +26,7 @@
 #define _ARMARX_API_DEBUGDRAWERLAYER_SLICE_STD_OVERLOADS_
 
 #include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
+#include <cmath>
 
 namespace std
 {