diff --git a/data/RobotAPI/VariantInfo-RobotAPI.xml b/data/RobotAPI/VariantInfo-RobotAPI.xml
index 67402b87a4ef096bae111e5d84fe1b94b15ac193..8ff3d3ca8712e83ffb6599becc9492e776a7a177 100644
--- a/data/RobotAPI/VariantInfo-RobotAPI.xml
+++ b/data/RobotAPI/VariantInfo-RobotAPI.xml
@@ -210,7 +210,9 @@
             getterName="getDebugDrawerTopic"
             propertyName="DebugDrawerTopicName"
             propertyIsOptional="true"
-            propertyDefaultValue="DebugDrawerUpdates" />
+            propertyDefaultValue="DebugDrawerUpdates">
+            <library>DebugDrawer</library>
+        </Topic>
 
         <Topic include="RobotAPI/interface/speech/SpeechInterface.h"
             humanName="Text to Speech"
diff --git a/scenarios/KinematicSimulationArmar3/config/ConditionHandler.cfg b/scenarios/KinematicSimulationArmar3/config/ConditionHandler.cfg
index 7f9f11af5b9b683419b741b867a32b5f4f6a993a..ccb6c92ebf6d892778253a6a4f0e7945ce1d91ac 100644
--- a/scenarios/KinematicSimulationArmar3/config/ConditionHandler.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/ConditionHandler.cfg
@@ -1,47 +1,69 @@
 # ==================================================================
-# ArmarX properties
+# ConditionHandler properties
 # ==================================================================
 
-# ArmarX.CachePath:  Path for cache files
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
 #  Attributes:
-#  - Default:            ${HOME}/.armarx/mongo/.cache
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache
+# ArmarX.AdditionalPackages = Default value not mapped.
 
 
-# ArmarX.DataPath:  Semicolon-separated search list for data files
+# ArmarX.ApplicationName:  Application name
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.DataPath = ""
+# ArmarX.ApplicationName = ""
 
 
-# ArmarX.Verbosity:  Global logging level for whole application
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
 #  Attributes:
-#  - Default:            Verbose
+#  - Default:            mongo/.cache
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
-# ArmarX.Verbosity = Verbose
+# ArmarX.CachePath = mongo/.cache
 
 
-# ArmarX.DisableLogging:  Turn logging off in whole application
+# ArmarX.ConditionHandler.EnableProfiling:  enable profiler which is used for logging performance events
 #  Attributes:
 #  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {0, 1, false, no, true, yes}
-# ArmarX.DisableLogging = 0
+# ArmarX.ConditionHandler.EnableProfiling = 0
 
 
-# ArmarX.ApplicationName:  Application name
+# ArmarX.ConditionHandler.HistoryLength:  Length of condition history kept by the conditionhandler
+#  Attributes:
+#  - Default:            1000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ConditionHandler.HistoryLength = 1000
+
+
+# ArmarX.ConditionHandler.MinimumLoggingLevel:  Local logging level only for this component
+#  Attributes:
+#  - Default:            Undefined
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ConditionHandler.MinimumLoggingLevel = Undefined
+
+
+# ArmarX.ConditionHandler.ObjectName:  Name of IceGrid well-known object
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ApplicationName = ""
+# ArmarX.ConditionHandler.ObjectName = ""
+
+
+# ArmarX.ConditionHandler.Observers:  Comma seperated observer list
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+ArmarX.ConditionHandler.Observers = Armar3KinematicUnitObserver,SystemObserver
 
 
 # ArmarX.Config:  Comma-separated list of configuration files 
@@ -52,41 +74,102 @@
 # ArmarX.Config = ""
 
 
-# ==================================================================
-# ArmarX.ConditionHandler properties
-# ==================================================================
+# ArmarX.DataPath:  Semicolon-separated search list for data files
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DataPath = ""
 
-# ArmarX.ConditionHandler.HistoryLength:  Length of condition history kept by the conditionhandler
+
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
 #  Attributes:
-#  - Default:            1000
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ConditionHandler.HistoryLength = 1000
+# ArmarX.DefaultPackages = Default value not mapped.
 
 
-# ArmarX.ConditionHandler.Observers:  Comma seperated observer list
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
 #  Attributes:
-#  - Default:            ""
+#  - Default:            ./config/dependencies.cfg
 #  - Case sensitivity:   no
 #  - Required:           no
-ArmarX.ConditionHandler.Observers = Armar3KinematicUnitObserver,SystemObserver
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
 
 
-# ArmarX.ConditionHandler.MinimumLoggingLevel:  Local logging level only for this component
+# ArmarX.DisableLogging:  Turn logging off in whole application
 #  Attributes:
-#  - Default:            Undefined
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
-# ArmarX.ConditionHandler.MinimumLoggingLevel = Undefined
+# ArmarX.DisableLogging = 0
 
 
-# ArmarX.ConditionHandler.ObjectName:  Name of IceGrid well-known object
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.EnableProfiling = 0
+
+
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RedirectStdout = 1
+
+
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
+#  Attributes:
+#  - Default:            3000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
+
+
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
+
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ConditionHandler.ObjectName = ""
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
 
 
 
diff --git a/scenarios/KinematicSimulationArmar3/config/DebugObserver.cfg b/scenarios/KinematicSimulationArmar3/config/DebugObserver.cfg
index 1806791a06702d24ed5865914f404304f4244269..30ca8b9cbf171bc6a84d0db34faa962fffeca42b 100644
--- a/scenarios/KinematicSimulationArmar3/config/DebugObserver.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/DebugObserver.cfg
@@ -1,75 +1,92 @@
 # ==================================================================
-# ArmarX properties
+# DebugObserver properties
 # ==================================================================
 
-# ArmarX.CachePath:  Path for cache files
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
 #  Attributes:
-#  - Default:            ${HOME}/.armarx/mongo/.cache
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache
+# ArmarX.AdditionalPackages = Default value not mapped.
 
 
-# ArmarX.DataPath:  Semicolon-separated search list for data files
+# ArmarX.ApplicationName:  Application name
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.DataPath = ""
+# ArmarX.ApplicationName = ""
 
 
-# ArmarX.Verbosity:  Global logging level for whole application
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
 #  Attributes:
-#  - Default:            Verbose
+#  - Default:            mongo/.cache
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
-# ArmarX.Verbosity = Verbose
+# ArmarX.CachePath = mongo/.cache
 
 
-# ArmarX.DisableLogging:  Turn logging off in whole application
+# ArmarX.Config:  Comma-separated list of configuration files 
 #  Attributes:
-#  - Default:            0
+#  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {0, 1, false, no, true, yes}
-# ArmarX.DisableLogging = 0
+# ArmarX.Config = ""
 
 
-# ArmarX.ApplicationName:  Application name
+# ArmarX.DataPath:  Semicolon-separated search list for data files
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ApplicationName = ""
+# ArmarX.DataPath = ""
 
 
-# ArmarX.DatapathConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+# ArmarX.DebugObserver.CreateUpdateFrequenciesChannel:  If true, an additional channel is created that shows the update frequency of every other channel in that observer.
 #  Attributes:
-#  - Default:            ./config/datapath.cfg
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.DatapathConfig = ./config/datapath.cfg
+# ArmarX.DebugObserver.CreateUpdateFrequenciesChannel = 0
 
 
-# ArmarX.Config:  Comma-separated list of configuration files 
+# ArmarX.DebugObserver.DebugObserverTopicName:  Name of the topic the DebugObserver listens on
 #  Attributes:
-#  - Default:            ""
+#  - Default:            DebugObserver
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.Config = ""
+# ArmarX.DebugObserver.DebugObserverTopicName = DebugObserver
 
 
-# ==================================================================
-# ArmarX.DebugObserver properties
-# ==================================================================
+# ArmarX.DebugObserver.EnableProfiling:  enable profiler which is used for logging performance events
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DebugObserver.EnableProfiling = 0
+
+
+# ArmarX.DebugObserver.MaxHistoryRecordFrequency:  The Observer history is written with this maximum frequency. Everything faster is being skipped.
+#  Attributes:
+#  - Default:            50
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DebugObserver.MaxHistoryRecordFrequency = 50
+
+
+# ArmarX.DebugObserver.MaxHistorySize:  Maximum number of entries in the Observer history
+#  Attributes:
+#  - Default:            5000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DebugObserver.MaxHistorySize = 5000
+
 
 # ArmarX.DebugObserver.MinimumLoggingLevel:  Local logging level only for this component
 #  Attributes:
 #  - Default:            Undefined
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
 # ArmarX.DebugObserver.MinimumLoggingLevel = Undefined
 
 
@@ -81,4 +98,94 @@
 # ArmarX.DebugObserver.ObjectName = ""
 
 
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
+#  Attributes:
+#  - Default:            Default value not mapped.
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DefaultPackages = Default value not mapped.
+
+
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+#  Attributes:
+#  - Default:            ./config/dependencies.cfg
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
+
+
+# ArmarX.DisableLogging:  Turn logging off in whole application
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DisableLogging = 0
+
+
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.EnableProfiling = 0
+
+
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RedirectStdout = 1
+
+
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
+#  Attributes:
+#  - Default:            3000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
+
+
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
+
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
+
+
 
diff --git a/scenarios/KinematicSimulationArmar3/config/ForceTorqueObserver.cfg b/scenarios/KinematicSimulationArmar3/config/ForceTorqueObserver.cfg
index af8cc946bcaac72b3fbd8f0d070a34e85f30c798..86c5d879809ebb1639f982ac81d438dd2681c22a 100644
--- a/scenarios/KinematicSimulationArmar3/config/ForceTorqueObserver.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/ForceTorqueObserver.cfg
@@ -1,13 +1,37 @@
 # ==================================================================
-# ArmarX properties
+# ForceTorqueObserver properties
 # ==================================================================
 
-# ArmarX.CachePath:  Path for cache files
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
 #  Attributes:
-#  - Default:            ${HOME}/.armarx/mongo/.cache
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache
+# ArmarX.AdditionalPackages = Default value not mapped.
+
+
+# ArmarX.ApplicationName:  Application name
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ApplicationName = ""
+
+
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
+#  Attributes:
+#  - Default:            mongo/.cache
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.CachePath = mongo/.cache
+
+
+# ArmarX.Config:  Comma-separated list of configuration files 
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Config = ""
 
 
 # ArmarX.DataPath:  Semicolon-separated search list for data files
