From 02dbc915f54878ecf7366ef73ae831aab4960bc0 Mon Sep 17 00:00:00 2001 From: Armar6 <armar6@h2t.com> Date: Tue, 10 Apr 2018 15:42:58 +0200 Subject: [PATCH] fixed rtrun problem --- .../NJointJointSpaceDMPController.cpp | 18 +++++++++++++++++- .../NJointJointSpaceDMPController.h | 4 ++++ .../NJointJointSpaceDMPController.ice | 1 + 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointJointSpaceDMPController.cpp b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointJointSpaceDMPController.cpp index d7073ab3f..abe5e7eb6 100644 --- a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointJointSpaceDMPController.cpp +++ b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointJointSpaceDMPController.cpp @@ -72,7 +72,7 @@ namespace armarx } error = sqrt(error); phaseStop = phaseL / (1 + exp(-phaseK * (error - phaseDist0))); - double mpcFactor = 1 - (phaseStop / phaseL); + mpcFactor = 1 - (phaseStop / phaseL); double tau = rtGetControlStruct().tau; double deltaT = timeSinceLastIteration.toSecondsDouble(); @@ -99,6 +99,17 @@ namespace armarx } } } + else + { + for (size_t i = 0; i < dimNames.size(); ++i) + { + const auto& jointName = dimNames.at(i); + if (targets.count(jointName) == 1) + { + targets[jointName]->velocity = 0.0f; + } + } + } } void NJointJointSpaceDMPController::learnDMPFromFiles(const Ice::StringSeq& fileNames, const Ice::Current&) @@ -158,6 +169,11 @@ namespace armarx } + void NJointJointSpaceDMPController::showMessages(const Ice::Current &) + { + ARMARX_INFO << "mpcFactor: " << mpcFactor; + } + void NJointJointSpaceDMPController::setTemporalFactor(double tau, const Ice::Current&) { this->tau = tau; diff --git a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointJointSpaceDMPController.h b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointJointSpaceDMPController.h index 7151002d7..04488956a 100644 --- a/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointJointSpaceDMPController.h +++ b/source/RobotAPI/components/units/RobotUnit/NJointControllers/NJointJointSpaceDMPController.h @@ -64,6 +64,8 @@ namespace armarx void runDMP(const Ice::DoubleSeq& goals, double tau, const Ice::Current&); + void showMessages(const Ice::Current&); + protected: void rtPreActivateController() override; void rtPostDeactivateController() override; @@ -91,6 +93,8 @@ namespace armarx double phaseDist0; double phaseKp; + double mpcFactor; + std::vector<std::string> dimNames; DMP::Vec<DMP::DMPState> currentState; DMP::DVec targetState; diff --git a/source/RobotAPI/interface/units/RobotUnit/NJointJointSpaceDMPController.ice b/source/RobotAPI/interface/units/RobotUnit/NJointJointSpaceDMPController.ice index 356cd9ba1..102ebe8f8 100644 --- a/source/RobotAPI/interface/units/RobotUnit/NJointJointSpaceDMPController.ice +++ b/source/RobotAPI/interface/units/RobotUnit/NJointJointSpaceDMPController.ice @@ -51,6 +51,7 @@ module armarx bool isFinished(); void runDMP(Ice::DoubleSeq goals, double tau); void setTemporalFactor(double tau); + void showMessages(); }; }; #endif -- GitLab