4 #include <VirtualRobot/Robot.h>
5 #include <VirtualRobot/IK/DifferentialIK.h>
6 #include <VirtualRobot/Manipulability/SingleChainManipulability.h>
7 #include <VirtualRobot/Manipulability/SingleChainManipulabilityTracking.h>
20 #include <armarx/control/deprecated_njoint_mp_controller/task_space/ControllerInterface.h>
46 using ConfigPtrT = NJointPeriodicTSDMPCompliantControllerConfigPtr;
65 void setGoals(
const Ice::DoubleSeq& goals,
const Ice::Current&);
71 return dmpCtrl->canVal;
82 struct DebugBufferData
84 StringFloatDictionary latestTargetVelocities;
85 StringFloatDictionary currentPose;
101 Eigen::Vector3f filteredForce;
102 Eigen::Vector3f reactForce;
103 Eigen::Vector3f adaptK;
104 Eigen::VectorXf targetVel;
106 Eigen::VectorXf currentTwist;
112 struct RTToControllerData
117 Eigen::VectorXf currentTwist;
125 float waitTimeForCalibration;
127 TripleBuffer<RTToUserData> rt2UserData;
133 TripleBuffer<UserToRTData> user2rtData;
138 std::vector<const SensorValue1DoFActuatorVelocity*> velocitySensors;
139 std::vector<const SensorValue1DoFActuatorPosition*> positionSensors;
140 std::vector<ControlTarget1DoFActuatorTorque*> targets;
143 std::string nodeSetName;
149 VirtualRobot::DifferentialIKPtr ik;
150 VirtualRobot::RobotNodePtr tcp;
152 NJointPeriodicTSDMPCompliantControllerConfigPtr cfg;
157 Eigen::Vector3f kpos;
158 Eigen::Vector3f dpos;
159 Eigen::Vector3f kori;
160 Eigen::Vector3f dori;
165 Eigen::VectorXf nullSpaceJointsVec;
166 const SensorValueForceTorque* forceSensor;
168 Eigen::Vector3f filteredForce;
169 Eigen::Vector3f forceOffset;
170 Eigen::Vector3f filteredForceInRoot;
173 Eigen::Vector3f oriToolDir;
175 Eigen::VectorXf qvel_filtered;
177 Eigen::Vector3f adaptK;
179 Eigen::Vector2f lastPosition;
184 bool isManipulability =
false;
185 VirtualRobot::SingleChainManipulabilityTrackingPtr manipulabilityTracker;
186 Eigen::MatrixXd targetManipulability;
187 Eigen::MatrixXd kmani;