@@ -18,13 +42,20 @@
 # ArmarX.DataPath = ""
 
 
-# ArmarX.Verbosity:  Global logging level for whole application
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
 #  Attributes:
-#  - Default:            Verbose
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
-# ArmarX.Verbosity = Verbose
+# ArmarX.DefaultPackages = Default value not mapped.
+
+
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+#  Attributes:
+#  - Default:            ./config/dependencies.cfg
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
 
 
 # ArmarX.DisableLogging:  Turn logging off in whole application
@@ -32,37 +63,32 @@
 #  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {0, 1, false, no, true, yes}
 # ArmarX.DisableLogging = 0
 
 
-# ArmarX.ApplicationName:  Application name
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
 #  Attributes:
-#  - Default:            ""
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ApplicationName = ""
+# ArmarX.EnableProfiling = 0
 
 
-# ArmarX.DatapathConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+# ArmarX.ForceTorqueUnitObserver.CreateUpdateFrequenciesChannel:  If true, an additional channel is created that shows the update frequency of every other channel in that observer.
 #  Attributes:
-#  - Default:            ./config/datapath.cfg
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.DatapathConfig = ./config/datapath.cfg
+# ArmarX.ForceTorqueUnitObserver.CreateUpdateFrequenciesChannel = 0
 
 
-# ArmarX.Config:  Comma-separated list of configuration files 
+# ArmarX.ForceTorqueUnitObserver.EnableProfiling:  enable profiler which is used for logging performance events
 #  Attributes:
-#  - Default:            ""
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.Config = ""
-
+# ArmarX.ForceTorqueUnitObserver.EnableProfiling = 0
 
-# ==================================================================
-# ArmarX.ForceTorqueUnitObserver properties
-# ==================================================================
 
 # ArmarX.ForceTorqueUnitObserver.ForceTorqueTopicName:  Name of the ForceTorqueUnit Topic
 #  Attributes:
@@ -71,13 +97,52 @@
 ArmarX.ForceTorqueUnitObserver.ForceTorqueTopicName = "ForceTorqueValues"
 
 
+# ArmarX.ForceTorqueUnitObserver.ForceVisualizerFactor:  Factor by which the forces are scaled to fit into 0..1 (only for visulization) 
+#  Attributes:
+#  - Default:            0.00999999978
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitObserver.ForceVisualizerFactor = 0.00999999978
+
+
+# ArmarX.ForceTorqueUnitObserver.MaxExpectedTorqueValue:  The torque visualization circle reaches the full circle at this value
+#  Attributes:
+#  - Default:            30
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitObserver.MaxExpectedTorqueValue = 30
+
+
+# ArmarX.ForceTorqueUnitObserver.MaxForceArrowLength:  Length of the force visu arrow in mm
+#  Attributes:
+#  - Default:            150
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitObserver.MaxForceArrowLength = 150
+
+
+# ArmarX.ForceTorqueUnitObserver.MaxHistoryRecordFrequency:  The Observer history is written with this maximum frequency. Everything faster is being skipped.
+#  Attributes:
+#  - Default:            50
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitObserver.MaxHistoryRecordFrequency = 50
+
+
+# ArmarX.ForceTorqueUnitObserver.MaxHistorySize:  Maximum number of entries in the Observer history
+#  Attributes:
+#  - Default:            5000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitObserver.MaxHistorySize = 5000
+
+
 # ArmarX.ForceTorqueUnitObserver.MinimumLoggingLevel:  Local logging level only for this component
 #  Attributes:
 #  - Default:            Undefined
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
-# ArmarX.ForceTorqueUnitObserver.MinimumLoggingLevel = Verbose
+# ArmarX.ForceTorqueUnitObserver.MinimumLoggingLevel = Undefined
 
 
 # ArmarX.ForceTorqueUnitObserver.ObjectName:  Name of IceGrid well-known object
@@ -88,4 +153,110 @@ ArmarX.ForceTorqueUnitObserver.ForceTorqueTopicName = "ForceTorqueValues"
 ArmarX.ForceTorqueUnitObserver.ObjectName = "Armar3ForceTorqueObserver"
 
 
+# ArmarX.ForceTorqueUnitObserver.RobotStateComponentName:  Name of the RobotStateComponent that should be used
+#  Attributes:
+#  - Default:            RobotStateComponent
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitObserver.RobotStateComponentName = RobotStateComponent
+
+
+# ArmarX.ForceTorqueUnitObserver.RobotUpdateFrequency:  Update frequency of the local robot
+#  Attributes:
+#  - Default:            50
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitObserver.RobotUpdateFrequency = 50
+
+
+# ArmarX.ForceTorqueUnitObserver.SensorRobotNodeMapping:  Triplets of sensor node name, target frame robot node name and optional channel name: Sensor values are also reported in the frame of the robot node: e. g. SensorName:RobotNodeName[:ChannelName],SensorName2:RobotNodeName2[:ChannelName2]
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitObserver.SensorRobotNodeMapping = ""
+
+
+# ArmarX.ForceTorqueUnitObserver.TorqueVisuDeadZone:  Torques below this threshold are not visualized.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitObserver.TorqueVisuDeadZone = 1
+
+
+# ArmarX.ForceTorqueUnitObserver.VisualizeForce:  Visualize the force with an arrow in the debug drawer
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitObserver.VisualizeForce = 1
+
+
+# ArmarX.ForceTorqueUnitObserver.VisualizeForceUpdateFrequency:  Frequency with which the force is visualized
+#  Attributes:
+#  - Default:            30
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitObserver.VisualizeForceUpdateFrequency = 30
+
+
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RedirectStdout = 1
+
+
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
+#  Attributes:
+#  - Default:            3000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
+
+
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
+
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
+
+
 
diff --git a/scenarios/KinematicSimulationArmar3/config/ForceTorqueUnitSimulation.cfg b/scenarios/KinematicSimulationArmar3/config/ForceTorqueUnitSimulation.cfg
index dc2e7d1d839ada379e0fcb89e89a4c5f2a08f7be..e6524d2d96df86cba8d66e01cf28e476e91d151d 100644
--- a/scenarios/KinematicSimulationArmar3/config/ForceTorqueUnitSimulation.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/ForceTorqueUnitSimulation.cfg
@@ -1,82 +1,92 @@
 # ==================================================================
-# ArmarX properties
+# ForceTorqueUnitSimulation properties
 # ==================================================================
 
-# ArmarX.CachePath:  Path for cache files
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
 #  Attributes:
-#  - Default:            ${HOME}/.armarx/mongo/.cache
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache
+# ArmarX.AdditionalPackages = Default value not mapped.
 
 
-# ArmarX.DataPath:  Semicolon-separated search list for data files
+# ArmarX.ApplicationName:  Application name
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.DataPath = ""
+# ArmarX.ApplicationName = ""
 
 
-# ArmarX.Verbosity:  Global logging level for whole application
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
 #  Attributes:
-#  - Default:            Verbose
+#  - Default:            mongo/.cache
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
-# ArmarX.Verbosity = Verbose
+# ArmarX.CachePath = mongo/.cache
 
 
-# ArmarX.DisableLogging:  Turn logging off in whole application
+# ArmarX.Config:  Comma-separated list of configuration files 
 #  Attributes:
-#  - Default:            0
+#  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {0, 1, false, no, true, yes}
-# ArmarX.DisableLogging = 0
+# ArmarX.Config = ""
 
 
-# ArmarX.ApplicationName:  Application name
+# ArmarX.DataPath:  Semicolon-separated search list for data files
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ApplicationName = ""
+# ArmarX.DataPath = ""
 
 
-# ArmarX.DatapathConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
 #  Attributes:
-#  - Default:            ./config/datapath.cfg
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.DatapathConfig = ./config/datapath.cfg
+# ArmarX.DefaultPackages = Default value not mapped.
 
 
-# ArmarX.Config:  Comma-separated list of configuration files 
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
 #  Attributes:
-#  - Default:            ""
+#  - Default:            ./config/dependencies.cfg
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.Config = ""
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
 
 
-# ==================================================================
-# ArmarX.ForceTorqueUnitSimulation properties
-# ==================================================================
+# ArmarX.DisableLogging:  Turn logging off in whole application
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DisableLogging = 0
 
-# ArmarX.ForceTorqueUnitSimulation.IntervalMs:  The time in milliseconds between two calls to the simulation method.
+
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
 #  Attributes:
-#  - Default:            10
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ForceTorqueUnitSimulation.IntervalMs = 10
+# ArmarX.EnableProfiling = 0
 
 
-# ArmarX.ForceTorqueUnitSimulation.SensorNames:  simulated sensor name
+# ArmarX.ForceTorqueUnitSimulation.AgentName:  name of the robot agent
 #  Attributes:
 #  - Case sensitivity:   no
 #  - Required:           yes
-ArmarX.ForceTorqueUnitSimulation.SensorNames = TCP L, TCP R
+ArmarX.ForceTorqueUnitSimulation.AgentName = Armar3
+
+
+# ArmarX.ForceTorqueUnitSimulation.EnableProfiling:  enable profiler which is used for logging performance events
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ForceTorqueUnitSimulation.EnableProfiling = 0
 
 
 # ArmarX.ForceTorqueUnitSimulation.ForceTorqueTopicName:  Name of the topic on which the sensor values are provided
@@ -87,11 +97,12 @@ ArmarX.ForceTorqueUnitSimulation.SensorNames = TCP L, TCP R
 # ArmarX.ForceTorqueUnitSimulation.ForceTorqueTopicName = ForceTorqueValues
 
 
-# ArmarX.ForceTorqueUnitSimulation.AgentName:  Name of the agent for which the sensor values are provided
+# ArmarX.ForceTorqueUnitSimulation.IntervalMs:  The time in milliseconds between two calls to the simulation method.
 #  Attributes:
+#  - Default:            50
 #  - Case sensitivity:   no
