25 #include <RobotAPI/interface/units/RobotUnit/NJointController.ice>
26 #include <RobotAPI/interface/core/Trajectory.ice>
28 #include <ArmarXCore/interface/serialization/Eigen.ice>
32 module NJointTaskSpaceDMPControllerMode
50 string dmpMode =
"MinimumJerk";
51 string dmpStyle =
"Discrete";
52 double dmpAmplitude = 1;
56 double phaseDist0 = 50;
57 double phaseDist1 = 10;
58 double phaseKpPos = 1;
59 double phaseKpOri = 0.1;
60 double timeDuration = 10;
61 double posToOriRatio = 100;
64 string nodeSetName =
"";
66 string frameName =
"";
86 void learnDMPFromFiles(Ice::StringSeq trajfiles);
88 void runDMP(Ice::DoubleSeq goals,
double tau);
89 void runDMPWithTime(Ice::DoubleSeq goals,
double time);
91 void setSpeed(
double times);
92 void setViaPoints(
double canVal, Ice::DoubleSeq point);
93 void removeAllViaPoints();
94 void setGoals(Ice::DoubleSeq goals);
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);
123 int kernelSize = 100;
131 double phaseDist0 = 50;
132 double phaseDist1 = 10;
133 double phaseKpPos = 1;
134 double phaseKpOri = 0.1;
143 double posToOriRatio = 100;
146 string nodeSetName =
"";
154 void learnDMPFromFiles(
int dmpId, Ice::StringSeq trajfiles);
158 void setTemporalFactor(
int dmpId,
double tau);
159 void setViaPoints(
int dmpId,
double canVal, Ice::DoubleSeq point);
160 void setGoals(
int dmpId, Ice::DoubleSeq goals);
163 void setTorqueKp(StringFloatDictionary torqueKp);
164 void setNullspaceJointVelocities(StringFloatDictionary nullspaceJointVelocities);
172 int kernelSize = 100;
173 double dmpAmplitude = 1;
174 double timeDuration = 10;
178 double phaseDist0 = 50;
179 double phaseDist1 = 10;
180 double phaseKpPos = 1;
181 double phaseKpOri = 0.1;
182 double posToOriRatio = 100;
186 string nodeSetName =
"";
191 float avoidJointLimitsKp = 1;
196 string forceSensorName =
"FT R";
197 string forceFrameName =
"ArmR8_Wri2";
198 float forceFilter = 0.8;
199 float waitTimeForCalibration = 0.1;
202 float minimumReactForce = 0;
208 void learnDMPFromFiles(Ice::StringSeq trajfiles);
211 void runDMP(Ice::DoubleSeq goals,
double tau);
213 void setSpeed(
double times);
214 void setGoals(Ice::DoubleSeq goals);
215 void setAmplitude(
double amplitude);
225 int kernelSize = 100;
226 double dmpAmplitude = 1;
227 double timeDuration = 10;
231 float phaseDist0 = 50;
232 float phaseDist1 = 10;
233 double phaseKpPos = 1;
234 double phaseKpOri = 0.1;
235 double posToOriRatio = 100;
239 string nodeSetName =
"";
251 string forceSensorName =
"FT R";
252 string forceFrameName =
"ArmR8_Wri2";
253 float forceFilter = 0.8;
254 float waitTimeForCalibration = 0.1;
257 float minimumReactForce = 0;
269 bool ignoreWSLimitChecks =
false;
278 bool isManipulability =
false;
288 void learnDMPFromFiles(Ice::StringSeq trajfiles);
289 void learnDMPFromTrajectory(TrajectoryBase trajectory);
292 void runDMP(Ice::DoubleSeq goals,
double tau);
294 void setSpeed(
double times);
295 void setGoals(Ice::DoubleSeq goals);
296 void setAmplitude(
double amplitude);
297 void setTargetForceInRootFrame(
float force);
307 int kernelSize = 100;
309 string dmpMode =
"MinimumJerk";
310 string dmpStyle =
"Discrete";
311 double dmpAmplitude = 1;
315 double phaseDist0 = 50;
316 double phaseDist1 = 10;
317 double phaseKpPos = 1;
318 double phaseKpOri = 0.1;
319 double timeDuration = 10;
320 double posToOriRatio = 100;
323 string nodeSetName =
"";
325 string frameName =
"";
346 string forceFrameName =
"ArmR8_Wri2";
352 void learnDMPFromFiles(Ice::StringSeq trajfiles);
354 void runDMP(Ice::DoubleSeq goals,
double tau);
355 void runDMPWithTime(Ice::DoubleSeq goals,
double time);
357 void setSpeed(
double times);
358 void setViaPoints(
double canVal, Ice::DoubleSeq point);
359 void removeAllViaPoints();
360 void setGoals(Ice::DoubleSeq goals);
370 void setTorqueKp(StringFloatDictionary torqueKp);
371 void setNullspaceJointVelocities(StringFloatDictionary nullspaceJointVelocities);
372 string getDMPAsString();
373 Ice::DoubleSeq createDMPFromString(
string dmpString);
375 void setMPWeights(DoubleSeqSeq weights);
376 DoubleSeqSeq getMPWeights();
378 void setLinearVelocityKd(
float kd);
379 void setLinearVelocityKp(
float kp);
380 void setAngularVelocityKd(
float kd);
381 void setAngularVelocityKp(
float kp);
383 void enableForceStop();
384 void disableForceStop();
385 void setForceThreshold(Eigen::Vector3f forceThreshold);
392 int kernelSize = 100;
393 string dmpMode =
"MinimumJerk";
394 string dmpType =
"Discrete";
401 double phaseDist0 = 50;
402 double phaseDist1 = 10;
403 double posToOriRatio = 100;
425 string forceFrameName =
"ArmR8_Wri2";
430 void learnDMPFromFiles(Ice::StringSeq trajfiles);
431 void learnJointDMPFromFiles(
string jointTrajFile, Ice::FloatSeq currentJVS);
432 void setUseNullSpaceJointDMP(
bool enable);
436 void runDMP(Ice::DoubleSeq goals);
437 void runDMPWithTime(Ice::DoubleSeq goals,
double timeDuration);
439 void setViaPoints(
double canVal, Ice::DoubleSeq point);
440 void setGoals(Ice::DoubleSeq goals);
441 void setDefaultNullSpaceJointValues(Eigen::VectorXf jointValues);
443 double getVirtualTime();
448 void removeAllViaPoints();
450 void setMPWeights(DoubleSeqSeq weights);
451 DoubleSeqSeq getMPWeights();
453 void setLinearVelocityKd(Eigen::Vector3f kd);
454 void setLinearVelocityKp(Eigen::Vector3f kp);
455 void setAngularVelocityKd(Eigen::Vector3f kd);
456 void setAngularVelocityKp(Eigen::Vector3f kp);
457 void setNullspaceVelocityKd(Eigen::VectorXf jointValues);
458 void setNullspaceVelocityKp(Eigen::VectorXf jointValues);
460 void enableForceStop();
461 void disableForceStop();
462 void setForceThreshold(Eigen::Vector3f forceThreshold);
464 string getDMPAsString();
465 Ice::DoubleSeq createDMPFromString(
string dmpString);
474 int kernelSize = 100;
475 string dmpMode =
"MinimumJerk";
476 string dmpType =
"Discrete";
483 double phaseDist0 = 50;
484 double phaseDist1 = 10;
485 double posToOriRatio = 100;
505 string forceFrameName =
"ArmR8_Wri2";
512 float tcpMass = 0.0f;
520 void setTargetNullSpaceJointValues(Eigen::VectorXf jointValues);
523 void learnDMPFromFiles(Ice::StringSeq trajfiles);
524 void learnJointDMPFromFiles(
string jointTrajFile, Ice::FloatSeq currentJVS);
525 void setUseNullSpaceJointDMP(
bool enable);
527 void setViaPoints(
double canVal, Ice::DoubleSeq point);
528 void setGoals(Ice::DoubleSeq goals);
529 void setStartAndGoals(Ice::DoubleSeq starts, Ice::DoubleSeq goals);
531 void runDMP(Ice::DoubleSeq goals);
532 void runDMPWithTime(Ice::DoubleSeq goals,
double timeDuration);
533 double getVirtualTime();
538 void removeAllViaPoints();
539 void setMPWeights(DoubleSeqSeq weights);
540 DoubleSeqSeq getMPWeights();
541 string getDMPAsString();
542 Ice::DoubleSeq createDMPFromString(
string dmpString);
552 void setTCPMass(
float mass);
553 void setTCPCoMInFTFrame(Eigen::Vector3f com);
555 void setNullspaceVelocityKd(Eigen::VectorXf jointValues);
556 void setNullspaceVelocityKp(Eigen::VectorXf jointValues);
559 string getKinematicChainName();
562 void setPotentialForceBaseline(Eigen::Vector3f force, Eigen::Vector3f torque);
568 int kernelSize = 100;
569 double dmpAmplitude = 1;
570 double timeDuration = 10;
571 string nodeSetName =
"";
575 float phaseDist0 = 50;
576 float phaseDist1 = 10;
577 double phaseKpPos = 1;
578 double phaseKpOri = 0.1;
579 double posToOriRatio = 100;
601 bool ignoreWSLimitChecks =
false;
606 string forceSensorName =
"FT R";
607 string forceFrameName =
"ArmR8_Wri2";
608 float forceFilter = 0.8;
611 float waitTimeForCalibration = 0.1;
614 float tcpMass = 0.0f;
624 void learnDMPFromFiles(Ice::StringSeq trajfiles);
625 void learnDMPFromTrajectory(TrajectoryBase trajectory);
628 void runDMP(Ice::DoubleSeq goals,
double tau);
635 void setSpeed(
double times);
636 void setGoals(Ice::DoubleSeq goals);
637 void setAmplitude(
double amplitude);
638 void setTargetForceInRootFrame(
float force);
645 string getKinematicChainName();