25 #include <unordered_set>
28 using namespace PlayMMMFile;
46 std::unordered_set<std::string> jointsBlacklist;
47 if (in.isblacklistSet())
49 std::string
s = in.getblacklist();
50 std::string delimiter =
",";
53 while ((pos =
s.find(delimiter)) != std::string::npos)
55 token =
s.substr(0, pos);
56 jointsBlacklist.insert(token);
57 s.erase(0, pos + delimiter.length());
59 jointsBlacklist.insert(
s);
63 this->getMmmPlayer()->loadMMMFile(in.getmmmFile(),
"");
64 if (this->getMmmPlayer()->isMotionLoaded())
66 this->getTrajectoryPlayer()->setIsVelocityControl(
true);
67 TrajectoryPtr trajectory = TrajectoryPtr::dynamicCast(this->getMmmPlayer()->getJointTraj());
68 float start = in.isStartTimeSet() ? in.getStartTime() : trajectory->begin()->timestamp;
69 float end = in.isEndTimeSet() ? in.getEndTime() : trajectory->rbegin()->timestamp;
70 ARMARX_INFO <<
"StartTime of Traj: " << trajectory->begin()->timestamp;
71 ARMARX_INFO <<
"EndTime of Traj: " << trajectory->rbegin()->timestamp;
72 ARMARX_INFO <<
"names: " << trajectory->getDimensionNames();
74 ARMARX_INFO <<
"StartTime of Traj: " << trajPart->begin()->timestamp;
75 ARMARX_INFO <<
"EndTime of Traj: " << trajPart->rbegin()->timestamp;
76 ARMARX_INFO <<
" amplitude: " << trajPart->getAmplitude(0, 0, start, end);
77 ARMARX_INFO <<
"names: " << trajPart->getDimensionNames();
78 this->getTrajectoryPlayer()->loadJointTraj(trajPart);
79 this->getTrajectoryPlayer()->loadBasePoseTraj(this->getMmmPlayer()->getBasePoseTraj());
82 auto map = trajPart->getStatesMap<
float>(trajPart->begin()->timestamp);
83 for (
auto it = map.begin(); it != map.end();)
85 if (!this->getKinematicUnitObserver()->existsDataField(
"jointangles", it->first))
95 Ice::StringSeq jointNames = this->getMmmPlayer()->getJointNames();
96 for (
size_t i = 0; i < jointNames.size(); ++i)
99 bool enabled = !jointsBlacklist.count(jointNames.at(i));
103 this->getTrajectoryPlayer()->setJointsInUse(jointNames.at(i),
true);
107 ARMARX_LOG << jointNames.at(i) <<
" disabled";
108 this->getTrajectoryPlayer()->setJointsInUse(jointNames.at(i),
false);
109 map.erase(jointNames.at(i));
114 this->getTrajectoryPlayer()->setEndTime(this->getTrajectoryPlayer()->getTrajEndTime() /
118 local.setinitialJointValues(map);
153 this->getTrajectoryPlayer()->stopTrajectoryPlayer();