-#  - Required:           yes
-ArmarX.ForceTorqueUnitSimulation.AgentName = Armar3
+#  - Required:           no
+# ArmarX.ForceTorqueUnitSimulation.IntervalMs = 50
 
 
 # ArmarX.ForceTorqueUnitSimulation.MinimumLoggingLevel:  Local logging level only for this component
@@ -99,7 +110,6 @@ ArmarX.ForceTorqueUnitSimulation.AgentName = Armar3
 #  - Default:            Undefined
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
 # ArmarX.ForceTorqueUnitSimulation.MinimumLoggingLevel = Undefined
 
 
@@ -111,4 +121,69 @@ ArmarX.ForceTorqueUnitSimulation.AgentName = Armar3
 # ArmarX.ForceTorqueUnitSimulation.ObjectName = ""
 
 
+# ArmarX.ForceTorqueUnitSimulation.SensorNames:  simulated sensor name. seperated by comma
+#  Attributes:
+#  - Case sensitivity:   no
+#  - Required:           yes
+ArmarX.ForceTorqueUnitSimulation.SensorNames = TCP L, TCP R
+
+
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RedirectStdout = 1
+
+
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
+#  Attributes:
+#  - Default:            3000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
+
+
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
+
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
+
+
 
diff --git a/scenarios/KinematicSimulationArmar3/config/Global.cfg b/scenarios/KinematicSimulationArmar3/config/Global.cfg
index 77927624693f052359958908ce6d8a1bb0e6bc4f..28ed7cfec548f151a0e2b96369cc7cdaf914f974 100644
--- a/scenarios/KinematicSimulationArmar3/config/Global.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/Global.cfg
@@ -1,5 +1,39 @@
+# ==================================================================
+# Global Config from Scenario KinematicSimulationArmar3
+# ==================================================================
+
+# ArmarX.DisableLogging:  Custom Property
+#  Attributes:
+#  - Default:            ::NOT_DEFINED::
+#  - Case sensitivity:   no
+#  - Required:           no
 ArmarX.DisableLogging = no
-VisionX.DisableLogging = no
 
+
+# ArmarX.GlobalMinimumLoggingLevel:  Custom Property
+#  Attributes:
+#  - Default:            ::NOT_DEFINED::
+#  - Case sensitivity:   no
+#  - Required:           no
 ArmarX.GlobalMinimumLoggingLevel = Verbose
+
+
+
+
+
+# VisionX.DisableLogging:  Custom Property
+#  Attributes:
+#  - Default:            ::NOT_DEFINED::
+#  - Case sensitivity:   no
+#  - Required:           no
+VisionX.DisableLogging = no
+
+
+# VisionX.GlobalMinimumLoggingLevel:  Custom Property
+#  Attributes:
+#  - Default:            ::NOT_DEFINED::
+#  - Case sensitivity:   no
+#  - Required:           no
 VisionX.GlobalMinimumLoggingLevel = Verbose
+
+
diff --git a/scenarios/KinematicSimulationArmar3/config/HandUnitSimulation.LeftHand.cfg b/scenarios/KinematicSimulationArmar3/config/HandUnitSimulation.LeftHand.cfg
index fc4b9bb96110823d5858d9e083b3e46cbd09bad6..9cf0208643841d6a2491ebde55faa76dd19c736a 100644
--- a/scenarios/KinematicSimulationArmar3/config/HandUnitSimulation.LeftHand.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/HandUnitSimulation.LeftHand.cfg
@@ -1,13 +1,37 @@
 # ==================================================================
-# ArmarX properties
+# HandUnitSimulation properties
 # ==================================================================
 
-# ArmarX.CachePath:  Path for cache files
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
 #  Attributes:
-#  - Default:            ${HOME}/.armarx/mongo/.cache
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache
+# ArmarX.AdditionalPackages = Default value not mapped.
+
+
+# ArmarX.ApplicationName:  Application name
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ApplicationName = ""
+
+
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
+#  Attributes:
+#  - Default:            mongo/.cache
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.CachePath = mongo/.cache
+
+
+# ArmarX.Config:  Comma-separated list of configuration files 
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Config = ""
 
 
 # ArmarX.DataPath:  Semicolon-separated search list for data files
@@ -18,13 +42,20 @@
 # ArmarX.DataPath = ""
 
 
-# ArmarX.Verbosity:  Global logging level for whole application
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
 #  Attributes:
-#  - Default:            Verbose
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
-# ArmarX.Verbosity = Verbose
+# ArmarX.DefaultPackages = Default value not mapped.
+
+
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+#  Attributes:
+#  - Default:            ./config/dependencies.cfg
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
 
 
 # ArmarX.DisableLogging:  Turn logging off in whole application
@@ -32,43 +63,37 @@
 #  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {0, 1, false, no, true, yes}
 # ArmarX.DisableLogging = 0
 
 
-# ArmarX.ApplicationName:  Application name
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
 #  Attributes:
-#  - Default:            ""
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ApplicationName = ""
+# ArmarX.EnableProfiling = 0
 
 
-# ArmarX.DatapathConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+# ArmarX.HandUnitSimulation.EnableProfiling:  enable profiler which is used for logging performance events
 #  Attributes:
-#  - Default:            ./config/datapath.cfg
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.DatapathConfig = ./config/datapath.cfg
+# ArmarX.HandUnitSimulation.EnableProfiling = 0
 
 
-# ArmarX.Config:  Comma-separated list of configuration files 
+# ArmarX.HandUnitSimulation.EndeffectorName:  Name of the endeffector as stored in the XML file (will publish values on EndeffectorName + 'State')
 #  Attributes:
-#  - Default:            ""
 #  - Case sensitivity:   no
-#  - Required:           no
-# ArmarX.Config = ""
-
+#  - Required:           yes
+ArmarX.HandUnitSimulation.EndeffectorName = TCP L
 
-# ==================================================================
-# ArmarX.HandUnitSimulation properties
-# ==================================================================
 
-# ArmarX.HandUnitSimulation.RobotFileName:  VirtualRobot XML file in which the endeffector is is stored.
+# ArmarX.HandUnitSimulation.KinematicUnitName:  Name of the kinematic unit that should be used
 #  Attributes:
 #  - Case sensitivity:   no
 #  - Required:           yes
-ArmarX.HandUnitSimulation.RobotFileName = RobotAPI/robots/Armar3/ArmarIII.xml
+# ArmarX.HandUnitSimulation.KinematicUnitName = ::_NOT_SET_::
 
 
 # ArmarX.HandUnitSimulation.MinimumLoggingLevel:  Local logging level only for this component
@@ -76,23 +101,80 @@ ArmarX.HandUnitSimulation.RobotFileName = RobotAPI/robots/Armar3/ArmarIII.xml
 #  - Default:            Undefined
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
 # ArmarX.HandUnitSimulation.MinimumLoggingLevel = Undefined
 
 
-# ArmarX.HandUnitSimulation.EndeffectorName:  Name of the endeffector as stored in the XML file (will publish values on EndeffectorName + 'State')
+# ArmarX.HandUnitSimulation.ObjectName:  Name of IceGrid well-known object
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+ArmarX.HandUnitSimulation.ObjectName = "LeftHandUnit"
+
+
+# ArmarX.HandUnitSimulation.RobotFileName:  VirtualRobot XML file in which the endeffector is is stored.
 #  Attributes:
 #  - Case sensitivity:   no
 #  - Required:           yes
-ArmarX.HandUnitSimulation.EndeffectorName = TCP L
+ArmarX.HandUnitSimulation.RobotFileName = RobotAPI/robots/Armar3/ArmarIII.xml
 
 
-# ArmarX.HandUnitSimulation.ObjectName:  Name of IceGrid well-known object
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RedirectStdout = 1
+
+
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
+#  Attributes:
+#  - Default:            3000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
+
+
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
+
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-ArmarX.HandUnitSimulation.ObjectName = "LeftHandUnit"
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
 
 
 
diff --git a/scenarios/KinematicSimulationArmar3/config/HandUnitSimulation.RightHand.cfg b/scenarios/KinematicSimulationArmar3/config/HandUnitSimulation.RightHand.cfg
index 822c3975756a884597e1b14b6515d29804b8e79f..46e2603eb8329dcbe10438b3aabed646d616da61 100644
--- a/scenarios/KinematicSimulationArmar3/config/HandUnitSimulation.RightHand.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/HandUnitSimulation.RightHand.cfg
@@ -1,13 +1,37 @@
 # ==================================================================
-# ArmarX properties
+# HandUnitSimulation properties
 # ==================================================================
 
-# ArmarX.CachePath:  Path for cache files
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
 #  Attributes:
-#  - Default:            ${HOME}/.armarx/mongo/.cache
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache
+# ArmarX.AdditionalPackages = Default value not mapped.
+
+
+# ArmarX.ApplicationName:  Application name
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ApplicationName = ""
+
+
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
+#  Attributes:
+#  - Default:            mongo/.cache
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.CachePath = mongo/.cache
+
+
+# ArmarX.Config:  Comma-separated list of configuration files 
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Config = ""
 
 
 # ArmarX.DataPath:  Semicolon-separated search list for data files
@@ -18,13 +42,20 @@
 # ArmarX.DataPath = ""
 
 
-# ArmarX.Verbosity:  Global logging level for whole application
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
 #  Attributes:
-#  - Default:            Verbose
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
-# ArmarX.Verbosity = Verbose
+# ArmarX.DefaultPackages = Default value not mapped.
+
+
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+#  Attributes:
+#  - Default:            ./config/dependencies.cfg
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
 
 
 # ArmarX.DisableLogging:  Turn logging off in whole application
@@ -32,43 +63,37 @@
 #  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {0, 1, false, no, true, yes}
 # ArmarX.DisableLogging = 0
 
 
-# ArmarX.ApplicationName:  Application name
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
 #  Attributes:
-#  - Default:            ""
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ApplicationName = ""
+# ArmarX.EnableProfiling = 0
 
 
-# ArmarX.DatapathConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+# ArmarX.HandUnitSimulation.EnableProfiling:  enable profiler which is used for logging performance events
 #  Attributes:
