diff --git a/scenarios/CMakeLists.txt b/scenarios/CMakeLists.txt index 62fc4f72f28006212dcc54a7d9ba78d797190e33..3b942c24894a6fabe2d760ff167cf0bf34138b8c 100644 --- a/scenarios/CMakeLists.txt +++ b/scenarios/CMakeLists.txt @@ -1,4 +1,4 @@ add_subdirectory(WeissHapticSensorsUnitTest) - -add_subdirectory(statecharttestscenario) \ No newline at end of file +add_subdirectory(MotionControlTest) +add_subdirectory(statecharttestscenario) diff --git a/scenarios/MotionControlTest/CMakeLists.txt b/scenarios/MotionControlTest/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..7fb1259c8a86a3f286ca088308a014a3f5cc5eda --- /dev/null +++ b/scenarios/MotionControlTest/CMakeLists.txt @@ -0,0 +1,20 @@ +# Add your components below as shown in the following example: + +set(SCENARIO_COMPONENTS + KinematicUnitSimulation + KinematicUnitObserver + SystemObserver + ConditionHandler + RobotStateComponent + RobotControl + MotionControlTest + ) + +# optional 3rd parameter: "path/to/global/config.cfg" +armarx_scenario("MotionControlTest" "${SCENARIO_COMPONENTS}" "./configs/Global.cfg") + +#set(SCENARIO_CONFIGS +# config/ComponentName.optionalString.cfg +# ) +# optional 3rd parameter: "path/to/global/config.cfg" +#armarx_scenario_from_configs("statecharttestscenario" "${SCENARIO_CONFIGS}") diff --git a/scenarios/MotionControlTest/configs/ArmarXGui.cfg b/scenarios/MotionControlTest/config/ArmarXGui.cfg similarity index 100% rename from scenarios/MotionControlTest/configs/ArmarXGui.cfg rename to scenarios/MotionControlTest/config/ArmarXGui.cfg diff --git a/scenarios/MotionControlTest/configs/ArmarXLogger.cfg b/scenarios/MotionControlTest/config/ArmarXLogger.cfg similarity index 100% rename from scenarios/MotionControlTest/configs/ArmarXLogger.cfg rename to scenarios/MotionControlTest/config/ArmarXLogger.cfg diff --git a/scenarios/MotionControlTest/configs/ConditionHandler.cfg b/scenarios/MotionControlTest/config/ConditionHandler.cfg similarity index 100% rename from scenarios/MotionControlTest/configs/ConditionHandler.cfg rename to scenarios/MotionControlTest/config/ConditionHandler.cfg diff --git a/scenarios/MotionControlTest/configs/DummyObjectRecognitionConfig.txt b/scenarios/MotionControlTest/config/DummyObjectRecognitionConfig.txt similarity index 100% rename from scenarios/MotionControlTest/configs/DummyObjectRecognitionConfig.txt rename to scenarios/MotionControlTest/config/DummyObjectRecognitionConfig.txt diff --git a/scenarios/MotionControlTest/configs/Global.cfg b/scenarios/MotionControlTest/config/Global.cfg similarity index 100% rename from scenarios/MotionControlTest/configs/Global.cfg rename to scenarios/MotionControlTest/config/Global.cfg diff --git a/scenarios/MotionControlTest/configs/GuiConfig.ini b/scenarios/MotionControlTest/config/GuiConfig.ini similarity index 100% rename from scenarios/MotionControlTest/configs/GuiConfig.ini rename to scenarios/MotionControlTest/config/GuiConfig.ini diff --git a/scenarios/MotionControlTest/configs/HeadUnit.cfg b/scenarios/MotionControlTest/config/HeadUnit.cfg similarity index 100% rename from scenarios/MotionControlTest/configs/HeadUnit.cfg rename to scenarios/MotionControlTest/config/HeadUnit.cfg diff --git a/scenarios/MotionControlTest/configs/HeadUnitObserver.cfg b/scenarios/MotionControlTest/config/HeadUnitObserver.cfg similarity index 100% rename from scenarios/MotionControlTest/configs/HeadUnitObserver.cfg rename to scenarios/MotionControlTest/config/HeadUnitObserver.cfg diff --git a/scenarios/MotionControlTest/config/KinematicUnitObserver.cfg b/scenarios/MotionControlTest/config/KinematicUnitObserver.cfg new file mode 100644 index 0000000000000000000000000000000000000000..ff20d3f9f5d3510f0ed52a198f1bde249e6b423d --- /dev/null +++ b/scenarios/MotionControlTest/config/KinematicUnitObserver.cfg @@ -0,0 +1,90 @@ +# ================================================================== +# ArmarX properties +# ================================================================== + +# ArmarX.CachePath: Path for cache files +# Attributes: +# - Default: ${HOME}/.armarx/mongo/.cache +# - Case sensitivity: no +# - Required: no +# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache + + +# ArmarX.DataPath: Semicolon-separated search list for data files +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.DataPath = "" + + +# ArmarX.Verbosity: Global logging level for whole application +# Attributes: +# - Default: Verbose +# - Case sensitivity: no +# - Required: no +# - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning} +# ArmarX.Verbosity = Verbose + + +# ArmarX.DisableLogging: Turn logging off in whole application +# Attributes: +# - Default: 0 +# - Case sensitivity: no +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.DisableLogging = 0 + + +# ArmarX.ApplicationName: Application name +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.ApplicationName = "" + + +# ArmarX.Config: Comma-separated list of configuration files +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.Config = "" + + +# ================================================================== +# ArmarX.KinematicUnitObserver properties +# ================================================================== + +# ArmarX.KinematicUnitObserver.RobotFileName: Robot file name, e.g. robot_model.xml +# Attributes: +# - Case sensitivity: no +# - Required: yes +ArmarX.KinematicUnitObserver.RobotFileName = /Armar4/data/robotmodel/ArmarIV.xml + + +# ArmarX.KinematicUnitObserver.RobotNodeSetName: Robot node name +# Attributes: +# - Case sensitivity: no +# - Required: yes +ArmarX.KinematicUnitObserver.RobotNodeSetName = Robot + + +# ArmarX.KinematicUnitObserver.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.KinematicUnitObserver.MinimumLoggingLevel = Undefined + + +# ArmarX.KinematicUnitObserver.ObjectName: Name of IceGrid well-known object +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +ArmarX.KinematicUnitObserver.ObjectName = Armar4Observer + + + diff --git a/scenarios/MotionControlTest/config/KinematicUnitSimulation.cfg b/scenarios/MotionControlTest/config/KinematicUnitSimulation.cfg new file mode 100644 index 0000000000000000000000000000000000000000..6ade9a04de8653467979ae6146852bb04f888c4d --- /dev/null +++ b/scenarios/MotionControlTest/config/KinematicUnitSimulation.cfg @@ -0,0 +1,98 @@ +# ================================================================== +# ArmarX properties +# ================================================================== + +# ArmarX.CachePath: Path for cache files +# Attributes: +# - Default: ${HOME}/.armarx/mongo/.cache +# - Case sensitivity: no +# - Required: no +# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache + + +# ArmarX.DataPath: Semicolon-separated search list for data files +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.DataPath = "" + + +# ArmarX.Verbosity: Global logging level for whole application +# Attributes: +# - Default: Verbose +# - Case sensitivity: no +# - Required: no +# - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning} +# ArmarX.Verbosity = Verbose + + +# ArmarX.DisableLogging: Turn logging off in whole application +# Attributes: +# - Default: 0 +# - Case sensitivity: no +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.DisableLogging = 0 + + +# ArmarX.ApplicationName: Application name +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.ApplicationName = "" + + +# ArmarX.Config: Comma-separated list of configuration files +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.Config = "" + + +# ================================================================== +# ArmarX.KinematicUnitSimulation properties +# ================================================================== + +# ArmarX.KinematicUnitSimulation.IntervalMs: The time in milliseconds between two calls to the simulation method. +# Attributes: +# - Default: 10 +# - Case sensitivity: no +# - Required: no +# ArmarX.KinematicUnitSimulation.IntervalMs = 10 + + +# ArmarX.KinematicUnitSimulation.RobotFileName: Robot file name, e.g. robot_model.xml +# Attributes: +# - Case sensitivity: no +# - Required: yes +ArmarX.KinematicUnitSimulation.RobotFileName = /Armar4/data/robotmodel/ArmarIV.xml + + +# ArmarX.KinematicUnitSimulation.RobotNodeSetName: Robot node name +# Attributes: +# - Case sensitivity: no +# - Required: yes +ArmarX.KinematicUnitSimulation.RobotNodeSetName = Robot + + +# ArmarX.KinematicUnitSimulation.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.KinematicUnitSimulation.MinimumLoggingLevel = Undefined + + +# ArmarX.KinematicUnitSimulation.ObjectName: Name of IceGrid well-known object +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +ArmarX.KinematicUnitSimulation.ObjectName = Armar4KinematicUnit + + + diff --git a/scenarios/MotionControlTest/configs/MotionControlTest.cfg b/scenarios/MotionControlTest/config/MotionControlTest.cfg similarity index 100% rename from scenarios/MotionControlTest/configs/MotionControlTest.cfg rename to scenarios/MotionControlTest/config/MotionControlTest.cfg diff --git a/scenarios/MotionControlTest/configs/ObjectDB.txt b/scenarios/MotionControlTest/config/ObjectDB.txt similarity index 100% rename from scenarios/MotionControlTest/configs/ObjectDB.txt rename to scenarios/MotionControlTest/config/ObjectDB.txt diff --git a/scenarios/MotionControlTest/configs/ObjectMemory.cfg b/scenarios/MotionControlTest/config/ObjectMemory.cfg similarity index 100% rename from scenarios/MotionControlTest/configs/ObjectMemory.cfg rename to scenarios/MotionControlTest/config/ObjectMemory.cfg diff --git a/scenarios/MotionControlTest/configs/ObjectMemoryObserver.cfg b/scenarios/MotionControlTest/config/ObjectMemoryObserver.cfg similarity index 100% rename from scenarios/MotionControlTest/configs/ObjectMemoryObserver.cfg rename to scenarios/MotionControlTest/config/ObjectMemoryObserver.cfg diff --git a/scenarios/MotionControlTest/config/RobotControl.cfg b/scenarios/MotionControlTest/config/RobotControl.cfg new file mode 100644 index 0000000000000000000000000000000000000000..cefc98c81c93ac88b47ae16bf4bf448f5b3934c8 --- /dev/null +++ b/scenarios/MotionControlTest/config/RobotControl.cfg @@ -0,0 +1,93 @@ +# ================================================================== +# ArmarX properties +# ================================================================== + +# ArmarX.CachePath: Path for cache files +# Attributes: +# - Default: ${HOME}/.armarx/mongo/.cache +# - Case sensitivity: no +# - Required: no +# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache + + +# ArmarX.DataPath: Semicolon-separated search list for data files +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.DataPath = "" + + +# ArmarX.Verbosity: Global logging level for whole application +# Attributes: +# - Default: Verbose +# - Case sensitivity: no +# - Required: no +# - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning} +# ArmarX.Verbosity = Verbose + + +# ArmarX.DisableLogging: Turn logging off in whole application +# Attributes: +# - Default: 0 +# - Case sensitivity: no +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.DisableLogging = 0 + + +# ArmarX.ApplicationName: Application name +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.ApplicationName = "" + + +# ArmarX.Config: Comma-separated list of configuration files +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.Config = "" + + +# ================================================================== +# ArmarX.RobotControlStateOfferer properties +# ================================================================== + +# ArmarX.RobotControlStateOfferer.logstates: +# Attributes: +# - Default: Comma seperated list with state names to log. If not set, all transitions will be logged +# - Case sensitivity: no +# - Required: no +# ArmarX.RobotControlStateOfferer.logstates = Comma seperated list with state names to log. If not set, all transitions will be logged + + +# ArmarX.RobotControlStateOfferer.enableStatechartLogger: disable/enable statechart logger +# Attributes: +# - Default: 0 +# - Case sensitivity: no +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.RobotControlStateOfferer.enableStatechartLogger = 0 + + +# ArmarX.RobotControlStateOfferer.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.RobotControlStateOfferer.MinimumLoggingLevel = Undefined + + +# ArmarX.RobotControlStateOfferer.ObjectName: Name of IceGrid well-known object +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.RobotControlStateOfferer.ObjectName = "" + + + diff --git a/scenarios/MotionControlTest/configs/RobotHandLocalization.cfg b/scenarios/MotionControlTest/config/RobotHandLocalization.cfg similarity index 100% rename from scenarios/MotionControlTest/configs/RobotHandLocalization.cfg rename to scenarios/MotionControlTest/config/RobotHandLocalization.cfg diff --git a/scenarios/MotionControlTest/configs/RobotStateComponent.cfg b/scenarios/MotionControlTest/config/RobotStateComponent.cfg similarity index 100% rename from scenarios/MotionControlTest/configs/RobotStateComponent.cfg rename to scenarios/MotionControlTest/config/RobotStateComponent.cfg diff --git a/scenarios/MotionControlTest/config/SystemObserver.cfg b/scenarios/MotionControlTest/config/SystemObserver.cfg new file mode 100644 index 0000000000000000000000000000000000000000..7102973bdf909d22014a0c940bfa2b128fffeabd --- /dev/null +++ b/scenarios/MotionControlTest/config/SystemObserver.cfg @@ -0,0 +1,76 @@ +# ================================================================== +# ArmarX properties +# ================================================================== + +# ArmarX.CachePath: Path for cache files +# Attributes: +# - Default: ${HOME}/.armarx/mongo/.cache +# - Case sensitivity: no +# - Required: no +# ArmarX.CachePath = ${HOME}/.armarx/mongo/.cache + + +# ArmarX.DataPath: Semicolon-separated search list for data files +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.DataPath = "" + + +# ArmarX.Verbosity: Global logging level for whole application +# Attributes: +# - Default: Verbose +# - Case sensitivity: no +# - Required: no +# - Possible values: {Debug, Error, Fatal, Important, Info, Undefined, Verbose, Warning} +# ArmarX.Verbosity = Verbose + + +# ArmarX.DisableLogging: Turn logging off in whole application +# Attributes: +# - Default: 0 +# - Case sensitivity: no +# - Required: no +# - Possible values: {0, 1, false, no, true, yes} +# ArmarX.DisableLogging = 0 + + +# ArmarX.ApplicationName: Application name +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.ApplicationName = "" + + +# ArmarX.Config: Comma-separated list of configuration files +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.Config = "" + + +# ================================================================== +# ArmarX.SystemObserver properties +# ================================================================== + +# 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 + + +# ArmarX.SystemObserver.ObjectName: Name of IceGrid well-known object +# Attributes: +# - Default: "" +# - Case sensitivity: no +# - Required: no +# ArmarX.SystemObserver.ObjectName = "" + + + diff --git a/scenarios/MotionControlTest/configs/Armar4KinematicUnit.cfg b/scenarios/MotionControlTest/configs/Armar4KinematicUnit.cfg deleted file mode 100644 index a4d3306ff1c5426a71180d7e9d23b9d09c25346b..0000000000000000000000000000000000000000 --- a/scenarios/MotionControlTest/configs/Armar4KinematicUnit.cfg +++ /dev/null @@ -1,5 +0,0 @@ -# test config file for KinematicUnit configured to be a Head - -ArmarX.KinematicUnitSimulation.RobotFileName=/Armar4/data/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 deleted file mode 100644 index 645b897d74b7928f26c7b0b78a62be378b543288..0000000000000000000000000000000000000000 --- a/scenarios/MotionControlTest/configs/Armar4Observer.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# test config file for KinematicUnit configured to be a Head - -ArmarX.KinematicUnitObserver.RobotFileName=/Armar4/data/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/startScenario.sh b/scenarios/MotionControlTest/startScenario.sh deleted file mode 100755 index 047e7c4bd9620608d494313a7d7501f746380d82..0000000000000000000000000000000000000000 --- a/scenarios/MotionControlTest/startScenario.sh +++ /dev/null @@ -1,41 +0,0 @@ - -export CORE_PATH=../../../Core -export GUI_PATH=../../../Gui -export VISIONX_PATH=../..././VisionX -export ARMAR4_PATH=../../../Armar4 -export HUMANOIDROBOTAPI_PATH=../../../RobotAPI -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/stopScenario.sh b/scenarios/MotionControlTest/stopScenario.sh deleted file mode 100755 index 21b8b2c22c89ed4994ca41734e71c5b92ee856df..0000000000000000000000000000000000000000 --- a/scenarios/MotionControlTest/stopScenario.sh +++ /dev/null @@ -1,45 +0,0 @@ - -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