diff --git a/scenarios/MotionControlTest/MotionControlTestGui.ini b/scenarios/MotionControlTest/MotionControlTestGui.ini
new file mode 100644
index 0000000000000000000000000000000000000000..4bf8860f29fa6a6b3f220658fea5d80aaadc5c0f
--- /dev/null
+++ b/scenarios/MotionControlTest/MotionControlTestGui.ini
@@ -0,0 +1,57 @@
+[General]
+MainWindowGeometry="@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\a|\0\0\0\x38\0\0\f\x83\0\0\x4;\0\0\a\x80\0\0\0L\0\0\n_\0\0\x5\xb3\0\0\0\x1\x2\0)"
+DockWidgetsState="@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\x3\xf5\0\0\x3\xb8\xfc\x2\0\0\0\x1\xfc\0\0\0\x19\0\0\x3\xb8\0\0\x2\x5\x1\0\0\x1d\xfa\0\0\0\0\x1\0\0\0\x2\xfb\0\0\0\x1a\0\x44\0o\0\x63\0k\0L\0o\0g\0V\0i\0\x65\0w\0\x65\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xc8\0\xff\xff\xff\xfb\0\0\0(\0\x44\0o\0\x63\0k\0K\0i\0n\0\x65\0m\0\x61\0t\0i\0\x63\0U\0n\0i\0t\0G\0U\0I\x1\0\0\0\0\0\0\x3\x99\0\0\x2\x4\0\xff\xff\xff\0\0\0\x1\0\0\x1\x5\0\0\x3\xb8\xfc\x2\0\0\0\x2\xfc\0\0\0\x19\0\0\x2\xda\0\0\x1\x32\x1\0\0\x1d\xfa\0\0\0\x1\x1\0\0\0\x2\xfb\0\0\0,\0\x44\0o\0\x63\0k\0S\0y\0s\0t\0\x65\0m\0S\0t\0\x61\0t\0\x65\0M\0o\0n\0i\0t\0o\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xc8\0\xff\xff\xff\xfb\0\0\0\x1a\0\x44\0o\0\x63\0k\0\x33\0\x44\0 \0V\0i\0\x65\0w\0\x65\0r\x1\0\0\x4%\0\0\0\xdb\0\0\0\xdb\0\xff\xff\xff\xfb\0\0\0\x1e\0\x44\0o\0\x63\0k\0\x45\0v\0\x65\0n\0t\0S\0\x65\0n\0\x64\0\x65\0r\x1\0\0\x2\xf9\0\0\0\xd8\0\0\0\xaf\0\xff\xff\xff\xff\xff\xff\xfa\0\0\x3\xb8\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)"
+WidgetCustomNames=EventSender, KinematicUnitGUI, LogViewer, SystemStateMonitor
+
+[EventSender]
+WidgetBaseName=EventSender
+widgetWidth=261
+widgetHeight=191
+EventSender\1\eventSenderName=startRobot
+EventSender\1\description=
+EventSender\1\componentName=RobotStatechart
+EventSender\1\globalStateIdentifier=RobotStatechart->RobotControl
+EventSender\1\eventName=EvStartRobot
+EventSender\1\eventReceiverName=toAll
+EventSender\1\parameters\size=0
+EventSender\2\eventSenderName=stopRobot
+EventSender\2\description=
+EventSender\2\componentName=RobotStatechart
+EventSender\2\globalStateIdentifier=RobotStatechart->RobotControl
+EventSender\2\eventName=EvStopRobot
+EventSender\2\eventReceiverName=toAll
+EventSender\2\parameters\size=0
+EventSender\3\eventSenderName=loadMotionControl
+EventSender\3\description=
+EventSender\3\componentName=RobotStatechart
+EventSender\3\globalStateIdentifier=RobotStatechart->RobotControl->Functional
+EventSender\3\eventName=EvLoadScenario
+EventSender\3\eventReceiverName=toAll
+EventSender\3\parameters\1\key=proxyName
+EventSender\3\parameters\1\VariantTypeId=-2125418521
+EventSender\3\parameters\1\value=MotionControl
+EventSender\3\parameters\2\key=stateName
+EventSender\3\parameters\2\VariantTypeId=-2125418521
+EventSender\3\parameters\2\value=MotionControlTestState
+EventSender\3\parameters\size=2
+EventSender\size=3
+
+[KinematicUnitGUI]
+WidgetBaseName=KinematicUnitGUI
+widgetWidth=921
+widgetHeight=872
+kinematicUnitName=Armar4KinematicUnit
+robotNodeSetName=Robot
+kinematicUnitFile=/org/share/home/staff/waechter/projects/armarx/trunk/Core/build/../../Armar4/ARMAR_IV.xml
+
+[LogViewer]
+WidgetBaseName=LogViewer
+widgetWidth=1013
+widgetHeight=897
+
+[SystemStateMonitor]
+WidgetBaseName=SystemStateMonitor
+widgetWidth=219
+widgetHeight=872
+ManagerRepository=@Invalid()
+MonitoredManagers=ArmarXGuiManager, ConditionHandlerManager, KinematicUnitObserverManager, KinematicUnitSimulationManager, MotionControlTestManager, RobotControlManager, RobotStateComponentManager, SystemObserverManager
diff --git a/scenarios/MotionControlTest/MotionControlTestGuiDavid.ini b/scenarios/MotionControlTest/MotionControlTestGuiDavid.ini
new file mode 100644
index 0000000000000000000000000000000000000000..b28a9f7453dad50c70320aa94da7cf9225392286
--- /dev/null
+++ b/scenarios/MotionControlTest/MotionControlTestGuiDavid.ini
@@ -0,0 +1,45 @@
+[General]
+MainWindowGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\xff\xff\xff\xfc\0\0\0\x18\0\0\a}\0\0\x4J\0\0\0\0\0\0\0\0\xff\xff\xff\xfe\xff\xff\xff\xfe\0\0\0\0\x2\0)
+DockWidgetsState="@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\x4\xd1\0\0\x3\xe7\xfc\x2\0\0\0\x1\xfc\0\0\0\x19\0\0\x3\xe7\0\0\x2\x5\x1\0\0\x1d\xfa\0\0\0\x1\x1\0\0\0\x2\xfb\0\0\0(\0\x44\0o\0\x63\0k\0K\0i\0n\0\x65\0m\0\x61\0t\0i\0\x63\0U\0n\0i\0t\0G\0U\0I\x1\0\0\0\0\xff\xff\xff\xff\0\0\x2\x1c\0\xff\xff\xff\xfb\0\0\0\x1a\0\x44\0o\0\x63\0k\0L\0o\0g\0V\0i\0\x65\0w\0\x65\0r\x1\0\0\x2\"\0\0\x2\xaf\0\0\0\xc8\0\xff\xff\xff\0\0\0\x1\0\0\x2\xa3\0\0\x3\xe7\xfc\x2\0\0\0\x1\xfc\0\0\0\x19\0\0\x3\xe7\0\0\x1\x14\0\xff\xff\xff\xfc\x1\0\0\0\x2\xfb\0\0\0\x1a\0\x44\0o\0\x63\0k\0\x33\0\x44\0 \0V\0i\0\x65\0w\0\x65\0r\x1\0\0\x4\xd7\0\0\x1^\0\0\0\xdb\0\xff\xff\xff\xfc\0\0\x6;\0\0\x1?\0\0\0\xc8\0\xff\xff\xff\xfa\0\0\0\0\x2\0\0\0\x2\xfb\0\0\0\x1e\0\x44\0o\0\x63\0k\0\x45\0v\0\x65\0n\0t\0S\0\x65\0n\0\x64\0\x65\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xaf\0\xff\xff\xff\xfb\0\0\0,\0\x44\0o\0\x63\0k\0S\0y\0s\0t\0\x65\0m\0S\0t\0\x61\0t\0\x65\0M\0o\0n\0i\0t\0o\0r\x1\0\0\0\x19\0\0\x3\xe7\0\0\0\xe1\0\xff\xff\xff\0\0\0\0\0\0\x3\xe7\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)"
+WidgetCustomNames=EventSender, KinematicUnitGUI, LogViewer, SystemStateMonitor
+
+[EventSender]
+WidgetBaseName=EventSender
+widgetWidth=319
+widgetHeight=944
+EventSender\1\eventSenderName=loadScenario
+EventSender\1\description=
+EventSender\1\componentName=RobotStatechart
+EventSender\1\globalStateIdentifier=RobotStatechart->RobotControl->Functional
+EventSender\1\eventName=EvLoadScenario
+EventSender\1\eventReceiverName=toAll
+EventSender\1\parameters\1\key=proxyName
+EventSender\1\parameters\1\VariantTypeId=-2125418521
+EventSender\1\parameters\1\value=MotionControl
+EventSender\1\parameters\2\key=stateName
+EventSender\1\parameters\2\VariantTypeId=-2125418521
+EventSender\1\parameters\2\value=MotionControlTestStateIK
+EventSender\1\parameters\size=2
+EventSender\size=1
+
+[KinematicUnitGUI]
+WidgetBaseName=KinematicUnitGUI
+widgetWidth=1233
+widgetHeight=944
+kinematicUnitName=Armar4KinematicUnit
+robotNodeSetName=Robot
+kinematicUnitFile=/home/staff/schieben/armarx/Core/build/../..//data/ArmarIV/RobotModel/ArmarIV.xml
+
+[LogViewer]
+WidgetBaseName=LogViewer
+widgetWidth=1233
+widgetHeight=944
+verbosityLevel=1
+autoFilterAdding=true
+
+[SystemStateMonitor]
+WidgetBaseName=SystemStateMonitor
+widgetWidth=319
+widgetHeight=944
+ManagerRepository=@Invalid()
+MonitoredManagers=ArmarXGuiManager, ConditionHandlerManager, DummyObjectRecognitionManager, KinematicUnitObserverManager, KinematicUnitSimulationManager, MotionControlTestManager, ObjectMemoryManager, ObjectMemoryObserverManager, RobotControlManager, RobotHandLocalizationManager, RobotStateComponentManager, SystemObserverManager
diff --git a/scenarios/MotionControlTest/configs/Armar4KinematicUnit.cfg b/scenarios/MotionControlTest/configs/Armar4KinematicUnit.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..01ce93aebd0aa3e06568b2edba6e24dbaa9d218c
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/Armar4KinematicUnit.cfg
@@ -0,0 +1,5 @@
+# test config file for KinematicUnit configured to be a Head
+
+ArmarX.KinematicUnitSimulation.RobotFileName=ArmarIV/RobotModel/ArmarIV.xml
+ArmarX.KinematicUnitSimulation.RobotNodeSetName=Robot           # node set name
+ArmarX.KinematicUnitSimulation.ObjectName=Armar4KinematicUnit  # name of the Ice adapter
diff --git a/scenarios/MotionControlTest/configs/Armar4Observer.cfg b/scenarios/MotionControlTest/configs/Armar4Observer.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..5e85df860ba2ceccc75acda2b4cc0135e8cc8c86
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/Armar4Observer.cfg
@@ -0,0 +1,7 @@
+# test config file for KinematicUnit configured to be a Head
+
+ArmarX.KinematicUnitObserver.RobotFileName=ArmarIV/RobotModel/ArmarIV.xml        	# model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
+ArmarX.KinematicUnitObserver.RobotNodeSetName=Robot					# node set name
+ArmarX.KinematicUnitObserver.ObjectName=Armar4Observer      				# name of the ICE adapter
+
+
diff --git a/scenarios/MotionControlTest/configs/ArmarXGui.cfg b/scenarios/MotionControlTest/configs/ArmarXGui.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..28081d060c1c50cf177af3c546317e00c90c851d
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/ArmarXGui.cfg
@@ -0,0 +1,5 @@
+ArmarX.LoadPlugins=${ArmarXHome_DIR}/Gui/build/lib/libKinematicUnitGuiPlugin.so,${ArmarXHome_DIR}/Gui/build/lib/libMdiGuiPlugin.so
+ArmarX.Show3DViewer=yes
+ArmarX.KinematicUnitGuiPlugin.RobotFileName=ArmarIV/RobotModel/ARMAR_IV.xml        	# model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
+ArmarX.KinematicUnitGuiPlugin.RobotNodeSetName=Robot                                            # node set name
+ArmarX.KinematicUnitGuiPlugin.KinematicUnitName=Armar4KinematicUnit
diff --git a/scenarios/MotionControlTest/configs/ArmarXLogger.cfg b/scenarios/MotionControlTest/configs/ArmarXLogger.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..66a0f17d0faab8c7443ae20e4b4bccfeab3d2bfa
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/ArmarXLogger.cfg
@@ -0,0 +1,2 @@
+ArmarX.LoadPlugins=${ArmarXHome_DIR}/Gui/build/lib/libMdiGuiPlugin.so
+ArmarX.Show3DViewer=no
diff --git a/scenarios/MotionControlTest/configs/ConditionHandler.cfg b/scenarios/MotionControlTest/configs/ConditionHandler.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..a6137040c7cc1d04419d49bdbfffdbdd31e86450
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/ConditionHandler.cfg
@@ -0,0 +1,3 @@
+ArmarX.ConditionHandler.Observers=Armar4Observer,SystemObserver,ObjectMemoryObserver
+
+
diff --git a/scenarios/MotionControlTest/configs/DummyObjectRecognitionConfig.txt b/scenarios/MotionControlTest/configs/DummyObjectRecognitionConfig.txt
new file mode 100644
index 0000000000000000000000000000000000000000..05d37e263b30a41d7315155cb2f63eadd9a68825
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/DummyObjectRecognitionConfig.txt
@@ -0,0 +1,11 @@
+VisionX.DummyObjectRecognition.Object.Name = TestObject01
+VisionX.DummyObjectRecognition.Object.Pose.x = 300
+VisionX.DummyObjectRecognition.Object.Pose.y = -200
+VisionX.DummyObjectRecognition.Object.Pose.z = 0
+VisionX.DummyObjectRecognition.Object.Pose.qw = 0
+VisionX.DummyObjectRecognition.Object.Pose.qx = 1
+VisionX.DummyObjectRecognition.Object.Pose.qy = 0
+VisionX.DummyObjectRecognition.Object.Pose.qz = 0
+VisionX.DummyObjectRecognition.Object.RecognitionCertainty = 0.9
+VisionX.DummyObjectRecognition.LocalizationDelay = 100
+
diff --git a/scenarios/MotionControlTest/configs/Global.cfg b/scenarios/MotionControlTest/configs/Global.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..77927624693f052359958908ce6d8a1bb0e6bc4f
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/Global.cfg
@@ -0,0 +1,5 @@
+ArmarX.DisableLogging = no
+VisionX.DisableLogging = no
+
+ArmarX.GlobalMinimumLoggingLevel = Verbose
+VisionX.GlobalMinimumLoggingLevel = Verbose
diff --git a/scenarios/MotionControlTest/configs/GuiConfig.ini b/scenarios/MotionControlTest/configs/GuiConfig.ini
new file mode 100644
index 0000000000000000000000000000000000000000..21bebf8fa6f61c2a104ef5fb96d02b8f25ac7d84
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/GuiConfig.ini
@@ -0,0 +1,35 @@
+[General]
+MainWindowGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\xff\xff\xff\xfc\0\0\0\x18\0\0\a\x83\0\0\x4#\0\0\0\0\0\0\0\0\xff\xff\xff\xfe\xff\xff\xff\xfe\0\0\0\0\x2\0)
+DockWidgetsState=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\0\0\0\a\x80\0\0\x3\xc0\xfc\x2\0\0\0\x1\xfc\0\0\0\x19\0\0\x3\xc0\0\0\0\xe1\0\xff\xff\xff\xfc\x1\0\0\0\x3\xfb\0\0\0\x1e\0\x44\0o\0\x63\0k\0\x45\0v\0\x65\0n\0t\0S\0\x65\0n\0\x64\0\x65\0r\x1\0\0\0\0\0\0\0\xc8\0\0\0\xc8\0\xff\xff\xff\xfb\0\0\0\x1a\0\x44\0o\0\x63\0k\0L\0o\0g\0V\0i\0\x65\0w\0\x65\0r\x1\0\0\0\xce\0\0\x5\xe4\0\0\0\xc8\0\xff\xff\xff\xfb\0\0\0\x38\0\x44\0o\0\x63\0k\0S\0y\0s\0t\0\x65\0m\0S\0t\0\x61\0t\0\x65\0M\0o\0n\0i\0t\0o\0r\0W\0i\0\x64\0g\0\x65\0t\x1\0\0\x6\xb8\0\0\0\xc8\0\0\0\xc8\0\xff\xff\xff\0\0\0\0\0\0\x3\xc0\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
+WidgetCustomNames=EventSender, LogViewer, SystemStateMonitorWidget
+
+[EventSender]
+WidgetBaseName=EventSender
+widgetWidth=200
+widgetHeight=935
+EventSender\1\eventSenderName=LoadMotionControl
+EventSender\1\description=
+EventSender\1\componentName=
+EventSender\1\globalStateIdentifier=RobotStatechart->RobotControl->Functional->DynamicRemoteState
+EventSender\1\eventName=EvLoadScenario
+EventSender\1\eventReceiverName=toAll
+EventSender\1\parameters\1\key=proxyName
+EventSender\1\parameters\1\VariantTypeId=-2125418521
+EventSender\1\parameters\1\value=MotionControl
+EventSender\1\parameters\2\key=stateName
+EventSender\1\parameters\2\VariantTypeId=-2125418521
+EventSender\1\parameters\2\value=MotionControlTestState
+EventSender\1\parameters\size=2
+EventSender\size=1
+
+[LogViewer]
+WidgetBaseName=LogViewer
+widgetWidth=1508
+widgetHeight=935
+
+[SystemStateMonitorWidget]
+WidgetBaseName=SystemStateMonitorWidget
+widgetWidth=200
+widgetHeight=935
+ManagerRepository=@Invalid()
+MonitoredManagers=MotionControlTestManager
diff --git a/scenarios/MotionControlTest/configs/HeadUnit.cfg b/scenarios/MotionControlTest/configs/HeadUnit.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..f7bed0b192e7f1139e83d4cc652bf5c7cef284e2
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/HeadUnit.cfg
@@ -0,0 +1,7 @@
+# test config file for KinematicUnit configured to be a Head
+
+ArmarX.KinematicUnit.RobotFileName=ArmarIII/ArmarIII-Head.xml        	# model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
+ArmarX.KinematicUnit.RobotNodeSetName=Head				# node set name
+ArmarX.KinematicUnit.ObjectName=HeadKinematicUnit      		# name of the ICE adapter
+
+
diff --git a/scenarios/MotionControlTest/configs/HeadUnitObserver.cfg b/scenarios/MotionControlTest/configs/HeadUnitObserver.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..b724e5258292d57693a887c5bd363374d81351d2
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/HeadUnitObserver.cfg
@@ -0,0 +1,7 @@
+# test config file for KinematicUnit configured to be a Head
+
+ArmarX.KinematicUnitObserver.RobotFileName=ArmarIII/ArmarIII-Head.xml        	# model XML file path containing a VirtualRobot RobotNodeSet that defines the joints
+ArmarX.KinematicUnitObserver.RobotNodeSetName=Head				# node set name
+ArmarX.KinematicUnitObserver.ObjectName=HeadKinematicUnitObserver      	# name of the ICE adapter
+
+
diff --git a/scenarios/MotionControlTest/configs/MotionControlTest.cfg b/scenarios/MotionControlTest/configs/MotionControlTest.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..22e5b3092c407380ae98840a14968e9e11d466f8
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/MotionControlTest.cfg
@@ -0,0 +1,5 @@
+# test config file for KinematicUnit configured to be a Head
+
+ArmarX.MotionControl.KinematicUnitName=Armar4KinematicUnit
+ArmarX.MotionControl.KinematicUnitObserverName=Armar4Observer
+
diff --git a/scenarios/MotionControlTest/configs/ObjectDB.txt b/scenarios/MotionControlTest/configs/ObjectDB.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3b7881e9b1cf3f0a01a9dc6b54f37836c2ec3426
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/ObjectDB.txt
@@ -0,0 +1,44 @@
+BlueCup eSegmentable eMMStaticObject
+GreenCup eSegmentable eMMStaticObject
+LeftHand eRobotHand eMMRobotHand
+RightHand eRobotHand eMMRobotHand
+TestObject01 eSegmentable eMMStaticObject
+TestObject02 eSegmentable eMMStaticObject
+TestObject03 eSegmentable eMMStaticObject
+TestObject04 eSegmentable eMMStaticObject
+TestObject05 eSegmentable eMMStaticObject
+TestObject06 eSegmentable eMMStaticObject
+TestObject07 eSegmentable eMMStaticObject
+TestObject08 eSegmentable eMMStaticObject
+TestObject09 eSegmentable eMMStaticObject
+TestObject10 eSegmentable eMMStaticObject
+TestObject11 eSegmentable eMMStaticObject
+TestObject12 eSegmentable eMMStaticObject
+TestObject13 eSegmentable eMMStaticObject
+TestObject14 eSegmentable eMMStaticObject
+TestObject15 eSegmentable eMMStaticObject
+TestObject16 eSegmentable eMMStaticObject
+TestObject17 eSegmentable eMMStaticObject
+TestObject18 eSegmentable eMMStaticObject
+TestObject19 eSegmentable eMMStaticObject
+TestObject20 eSegmentable eMMStaticObject
+TestObject21 eSegmentable eMMStaticObject
+TestObject22 eSegmentable eMMStaticObject
+TestObject23 eSegmentable eMMStaticObject
+TestObject24 eSegmentable eMMStaticObject
+TestObject25 eSegmentable eMMStaticObject
+TestObject26 eSegmentable eMMStaticObject
+TestObject27 eSegmentable eMMStaticObject
+TestObject28 eSegmentable eMMStaticObject
+TestObject29 eSegmentable eMMStaticObject
+TestObject30 eSegmentable eMMStaticObject
+TestObject31 eSegmentable eMMStaticObject
+TestObject32 eSegmentable eMMStaticObject
+TestObject33 eSegmentable eMMStaticObject
+TestObject34 eSegmentable eMMStaticObject
+TestObject35 eSegmentable eMMStaticObject
+TestObject36 eSegmentable eMMStaticObject
+TestObject37 eSegmentable eMMStaticObject
+TestObject38 eSegmentable eMMStaticObject
+TestObject39 eSegmentable eMMStaticObject
+TestObject40 eSegmentable eMMStaticObject
diff --git a/scenarios/MotionControlTest/configs/ObjectMemory.cfg b/scenarios/MotionControlTest/configs/ObjectMemory.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..b9822e3b52f958cade82fa29a182e604ff1b00f7
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/ObjectMemory.cfg
@@ -0,0 +1,3 @@
+VisionX.ObjectMemory.ObjectDatabaseFile = ${ArmarXHome_DIR}/scenarios/Armar4/configs/ObjectDB.txt
+VisionX.ObjectMemory.UpdateCycleTimeInMs = 30
+
diff --git a/scenarios/MotionControlTest/configs/ObjectMemoryObserver.cfg b/scenarios/MotionControlTest/configs/ObjectMemoryObserver.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..90f6d494d63c45b30a1ad8dda9634576b00b2eab
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/ObjectMemoryObserver.cfg
@@ -0,0 +1 @@
+VisionX.ObjectMemoryObserver.ObjectDatabaseFile = ${ArmarXHome_DIR}/scenarios/Armar4/configs/ObjectDB.txt
diff --git a/scenarios/MotionControlTest/configs/RobotHandLocalization.cfg b/scenarios/MotionControlTest/configs/RobotHandLocalization.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..e535ed43f57492e5404e408574b99dda1f5b4bce
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/RobotHandLocalization.cfg
@@ -0,0 +1,4 @@
+VisionX.RobotHandLocalization.RobotBaseNode=waist        	# base frame
+VisionX.RobotHandLocalization.RobotLeftHandNode=LHAND           # left hand
+VisionX.RobotHandLocalization.RobotRightHandNode=RHAND     	# right hand
+
diff --git a/scenarios/MotionControlTest/configs/RobotStateComponent.cfg b/scenarios/MotionControlTest/configs/RobotStateComponent.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..0165df097bcb1f09b10f87029c17cabe322da173
--- /dev/null
+++ b/scenarios/MotionControlTest/configs/RobotStateComponent.cfg
@@ -0,0 +1,4 @@
+ArmarX.RobotStateComponent.RobotFileName=ArmarIV/RobotModel/ArmarIV.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
+
diff --git a/scenarios/MotionControlTest/startGui.sh b/scenarios/MotionControlTest/startGui.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7bce78ab872d1be2c72d40c99022558a0f29b6a7
--- /dev/null
+++ b/scenarios/MotionControlTest/startGui.sh
@@ -0,0 +1,14 @@
+
+export CORE_PATH=../../Core
+export GUI_PATH=../../Gui
+export VISIONX_PATH=../../VisionX
+export ARMAR4_PATH=../../Armar4/api/visualservo
+export SCRIPT_PATH=$CORE_PATH/build/bin
+
+export CORE_BIN_PATH=$CORE_PATH/build/bin
+export GUI_BIN_PATH=$GUI_PATH/build/bin
+export VISIONX_BIN_PATH=$VISIONX_PATH/build/bin
+export ARMAR4_BIN_PATH=$ARMAR4_PATH/build/bin
+
+# Gui
+$SCRIPT_PATH/startApplication.sh $GUI_BIN_PATH/ArmarXGuiRun --Ice.Config=./configs/ArmarXGui.cfg &
diff --git a/scenarios/MotionControlTest/startLogger.sh b/scenarios/MotionControlTest/startLogger.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a2bf7764e8b9d3bbefa143bcb36ca730c9caca5e
--- /dev/null
+++ b/scenarios/MotionControlTest/startLogger.sh
@@ -0,0 +1,14 @@
+
+export CORE_PATH=../../Core
+export GUI_PATH=../../Gui
+export VISIONX_PATH=../../VisionX
+export ARMAR4_PATH=../../Armar4/api/visualservo
+export SCRIPT_PATH=$CORE_PATH/build/bin
+
+export CORE_BIN_PATH=$CORE_PATH/build/bin
+export GUI_BIN_PATH=$GUI_PATH/build/bin
+export VISIONX_BIN_PATH=$VISIONX_PATH/build/bin
+export ARMAR4_BIN_PATH=$ARMAR4_PATH/build/bin
+
+# Gui
+$SCRIPT_PATH/startApplication.sh $GUI_BIN_PATH/ArmarXGuiRun --Ice.Config=./configs/ArmarXLogger.cfg &
diff --git a/scenarios/MotionControlTest/startScenario.sh b/scenarios/MotionControlTest/startScenario.sh
new file mode 100755
index 0000000000000000000000000000000000000000..3d19637c5db99532d2eced5b06cbd7f3a5849a43
--- /dev/null
+++ b/scenarios/MotionControlTest/startScenario.sh
@@ -0,0 +1,41 @@
+
+export CORE_PATH=../../Core
+export GUI_PATH=../../Gui
+export VISIONX_PATH=../../VisionX
+export ARMAR4_PATH=../../Armar4
+export HUMANOIDROBOTAPI_PATH=../../HumanoidRobotAPI
+export SCRIPT_PATH=$CORE_PATH/build/bin
+
+export CORE_BIN_PATH=$CORE_PATH/build/bin
+export GUI_BIN_PATH=$GUI_PATH/build/bin
+export VISIONX_BIN_PATH=$VISIONX_PATH/build/bin
+export ARMAR4_BIN_PATH=$ARMAR4_PATH/build/bin
+export HUMANOIDROBOTAPI_BIN_PATH=$HUMANOIDROBOTAPI_PATH/build/bin
+
+export GLOBAL_CONFIG=./configs/Global.cfg
+
+# armarx components
+$SCRIPT_PATH/startApplication.sh $CORE_BIN_PATH/KinematicUnitSimulationRun --Ice.Config=$GLOBAL_CONFIG,./configs/Armar4KinematicUnit.cfg &
+$SCRIPT_PATH/startApplication.sh $CORE_BIN_PATH/KinematicUnitObserverRun --Ice.Config=$GLOBAL_CONFIG,./configs/Armar4Observer.cfg &
+$SCRIPT_PATH/startApplication.sh $CORE_BIN_PATH/SystemObserverRun --Ice.Config=$GLOBAL_CONFIG &
+$SCRIPT_PATH/startApplication.sh $CORE_BIN_PATH/RobotStateComponentRun --Ice.Config=$GLOBAL_CONFIG,./configs/RobotStateComponent.cfg &
+$SCRIPT_PATH/startApplication.sh $CORE_BIN_PATH/RobotControlRun --Ice.Config=$GLOBAL_CONFIG &
+
+
+# Gui
+#$SCRIPT_PATH/startApplication.sh $GUI_BIN_PATH/ArmarXGuiRun --Ice.Config=$GLOBAL_CONFIG,./configs/ArmarXGui.cfg &
+
+# scenario
+#$SCRIPT_PATH/debugApplication.sh $ARMAR4_BIN_PATH/visualservoRun --Ice.Config=$GLOBAL_CONFIG
+#$SCRIPT_PATH/startApplication.sh $ARMAR4_BIN_PATH/diffkintestRun --Ice.Config=$GLOBAL_CONFIG &
+
+# vision x components
+$SCRIPT_PATH/startApplication.sh $VISIONX_BIN_PATH/DummyObjectRecognitionRun --Ice.Config=$GLOBAL_CONFIG,./configs/DummyObjectRecognitionConfig.txt &
+$SCRIPT_PATH/startApplication.sh $VISIONX_BIN_PATH/RobotHandLocalizationRun --Ice.Config=$GLOBAL_CONFIG,./configs/RobotHandLocalization.cfg &
+$SCRIPT_PATH/startApplication.sh $VISIONX_BIN_PATH/ObjectMemoryRun --Ice.Config=$GLOBAL_CONFIG,./configs/ObjectMemory.cfg &
+$SCRIPT_PATH/startApplication.sh $VISIONX_BIN_PATH/ObjectMemoryObserverRun --Ice.Config=$GLOBAL_CONFIG,./configs/ObjectMemoryObserver.cfg &
+
+$SCRIPT_PATH/startApplication.sh $CORE_BIN_PATH/ConditionHandlerRun --Ice.Config=$GLOBAL_CONFIG,./configs/ConditionHandler.cfg &
+
+$SCRIPT_PATH/startApplication.sh $HUMANOIDROBOTAPI_BIN_PATH/MotionControlTestRun --Ice.Config=$GLOBAL_CONFIG,./configs/MotionControlTest.cfg &
+
diff --git a/scenarios/MotionControlTest/stopGui.sh b/scenarios/MotionControlTest/stopGui.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ff40be829982e639a3494498e35a37b76b075db1
--- /dev/null
+++ b/scenarios/MotionControlTest/stopGui.sh
@@ -0,0 +1,5 @@
+killall ArmarXGuiRun -SIGINT
+
+sleep 1
+
+killall ArmarXGuiRun -9
diff --git a/scenarios/MotionControlTest/stopScenario.sh b/scenarios/MotionControlTest/stopScenario.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e5a0eb0be80cacc5aa69ae7e65948ab67017b4c2
--- /dev/null
+++ b/scenarios/MotionControlTest/stopScenario.sh
@@ -0,0 +1,47 @@
+
+skill () 
+{ 
+	STR=`ps aux | grep -re "$1 --Ice.Default" | grep -v grep | awk '{print $2}'`
+	if [ ${#STR} == 0 ]
+		then
+			echo skipping $1
+		else
+			echo killing $1
+			kill -s $2 `ps aux | grep -re "$1 --Ice.Default" | grep -v grep | awk '{print $2}'` 
+	fi
+}
+
+echo SENDING SIGINT TO ALL PROCESSES
+skill KinematicUnitSimulationRun 2
+skill KinematicUnitObserverRun 2
+skill SystemObserverRun 2
+skill ConditionHandlerRun 2
+skill RobotStateComponentRun 2
+skill RobotControlRun 2
+
+skill DummyObjectRecognitionRun 2
+skill RobotHandLocalizationRun 2
+skill ObjectMemoryRun 2
+skill ObjectMemoryObserverRun 2
+
+
+skill MotionControlTestRun 2
+
+sleep 1
+
+echo SENDING SIGKILL TO ALL PROCESSES
+skill KinematicUnitSimulationRun 9
+skill KinematicUnitObserverRun 9
+skill SystemObserverRun 9
+skill ConditionHandlerRun 9
+skill RobotStateComponentRun 9
+skill RobotControlRun 9
+
+skill DummyObjectRecognitionRun 9
+skill RobotHandLocalizationRun 9
+skill ObjectMemoryRun 9
+skill ObjectMemoryObserverRun 9
+
+
+
+skill MotionControlTestRun 9