4 #include <VirtualRobot/VirtualRobot.h>
13 #include <armarx/control/deprecated_njoint_mp_controller/adaptive/ControllerInterface.h>
17 class SensorValue1DoFActuatorTorque;
18 class SensorValue1DoFActuatorVelocity;
19 class SensorValue1DoFActuatorPosition;
20 class ControlTarget1DoFActuatorTorque;
21 class SensorValueForceTorque;
46 using ConfigPtrT = NJointAdaptiveWipingControllerConfigPtr;
48 const NJointControllerConfigPtr& config,
70 void setGoals(
const Ice::DoubleSeq& goals,
const Ice::Current&);
78 return dmpCtrl->canVal;
91 struct DebugBufferData
93 StringFloatDictionary latestTargetVelocities;
94 StringFloatDictionary currentPose;
109 Eigen::Vector3f filteredForce;
110 Eigen::Vector3f filteredForceInRoot;
111 Eigen::Vector3f filteredTorque;
113 Eigen::Vector3f rotationAxis;
115 Eigen::Vector3f reactForce;
116 Eigen::Vector3f adaptK;
117 Eigen::VectorXf targetVel;
122 Eigen::Vector3f globalFilteredForce;
123 Eigen::Vector3f currentToolDir;
124 Eigen::VectorXf currentTwist;
131 struct RTToControllerData
136 Eigen::VectorXf currentTwist;
145 float waitTimeForCalibration;
148 TripleBuffer<RTToUserData> rt2UserData;
155 TripleBuffer<UserToRTData> user2rtData;
160 std::vector<const SensorValue1DoFActuatorVelocity*> velocitySensors;
161 std::vector<const SensorValue1DoFActuatorPosition*> positionSensors;
162 std::vector<ControlTarget1DoFActuatorTorque*> targets;
165 std::string nodeSetName;
171 VirtualRobot::DifferentialIKPtr ik;
172 VirtualRobot::RobotNodePtr tcp;
174 NJointAdaptiveWipingControllerConfigPtr cfg;
179 Eigen::Vector3f kpos;
180 Eigen::Vector3f dpos;
181 Eigen::Vector3f kori;
182 Eigen::Vector3f dori;
183 Eigen::VectorXf knull;
184 Eigen::VectorXf dnull;
187 Eigen::VectorXf nullSpaceJointsVec;
188 const SensorValueForceTorque* forceSensor;
192 Eigen::Vector3f filteredForce;
193 Eigen::Vector3f filteredTorque;
194 Eigen::Vector3f forceOffset;
195 Eigen::Vector3f currentForceOffset;
197 Eigen::Vector3f torqueOffset;
198 Eigen::Vector3f currentTorqueOffset;
200 Eigen::Vector3f handCOM;
201 Eigen::Vector3f gravityInRoot;
203 Eigen::Vector3f filteredForceInRoot;
204 Eigen::Vector3f filteredTorqueInRoot;
207 Eigen::Vector3f oriToolDir;
209 Eigen::VectorXf qvel_filtered;
211 Eigen::Vector3f adaptK;
213 Eigen::Vector2f lastPosition;