34 #include <Rcs_collisionModel.h> 35 #include <Rcs_typedef.h> 36 #include <Rcs_VecNd.h> 37 #include <Rcs_macros.h> 45 RcsGraph* graph, RcsCollisionMdl* collisionMdl,
47 double maxCollCost) : realGraph(graph), horizon(horizon),
48 maxCollCost(maxCollCost)
55 this->collisionMdl = RcsCollisionModel_clone(collisionMdl,
predictGraph);
79 double* state,
double* velocity,
const MatNd* currentAction,
93 if (currentAction != NULL) {
95 for (
size_t i = 0; i <=
horizon; ++i) {
112 state[0] = predCostSum;
117 return {
"PredCollCost_h" + std::to_string(
horizon)};
RcsGraph * realGraph
Graph to observe (not owned)
ActionModel * predictActionModel
Action model copy for prediction.
virtual unsigned int getVelocityDim() const
std::vector< std::string > getStateNames() const override
virtual unsigned int getStateDim() const
virtual void getLimits(double *minState, double *maxState, double *maxVelocity) const
virtual void computeCommand(MatNd *q_des, MatNd *q_dot_des, MatNd *T_des, const MatNd *action, double dt)=0
virtual ~OMCollisionCostPrediction()
RcsGraph * predictGraph
Graph copy for prediction.
size_t horizon
Time horizon for the predicted collision costs (horizon = 1 mean the current step plus one step ahead...
OMCollisionCostPrediction(RcsGraph *graph, RcsCollisionMdl *collisionMdl, const ActionModel *actionModel, size_t horizon=10, double maxCollCost=1e4)
virtual void computeObservation(double *state, double *velocity, const MatNd *currentAction, double dt) const
ActionModel * clone() const
RcsCollisionMdl * collisionMdl
Rcs collision model.