-#  - Default:            ./config/datapath.cfg
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.DatapathConfig = ./config/datapath.cfg
+# ArmarX.HandUnitSimulation.EnableProfiling = 0
 
 
-# ArmarX.Config:  Comma-separated list of configuration files 
+# ArmarX.HandUnitSimulation.EndeffectorName:  Name of the endeffector as stored in the XML file (will publish values on EndeffectorName + 'State')
 #  Attributes:
-#  - Default:            ""
 #  - Case sensitivity:   no
-#  - Required:           no
-# ArmarX.Config = ""
-
+#  - Required:           yes
+ArmarX.HandUnitSimulation.EndeffectorName = TCP R
 
-# ==================================================================
-# ArmarX.HandUnitSimulation properties
-# ==================================================================
 
-# ArmarX.HandUnitSimulation.RobotFileName:  VirtualRobot XML file in which the endeffector is is stored.
+# ArmarX.HandUnitSimulation.KinematicUnitName:  Name of the kinematic unit that should be used
 #  Attributes:
 #  - Case sensitivity:   no
 #  - Required:           yes
-ArmarX.HandUnitSimulation.RobotFileName = RobotAPI/robots/Armar3/ArmarIII.xml
+# ArmarX.HandUnitSimulation.KinematicUnitName = ::_NOT_SET_::
 
 
 # ArmarX.HandUnitSimulation.MinimumLoggingLevel:  Local logging level only for this component
@@ -76,23 +101,80 @@ ArmarX.HandUnitSimulation.RobotFileName = RobotAPI/robots/Armar3/ArmarIII.xml
 #  - Default:            Undefined
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
 # ArmarX.HandUnitSimulation.MinimumLoggingLevel = Undefined
 
 
-# ArmarX.HandUnitSimulation.EndeffectorName:  Name of the endeffector as stored in the XML file (will publish values on EndeffectorName + 'State')
+# ArmarX.HandUnitSimulation.ObjectName:  Name of IceGrid well-known object
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+ArmarX.HandUnitSimulation.ObjectName = "RightHandUnit"
+
+
+# ArmarX.HandUnitSimulation.RobotFileName:  VirtualRobot XML file in which the endeffector is is stored.
 #  Attributes:
 #  - Case sensitivity:   no
 #  - Required:           yes
-ArmarX.HandUnitSimulation.EndeffectorName = TCP R
+ArmarX.HandUnitSimulation.RobotFileName = RobotAPI/robots/Armar3/ArmarIII.xml
 
 
-# ArmarX.HandUnitSimulation.ObjectName:  Name of IceGrid well-known object
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RedirectStdout = 1
+
+
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
+#  Attributes:
+#  - Default:            3000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
+
+
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
+
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-ArmarX.HandUnitSimulation.ObjectName = "RightHandUnit"
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
 
 
 
diff --git a/scenarios/KinematicSimulationArmar3/config/HeadIKUnit.cfg b/scenarios/KinematicSimulationArmar3/config/HeadIKUnit.cfg
index 8123d93084cae155a6f831c625e71a94031d50b2..907db9f10faa341d5d70595105ed4e34744ac9bb 100644
--- a/scenarios/KinematicSimulationArmar3/config/HeadIKUnit.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/HeadIKUnit.cfg
@@ -1,60 +1,78 @@
 # ==================================================================
-# ArmarX properties
+# HeadIKUnit properties
 # ==================================================================
 
-# ArmarX.CachePath:  Path for cache files
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
 #  Attributes:
-#  - Default:            ${HOME}/.armarx/mongo/.cache
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache
+# ArmarX.AdditionalPackages = Default value not mapped.
 
 
-# ArmarX.DataPath:  Semicolon-separated search list for data files
+# ArmarX.ApplicationName:  Application name
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.DataPath = ""
+# ArmarX.ApplicationName = ""
 
 
-# ArmarX.Verbosity:  Global logging level for whole application
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
 #  Attributes:
-#  - Default:            Verbose
+#  - Default:            mongo/.cache
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
-# ArmarX.Verbosity = Verbose
+# ArmarX.CachePath = mongo/.cache
 
 
-# ArmarX.DisableLogging:  Turn logging off in whole application
+# ArmarX.Config:  Comma-separated list of configuration files 
 #  Attributes:
-#  - Default:            0
+#  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {0, 1, false, no, true, yes}
-# ArmarX.DisableLogging = 0
+# ArmarX.Config = ""
 
 
-# ArmarX.ApplicationName:  Application name
+# ArmarX.DataPath:  Semicolon-separated search list for data files
 #  Attributes:
 #  - Default:            ""
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ApplicationName = ""
+# ArmarX.DataPath = ""
 
 
-# ArmarX.Config:  Comma-separated list of configuration files 
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
 #  Attributes:
-#  - Default:            ""
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.Config = ""
+# ArmarX.DefaultPackages = Default value not mapped.
 
 
-# ==================================================================
-# ArmarX.HeadIKUnit properties
-# ==================================================================
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+#  Attributes:
+#  - Default:            ./config/dependencies.cfg
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
+
+
+# ArmarX.DisableLogging:  Turn logging off in whole application
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DisableLogging = 0
+
+
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.EnableProfiling = 0
+
 
 # ArmarX.HeadIKUnit.CycleTime:  Cycle time of the tcp control in ms
 #  Attributes:
@@ -64,13 +82,20 @@
 # ArmarX.HeadIKUnit.CycleTime = 30
 
 
-# ArmarX.HeadIKUnit.MinimumLoggingLevel:  Local logging level only for this component
+# ArmarX.HeadIKUnit.EnableProfiling:  enable profiler which is used for logging performance events
 #  Attributes:
-#  - Default:            Undefined
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
-# ArmarX.HeadIKUnit.MinimumLoggingLevel = Undefined
+# ArmarX.HeadIKUnit.EnableProfiling = 0
+
+
+# ArmarX.HeadIKUnit.HeadIKUnitTopicName:  Name of the HeadIKUnit Topic
+#  Attributes:
+#  - Default:            HeadIKUnitTopic
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.HeadIKUnit.HeadIKUnitTopicName = HeadIKUnitTopic
 
 
 # ArmarX.HeadIKUnit.KinematicUnitName:  Name of the KinematicUnit Proxy
@@ -80,6 +105,14 @@
 ArmarX.HeadIKUnit.KinematicUnitName = "Armar3KinematicUnit"
 
 
+# ArmarX.HeadIKUnit.MinimumLoggingLevel:  Local logging level only for this component
+#  Attributes:
+#  - Default:            Undefined
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.HeadIKUnit.MinimumLoggingLevel = Undefined
+
+
 # ArmarX.HeadIKUnit.ObjectName:  Name of IceGrid well-known object
 #  Attributes:
 #  - Default:            ""
@@ -88,4 +121,78 @@ ArmarX.HeadIKUnit.KinematicUnitName = "Armar3KinematicUnit"
 # ArmarX.HeadIKUnit.ObjectName = ""
 
 
+# ArmarX.HeadIKUnit.RobotStateComponentName:  Name of the RobotStateComponent that should be used
+#  Attributes:
+#  - Default:            RobotStateComponent
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.HeadIKUnit.RobotStateComponentName = RobotStateComponent
+
+
+# ArmarX.HeadIKUnit.VisualizeIKTarget:  Visualize the current IK target using the debug drawer
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.HeadIKUnit.VisualizeIKTarget = 1
+
+
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RedirectStdout = 1
+
+
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
+#  Attributes:
+#  - Default:            3000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
+
+
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
+
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
+
+
 
diff --git a/scenarios/KinematicSimulationArmar3/config/KinematicUnitObserver.cfg b/scenarios/KinematicSimulationArmar3/config/KinematicUnitObserver.cfg
index 965659b905355228ac0967a8f86632ece380a6f3..27c3fd1cdcd500c43a9c7bb321a87810ddf34da5 100644
--- a/scenarios/KinematicSimulationArmar3/config/KinematicUnitObserver.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/KinematicUnitObserver.cfg
@@ -1,13 +1,37 @@
 # ==================================================================
-# ArmarX properties
+# KinematicUnitObserver properties
 # ==================================================================
 
-# ArmarX.CachePath:  Path for cache files
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
 #  Attributes:
-#  - Default:            ${HOME}/.armarx/mongo/.cache
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache
+# ArmarX.AdditionalPackages = Default value not mapped.
+
+
+# ArmarX.ApplicationName:  Application name
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ApplicationName = ""
+
+
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
+#  Attributes:
+#  - Default:            mongo/.cache
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.CachePath = mongo/.cache
+
+
+# ArmarX.Config:  Comma-separated list of configuration files 
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Config = ""
 
 
 # ArmarX.DataPath:  Semicolon-separated search list for data files
@@ -18,13 +42,20 @@
 # ArmarX.DataPath = ""
 
 
-# ArmarX.Verbosity:  Global logging level for whole application
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
 #  Attributes:
-#  - Default:            Verbose
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
-# ArmarX.Verbosity = Verbose
+# ArmarX.DefaultPackages = Default value not mapped.
+
+
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+#  Attributes:
+#  - Default:            ./config/dependencies.cfg
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
 
 
 # ArmarX.DisableLogging:  Turn logging off in whole application
@@ -32,42 +63,47 @@
 #  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {0, 1, false, no, true, yes}
 # ArmarX.DisableLogging = 0
 
 
-# ArmarX.ApplicationName:  Application name
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
 #  Attributes:
-#  - Default:            ""
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ApplicationName = ""
+# ArmarX.EnableProfiling = 0
 
 
-# ArmarX.Config:  Comma-separated list of configuration files 
+# ArmarX.KinematicUnitObserver.CreateUpdateFrequenciesChannel:  If true, an additional channel is created that shows the update frequency of every other channel in that observer.
 #  Attributes:
-#  - Default:            ""
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.Config = ""
+# ArmarX.KinematicUnitObserver.CreateUpdateFrequenciesChannel = 0
 
 
-# ==================================================================
-# ArmarX.KinematicUnitObserver properties
-# ==================================================================
+# ArmarX.KinematicUnitObserver.EnableProfiling:  enable profiler which is used for logging performance events
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.KinematicUnitObserver.EnableProfiling = 0
 
