diff --git a/c++/include/yumi.hpp b/c++/include/yumi.hpp
index 3b4aa0ea09869892257158ee08285aafbfc13011..7a48c70fe01e307e68e81e612aa9458ebe1129cb 100644
--- a/c++/include/yumi.hpp
+++ b/c++/include/yumi.hpp
@@ -32,6 +32,7 @@ class Yumi {
 
     Eigen::Matrix<double, 7, 1> get_newJointValues();
     Eigen::Matrix<double, 6, 1> get_pose();
+    double get_manipulabilityMeasure();
 
     // for debugging
     void print_pose();
@@ -59,6 +60,9 @@ class Yumi {
     double m_transitionTime = 0.0;
     double m_deltaTime = 0.0; 
 
+    // manipulability meassure
+    double m_manipulabilty;
+
     // vars to store configuration
     rl::math::Vector3 m_desPosition = rl::math::Vector3::Zero();
     rl::math::Vector3 m_desPositionDot = rl::math::Vector3::Zero();
@@ -83,13 +87,16 @@ class Yumi {
     Eigen::Matrix<double, 7, 1> m_jointAnglesDelta;
 
     Eigen::Matrix3d m_selectVelMatrix = Eigen::Matrix3d::Identity();
+    Eigen::Matrix3d m_modSelectVelMatrix = Eigen::Matrix3d::Identity();
 
     // private functions
     void doForwardKinematics();
     Eigen::Matrix3d euler2rotMatrix(rl::math::Vector3 orientation);
     void compTaskSpaceInput();
     void compForce2VelocityController();
+    void compIK();
     void modifySelectionMatrix();
 
+
     
  };
\ No newline at end of file
diff --git a/c++/src/py2gpmbind.cpp b/c++/src/py2gpmbind.cpp
index e8f26bf3ba60c46a653f40d0341c296e9465ad1a..08efd535b5a5ec071ebe0d488acb7b8ee5221fe9 100644
--- a/c++/src/py2gpmbind.cpp
+++ b/c++/src/py2gpmbind.cpp
@@ -22,5 +22,6 @@ PYBIND11_MODULE(invKin, m) {
        .def("set_operationPoint", &Yumi::set_operationPoint)
        .def("set_hybridControl", &Yumi::set_hybridControl)
        .def("set_transitionTime", &Yumi::set_transitionTime)
+       .def("get_manipulabilityMeasure", &Yumi::get_manipulabilityMeasure)
        .def("set_force", &Yumi::set_force);
 	}
\ No newline at end of file
diff --git a/c++/src/yumi.cpp b/c++/src/yumi.cpp
index cbaddadf3ae9d2674f37d0463180f50e0329d80a..cf7399c7019dd3b5c29303d15b1b67529971fe9d 100644
--- a/c++/src/yumi.cpp
+++ b/c++/src/yumi.cpp
@@ -32,6 +32,7 @@ void Yumi::doForwardKinematics(){
 	m_orientation = t.rotation().eulerAngles(2, 1, 0).reverse();
     m_rotationMatrix = t.rotation(); // rotation from world frame to ee frame
     m_jacobian = kinematic->getJacobian();
+    m_manipulabilty = kinematic->calculateManipulabilityMeasure();
 }
 
 void Yumi::print_pose(){
@@ -77,7 +78,7 @@ void Yumi::compTaskSpaceInput(){
 	Eigen::Quaterniond errorQuaternion = currentOrientation.inverse() * desiredOrientation;
 	Eigen::Vector3d errorRotationInWorldFrame = currentOrientation * errorQuaternion.vec();
 
-    m_effectiveTaskSpaceInput.head(3) = m_selectVelMatrix * (m_driftCompGain/m_sampleTime * (m_desPosition - m_position) + m_desPositionDot) 
+    m_effectiveTaskSpaceInput.head(3) = m_modSelectVelMatrix * (m_driftCompGain/m_sampleTime * (m_desPosition - m_position) + m_desPositionDot) 
 										 + m_forceTaskSpaceInput;
 	m_effectiveTaskSpaceInput.tail(3) = m_driftCompGain/m_sampleTime * errorRotationInWorldFrame + m_desOrientationDot;
 
@@ -89,16 +90,7 @@ void Yumi::process(){
     modifySelectionMatrix();
     compForce2VelocityController();
     compTaskSpaceInput();
-
-    Eigen::Matrix<double, 7, 1> jointVelocities;
-    Eigen::Matrix<double, 7, 1> nullSpaceVelocity = -m_inverseWeighing * m_nullSpaceGradient;
-
-	jointVelocities = broccoli::core::math::solvePseudoInverseEquation(m_jacobian, m_inverseWeighing, m_effectiveTaskSpaceInput,
-                     nullSpaceVelocity, m_activationFactorTaskSpace);
-
-	m_jointAnglesDelta << jointVelocities * m_sampleTime;
-
-    m_jointAngles += m_jointAnglesDelta;
+    compIK();
 }
 
 Eigen::Matrix<double, 7, 1> Yumi::get_newJointValues(){
@@ -124,11 +116,26 @@ void Yumi::compForce2VelocityController(){
     // have a look at chosen ee frame in RS
     velocityEE << 0, m_force-m_forceOP, 0;
     velocityEE *= m_kp;
-    velocityEE =  (Eigen::Matrix3d::Identity() - m_selectVelMatrix) * velocityEE; // perform blending - transition from position control to force control
+    velocityEE =  (Eigen::Matrix3d::Identity() - m_modSelectVelMatrix) * velocityEE; // perform blending - transition from position control to force control
+    std::cout << "selectionmatrix force: " << (Eigen::Matrix3d::Identity() - m_modSelectVelMatrix) << std::endl;
+    std::cout << "selectionmatrix velocity: " << m_modSelectVelMatrix << std::endl;
+    std::cout << "velocityEE force: " << velocityEE << std::endl;
     // transform the velocities computed in the ee frame to the world frame
     m_forceTaskSpaceInput = m_rotationMatrix.transpose() * velocityEE;
 }
 
+void Yumi::compIK(){
+    Eigen::Matrix<double, 7, 1> jointVelocities;
+    Eigen::Matrix<double, 7, 1> nullSpaceVelocity = -m_inverseWeighing * m_nullSpaceGradient;
+
+	jointVelocities = broccoli::core::math::solvePseudoInverseEquation(m_jacobian, m_inverseWeighing, m_effectiveTaskSpaceInput,
+                     nullSpaceVelocity, m_activationFactorTaskSpace);
+
+	m_jointAnglesDelta << jointVelocities * m_sampleTime;
+
+    m_jointAngles += m_jointAnglesDelta;
+}
+
 void Yumi::set_kp(double kp){
     m_kp = kp;
 }
@@ -160,7 +167,7 @@ void Yumi::set_transitionTime(double transitionTime){
 void Yumi::modifySelectionMatrix(){
     Eigen::Matrix3d blendingMatrix;
     if(m_deltaTime < m_transitionTime){
-        m_deltaTime += 1.0/m_sampleTime;
+        m_deltaTime += m_sampleTime;
         blendingMatrix <<   0, 0, 0,
                             0, (1 - m_deltaTime/m_transitionTime), 0,
                             0, 0, 0; 
@@ -168,5 +175,9 @@ void Yumi::modifySelectionMatrix(){
     else {
         blendingMatrix = Eigen::Matrix3d::Zero();
     }
-    m_selectVelMatrix += blendingMatrix; 
+    m_modSelectVelMatrix = m_selectVelMatrix + blendingMatrix; 
+}
+
+double Yumi::get_manipulabilityMeasure(){
+    return m_manipulabilty;
 }
\ No newline at end of file
diff --git a/python/abb_egm_pyclient/abb_egm_pyclient/feedback/control_final.py b/python/abb_egm_pyclient/abb_egm_pyclient/feedback/control_final.py
index 96eb26c9f5b95c7e4b4bad3819230ab50e3ab0e5..d74bc294f4c052ec900c3e5d04708b9914415fe9 100644
--- a/python/abb_egm_pyclient/abb_egm_pyclient/feedback/control_final.py
+++ b/python/abb_egm_pyclient/abb_egm_pyclient/feedback/control_final.py
@@ -47,6 +47,7 @@ yumi_right = invKin.Yumi("/home/joschua/Coding/forceControl/master-project/c++/m
 yumi_right.set_operationPoint(1.0)
 yumi_right.set_kp(0.2)
 yumi_right.set_hybridControl(True)
+yumi_right.set_transitionTime(5.0)
 
 yumi_left = invKin.Yumi("/home/joschua/Coding/forceControl/master-project/c++/models/urdf/yumi_left.urdf")
 
diff --git a/python/test.py b/python/test.py
deleted file mode 100644
index 60d8e7842665af2ea83afa74ce617509b35e952a..0000000000000000000000000000000000000000
--- a/python/test.py
+++ /dev/null
@@ -1,21 +0,0 @@
-import sys
-import argparse
-
-from urdf_parser_py.urdf import URDF
-
-parser = argparse.ArgumentParser(usage='Load an URDF file')
-parser.add_argument('file', type=argparse.FileType('r'), nargs='?',
-                    default=None, help='File to load. Use - for stdin')
-parser.add_argument('-o', '--output', type=argparse.FileType('w'),
-                    default=None, help='Dump file to XML')
-args = parser.parse_args()
-
-if args.file is None:
-    robot = URDF.from_parameter_server()
-else:
-    robot = URDF.from_xml_string(args.file.read())
-
-print(robot)
-
-if args.output is not None:
-    args.output.write(robot.to_xml_string())
\ No newline at end of file
diff --git a/python/test2.py b/python/test2.py
deleted file mode 100644
index 9b58c573f98f9b992e6266c1afad4dc292493b0f..0000000000000000000000000000000000000000
--- a/python/test2.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from urdfpy import URDF
-import numpy as np
-
-robot = URDF.load('/home/joschua/Coding/forceControl/master-project/c++/models/urdf/yumi_left.urdf')
-
-# print the joint names
-for joint in robot.actuated_joints:
-    print(joint.name)
-
-fk = robot.link_fk(cfg=np.array([2, 3, 0, -1, 0, 0, 2]))
-
-for i in range(len(robot.links)):
-    print(fk[robot.links[i]])
-a = 1
\ No newline at end of file
diff --git a/python/test_c++pointer.py b/python/test_c++pointer.py
deleted file mode 100644
index 6c999fa5703f593f6b2b324dde10c78c4ac75f89..0000000000000000000000000000000000000000
--- a/python/test_c++pointer.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from libs.invKin import get_pointer, set_pointer
-
-
-pointer = get_pointer()
-set_pointer(pointer)
\ No newline at end of file