5 #include <VirtualRobot/Robot.h>
6 #include <VirtualRobot/IK/DifferentialIK.h>
9 #include <VirtualRobot/Robot.h>
19 #include <armarx/control/deprecated_njoint_mp_controller/adaptive/ControllerInterface.h>
45 using ConfigPtrT = NJointAdaptiveWipingControllerConfigPtr;
64 void setGoals(
const Ice::DoubleSeq& goals,
const Ice::Current&);
70 return dmpCtrl->canVal;
81 struct DebugBufferData
83 StringFloatDictionary latestTargetVelocities;
84 StringFloatDictionary currentPose;
100 Eigen::Vector3f filteredForce;
101 Eigen::Vector3f filteredForceInRoot;
102 Eigen::Vector3f filteredTorque;
104 Eigen::Vector3f rotationAxis;
106 Eigen::Vector3f reactForce;
107 Eigen::Vector3f adaptK;
108 Eigen::VectorXf targetVel;
113 Eigen::Vector3f globalFilteredForce;
114 Eigen::Vector3f currentToolDir;
115 Eigen::VectorXf currentTwist;
124 struct RTToControllerData
129 Eigen::VectorXf currentTwist;
137 float waitTimeForCalibration;
139 TripleBuffer<RTToUserData> rt2UserData;
145 TripleBuffer<UserToRTData> user2rtData;
150 std::vector<const SensorValue1DoFActuatorVelocity*> velocitySensors;
151 std::vector<const SensorValue1DoFActuatorPosition*> positionSensors;
152 std::vector<ControlTarget1DoFActuatorTorque*> targets;
155 std::string nodeSetName;
161 VirtualRobot::DifferentialIKPtr ik;
162 VirtualRobot::RobotNodePtr tcp;
164 NJointAdaptiveWipingControllerConfigPtr cfg;
169 Eigen::Vector3f kpos;
170 Eigen::Vector3f dpos;
171 Eigen::Vector3f kori;
172 Eigen::Vector3f dori;
173 Eigen::VectorXf knull;
174 Eigen::VectorXf dnull;
177 Eigen::VectorXf nullSpaceJointsVec;
178 const SensorValueForceTorque* forceSensor;
182 Eigen::Vector3f filteredForce;
183 Eigen::Vector3f filteredTorque;
184 Eigen::Vector3f forceOffset;
185 Eigen::Vector3f currentForceOffset;
187 Eigen::Vector3f torqueOffset;
188 Eigen::Vector3f currentTorqueOffset;
190 Eigen::Vector3f handCOM;
191 Eigen::Vector3f gravityInRoot;
193 Eigen::Vector3f filteredForceInRoot;
194 Eigen::Vector3f filteredTorqueInRoot;
197 Eigen::Vector3f oriToolDir;
199 Eigen::VectorXf qvel_filtered;
201 Eigen::Vector3f adaptK;
203 Eigen::Vector2f lastPosition;