-# ArmarX.KinematicUnitObserver.RobotFileName:  Robot file name, e.g. robot_model.xml
+
+# ArmarX.KinematicUnitObserver.MaxHistoryRecordFrequency:  The Observer history is written with this maximum frequency. Everything faster is being skipped.
 #  Attributes:
+#  - Default:            50
 #  - Case sensitivity:   no
-#  - Required:           yes
-ArmarX.KinematicUnitObserver.RobotFileName = RobotAPI/robots/Armar3/ArmarIII.xml
+#  - Required:           no
+# ArmarX.KinematicUnitObserver.MaxHistoryRecordFrequency = 50
 
 
-# ArmarX.KinematicUnitObserver.RobotNodeSetName:  Robot node name
+# ArmarX.KinematicUnitObserver.MaxHistorySize:  Maximum number of entries in the Observer history
 #  Attributes:
+#  - Default:            5000
 #  - Case sensitivity:   no
-#  - Required:           yes
-ArmarX.KinematicUnitObserver.RobotNodeSetName = Robot
+#  - Required:           no
+# ArmarX.KinematicUnitObserver.MaxHistorySize = 5000
 
 
 # ArmarX.KinematicUnitObserver.MinimumLoggingLevel:  Local logging level only for this component
@@ -75,7 +111,6 @@ ArmarX.KinematicUnitObserver.RobotNodeSetName = Robot
 #  - Default:            Undefined
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
 # ArmarX.KinematicUnitObserver.MinimumLoggingLevel = Undefined
 
 
@@ -87,4 +122,84 @@ ArmarX.KinematicUnitObserver.RobotNodeSetName = Robot
 ArmarX.KinematicUnitObserver.ObjectName = Armar3KinematicUnitObserver
 
 
+# ArmarX.KinematicUnitObserver.RobotFileName:  Robot file name, e.g. robot_model.xml
+#  Attributes:
+#  - Case sensitivity:   no
+#  - Required:           yes
+ArmarX.KinematicUnitObserver.RobotFileName = RobotAPI/robots/Armar3/ArmarIII.xml
+
+
+# ArmarX.KinematicUnitObserver.RobotFileNameProject:  Project in which the robot filename is located (if robot is loaded from an external project)
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.KinematicUnitObserver.RobotFileNameProject = ""
+
+
+# ArmarX.KinematicUnitObserver.RobotNodeSetName:  Robot node set name as defined in robot xml file, e.g. 'LeftArm'
+#  Attributes:
+#  - Case sensitivity:   no
+#  - Required:           yes
+ArmarX.KinematicUnitObserver.RobotNodeSetName = Robot
+
+
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RedirectStdout = 1
+
+
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
+#  Attributes:
+#  - Default:            3000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
+
+
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
+
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
+
+
 
diff --git a/scenarios/KinematicSimulationArmar3/config/KinematicUnitSimulation.cfg b/scenarios/KinematicSimulationArmar3/config/KinematicUnitSimulation.cfg
index 6bef0c11bff2dfe917e56fb1445bf34a3f91b95c..58f4dfb11b39601df39f1461cd17dd9435783460 100644
--- a/scenarios/KinematicSimulationArmar3/config/KinematicUnitSimulation.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/KinematicUnitSimulation.cfg
@@ -1,13 +1,37 @@
 # ==================================================================
-# ArmarX properties
+# KinematicUnitSimulation properties
 # ==================================================================
 
-# ArmarX.CachePath:  Path for cache files
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
 #  Attributes:
-#  - Default:            ${HOME}/.armarx/mongo/.cache
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache
+# ArmarX.AdditionalPackages = Default value not mapped.
+
+
+# ArmarX.ApplicationName:  Application name
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ApplicationName = ""
+
+
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
+#  Attributes:
+#  - Default:            mongo/.cache
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.CachePath = mongo/.cache
+
+
+# ArmarX.Config:  Comma-separated list of configuration files 
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Config = ""
 
 
 # ArmarX.DataPath:  Semicolon-separated search list for data files
@@ -18,13 +42,20 @@
 # ArmarX.DataPath = ""
 
 
-# ArmarX.Verbosity:  Global logging level for whole application
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
 #  Attributes:
-#  - Default:            Verbose
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
-# ArmarX.Verbosity = Verbose
+# ArmarX.DefaultPackages = Default value not mapped.
+
+
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+#  Attributes:
+#  - Default:            ./config/dependencies.cfg
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
 
 
 # ArmarX.DisableLogging:  Turn logging off in whole application
@@ -32,30 +63,25 @@
 #  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {0, 1, false, no, true, yes}
 # ArmarX.DisableLogging = 0
 
 
-# ArmarX.ApplicationName:  Application name
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
 #  Attributes:
-#  - Default:            ""
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ApplicationName = ""
+# ArmarX.EnableProfiling = 0
 
 
-# ArmarX.Config:  Comma-separated list of configuration files 
+# ArmarX.KinematicUnitSimulation.EnableProfiling:  enable profiler which is used for logging performance events
 #  Attributes:
-#  - Default:            ""
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.Config = ""
+# ArmarX.KinematicUnitSimulation.EnableProfiling = 0
 
 
-# ==================================================================
-# ArmarX.KinematicUnitSimulation properties
-# ==================================================================
-
 # ArmarX.KinematicUnitSimulation.IntervalMs:  The time in milliseconds between two calls to the simulation method.
 #  Attributes:
 #  - Default:            10
@@ -64,18 +90,28 @@
 # ArmarX.KinematicUnitSimulation.IntervalMs = 10
 
 
-# ArmarX.KinematicUnitSimulation.RobotFileName:  Robot file name, e.g. robot_model.xml
+# ArmarX.KinematicUnitSimulation.Kd:  derivative gain of the PID position controller.
 #  Attributes:
+#  - Default:            0
 #  - Case sensitivity:   no
-#  - Required:           yes
-ArmarX.KinematicUnitSimulation.RobotFileName = RobotAPI/robots/Armar3/ArmarIII.xml
+#  - Required:           no
+# ArmarX.KinematicUnitSimulation.Kd = 0
 
 
-# ArmarX.KinematicUnitSimulation.RobotNodeSetName:  Robot node name
+# ArmarX.KinematicUnitSimulation.Ki:  integral gain of the PID position controller.
 #  Attributes:
+#  - Default:            0.00100000005
 #  - Case sensitivity:   no
-#  - Required:           yes
-ArmarX.KinematicUnitSimulation.RobotNodeSetName = Robot
+#  - Required:           no
+# ArmarX.KinematicUnitSimulation.Ki = 0.00100000005
+
+
+# ArmarX.KinematicUnitSimulation.Kp:  proportional gain of the PID position controller.
+#  Attributes:
+#  - Default:            3
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.KinematicUnitSimulation.Kp = 3
 
 
 # ArmarX.KinematicUnitSimulation.MinimumLoggingLevel:  Local logging level only for this component
@@ -83,10 +119,17 @@ ArmarX.KinematicUnitSimulation.RobotNodeSetName = Robot
 #  - Default:            Undefined
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
 # ArmarX.KinematicUnitSimulation.MinimumLoggingLevel = Undefined
 
 
+# ArmarX.KinematicUnitSimulation.Noise:  Gaussian noise is added to the velocity. Value in Degree
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.KinematicUnitSimulation.Noise = 0
+
+
 # ArmarX.KinematicUnitSimulation.ObjectName:  Name of IceGrid well-known object
 #  Attributes:
 #  - Default:            ""
@@ -95,4 +138,92 @@ ArmarX.KinematicUnitSimulation.RobotNodeSetName = Robot
 ArmarX.KinematicUnitSimulation.ObjectName = Armar3KinematicUnit
 
 
+# ArmarX.KinematicUnitSimulation.RobotFileName:  Robot file name, e.g. robot_model.xml
+#  Attributes:
+#  - Case sensitivity:   no
+#  - Required:           yes
+ArmarX.KinematicUnitSimulation.RobotFileName = RobotAPI/robots/Armar3/ArmarIII.xml
+
+
+# ArmarX.KinematicUnitSimulation.RobotFileNameProject:  Project in which the robot filename is located (if robot is loaded from an external project)
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.KinematicUnitSimulation.RobotFileNameProject = ""
+
+
+# ArmarX.KinematicUnitSimulation.RobotNodeSetName:  Robot node set name as defined in robot xml file, e.g. 'LeftArm'
+#  Attributes:
+#  - Case sensitivity:   no
+#  - Required:           yes
+ArmarX.KinematicUnitSimulation.RobotNodeSetName = Robot
+
+
+# ArmarX.KinematicUnitSimulation.UsePDControllerForJointControl:  If true a PD controller is also used in Position Mode instead of setting the joint angles instantly
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.KinematicUnitSimulation.UsePDControllerForJointControl = 1
+
+
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RedirectStdout = 1
+
+
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
+#  Attributes:
+#  - Default:            3000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
+
+
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
+
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
+
+
 
