5 #include <VirtualRobot/Robot.h>
6 #include <VirtualRobot/IK/DifferentialIK.h>
9 #include <dmp/representation/dmp/umitsmp.h>
21 #include <armarx/control/deprecated_njoint_mp_controller/bimanual/ForceMPControllerInterface.h>
32 using ViaPoint = std::pair<double, DMP::DVec >;
50 using ConfigPtrT = NJointBimanualForceMPControllerConfigPtr;
54 std::string
getClassName(
const Ice::Current&)
const override;
61 void learnDMPFromFiles(
const std::string& whichMP,
const Ice::StringSeq& fileNames,
const Ice::Current&)
override;
67 void runDMP(
const Ice::DoubleSeq& leftGoals,
const Ice::DoubleSeq& rightGoals,
const Ice::Current&)
override;
74 void setViaPoints(
const std::string& whichDMP,
double canVal,
const Ice::DoubleSeq& viaPoint,
const Ice::Current&)
override;
84 struct DebugBufferData
86 StringFloatDictionary dmpTargets;
87 StringFloatDictionary currentPose;
93 struct NJointBimanualForceMPControllerSensorData
101 Eigen::Vector3f leftForceInRootFrame;
102 Eigen::Vector3f rightForceInRootFrame;
107 struct NJointBimanualForceMPControllerInterfaceData
114 std::vector<ControlTarget1DoFActuatorVelocity*> leftTargets;
115 std::vector<const SensorValue1DoFActuatorVelocity*> leftVelocitySensors;
116 std::vector<const SensorValue1DoFActuatorPosition*> leftPositionSensors;
118 std::vector<ControlTarget1DoFActuatorVelocity*> rightTargets;
119 std::vector<const SensorValue1DoFActuatorVelocity*> rightVelocitySensors;
120 std::vector<const SensorValue1DoFActuatorPosition*> rightPositionSensors;
125 VirtualRobot::DifferentialIKPtr leftIK;
126 VirtualRobot::DifferentialIKPtr rightIK;
138 VirtualRobot::RobotNodePtr leftTCP;
139 VirtualRobot::RobotNodePtr rightTCP;
142 Eigen::VectorXf targetVels;
145 NJointBimanualForceMPControllerConfigPtr cfg;
167 Eigen::Vector3f leftFilteredValue;
168 Eigen::Vector3f rightFilteredValue;
170 Eigen::Vector3f leftForceOffset;
171 Eigen::Vector3f rightForceOffset;
172 float targetSupportForce;