24 #include <VirtualRobot/RobotNodeSet.h>
26 #include <armarx/control/common/mp/MPPoolInterface.h>
27 #include <armarx/control/common/mp/aron/MPConfig.aron.generated.h>
30 #include <mplib/representation/vmp/PrincipalComponentVMP.h>
34 BETTER_ENUM(mpClass,
int, JSMP, JSVelMP, TSMP, TSVelMP, KeypointsMP)
36 using namespace arondto;
53 void runMPs(
const bool rtSafe);
54 void createMPs(
const MPListConfig& mpListConfig);
55 void reconfigureMPs(
const MPListConfig& mpListConfig);
59 std::string getNames(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
63 getMPConfig(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
65 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
67 const std::map<std::string, VirtualRobot::RobotNodeSetPtr>& rnsMap);
70 void start(
const std::string& mpName =
"all",
71 const DVec& startVec = std::vector<double>(),
72 const DVec& goalVec = std::vector<double>(),
74 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
75 void startAll(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
79 const ::Ice::Current& iceCurrent = ::Ice::emptyCurrent)
override;
81 void stop(
const std::string& mpName =
"all",
82 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
83 void requestStop(
const std::string& mpName =
"all",
84 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
85 void stopAll(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
86 void pause(
const std::string& mpName =
"all",
87 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
88 void pauseAll(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
89 void resume(
const std::string& mpName =
"all",
90 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
91 void resumeAll(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
92 void reset(
const std::string& mpName =
"all",
93 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
94 void resetAll(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
95 bool isFinished(
const std::string& mpName =
"all",
96 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
97 bool isFinishedAll(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
100 void learnFromCSV(
const Ice::StringSeq& fileNames = std::vector<std::string>(),
101 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
103 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
104 void trainMP(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
106 void setGoal(
const DVec& goals,
107 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
108 void setStartAndGoal(
const DVec& starts,
110 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
112 const DVec& viapoint,
113 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
114 void removeAllViaPoint(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
119 std::string serialize(
const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
120 DVec deserialize(
const std::string&,
121 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
125 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
126 bool getMPEnabled(
const Ice::Current&)
override;
129 std::map<std::string, MPInputOutput>
mps;
131 std::atomic<bool> isMPReady{
false};
138 reInitMPInputOutputData(
const std::map<std::string, VirtualRobot::RobotNodeSetPtr>& rnsMap);
140 std::atomic_bool mpTaskRunning{
false};