diff --git a/scenarios/KinematicSimulationArmar3/config/RobotStateComponent.cfg b/scenarios/KinematicSimulationArmar3/config/RobotStateComponent.cfg
index 74dae5bf009f993f0afb14a861e093fd4f135935..2176d818ff620825be25e4624e2a80a692342192 100644
--- a/scenarios/KinematicSimulationArmar3/config/RobotStateComponent.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/RobotStateComponent.cfg
@@ -1,4 +1,260 @@
-ArmarX.RobotStateComponent.RobotFileName=RobotAPI/robots/Armar3/ArmarIII.xml       	# model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
-ArmarX.RobotStateComponent.RobotNodeSetName=Robot					# node set name
-ArmarX.RobotStateComponent.ObjectName=RobotStateComponent      			# name of the ICE adapter
-ArmarX.RobotStateComponent.AgentName=Armar3
+# ==================================================================
+# RobotStateComponent properties
+# ==================================================================
+
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
+#  Attributes:
+#  - Default:            Default value not mapped.
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.AdditionalPackages = Default value not mapped.
+
+
+# ArmarX.ApplicationName:  Application name
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ApplicationName = ""
+
+
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
+#  Attributes:
+#  - Default:            mongo/.cache
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.CachePath = mongo/.cache
+
+
+# ArmarX.Config:  Comma-separated list of configuration files 
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Config = ""
+
+
+# ArmarX.DataPath:  Semicolon-separated search list for data files
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DataPath = ""
+
+
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
+#  Attributes:
+#  - Default:            Default value not mapped.
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DefaultPackages = Default value not mapped.
+
+
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+#  Attributes:
+#  - Default:            ./config/dependencies.cfg
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
+
+
+# ArmarX.DisableLogging:  Turn logging off in whole application
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DisableLogging = 0
+
+
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.EnableProfiling = 0
+
+
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RedirectStdout = 1
+
+
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
+#  Attributes:
+#  - Default:            3000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
+
+
+# ArmarX.RobotStateComponent.AgentName:  Name of the agent for which the sensor values are provided
+#  Attributes:
+#  - Case sensitivity:   no
+#  - Required:           yes
+ArmarX.RobotStateComponent.AgentName = Armar3
+
+
+# ArmarX.RobotStateComponent.EnableProfiling:  enable profiler which is used for logging performance events
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateComponent.EnableProfiling = 0
+
+
+# ArmarX.RobotStateComponent.HistoryLength:  Number of entries in the robot state history
+#  Attributes:
+#  - Default:            10000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateComponent.HistoryLength = 10000
+
+
+# ArmarX.RobotStateComponent.MinimumLoggingLevel:  Local logging level only for this component
+#  Attributes:
+#  - Default:            Undefined
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateComponent.MinimumLoggingLevel = Undefined
+
+
+# ArmarX.RobotStateComponent.ObjectName:  Name of IceGrid well-known object
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+ArmarX.RobotStateComponent.ObjectName = RobotStateComponent
+
+
+# ArmarX.RobotStateComponent.RobotFileName:  Filename of VirtualRobot robot model (e.g. robot_model.xml)
+#  Attributes:
+#  - Case sensitivity:   no
+#  - Required:           yes
+ArmarX.RobotStateComponent.RobotFileName = RobotAPI/robots/Armar3/ArmarIII.xml
+
+
+# ArmarX.RobotStateComponent.RobotModelScaling:  Scaling of the robot model
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateComponent.RobotModelScaling = 1
+
+
+# ArmarX.RobotStateComponent.RobotNodeSetName:  Set of nodes that is controlled by the KinematicUnit
+#  Attributes:
+#  - Case sensitivity:   no
+#  - Required:           yes
+ArmarX.RobotStateComponent.RobotNodeSetName = Robot
+
+
+# ArmarX.RobotStateComponent.RobotStateReportingTopic:  Name of the topic on which updates of the robot state are reported.
+#  Attributes:
+#  - Default:            RobotStateUpdates
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateComponent.RobotStateReportingTopic = RobotStateUpdates
+
+
+# ArmarX.RobotStateObserver.CreateUpdateFrequenciesChannel:  If true, an additional channel is created that shows the update frequency of every other channel in that observer.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateObserver.CreateUpdateFrequenciesChannel = 0
+
+
+# ArmarX.RobotStateObserver.EnableProfiling:  enable profiler which is used for logging performance events
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateObserver.EnableProfiling = 0
+
+
+# ArmarX.RobotStateObserver.MaxHistoryRecordFrequency:  The Observer history is written with this maximum frequency. Everything faster is being skipped.
+#  Attributes:
+#  - Default:            50
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateObserver.MaxHistoryRecordFrequency = 50
+
+
+# ArmarX.RobotStateObserver.MaxHistorySize:  Maximum number of entries in the Observer history
+#  Attributes:
+#  - Default:            5000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateObserver.MaxHistorySize = 5000
+
+
+# ArmarX.RobotStateObserver.MinimumLoggingLevel:  Local logging level only for this component
+#  Attributes:
+#  - Default:            Undefined
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateObserver.MinimumLoggingLevel = Undefined
+
+
+# ArmarX.RobotStateObserver.ObjectName:  Name of IceGrid well-known object
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateObserver.ObjectName = ""
+
+
+# ArmarX.RobotStateObserver.TCPsToReport:  comma seperated list of nodesets' endeffectors, which poses and velocities that should be reported. * for all, empty for none
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RobotStateObserver.TCPsToReport = ""
+
+
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
+
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
+
+
+
diff --git a/scenarios/KinematicSimulationArmar3/config/SystemObserver.cfg b/scenarios/KinematicSimulationArmar3/config/SystemObserver.cfg
index 7102973bdf909d22014a0c940bfa2b128fffeabd..2a0fc587080ec84309c0bb0423e64269501940ca 100644
--- a/scenarios/KinematicSimulationArmar3/config/SystemObserver.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/SystemObserver.cfg
@@ -1,13 +1,37 @@
 # ==================================================================
-# ArmarX properties
+# SystemObserver properties
 # ==================================================================
 
-# ArmarX.CachePath:  Path for cache files
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
 #  Attributes:
-#  - Default:            ${HOME}/.armarx/mongo/.cache
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache
+# ArmarX.AdditionalPackages = Default value not mapped.
+
+
+# ArmarX.ApplicationName:  Application name
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ApplicationName = ""
+
+
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
+#  Attributes:
+#  - Default:            mongo/.cache
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.CachePath = mongo/.cache
+
+
+# ArmarX.Config:  Comma-separated list of configuration files 
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Config = ""
 
 
 # ArmarX.DataPath:  Semicolon-separated search list for data files
@@ -18,13 +42,20 @@
 # ArmarX.DataPath = ""
 
 
-# ArmarX.Verbosity:  Global logging level for whole application
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
 #  Attributes:
-#  - Default:            Verbose
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
-# ArmarX.Verbosity = Verbose
+# ArmarX.DefaultPackages = Default value not mapped.
+
+
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+#  Attributes:
+#  - Default:            ./config/dependencies.cfg
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
 
 
 # ArmarX.DisableLogging:  Turn logging off in whole application
@@ -32,36 +63,78 @@
 #  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {0, 1, false, no, true, yes}
 # ArmarX.DisableLogging = 0
 
 
-# ArmarX.ApplicationName:  Application name
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
 #  Attributes:
-#  - Default:            ""
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ApplicationName = ""
+# ArmarX.EnableProfiling = 0
 
 
-# ArmarX.Config:  Comma-separated list of configuration files 
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
 #  Attributes:
-#  - Default:            ""
+#  - Default:            1
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.Config = ""
+# ArmarX.RedirectStdout = 1
 
 
-# ==================================================================
-# ArmarX.SystemObserver properties
-# ==================================================================
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
+#  Attributes:
+#  - Default:            3000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
+
+
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
+
+# ArmarX.SystemObserver.CreateUpdateFrequenciesChannel:  If true, an additional channel is created that shows the update frequency of every other channel in that observer.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.SystemObserver.CreateUpdateFrequenciesChannel = 0
+
+
+# ArmarX.SystemObserver.EnableProfiling:  enable profiler which is used for logging performance events
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.SystemObserver.EnableProfiling = 0
+
+
+# ArmarX.SystemObserver.MaxHistoryRecordFrequency:  The Observer history is written with this maximum frequency. Everything faster is being skipped.
+#  Attributes:
+#  - Default:            50
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.SystemObserver.MaxHistoryRecordFrequency = 50
+
+
+# ArmarX.SystemObserver.MaxHistorySize:  Maximum number of entries in the Observer history
+#  Attributes:
+#  - Default:            5000
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.SystemObserver.MaxHistorySize = 5000
+
 
 # ArmarX.SystemObserver.MinimumLoggingLevel:  Local logging level only for this component
 #  Attributes:
 #  - Default:            Undefined
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
 # ArmarX.SystemObserver.MinimumLoggingLevel = Undefined
 
 
@@ -73,4 +146,38 @@
 # ArmarX.SystemObserver.ObjectName = ""
 
 
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
+
+
 
diff --git a/scenarios/KinematicSimulationArmar3/config/TCPControlUnit.cfg b/scenarios/KinematicSimulationArmar3/config/TCPControlUnit.cfg
index 5a9d95709b50b5b2974814a9183e19e58b61a903..99111a63613a00d16d5bd0cda901a4126dcb77ef 100644
--- a/scenarios/KinematicSimulationArmar3/config/TCPControlUnit.cfg
+++ b/scenarios/KinematicSimulationArmar3/config/TCPControlUnit.cfg
@@ -1,13 +1,37 @@
 # ==================================================================
-# ArmarX properties
+# TCPControlUnit properties
 # ==================================================================
 
-# ArmarX.CachePath:  Path for cache files
+# ArmarX.AdditionalPackages:  List of additional ArmarX packages which should be in the list of default packages. If you have custom packages, which should be found by the gui or other apps, specify them here. Comma separated List.
 #  Attributes:
-#  - Default:            ${HOME}/.armarx/mongo/.cache
+#  - Default:            Default value not mapped.
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache
+# ArmarX.AdditionalPackages = Default value not mapped.
+
+
+# ArmarX.ApplicationName:  Application name
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ApplicationName = ""
+
+
+# ArmarX.CachePath:  Path for cache files. If relative path AND env. variable ARMARX_USER_CONFIG_DIR is set, the cache path will be made relative to ARMARX_USER_CONFIG_DIR. Otherwise if relative it will be relative to the default ArmarX config dir (${HOME}/.armarx)
+#  Attributes:
+#  - Default:            mongo/.cache
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.CachePath = mongo/.cache
+
+
+# ArmarX.Config:  Comma-separated list of configuration files 
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Config = ""
 
 
 # ArmarX.DataPath:  Semicolon-separated search list for data files
@@ -18,13 +42,20 @@
 # ArmarX.DataPath = ""
 
 
-# ArmarX.Verbosity:  Global logging level for whole application
+# ArmarX.DefaultPackages:  List of ArmarX packages which are accessible by default. Comma separated List. If you want to add your own packages and use all default ArmarX packages, use the property 'AdditionalPackages'.
+#  Attributes:
+#  - Default:            Default value not mapped.
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.DefaultPackages = Default value not mapped.
+
+
+# ArmarX.DependenciesConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
 #  Attributes:
