32 #include "../action/ActionModelIK.h" 33 #include "../util/eigen_matnd.h" 35 #include <ControllerBase.h> 36 #include <Rcs_typedef.h> 37 #include <Rcs_macros.h> 46 RCHECK_MSG(amik,
"AMDynamicalSystemActivation must wrap an AMIKGeneric");
49 for (
auto tsk : amik->getController()->getTasks()) {
69 return (
unsigned int)
controller->getTaskDim();
73 double* state,
double* velocity,
const MatNd* currentAction,
77 Eigen::VectorXd x_last;
93 std::cout <<
"Accumulated dynamical system discrepancy: " << accumulatedDiscrepancy << std::endl;
94 std::cout <<
"Incremental dynamical system discrepancy: " << incrementalDiscrepancy << std::endl;
100 state[i] = incrementalDiscrepancy[i];
112 std::vector<std::string> result;
117 std::ostringstream prefix;
118 std::string name =
"UNSET";
119 if (task->getEffector()) {
121 name = task->getEffector()->name;
125 name = task->getName();
127 prefix <<
"DiscrepDS_" << name <<
"_";
128 for (
auto param : task->getParameters()) {
129 auto paramName = param.name;
132 auto spaceIdx = paramName.find(
' ');
133 if (spaceIdx != std::string::npos) {
134 paramName = paramName.substr(0, spaceIdx);
137 result.push_back(prefix.str() + paramName);
ControllerBase * controller
void copyMatNd2Eigen(M &dst, const MatNd *src)
Eigen::VectorXd getXdot() const
Eigen::Map< MatNdMappable< M > > viewMatNd2Eigen(MatNd *src)
OMDynamicalSystemDiscrepancy(AMDynamicalSystemActivation *actionModel)
virtual ~OMDynamicalSystemDiscrepancy()
Eigen::VectorXd getX() const
virtual unsigned int getStateDim() const
virtual ActionModel * getWrappedActionModel() const
unsigned int getVelocityDim() const override
AMDynamicalSystemActivation * actionModel
virtual std::vector< std::string > getStateNames() const
virtual void computeObservation(double *state, double *velocity, const MatNd *currentAction, double dt) const