From 4893ffdda5e716836aeb8f6cfc2f69a969a01ff7 Mon Sep 17 00:00:00 2001
From: Raphael Grimm <raphael.grimm@kit.edu>
Date: Mon, 30 Sep 2019 16:58:07 +0200
Subject: [PATCH] Add option to optimize nullspace if target was reached to
 CartesianWaypointControlGuiWidgetController

---
 .../CartesianWaypointControlGuiWidget.ui      | 35 +++++++++++--------
 ...sianWaypointControlGuiWidgetController.cpp |  2 ++
 2 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidget.ui b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidget.ui
index 5124859e1..2c3097c2f 100644
--- a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidget.ui
+++ b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidget.ui
@@ -298,19 +298,6 @@
            </property>
           </widget>
          </item>
-         <item row="4" column="0">
-          <widget class="QLabel" name="label_4">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>FT limit</string>
-           </property>
-          </widget>
-         </item>
          <item row="0" column="6">
           <widget class="QDoubleSpinBox" name="doubleSpinBoxMaxAccNull">
            <property name="maximum">
@@ -435,7 +422,7 @@
            </property>
           </widget>
          </item>
-         <item row="5" column="0" colspan="9">
+         <item row="8" column="0" colspan="9">
           <layout class="QHBoxLayout" name="horizontalLayout_2">
            <item>
             <widget class="QPushButton" name="pushButtonZeroFT">
@@ -480,6 +467,19 @@
            </property>
           </widget>
          </item>
+         <item row="4" column="0">
+          <widget class="QLabel" name="label_4">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="text">
+            <string>FT limit</string>
+           </property>
+          </widget>
+         </item>
          <item row="4" column="2" colspan="7">
           <widget class="QDoubleSpinBox" name="doubleSpinBoxFTLimit">
            <property name="minimum">
@@ -493,6 +493,13 @@
            </property>
           </widget>
          </item>
+         <item row="5" column="2" colspan="7">
+          <widget class="QCheckBox" name="checkBoxKeepOptimizing">
+           <property name="text">
+            <string>Optimize nullspace if target was reached</string>
+           </property>
+          </widget>
+         </item>
         </layout>
        </widget>
       </item>
diff --git a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
index 06495d829..125e0ea6a 100644
--- a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
@@ -239,6 +239,8 @@ namespace armarx
         cfg.wpCfg.kpPos                       = static_cast<float>(_ui.doubleSpinBoxPosKP->value());
 
         cfg.forceThreshold                    = static_cast<float>(_ui.doubleSpinBoxFTLimit->value());
+        cfg.optimizeNullspaceIfTargetWasReached = _ui.checkBoxKeepOptimizing->isChecked();
+
         return cfg;
     }
 
-- 
GitLab