33 #include <Rcs_typedef.h> 34 #include <Rcs_macros.h> 45 RcsGraph_setState(graph, NULL, NULL);
48 RCSGRAPH_TRAVERSE_JOINTS(graph) {
49 if (JNT->jacobiIndex != -1) {
51 if (JNT->ctrlType != RCSJOINT_CTRL_POSITION) {
53 <<
"Using AMJointControlPosition, but at least one joint does not have the control type " 54 "RCSJOINT_CTRL_POSITION!" << std::endl;
69 RcsGraph_stateVectorFromIK(
graph, action, q_des);
74 RCSGRAPH_TRAVERSE_JOINTS(
graph) {
75 if (JNT->jacobiIndex != -1) {
77 min[JNT->jacobiIndex] = JNT->q_min;
78 max[JNT->jacobiIndex] = JNT->q_max;
86 RcsGraph_stateVectorToIK(
graph,
graph->q, action);
91 std::vector<std::string> out;
92 RCSGRAPH_TRAVERSE_JOINTS(
graph) {
93 if (JNT->jacobiIndex != -1) {
94 out.emplace_back(JNT->name);
virtual ~AMJointControlPosition()
virtual void getStableAction(MatNd *action) const
virtual std::vector< std::string > getNames() const
AMJointControlPosition(RcsGraph *graph)
ActionModel * clone() const
virtual void computeCommand(MatNd *q_des, MatNd *q_dot_des, MatNd *T_des, const MatNd *action, double dt)
virtual void getMinMax(double *min, double *max) const