48 DeprecatedNJointTaskSpaceImpedanceDMPControllerControlData>,
52 using ConfigPtrT = DeprecatedNJointTaskSpaceImpedanceDMPControllerConfigPtr;
54 const NJointControllerConfigPtr& config,
58 std::string
getClassName(
const Ice::Current&)
const override;
62 void rtRun(
const IceUtil::Time& sensorValuesTimestamp,
63 const IceUtil::Time& timeSinceLastIteration)
override;
66 void learnDMPFromFiles(
const Ice::StringSeq& fileNames,
const Ice::Current&)
override;
81 setViaPoints(Ice::Double u,
const Ice::DoubleSeq& viapoint,
const Ice::Current&)
override;
82 void setGoals(
const Ice::DoubleSeq& goals,
const Ice::Current&)
override;
85 const Ice::FloatSeq& currentJVS,
86 const Ice::Current&)
override;
87 void runDMP(
const Ice::DoubleSeq& goals,
88 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
90 Ice::Double timeDuration,
91 const Ice::Current&)
override;
96 return dmpCtrl->canVal;
99 void stopDMP(
const Ice::Current&)
override;
100 void resumeDMP(
const Ice::Current&)
override;
101 void resetDMP(
const Ice::Current&)
override;
103 void setMPWeights(
const DoubleSeqSeq& weights,
const Ice::Current&)
override;
104 DoubleSeqSeq
getMPWeights(
const Ice::Current&)
override;
116 const Ice::Current&)
override;
127 useForceStop =
false;
133 forceThreshold.getWriteBuffer() = f;
134 forceThreshold.commitWrite();
139 Ice::Double
getCanVal(
const Ice::Current&);
151 struct DebugBufferData
153 double currentCanVal;
166 float currentPose_qw;
167 float currentPose_qx;
168 float currentPose_qy;
169 float currentPose_qz;
177 float currentKnull_x;
178 float currentKnull_y;
179 float currentKnull_z;
187 float currentDnull_x;
188 float currentDnull_y;
189 float currentDnull_z;
191 StringFloatDictionary desired_torques;
192 StringFloatDictionary desired_nullspaceJoint;
193 float forceDesired_x;
194 float forceDesired_y;
195 float forceDesired_z;
196 float forceDesired_rx;
197 float forceDesired_ry;
198 float forceDesired_rz;
200 Eigen::Vector3f filteredForceInRoot;
207 struct DeprecatedNJointTaskSpaceImpedanceDMPControllerSensorData
211 Eigen::Matrix4f currentPose;
212 Eigen::VectorXf currentTwist;
216 controllerSensorData;
218 struct DeprecatedNJointTaskSpaceImpedanceDMPControllerInterfaceData
220 Eigen::Matrix4f currentTcpPose;
228 Eigen::Vector3f kpos;
229 Eigen::Vector3f dpos;
230 Eigen::Vector3f kori;
231 Eigen::Vector3f dori;
232 Eigen::VectorXf knull;
233 Eigen::VectorXf dnull;
236 WriteBufferedTripleBuffer<CtrlParams> ctrlParams;
239 DMP::Vec<DMP::DMPState> currentJointState;
244 std::vector<const SensorValue1DoFActuatorTorque*> torqueSensors;
245 std::vector<const SensorValue1DoFActuatorVelocity*> velocitySensors;
246 std::vector<const SensorValue1DoFActuatorPosition*> positionSensors;
247 std::vector<ControlTarget1DoFActuatorTorque*> targets;
253 VirtualRobot::RobotNodeSetPtr rns;
260 double posToOriRatio;
263 DeprecatedNJointTaskSpaceImpedanceDMPControllerConfigPtr cfg;
264 VirtualRobot::DifferentialIKPtr ik;
265 VirtualRobot::RobotNodePtr tcp;
277 std::atomic_bool useNullSpaceJointDMP;
278 bool isNullSpaceJointDMPLearned;
281 WriteBufferedTripleBuffer<Eigen::VectorXf> defaultNullSpaceJointValues;
282 std::vector<std::string> jointNames;
286 bool started =
false;
287 bool stopped =
false;
289 Eigen::Matrix4f stopPose;
291 Eigen::Vector3f filteredForce;
292 Eigen::Vector3f forceOffset;
293 Eigen::Vector3f filteredForceInRoot;
294 WriteBufferedTripleBuffer<Eigen::Vector3f> forceThreshold;
295 std::atomic<bool> useForceStop;
296 std::atomic<float> timeForCalibration;
297 const SensorValueForceTorque* forceSensor;