33 #include <TaskPosition3D.h> 34 #include <TaskEuler3D.h> 36 #include <Rcs_macros.h> 37 #include <Rcs_VecNd.h> 39 #include <Rcs_typedef.h> 49 RcsBody* plate = RcsGraph_getBodyByName(
desiredGraph,
"Plate");
54 RcsBody* plateOrigMarker = RcsGraph_getBodyByName(
desiredGraph,
"PlateOriginMarker");
55 RCHECK_MSG(plateOrigMarker,
"PlateOriginMarker is missing, please update your xml.");
57 HTr_copyOrRecreate(&plateOrigMarker->A_BP, plate->A_BI);
88 double maxAngle = 45*M_PI/180;
97 return {
"x",
"y",
"z",
"a",
"b"};
104 MatNd_fromStack(x_des, PLATE_TASK_DIM, 1);
105 VecNd_copy(x_des->ele, action->ele, 5);
108 computeIK(q_des, q_dot_des, T_des, x_des, dt);
115 MatNd_fromStack(x_curr, PLATE_TASK_DIM, 1);
120 VecNd_copy(action->ele, x_curr->ele, 5);
virtual void getStableAction(MatNd *action) const
virtual std::vector< std::string > getNames() const
AMPlatePos5D(RcsGraph *graph)
virtual void computeCommand(MatNd *q_des, MatNd *q_dot_des, MatNd *T_des, const MatNd *action, double dt)
const unsigned int PLATE_TASK_DIM
virtual void getMinMax(double *min, double *max) const
virtual unsigned int getDim() const
void computeIK(MatNd *q_des, MatNd *q_dot_des, MatNd *T_des, const MatNd *x_des, double dt)
RcsCollisionMdl * collisionMdl
ActionModel * clone() const
const ControllerBase * getController() const