-#  - Default:            Verbose
+#  - Default:            ./config/dependencies.cfg
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning}
-# ArmarX.Verbosity = Verbose
+# ArmarX.DependenciesConfig = ./config/dependencies.cfg
 
 
 # ArmarX.DisableLogging:  Turn logging off in whole application
@@ -32,37 +63,40 @@
 #  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {0, 1, false, no, true, yes}
 # ArmarX.DisableLogging = 0
 
 
-# ArmarX.ApplicationName:  Application name
+# ArmarX.EnableProfiling:  Enable profiling of CPU load produced by this application
 #  Attributes:
-#  - Default:            ""
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.ApplicationName = ""
+# ArmarX.EnableProfiling = 0
 
 
-# ArmarX.DatapathConfig:  Path to the (usually generated) config file containing all data paths of all dependent projects. This property usually does not need to be edited.
+# ArmarX.RedirectStdout:  Redirect std::cout and std::cerr to ArmarXLog
 #  Attributes:
-#  - Default:            ./config/datapath.cfg
+#  - Default:            1
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.DatapathConfig = ./config/datapath.cfg
+# ArmarX.RedirectStdout = 1
 
 
-# ArmarX.Config:  Comma-separated list of configuration files 
+# ArmarX.RemoteHandlesDeletionTimeout:  The timeout (in ms) before a remote handle deletes the managed object after the use count reached 0. This time can be used by a client to increment the count again (may be required when transmitting remote handles)
 #  Attributes:
-#  - Default:            ""
+#  - Default:            3000
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.Config = ""
+# ArmarX.RemoteHandlesDeletionTimeout = 3000
 
 
-# ==================================================================
-# ArmarX.TCPControlUnit properties
-# ==================================================================
+# ArmarX.StartDebuggerOnCrash:  If this application crashes (segmentation fault) qtcreator will attach to this process and start the debugger.
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.StartDebuggerOnCrash = 0
+
 
 # ArmarX.TCPControlUnit.CycleTime:  Cycle time of the tcp control in ms
 #  Attributes:
@@ -72,11 +106,27 @@
 # ArmarX.TCPControlUnit.CycleTime = 30
 
 
-# ArmarX.TCPControlUnit.RobotFileName:  Robot file name, e.g. robot_model.xml
+# ArmarX.TCPControlUnit.EnableProfiling:  enable profiler which is used for logging performance events
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TCPControlUnit.EnableProfiling = 0
+
+
+# ArmarX.TCPControlUnit.KinematicUnitName:  Name of the KinematicUnit Proxy
 #  Attributes:
 #  - Case sensitivity:   no
 #  - Required:           yes
-ArmarX.TCPControlUnit.inheritFrom=RobotConfig
+ArmarX.TCPControlUnit.KinematicUnitName = Armar3KinematicUnit
+
+
+# ArmarX.TCPControlUnit.LambdaDampedSVD:  Parameter used for smoothing the differential IK near singularities.
+#  Attributes:
+#  - Default:            0.100000001
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TCPControlUnit.LambdaDampedSVD = 0.100000001
 
 
 # ArmarX.TCPControlUnit.MaxJointVelocity:  Maximal joint velocity in rad/sec
@@ -87,15 +137,46 @@ ArmarX.TCPControlUnit.inheritFrom=RobotConfig
 # ArmarX.TCPControlUnit.MaxJointVelocity = 0.523500025
 
 
+# ArmarX.TCPControlUnit.MaximumCommandDelay:  No Description
+#  Attributes:
+#  - Default:            500
+#  - Case sensitivity:   no
+#  - Required:           no
+ArmarX.TCPControlUnit.MaximumCommandDelay = 500
+
+
 # ArmarX.TCPControlUnit.MinimumLoggingLevel:  Local logging level only for this component
 #  Attributes:
 #  - Default:            Undefined
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
 # ArmarX.TCPControlUnit.MinimumLoggingLevel = Undefined
 
 
+# ArmarX.TCPControlUnit.ObjectName:  Name of IceGrid well-known object
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TCPControlUnit.ObjectName = ""
+
+
+# ArmarX.TCPControlUnit.RobotStateComponentName:  Name of the RobotStateComponent that should be used
+#  Attributes:
+#  - Default:            RobotStateComponent
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TCPControlUnit.RobotStateComponentName = RobotStateComponent
+
+
+# ArmarX.TCPControlUnit.RobotStateTopicName:  Name of the RobotComponent State topic.
+#  Attributes:
+#  - Default:            RobotState
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TCPControlUnit.RobotStateTopicName = RobotState
+
+
 # ArmarX.TCPControlUnit.TCPsToReport:  comma seperated list of nodesets' endeffectors, which poses and velocities that should be reported. * for all, empty for none
 #  Attributes:
 #  - Default:            ""
@@ -104,38 +185,44 @@ ArmarX.TCPControlUnit.inheritFrom=RobotConfig
 ArmarX.TCPControlUnit.TCPsToReport = TCP R,TCP L
 
 
-# ArmarX.TCPControlUnit.MaximumCommandDelay:  Delay after which the TCP Control unit releases itself if no new velocity have been set.
+# ArmarX.TCPControlUnit.inheritFrom:  No Description
 #  Attributes:
-#  - Default:            200
+#  - Default:            RobotConfig
 #  - Case sensitivity:   no
 #  - Required:           no
-ArmarX.TCPControlUnit.MaximumCommandDelay = 500
+ArmarX.TCPControlUnit.inheritFrom = RobotConfig
 
 
-# ArmarX.TCPControlUnit.KinematicUnitName:  Name of the KinematicUnit Proxy
+# ArmarX.TCPControlUnitObserver.CreateUpdateFrequenciesChannel:  If true, an additional channel is created that shows the update frequency of every other channel in that observer.
 #  Attributes:
+#  - Default:            0
 #  - Case sensitivity:   no
-#  - Required:           yes
-ArmarX.TCPControlUnit.KinematicUnitName = Armar3KinematicUnit
+#  - Required:           no
+# ArmarX.TCPControlUnitObserver.CreateUpdateFrequenciesChannel = 0
 
 
-# ArmarX.TCPControlUnit.ObjectName:  Name of IceGrid well-known object
+# ArmarX.TCPControlUnitObserver.EnableProfiling:  enable profiler which is used for logging performance events
 #  Attributes:
-#  - Default:            ""
+#  - Default:            0
 #  - Case sensitivity:   no
 #  - Required:           no
-# ArmarX.TCPControlUnit.ObjectName = ""
+# ArmarX.TCPControlUnitObserver.EnableProfiling = 0
 
 
-# ==================================================================
-# ArmarX.TCPControlUnitObserver properties
-# ==================================================================
+# ArmarX.TCPControlUnitObserver.MaxHistoryRecordFrequency:  The Observer history is written with this maximum frequency. Everything faster is being skipped.
+#  Attributes:
+#  - Default:            50
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TCPControlUnitObserver.MaxHistoryRecordFrequency = 50
 
-# ArmarX.TCPControlUnitObserver.TCPControlUnitName:  Name of the TCPControlUnit
+
+# ArmarX.TCPControlUnitObserver.MaxHistorySize:  Maximum number of entries in the Observer history
 #  Attributes:
+#  - Default:            5000
 #  - Case sensitivity:   no
-#  - Required:           yes
-ArmarX.TCPControlUnitObserver.TCPControlUnitName = TCPControlUnit
+#  - Required:           no
+# ArmarX.TCPControlUnitObserver.MaxHistorySize = 5000
 
 
 # ArmarX.TCPControlUnitObserver.MinimumLoggingLevel:  Local logging level only for this component
@@ -143,7 +230,6 @@ ArmarX.TCPControlUnitObserver.TCPControlUnitName = TCPControlUnit
 #  - Default:            Undefined
 #  - Case sensitivity:   no
 #  - Required:           no
-#  - Possible values: {Error, Fatal, Info, Undefined, Verbose, Warning}
 # ArmarX.TCPControlUnitObserver.MinimumLoggingLevel = Undefined
 
 
@@ -155,4 +241,46 @@ ArmarX.TCPControlUnitObserver.TCPControlUnitName = TCPControlUnit
 # ArmarX.TCPControlUnitObserver.ObjectName = ""
 
 
+# ArmarX.TCPControlUnitObserver.TCPControlUnitName:  Name of the TCPControlUnit
+#  Attributes:
+#  - Default:            TCPControlUnit
+#  - Case sensitivity:   no
+#  - Required:           no
+ArmarX.TCPControlUnitObserver.TCPControlUnitName = TCPControlUnit
+
+
+# ArmarX.ThreadPoolSize:  Size of the ArmarX ThreadPool that is always running.
+#  Attributes:
+#  - Default:            1
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.ThreadPoolSize = 1
+
+
+# ArmarX.TopicSuffix:  Suffix appended to all topic names for outgoing topics. This is mainly used to direct all topics to another name for TopicReplaying purposes.
+#  Attributes:
+#  - Default:            ""
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.TopicSuffix = ""
+
+
+# ArmarX.UseTimeServer:  Enable using a global Timeserver (e.g. from ArmarXSimulator)
+#  Attributes:
+#  - Default:            0
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.UseTimeServer = 0
+
+
+# ArmarX.Verbosity:  Global logging level for whole application
+#  Attributes:
+#  - Default:            Info
+#  - Case sensitivity:   no
+#  - Required:           no
+# ArmarX.Verbosity = Info
+
+
+
+
 
