Go to the documentation of this file.
25 #include <ArmarXCore/interface/core/BasicTypes.h>
26 #include <ArmarXCore/interface/serialization/Eigen.h>
28 #include <mplib/factories/VMPFactory.h>
29 #include <mplib/factories/AbstractMPFactory.h>
30 #include <mplib/factories/MPFactoryCreator.h>
31 #include <mplib/representation/vmp/VMP.h>
32 #include <mplib/representation/vmp/PrincipalComponentVMP.h>
33 #include <mplib/representation/vmp/TaskSpacePrincipalComponentVMP.h>
34 #include <SimoxUtility/json.h>
39 using VMPPtr = std::shared_ptr<mplib::representation::vmp::PrincipalComponentVMP>;
109 virtual ~MP() =
default;
118 void start(
const Ice::DoubleSeq& goals);
120 void start(
const Ice::DoubleSeq& goals,
const Ice::DoubleSeq& starts,
Ice::Double timeDuration);
121 void start(
const Ice::DoubleSeq& goals,
const Ice::DoubleSeq& starts);
129 void learnFromCSV(
const Ice::StringSeq& fileNames = std::vector<std::string>());
131 void setGoal(
const Ice::DoubleSeq& goals);
132 void setStart(
const Ice::DoubleSeq& starts);
133 void setStartAndGoal(
const Ice::DoubleSeq& starts,
const Ice::DoubleSeq& goals);
138 void setWeight(
const std::vector<std::vector<double>> &weights);
142 std::string
serialize(
const std::string& mode =
"string");
143 Ice::DoubleSeq
deserialize(
const std::string&,
const std::string& mode =
"string");
150 void resetVMPType(
const std::string& mpTypeString)
152 if (mpTypeString !=
"")
154 vmpType = mplib::representation::VMPType::_from_string_nocase(mpTypeString.c_str());
165 mplib::representation::VMPType
vmpType = mplib::representation::VMPType::PrincipalComponent;
std::vector< MPConfig > mpList
std::vector< double > viaPointValue
void setRotationWeights(const std::vector< std::vector< double >> &weights)
Ice::DoubleSeq deserialize(const std::string &, const std::string &mode="string")
virtual void run(MPInputPtr, MPOutputPtr)=0
std::vector< ListViaPoint > viaPoints
std::recursive_mutex MutexType
void learnFromCSV(const Ice::StringSeq &fileNames=std::vector< std::string >())
setting
mplib::core::DVec targetPoseVec
namespace armarx::control::common::control_law
std::shared_ptr< mplib::representation::vmp::PrincipalComponentVMP > VMPPtr
std::atomic_bool mpTrained
Note: if mp is not trained, the dimension is not initialized, thus mp->getDim() is undefined,...
std::lock_guard< std::recursive_mutex > LockGuardType
const VariantTypeId Double
std::shared_ptr< MP > MPPtr
void setWeight(const std::vector< std::vector< double >> &weights)
serialze
std::atomic_bool finished
void setViaPoint(Ice::Double u, const Ice::DoubleSeq &viapoint)
bool enablePhaseStop
phase stop parameters ps = PhaseStop
double getCanonicalValue()
std::string serialize(const std::string &mode="string")
std::atomic_bool goalSetByUser
std::vector< std::string > fileList
std::shared_ptr< MPInput > MPInputPtr
std::vector< mplib::representation::MPState > currentState
std::vector< std::pair< double, mplib::core::DVec > > userDefinedViaPoints
std::map< std::string, double > viaPointValue
std::shared_ptr< MPOutput > MPOutputPtr
void setTranslationWeights(const std::vector< std::vector< double >> &weights)
std::string getClassName()
void setStart(const Ice::DoubleSeq &starts)
void setGoal(const Ice::DoubleSeq &goals)
mplib::core::DVec targetPoseVecInTraj
mplib::representation::VMPType vmpType
std::string regressionModel
void setStartAndGoal(const Ice::DoubleSeq &starts, const Ice::DoubleSeq &goals)