29 #include <RobotSkillTemplates/statecharts/ForceControlGroup/ForceControlGroupStatechartContext.generated.h>
32 using namespace ForceControlGroup;
51 ForceControlGroupStatechartContext*
c = getContext<ForceControlGroupStatechartContext>();
52 DatafieldRefBasePtr rawforce;
53 DatafieldRefBasePtr rawtorque;
54 DatafieldRefBasePtr force;
55 DatafieldRefBasePtr torque;
56 if (in.isObserverSensorChannelNameSet())
58 rawforce =
c->getForceTorqueObserver()->getDataFieldRef(
60 in.getObserverSensorChannelName(),
62 rawtorque =
c->getForceTorqueObserver()->getDataFieldRef(
64 in.getObserverSensorChannelName(),
67 else if (in.isSensorNameSet())
69 std::string sensor = in.getSensorName();
71 rawforce =
c->getForceTorqueObserver()->getForceDatafield(sensor);
72 rawtorque =
c->getForceTorqueObserver()->getTorqueDatafield(sensor);
77 throw LocalException() <<
"Either SensorName or ObserverSensorChannelName must be set!";
79 force =
c->getForceTorqueObserver()->createNulledDatafield(rawforce);
80 torque =
c->getForceTorqueObserver()->createNulledDatafield(rawtorque);
82 local.setforceRef(DatafieldRefPtr::dynamicCast(force));
83 local.settorqueRef(DatafieldRefPtr::dynamicCast(torque));
85 << in.getForceMagnitudeThreshold()
86 <<
" torque threshold: " << in.getTorqueMagnitudeThreshold();
91 installConditionForForceTorqueThresholdReached(literalForce || literalTorque);
97 while (!isRunningTaskStopped())
101 <<
" threshold: " << in.getForceMagnitudeThreshold();
111 ForceControlGroupStatechartContext*
c = getContext<ForceControlGroupStatechartContext>();
114 <<
" threshold: " << in.getForceMagnitudeThreshold();
116 c->getForceTorqueObserver()->removeFilteredDatafield(local.getforceRef());
117 c->getForceTorqueObserver()->removeFilteredDatafield(local.gettorqueRef());