diff --git a/source/RobotAPI/components/units/RobotUnit/Units/TCPControllerSubUnit.cpp b/source/RobotAPI/components/units/RobotUnit/Units/TCPControllerSubUnit.cpp index 873814d8ec87a5de661f9bdd394b48255daebb5e..ef3cb1009b0c1caf2ceab65a7bb4b5143d992e94 100644 --- a/source/RobotAPI/components/units/RobotUnit/Units/TCPControllerSubUnit.cpp +++ b/source/RobotAPI/components/units/RobotUnit/Units/TCPControllerSubUnit.cpp @@ -120,11 +120,21 @@ void TCPControllerSubUnit::setTCPVelocity(const std::string& nodeSetName, const } ARMARX_DEBUG << "CartesianSelection-Mode: " << (int)mode; auto controllerName = this->getName() + "_" + tcp + "_" + nodeSetName + "_mode_" + std::to_string((int)mode); - auto activeNJointControllers = robotUnit->getNJointControllersNotNull(robotUnit->getNJointControllerNames()); + auto NJointControllers = robotUnit->getNJointControllerNames(); NJointCartesianVelocityControllerWithRampPtr tcpController; bool nodeSetAlreadyControlled = false; - for (NJointControllerPtr controller : activeNJointControllers) + for (auto& name : NJointControllers) { + NJointControllerPtr controller; + try + { + controller = robotUnit->getNJointControllerNotNull(name); + } + catch (...) + { + continue; + } + tcpController = NJointCartesianVelocityControllerWithRampPtr::dynamicCast(controller); if (!tcpController) {