4 #include <VirtualRobot/VirtualRobot.h>
13 #include <armarx/control/deprecated_njoint_mp_controller/task_space/ControllerInterface.h>
17 class SensorValue1DoFActuatorTorque;
18 class SensorValue1DoFActuatorVelocity;
19 class SensorValue1DoFActuatorPosition;
20 class ControlTarget1DoFActuatorTorque;
21 class SensorValueForceTorque;
27 std::shared_ptr<class SingleChainManipulabilityTracking>;
52 using ConfigPtrT = NJointPeriodicTSDMPCompliantControllerConfigPtr;
54 const NJointControllerConfigPtr& config,
76 void setGoals(
const Ice::DoubleSeq& goals,
const Ice::Current&);
84 return dmpCtrl->canVal;
97 struct DebugBufferData
99 StringFloatDictionary latestTargetVelocities;
100 StringFloatDictionary currentPose;
101 double currentCanVal;
115 Eigen::Vector3f filteredForce;
116 Eigen::Vector3f reactForce;
117 Eigen::Vector3f adaptK;
118 Eigen::VectorXf targetVel;
120 Eigen::VectorXf currentTwist;
127 struct RTToControllerData
132 Eigen::VectorXf currentTwist;
141 float waitTimeForCalibration;
144 TripleBuffer<RTToUserData> rt2UserData;
151 TripleBuffer<UserToRTData> user2rtData;
156 std::vector<const SensorValue1DoFActuatorVelocity*> velocitySensors;
157 std::vector<const SensorValue1DoFActuatorPosition*> positionSensors;
158 std::vector<ControlTarget1DoFActuatorTorque*> targets;
161 std::string nodeSetName;
167 VirtualRobot::DifferentialIKPtr ik;
168 VirtualRobot::RobotNodePtr tcp;
170 NJointPeriodicTSDMPCompliantControllerConfigPtr cfg;
175 Eigen::Vector3f kpos;
176 Eigen::Vector3f dpos;
177 Eigen::Vector3f kori;
178 Eigen::Vector3f dori;
183 Eigen::VectorXf nullSpaceJointsVec;
184 const SensorValueForceTorque* forceSensor;
186 Eigen::Vector3f filteredForce;
187 Eigen::Vector3f forceOffset;
188 Eigen::Vector3f filteredForceInRoot;
191 Eigen::Vector3f oriToolDir;
193 Eigen::VectorXf qvel_filtered;
195 Eigen::Vector3f adaptK;
197 Eigen::Vector2f lastPosition;
201 bool isManipulability =
false;
203 Eigen::MatrixXd targetManipulability;
204 Eigen::MatrixXd kmani;