51 using ConfigPtrT = NJointBimanualForceMPControllerConfigPtr;
53 const NJointControllerConfigPtr& config,
57 std::string
getClassName(
const Ice::Current&)
const override;
61 void rtRun(
const IceUtil::Time& sensorValuesTimestamp,
62 const IceUtil::Time& timeSinceLastIteration)
override;
66 const Ice::StringSeq& fileNames,
67 const Ice::Current&)
override;
75 void runDMP(
const Ice::DoubleSeq& leftGoals,
76 const Ice::DoubleSeq& rightGoals,
77 const Ice::Current&)
override;
87 const Ice::DoubleSeq& viaPoint,
88 const Ice::Current&)
override;
101 struct DebugBufferData
103 StringFloatDictionary dmpTargets;
104 StringFloatDictionary currentPose;
111 struct NJointBimanualForceMPControllerSensorData
113 Eigen::Matrix4f leftPoseInRootFrame;
116 Eigen::Matrix4f rightPoseInRootFrame;
119 Eigen::Vector3f leftForceInRootFrame;
120 Eigen::Vector3f rightForceInRootFrame;
126 struct NJointBimanualForceMPControllerInterfaceData
128 Eigen::Matrix4f leftTcpPoseInRootFrame;
129 Eigen::Matrix4f rightTcpPoseInRootFrame;
134 std::vector<ControlTarget1DoFActuatorVelocity*> leftTargets;
135 std::vector<const SensorValue1DoFActuatorVelocity*> leftVelocitySensors;
136 std::vector<const SensorValue1DoFActuatorPosition*> leftPositionSensors;
138 std::vector<ControlTarget1DoFActuatorVelocity*> rightTargets;
139 std::vector<const SensorValue1DoFActuatorVelocity*> rightVelocitySensors;
140 std::vector<const SensorValue1DoFActuatorPosition*> rightPositionSensors;
145 VirtualRobot::DifferentialIKPtr leftIK;
146 VirtualRobot::DifferentialIKPtr rightIK;
158 VirtualRobot::RobotNodePtr leftTCP;
159 VirtualRobot::RobotNodePtr rightTCP;
162 Eigen::VectorXf targetVels;
163 Eigen::Matrix4f targetPose;
165 NJointBimanualForceMPControllerConfigPtr cfg;
187 Eigen::Vector3f leftFilteredValue;
188 Eigen::Vector3f rightFilteredValue;
190 Eigen::Vector3f leftForceOffset;
191 Eigen::Vector3f rightForceOffset;
192 float targetSupportForce;