25 #include <ArmarXCore/interface/serialization/Eigen.ice>
27 #include <RobotAPI/interface/core/Trajectory.ice>
28 #include <RobotAPI/interface/units/RobotUnit/NJointController.ice>
32 module NJointTaskSpaceDMPControllerMode
49 string dmpMode =
"MinimumJerk";
50 string dmpStyle =
"Discrete";
51 double dmpAmplitude = 1;
55 double phaseDist0 = 50;
56 double phaseDist1 = 10;
57 double phaseKpPos = 1;
58 double phaseKpOri = 0.1;
59 double timeDuration = 10;
60 double posToOriRatio = 100;
63 string nodeSetName =
"";
65 string frameName =
"";
85 void learnDMPFromFiles(Ice::StringSeq trajfiles);
87 void runDMP(Ice::DoubleSeq goals,
double tau);
88 void runDMPWithTime(Ice::DoubleSeq goals,
double time);
90 void setSpeed(
double times);
91 void setViaPoints(
double canVal, Ice::DoubleSeq point);
92 void removeAllViaPoints();
93 void setGoals(Ice::DoubleSeq goals);
101 void setControllerTarget(
float avoidJointLimitsKp,
103 void setTorqueKp(StringFloatDictionary torqueKp);
104 void setNullspaceJointVelocities(StringFloatDictionary nullspaceJointVelocities);
105 string getDMPAsString();
106 Ice::DoubleSeq createDMPFromString(
string dmpString);
108 void setMPWeights(DoubleSeqSeq weights);
109 DoubleSeqSeq getMPWeights();
111 void setLinearVelocityKd(
float kd);
112 void setLinearVelocityKp(
float kp);
113 void setAngularVelocityKd(
float kd);
114 void setAngularVelocityKp(
float kp);
122 int kernelSize = 100;
130 double phaseDist0 = 50;
131 double phaseDist1 = 10;
132 double phaseKpPos = 1;
133 double phaseKpOri = 0.1;
142 double posToOriRatio = 100;
145 string nodeSetName =
"";
153 void learnDMPFromFiles(
int dmpId, Ice::StringSeq trajfiles);
157 void setTemporalFactor(
int dmpId,
double tau);
158 void setViaPoints(
int dmpId,
double canVal, Ice::DoubleSeq point);
159 void setGoals(
int dmpId, Ice::DoubleSeq goals);
161 void setControllerTarget(
float avoidJointLimitsKp,
163 void setTorqueKp(StringFloatDictionary torqueKp);
164 void setNullspaceJointVelocities(StringFloatDictionary nullspaceJointVelocities);
171 int kernelSize = 100;
172 double dmpAmplitude = 1;
173 double timeDuration = 10;
177 double phaseDist0 = 50;
178 double phaseDist1 = 10;
179 double phaseKpPos = 1;
180 double phaseKpOri = 0.1;
181 double posToOriRatio = 100;
185 string nodeSetName =
"";
190 float avoidJointLimitsKp = 1;
195 string forceSensorName =
"FT R";
196 string forceFrameName =
"ArmR8_Wri2";
197 float forceFilter = 0.8;
198 float waitTimeForCalibration = 0.1;
201 float minimumReactForce = 0;
206 void learnDMPFromFiles(Ice::StringSeq trajfiles);
209 void runDMP(Ice::DoubleSeq goals,
double tau);
211 void setSpeed(
double times);
212 void setGoals(Ice::DoubleSeq goals);
213 void setAmplitude(
double amplitude);
222 int kernelSize = 100;
223 double dmpAmplitude = 1;
224 double timeDuration = 10;
228 float phaseDist0 = 50;
229 float phaseDist1 = 10;
230 double phaseKpPos = 1;
231 double phaseKpOri = 0.1;
232 double posToOriRatio = 100;
236 string nodeSetName =
"";
248 string forceSensorName =
"FT R";
249 string forceFrameName =
"ArmR8_Wri2";
250 float forceFilter = 0.8;
251 float waitTimeForCalibration = 0.1;
254 float minimumReactForce = 0;
266 bool ignoreWSLimitChecks =
false;
275 bool isManipulability =
false;
283 void learnDMPFromFiles(Ice::StringSeq trajfiles);
284 void learnDMPFromTrajectory(TrajectoryBase trajectory);
287 void runDMP(Ice::DoubleSeq goals,
double tau);
289 void setSpeed(
double times);
290 void setGoals(Ice::DoubleSeq goals);
291 void setAmplitude(
double amplitude);
292 void setTargetForceInRootFrame(
float force);
302 int kernelSize = 100;
304 string dmpMode =
"MinimumJerk";
305 string dmpStyle =
"Discrete";
306 double dmpAmplitude = 1;
310 double phaseDist0 = 50;
311 double phaseDist1 = 10;
312 double phaseKpPos = 1;
313 double phaseKpOri = 0.1;
314 double timeDuration = 10;
315 double posToOriRatio = 100;
318 string nodeSetName =
"";
320 string frameName =
"";
342 string forceFrameName =
"ArmR8_Wri2";
347 void learnDMPFromFiles(Ice::StringSeq trajfiles);
349 void runDMP(Ice::DoubleSeq goals,
double tau);
350 void runDMPWithTime(Ice::DoubleSeq goals,
double time);
352 void setSpeed(
double times);
353 void setViaPoints(
double canVal, Ice::DoubleSeq point);
354 void removeAllViaPoints();
355 void setGoals(Ice::DoubleSeq goals);
364 void setControllerTarget(
float avoidJointLimitsKp,
366 void setTorqueKp(StringFloatDictionary torqueKp);
367 void setNullspaceJointVelocities(StringFloatDictionary nullspaceJointVelocities);
368 string getDMPAsString();
369 Ice::DoubleSeq createDMPFromString(
string dmpString);
371 void setMPWeights(DoubleSeqSeq weights);
372 DoubleSeqSeq getMPWeights();
374 void setLinearVelocityKd(
float kd);
375 void setLinearVelocityKp(
float kp);
376 void setAngularVelocityKd(
float kd);
377 void setAngularVelocityKp(
float kp);
379 void enableForceStop();
380 void disableForceStop();
381 void setForceThreshold(Eigen::Vector3f forceThreshold);
388 int kernelSize = 100;
389 string dmpMode =
"MinimumJerk";
390 string dmpType =
"Discrete";
397 double phaseDist0 = 50;
398 double phaseDist1 = 10;
399 double posToOriRatio = 100;
421 string forceFrameName =
"ArmR8_Wri2";
425 NJointControllerInterface
427 void learnDMPFromFiles(Ice::StringSeq trajfiles);
428 void learnJointDMPFromFiles(
string jointTrajFile, Ice::FloatSeq currentJVS);
429 void setUseNullSpaceJointDMP(
bool enable);
433 void runDMP(Ice::DoubleSeq goals);
434 void runDMPWithTime(Ice::DoubleSeq goals,
double timeDuration);
436 void setViaPoints(
double canVal, Ice::DoubleSeq point);
437 void setGoals(Ice::DoubleSeq goals);
438 void setDefaultNullSpaceJointValues(Eigen::VectorXf jointValues);
440 double getVirtualTime();
445 void removeAllViaPoints();
447 void setMPWeights(DoubleSeqSeq weights);
448 DoubleSeqSeq getMPWeights();
450 void setLinearVelocityKd(Eigen::Vector3f kd);
451 void setLinearVelocityKp(Eigen::Vector3f kp);
452 void setAngularVelocityKd(Eigen::Vector3f kd);
453 void setAngularVelocityKp(Eigen::Vector3f kp);
454 void setNullspaceVelocityKd(Eigen::VectorXf jointValues);
455 void setNullspaceVelocityKp(Eigen::VectorXf jointValues);
457 void enableForceStop();
458 void disableForceStop();
459 void setForceThreshold(Eigen::Vector3f forceThreshold);
461 string getDMPAsString();
462 Ice::DoubleSeq createDMPFromString(
string dmpString);
470 int kernelSize = 100;
471 string dmpMode =
"MinimumJerk";
472 string dmpType =
"Discrete";
479 double phaseDist0 = 50;
480 double phaseDist1 = 10;
481 double posToOriRatio = 100;
501 string forceFrameName =
"ArmR8_Wri2";
508 float tcpMass = 0.0f;
515 NJointControllerInterface
517 void setTargetNullSpaceJointValues(Eigen::VectorXf jointValues);
520 void learnDMPFromFiles(Ice::StringSeq trajfiles);
521 void learnJointDMPFromFiles(
string jointTrajFile, Ice::FloatSeq currentJVS);
522 void setUseNullSpaceJointDMP(
bool enable);
524 void setViaPoints(
double canVal, Ice::DoubleSeq point);
525 void setGoals(Ice::DoubleSeq goals);
526 void setStartAndGoals(Ice::DoubleSeq starts, Ice::DoubleSeq goals);
528 void runDMP(Ice::DoubleSeq goals);
529 void runDMPWithTime(Ice::DoubleSeq goals,
double timeDuration);
530 double getVirtualTime();
535 void removeAllViaPoints();
536 void setMPWeights(DoubleSeqSeq weights);
537 DoubleSeqSeq getMPWeights();
538 string getDMPAsString();
539 Ice::DoubleSeq createDMPFromString(
string dmpString);
549 void setTCPMass(
float mass);
550 void setTCPCoMInFTFrame(Eigen::Vector3f com);
552 void setNullspaceVelocityKd(Eigen::VectorXf jointValues);
553 void setNullspaceVelocityKp(Eigen::VectorXf jointValues);
556 string getKinematicChainName();
559 void setPotentialForceBaseline(Eigen::Vector3f force, Eigen::Vector3f torque);
565 int kernelSize = 100;
566 double dmpAmplitude = 1;
567 double timeDuration = 10;
568 string nodeSetName =
"";
572 float phaseDist0 = 50;
573 float phaseDist1 = 10;
574 double phaseKpPos = 1;
575 double phaseKpOri = 0.1;
576 double posToOriRatio = 100;
598 bool ignoreWSLimitChecks =
false;
603 string forceSensorName =
"FT R";
604 string forceFrameName =
"ArmR8_Wri2";
605 float forceFilter = 0.8;
608 float waitTimeForCalibration = 0.1;
611 float tcpMass = 0.0f;
619 NJointControllerInterface
621 void learnDMPFromFiles(Ice::StringSeq trajfiles);
622 void learnDMPFromTrajectory(TrajectoryBase trajectory);
625 void runDMP(Ice::DoubleSeq goals,
double tau);
632 void setSpeed(
double times);
633 void setGoals(Ice::DoubleSeq goals);
634 void setAmplitude(
double amplitude);
635 void setTargetForceInRootFrame(
float force);
642 string getKinematicChainName();