28 using namespace PlatformGroup;
30 #include <VirtualRobot/MathTools.h>
44 float positionalAccuracy)
47 rot = Eigen::AngleAxisf(0, Eigen::Vector3f::UnitX()) *
48 Eigen::AngleAxisf(0, Eigen::Vector3f::UnitY()) *
49 Eigen::AngleAxisf(currentTarget->z, Eigen::Vector3f::UnitZ());
52 DrawColor color{0, 0, 1, 0.3};
53 const Eigen::Vector3f eigPos{currentTarget->x, currentTarget->y, 0};
56 Eigen::Vector3f dir{0, 1, 0};
63 armarx::DrawColor{0, 0, 1, 1},
67 "Platform",
"PlatformTargetPoseAccuracy", pos, color, positionalAccuracy);
75 ChannelRefPtr counter = getInput<ChannelRef>(
"positionCounter");
76 int positionIndex = counter->getDataField(
"value")->getInt();
80 local.setAdjustedPositionalAccuracy(in.getpositionalAccuracy());
81 local.setAdjustedOrientationalAccuracy(in.getorientationalAccuracy());
85 if (positionIndex < points->getSize())
88 ARMARX_VERBOSE <<
"going to Platform Target:" << currentTarget->toEigen().transpose()
90 float positionalAccuracy = in.getpositionalAccuracy();
92 local.setAbsoluteTargetPosition(currentTarget);
95 if (positionIndex < points->getSize() - 1)
99 local.setStopOnWaypoints(
false);
101 << in.getIntermediateWaypointPositionAccuracyFactor();
103 << in.getIntermediateWaypointOrientationAccuracyFactor();
104 local.setAdjustedPositionalAccuracy(in.getpositionalAccuracy() *
105 in.getIntermediateWaypointPositionAccuracyFactor());
106 local.setAdjustedOrientationalAccuracy(
107 in.getorientationalAccuracy() *
108 in.getIntermediateWaypointOrientationAccuracyFactor());
109 local.setVerifyTargetPose(
false);
114 local.setStopOnWaypoints(
true);
115 local.setVerifyTargetPose(
true);
122 Vector3Ptr currentTarget = points->getVariant(points->getSize() - 1)->get<
Vector3>();
123 local.setAbsoluteTargetPosition(currentTarget);
125 setTimeoutEvent(getInput<int>(
"waitAfterLast"), createEvent<EvEndpointReached>());
128 ARMARX_INFO <<
"Positional accuracy: " << local.getAdjustedPositionalAccuracy();
129 ARMARX_INFO <<
"Orientational accuracy: " << local.getAdjustedOrientationalAccuracy();
139 context->
debugDrawer->removeSphereVisu(
"Platform",
"PlatformTargetPoseAccuracy");
140 context->
debugDrawer->removeArrowVisu(
"Platform",
"PlatformTargetPose");