31 using namespace MotionControlGroup;
47 int timeout = in.getTimeout();
51 setTimeoutEvent(timeout, createEventTimeout());
55 if (isInputParameterSet(
"TcpTargetPosition") && isInputParameterSet(
"TcpTargetOrientation"))
57 if (in.getTcpTargetPosition()->frame != in.getTcpTargetOrientation()->frame)
65 if (!isInputParameterSet(
"TcpTargetPosition") && !isInputParameterSet(
"TcpTargetOrientation"))
78 if (in.isTcpTargetPositionSet())
82 auto robot = context->
getRobot()->clone();
83 Eigen::Vector3f
target = in.getTcpTargetPosition()->toRootEigen(robot);
84 Eigen::Vector3f currentTcpPosition = robot->getRobotNodeSet(in.getKinematicChainName())->getTCP()->getPoseInRootFrame().block<3, 1>(0, 3);
86 ARMARX_IMPORTANT <<
"Remaining error: " << (currentTcpPosition -
target).
norm() <<
", current TCP position: " << currentTcpPosition <<
", target: " <<
target <<
"(in root frame)";