26 #include <VirtualRobot/RobotNodeSet.h>
28 #include <RobotAPI/interface/units/TCPControlUnit.h>
33 using namespace MotionControlGroup;
36 CartesianVelocityControl::SubClassRegistry
50 getContext<MotionControlGroupStatechartContext>();
52 std::string kinematicChain = in.getKinematicChainName();
54 if (!context->
getRobot()->hasRobotNodeSet(kinematicChain))
60 std::string endEffectorName =
61 context->
getRobot()->getRobotNodeSet(kinematicChain)->getTCP()->getName();
64 orientationVelocity->frame = endEffectorName;
65 orientationVelocity->x = orientationVelocity->y = orientationVelocity->z = 0;
68 positionVelocity->frame = endEffectorName;
69 positionVelocity->x = positionVelocity->y = positionVelocity->z = 0;
71 if (isInputParameterSet(
"TargetTcpOrientationVelocity"))
73 orientationVelocity = in.getTargetTcpOrientationVelocity();
76 if (isInputParameterSet(
"TargetTcpPositionVelocity"))
78 positionVelocity = in.getTargetTcpPositionVelocity();
87 in.getKinematicChainName(), endEffectorName, positionVelocity, orientationVelocity);
90 setTimeoutEvent(in.getWaitTimeUntilTransition(), createEventSuccess());