diff --git a/scenarios/tests/WeissHapticSensorsUnitTest/WeissHapticSensorsUnitTest.scx b/scenarios/tests/WeissHapticSensorsUnitTest/WeissHapticSensorsUnitTest.scx
index ea53a9c3f18c94f1987f4eaa42b7d21813f76fd6..66efe7bdca59637648c5caabc469a766266baf86 100644
--- a/scenarios/tests/WeissHapticSensorsUnitTest/WeissHapticSensorsUnitTest.scx
+++ b/scenarios/tests/WeissHapticSensorsUnitTest/WeissHapticSensorsUnitTest.scx
@@ -1,7 +1,9 @@
-<scenario name='WeissHapticSensorsUnitTest' lastChange='2016-10-26.14:27:39' creation='2016-10-26.14:27:39' globalConfigName='' package='RobotAPI'>
-<application name='RobotControl' instance='' package='RobotAPI'/>
-<application name='WeissHapticUnitApp' instance='' package='RobotAPI'/>
-<application name='XMLRemoteStateOfferer' instance='WeissHapticGroup' package='ArmarXCore'/>
-<application name='SystemObserver' instance='' package='ArmarXCore'/>
-<application name='ConditionHandler' instance='' package='ArmarXCore'/>
-</scenario>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<scenario name="WeissHapticSensorsUnitTest" creation="2016-10-26.14:27:39" globalConfigName="" package="RobotAPI">
+	<application name="RobotControl" instance="" package="RobotAPI" enabled="true"/>
+	<application name="WeissHapticUnitApp" instance="" package="RobotAPI" enabled="true"/>
+	<application name="XMLRemoteStateOfferer" instance="WeissHapticGroup" package="ArmarXCore" enabled="true"/>
+	<application name="SystemObserver" instance="" package="ArmarXCore" enabled="true"/>
+	<application name="ConditionHandler" instance="" package="ArmarXCore" enabled="true"/>
+</scenario>
+
diff --git a/source/RobotAPI/components/DebugDrawer/CMakeLists.txt b/source/RobotAPI/components/DebugDrawer/CMakeLists.txt
index 754e65a5f76875156080403b4d4f8dfd8e1513e3..17104396295f08b5eb8d39d1150a0a7f3fd8f26f 100644
--- a/source/RobotAPI/components/DebugDrawer/CMakeLists.txt
+++ b/source/RobotAPI/components/DebugDrawer/CMakeLists.txt
@@ -18,9 +18,15 @@ endif()
 
 set(COMPONENT_LIBS ArmarXCore RobotAPIInterfaces RobotAPICore ${Simox_LIBRARIES})
 
-set(SOURCES DebugDrawerComponent.cpp)
-set(HEADERS DebugDrawerComponent.h
-    DebugDrawerUtils.h)
+set(SOURCES
+    DebugDrawerComponent.cpp
+    DebugDrawerHelper.cpp
+    )
+set(HEADERS
+    DebugDrawerComponent.h
+    DebugDrawerHelper.h
+    DebugDrawerUtils.h
+    )
 
 
 armarx_add_component("${SOURCES}" "${HEADERS}")
diff --git a/source/RobotAPI/components/DebugDrawer/DebugDrawerHelper.cpp b/source/RobotAPI/components/DebugDrawer/DebugDrawerHelper.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a4ee8ad724be379aee10d469fa72d8e8b3e5f180
--- /dev/null
+++ b/source/RobotAPI/components/DebugDrawer/DebugDrawerHelper.cpp
@@ -0,0 +1,86 @@
+/*
+ * This file is part of ArmarX.
+ *
+ * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T),
+ * Karlsruhe Institute of Technology (KIT), all rights reserved.
+ *
+ * ArmarX is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * ArmarX is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @author     Simon Ottenhaus (simon dot ottenhaus at kit dot edu)
+ * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
+ *             GNU General Public License
+ */
+
+#include "DebugDrawerHelper.h"
+
+#include <VirtualRobot/math/Helpers.h>
+
+#include <RobotAPI/libraries/core/Pose.h>
+
+using namespace math;
+using namespace armarx;
+
+DebugDrawerHelper::DebugDrawerHelper(const DebugDrawerInterfacePrx& debugDrawerPrx, const std::string& layerName, const VirtualRobot::RobotPtr& robot)
+    : debugDrawerPrx(debugDrawerPrx), robot(robot), rn(robot->getRootNode())
+{
+}
+
+void DebugDrawerHelper::drawPose(const std::string& name, const Eigen::Matrix4f& pose)
+{
+    debugDrawerPrx->setPoseVisu(layerName, name, makeGlobal(pose));
+}
+
+void DebugDrawerHelper::drawPose(const std::string& name, const Eigen::Matrix4f& pose, float scale)
+{
+    debugDrawerPrx->setScaledPoseVisu(layerName, name, makeGlobal(pose), scale);
+}
+
+void DebugDrawerHelper::drawBox(const std::string& name, const Eigen::Vector3f& position, float size, const DrawColor& color)
+{
+    drawBox(name, Helpers::CreatePose(position, Eigen::Matrix3f::Identity()), Eigen::Vector3f(size, size, size), color);
+}
+
+void DebugDrawerHelper::drawBox(const std::string& name, const Eigen::Matrix4f& pose, float size, const DrawColor& color)
+{
+    drawBox(name, pose, Eigen::Vector3f(size, size, size), color);
+}
+
+void DebugDrawerHelper::drawBox(const std::string& name, const Eigen::Matrix4f& pose, const Eigen::Vector3f& size, const DrawColor& color)
+{
+    debugDrawerPrx->setBoxVisu(layerName, name, makeGlobal(pose), new Vector3(size), color);
+}
+
+void DebugDrawerHelper::drawLine(const std::string& name, const Eigen::Vector3f& p1, const Eigen::Vector3f& p2, float width, const DrawColor& color)
+{
+    debugDrawerPrx->setLineVisu(layerName, name, makeGlobal(p1), makeGlobal(p2), width, color);
+}
+
+void DebugDrawerHelper::drawLine(const std::string& name, const Eigen::Vector3f& p1, const Eigen::Vector3f& p2)
+{
+    drawLine(name, p1, p2, defaults.lineWidth, defaults.lineColor);
+}
+
+void DebugDrawerHelper::drawText(const std::string& name, const Eigen::Vector3f& p1, const std::string& text, const DrawColor& color, int size)
+{
+    debugDrawerPrx->setTextVisu(layerName, name, text, makeGlobal(p1), color, size);
+}
+
+PosePtr DebugDrawerHelper::makeGlobal(const Eigen::Matrix4f& pose)
+{
+    return new Pose(rn->getGlobalPose(pose));
+}
+
+Vector3Ptr DebugDrawerHelper::makeGlobal(const Eigen::Vector3f& position)
+{
+    return new Vector3(rn->getGlobalPosition(position));
+}
diff --git a/source/RobotAPI/components/DebugDrawer/DebugDrawerHelper.h b/source/RobotAPI/components/DebugDrawer/DebugDrawerHelper.h
new file mode 100644
index 0000000000000000000000000000000000000000..3bdaa4933cfb47767bf7e64575a01c32507ef7d3
--- /dev/null
+++ b/source/RobotAPI/components/DebugDrawer/DebugDrawerHelper.h
@@ -0,0 +1,74 @@
+/*
+ * This file is part of ArmarX.
+ *
+ * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T),
+ * Karlsruhe Institute of Technology (KIT), all rights reserved.
+ *
+ * ArmarX is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * ArmarX is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @author     Simon Ottenhaus (simon dot ottenhaus at kit dot edu)
+ * @copyright  http://www.gnu.org/licenses/gpl-2.0.txt
+ *             GNU General Public License
+ */
+
+#pragma once
+
+#include <boost/shared_ptr.hpp>
+
+#include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
+
+#include <VirtualRobot/Robot.h>
+
+#include <RobotAPI/libraries/core/Pose.h>
+
+namespace armarx
+{
+    class DebugDrawerHelper;
+    typedef boost::shared_ptr<DebugDrawerHelper> DebugDrawerHelperPtr;
+
+    class DebugDrawerHelper
+    {
+    public:
+        struct Defaults
+        {
+            float lineWidth = 2;
+            DrawColor lineColor = DrawColor {0, 1, 0, 1};
+        };
+
+        DebugDrawerHelper(const DebugDrawerInterfacePrx& debugDrawerPrx, const std::string& layerName, const VirtualRobot::RobotPtr& robot);
+
+        void drawPose(const std::string& name, const Eigen::Matrix4f& pose);
+        void drawPose(const std::string& name, const Eigen::Matrix4f& pose, float scale);
+
+        void drawBox(const std::string& name, const Eigen::Vector3f& position, float size, const DrawColor& color);
+        void drawBox(const std::string& name, const Eigen::Matrix4f& pose, float size, const DrawColor& color);
+        void drawBox(const std::string& name, const Eigen::Matrix4f& pose, const Eigen::Vector3f& size, const DrawColor& color);
+
+        void drawLine(const std::string& name, const Eigen::Vector3f& p1, const Eigen::Vector3f& p2, float width, const DrawColor& color);
+        void drawLine(const std::string& name, const Eigen::Vector3f& p1, const Eigen::Vector3f& p2);
+
+        void drawText(const std::string& name, const Eigen::Vector3f& p1, const std::string& text, const DrawColor& color, int size);
+
+        PosePtr makeGlobal(const Eigen::Matrix4f& pose);
+        Vector3Ptr makeGlobal(const Eigen::Vector3f& position);
+
+
+        Defaults defaults;
+
+    private:
+        DebugDrawerInterfacePrx debugDrawerPrx;
+        std::string layerName;
+        VirtualRobot::RobotPtr robot;
+        VirtualRobot::RobotNodePtr rn;
+    };
+}
diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.cpp b/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.cpp
index a0fd892e9a748e84e6af30841e6eb22f7a36b542..6cb44a0a8fe002de49ca26a26488972c3aad5299 100644
--- a/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.cpp
+++ b/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.cpp
@@ -148,3 +148,11 @@ void PositionControllerHelper::setNullSpaceControl(bool enabled)
 {
     velocityControllerHelper->setNullSpaceControl(enabled);
 }
+
+std::string PositionControllerHelper::getStatusText()
+{
+    std::stringstream ss;
+    ss.precision(2);
+    ss << std::fixed << "Waypoint: " << (currentWaypointIndex + 1) << "/" << waypoints.size() << " distance: " << getPositionError() << " mm " << VirtualRobot::MathTools::rad2deg(getOrientationError()) << " deg";
+    return ss.str();
+}
diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.h b/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.h
index b1ccef061e7bd34e0bc6f9eaa7809b79783da32f..24df9457501f4cb56cb42c7975471cae47fed5e6 100644
--- a/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.h
+++ b/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.h
@@ -70,6 +70,8 @@ namespace armarx
 
         void setNullSpaceControl(bool enabled);
 
+        std::string getStatusText();
+
         CartesianPositionController posController;
         VelocityControllerHelperPtr velocityControllerHelper;