46 using ConfigPtrT = NJointAdaptiveWipingControllerConfigPtr;
48 const NJointControllerConfigPtr& config,
56 void rtRun(
const IceUtil::Time& sensorValuesTimestamp,
57 const IceUtil::Time& timeSinceLastIteration);
69 void setSpeed(Ice::Double times,
const Ice::Current&);
70 void setGoals(
const Ice::DoubleSeq& goals,
const Ice::Current&);
72 void runDMP(
const Ice::DoubleSeq& goals, Ice::Double tau,
const Ice::Current&);
78 return dmpCtrl->canVal;
91 struct DebugBufferData
93 StringFloatDictionary latestTargetVelocities;
94 StringFloatDictionary currentPose;
108 Eigen::Matrix4f targetPose;
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;
118 Eigen::Matrix4f currentPose;
121 Eigen::Matrix4f globalPose;
122 Eigen::Vector3f globalFilteredForce;
123 Eigen::Vector3f currentToolDir;
124 Eigen::VectorXf currentTwist;
131 struct RTToControllerData
135 Eigen::Matrix4f currentPose;
136 Eigen::VectorXf currentTwist;
144 Eigen::Matrix4f currentTcpPose;
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;
177 Eigen::Matrix4f targetPose;
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;
206 Eigen::Matrix3f toolTransform;
207 Eigen::Vector3f oriToolDir;
208 Eigen::Matrix3f origHandOri;
209 Eigen::VectorXf qvel_filtered;
211 Eigen::Vector3f adaptK;
213 Eigen::Vector2f lastPosition;