diff --git a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointTaskSpaceImpedanceController.cpp b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointTaskSpaceImpedanceController.cpp index 956f1334378e341832e879440019b8750ebece35..ebee1381e9f52c1986b042e82afa7372c81a9901 100644 --- a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointTaskSpaceImpedanceController.cpp +++ b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointTaskSpaceImpedanceController.cpp @@ -231,5 +231,19 @@ void NJointTaskSpaceImpedanceController::onPublish(const SensorAndControl&, cons } +void NJointTaskSpaceImpedanceController::setTarget(const Ice::FloatSeq& target, const Ice::Current&) +{ + Eigen::VectorXf desiredPose; + desiredPose.resize(7); + for (size_t i = 0; i < 7; ++i) + { + desiredPose(i) = target.at(i); + } + + LockGuardType guard {controlDataMutex}; + getWriterControlStruct().desiredPose = desiredPose; + writeControlStruct(); +} + diff --git a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointTaskSpaceImpedanceController.h b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointTaskSpaceImpedanceController.h index 675aa090036da41033ccad7dac8fddb15104318b..2b8a3228128dbe50374d575781acc15aaa6310aa 100644 --- a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointTaskSpaceImpedanceController.h +++ b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointTaskSpaceImpedanceController.h @@ -70,7 +70,7 @@ namespace armarx protected: void onPublish(const SensorAndControl&, const DebugDrawerInterfacePrx&, const DebugObserverInterfacePrx&); - + void setTarget(const Ice::FloatSeq&, const Ice::Current&); private: Eigen::Vector3f desiredPosition; Eigen::Quaternionf desiredQuaternion; diff --git a/source/RobotAPI/interface/units/RobotUnit/TaskSpaceActiveImpedanceControl.ice b/source/RobotAPI/interface/units/RobotUnit/TaskSpaceActiveImpedanceControl.ice index b736e4f1bfd78a226d50c19ad7f4ccef351516b5..04cc5fae69b1c830c4d64e172a97e40314462f11 100644 --- a/source/RobotAPI/interface/units/RobotUnit/TaskSpaceActiveImpedanceControl.ice +++ b/source/RobotAPI/interface/units/RobotUnit/TaskSpaceActiveImpedanceControl.ice @@ -47,7 +47,7 @@ module armarx interface NJointTaskSpaceImpedanceControlInterface extends NJointControllerInterface { - + void setTarget(Ice::FloatSeq target); }; }; diff --git a/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.cpp b/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.cpp index 34fc128938ac69cbd9deafeb479cd20ebf783082..535a1cf7dea8788f635bf60fee80f9c32634987c 100644 --- a/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.cpp +++ b/source/RobotAPI/libraries/RobotAPINJointControllers/DMPController/NJointTaskSpaceImpedanceDMPController.cpp @@ -255,12 +255,11 @@ namespace armarx void NJointTaskSpaceImpedanceDMPController::setViaPoints(Ice::Double u, const Ice::DoubleSeq& viapoint, const Ice::Current&) { - LockGuardType guard(controllerMutex); + // LockGuardType guard(controllerMutex); ARMARX_INFO << "setting via points "; dmpCtrl->setViaPose(u, viapoint); } - void NJointTaskSpaceImpedanceDMPController::setGoals(const Ice::DoubleSeq& goals, const Ice::Current& ice) { dmpCtrl->setGoalPoseVec(goals); @@ -348,7 +347,9 @@ namespace armarx datafields["currentPose_qy"] = new Variant(debugOutputData.getUpToDateReadBuffer().currentPose_qy); datafields["currentPose_qz"] = new Variant(debugOutputData.getUpToDateReadBuffer().currentPose_qz); - debugObs->setDebugChannel("TaskSpaceImpedanceDMP", datafields); + + std::string channelName = cfg->nodeSetName + "_TaskSpaceImpedanceControl"; + debugObs->setDebugChannel(channelName, datafields); } void NJointTaskSpaceImpedanceDMPController::onInitComponent()