NJointBimanualObjLevelMultiMPController.h
Go to the documentation of this file.
1 #pragma once
2 
3 
4 // Simox
5 #include <VirtualRobot/Robot.h>
6 #include <VirtualRobot/IK/DifferentialIK.h>
7 
8 // armarx
16 
17 // control
18 #include <armarx/control/deprecated_njoint_mp_controller/bimanual/ObjLevelControllerInterface.h>
20 
21 
23 {
25 
26  TYPEDEF_PTRS_HANDLE(NJointBimanualObjLevelMultiMPController);
27  TYPEDEF_PTRS_HANDLE(NJointBimanualObjLevelMultiMPControlData);
28 
30  {
31  public:
32  // control target from Movement Primitives
34  Eigen::VectorXf objTargetTwist;
35 
37  Eigen::VectorXf leftTargetTwistInObj;
38 
40  Eigen::VectorXf rightTargetTwistInObj;
41  };
42 
43 
45  public NJointControllerWithTripleBuffer<NJointBimanualObjLevelMultiMPControlData>,
47  {
48  public:
49  // using ConfigPtrT = BimanualForceControllerConfigPtr;
50  NJointBimanualObjLevelMultiMPController(const RobotUnitPtr&, const NJointControllerConfigPtr& config, const VirtualRobot::RobotPtr&);
51 
52  // NJointControllerInterface interface
53  std::string getClassName(const Ice::Current&) const;
54 
55  // NJointController interface
56 
57  void rtRun(const IceUtil::Time& sensorValuesTimestamp, const IceUtil::Time& timeSinceLastIteration);
58 
59  // NJointCCDMPControllerInterface interface
60  void learnDMPFromFiles(const Ice::StringSeq& fileNames, const Ice::Current&);
61  void learnMultiDMPFromFiles(const Ice::StringSeq& objFileNames, const Ice::StringSeq& leftFileNames, const Ice::StringSeq& rightFileNames, const Ice::Current&);
62 
63  bool isFinished(const Ice::Current&)
64  {
65  return finished;
66  }
67  Eigen::Matrix3f skew(Eigen::Vector3f vec)
68  {
69  Eigen::Matrix3f mat = Eigen::MatrixXf::Zero(3, 3);
70  mat(1, 2) = -vec(0);
71  mat(0, 2) = vec(1);
72  mat(0, 1) = -vec(2);
73  mat(2, 1) = vec(0);
74  mat(2, 0) = -vec(1);
75  mat(1, 0) = vec(2);
76  return mat;
77  }
78 
79  // void runDMP(const Ice::DoubleSeq& goals, Ice::Double tau, const Ice::Current&);
80  void runDMP(const Ice::DoubleSeq& goalObj, const Ice::DoubleSeq& goalLeft, const Ice::DoubleSeq& goalRight, Ice::Double timeDuration, const Ice::Current&);
81  void runDMPWithVirtualStart(const Ice::DoubleSeq& starts, const Ice::DoubleSeq& goals, Ice::Double timeDuration, const Ice::Current&);
82 
83  void setGoals(const Ice::DoubleSeq& goals, const Ice::Current&);
84  void setMultiMPGoals(const Ice::DoubleSeq& goalObj, const Ice::DoubleSeq& goalLeft, const Ice::DoubleSeq& goalRight, const Ice::Current& ice);
85 
86  void setViaPoints(Ice::Double u, const Ice::DoubleSeq& viapoint, const Ice::Current&);
87  void removeAllViaPoints(const Ice::Current&);
88 
89  double getVirtualTime(const Ice::Current&)
90  {
91  return virtualtimer;
92  }
93 
94  void setKpImpedance(const Ice::FloatSeq& value, const Ice::Current&);
95  void setKdImpedance(const Ice::FloatSeq& value, const Ice::Current&);
96  void setKmAdmittance(const Ice::FloatSeq& value, const Ice::Current&);
97  void setKpAdmittance(const Ice::FloatSeq& value, const Ice::Current&);
98  void setKdAdmittance(const Ice::FloatSeq& value, const Ice::Current&);
99 
100  std::vector<float> getCurrentObjVel(const Ice::Current&);
101  std::vector<float> getCurrentObjForce(const Ice::Current&);
102 
103  void getObjStatus(Eigen::Matrix4f& pose, Eigen::VectorXf& twist);
104  std::vector<double> eigenPose2Vec(const Eigen::Matrix4f& pose);
105  Eigen::VectorXf eigenPose2EigenVec(const Eigen::Matrix4f& pose);
106  Eigen::Matrix4f getLocalPose(const Eigen::Matrix4f& newCoordinate, const Eigen::Matrix4f& globalTargetPose);
107  Eigen::Matrix4f getLocalPose(const std::vector<double>& newCoordinateVec, const std::vector<double>& globalTargetPoseVec);
108  void integrateVel2Pose(const double deltaT, Eigen::VectorXf& vel, Eigen::Matrix4f& pose);
109  void publishVec(const Eigen::VectorXf& bufferVec, const std::string name, StringVariantBaseMap& datafields);
110  void setAmplitude(Ice::Double amp, const Ice::Current&);
111  protected:
113 
114  void onInitNJointController();
116  void controllerRun();
117 
118  private:
119  Eigen::VectorXf targetWrench;
120  struct RT2DebugData
121  {
122  StringFloatDictionary desired_torques;
123 
124  // dmp targets
125  Eigen::VectorXf objTargetPoseVec;
126  Eigen::VectorXf leftPoseVecInObj;
127  Eigen::VectorXf rightPoseVecInObj;
128  Eigen::VectorXf objTargetTwist;
129 
130  // hand poses
131  Eigen::VectorXf targetHandPoseInRootLeft;
132  Eigen::VectorXf targetHandPoseInRootRight;
133  Eigen::VectorXf currentHandPoseInRootLeft;
134  Eigen::VectorXf currentHandPoseInRootRight;
135 
136  // object pose, vel and force torque
137  Eigen::VectorXf objForceTorque;
138  Eigen::VectorXf objPoseVec;
139  Eigen::VectorXf objCurrentTwist;
140 
141  // virtual pose, vel, acc
142  Eigen::VectorXf virtualPoseVec;
143  Eigen::VectorXf virtualVel;
144  Eigen::VectorXf virtualAcc;
145 
146  // integrated pose
147  Eigen::VectorXf integratedPoseObjVec;
148  Eigen::VectorXf integratedPoseLeftVec;
149  Eigen::VectorXf integratedPoseRightVec;
150 
151  Eigen::VectorXf poseError;
152 
153  // force
154  Eigen::VectorXf forceImpedance;
155  Eigen::VectorXf forcePID;
156  Eigen::VectorXf forcePIDControlValue;
157  Eigen::VectorXf forceTorqueMeasurementInRoot;
158 
159  // parameters
160  Eigen::VectorXf KpImpedance;
161  Eigen::VectorXf KdImpedance;
162  Eigen::VectorXf KpAdmittance;
163  Eigen::VectorXf KdAdmittance;
164  Eigen::VectorXf KmAdmittance;
165  Eigen::VectorXf KmPID;
166  };
167  TripleBuffer<RT2DebugData> rt2DebugBuffer;
168 
169  struct RT2ControlData
170  {
171  double currentTime;
172  double deltaT;
173  Eigen::Matrix4f currentPoseObj;
174  Eigen::VectorXf currentTwistObj;
175 
176  Eigen::Matrix4f currentPoseLeftInObj;
177  Eigen::VectorXf currentTwistLeftInObj;
178 
179  Eigen::Matrix4f currentPoseRightInObj;
180  Eigen::VectorXf currentTwistRightInObj;
181  };
182  TripleBuffer<RT2ControlData> rt2ControlBuffer;
183 
184  struct RT2InterfaceData
185  {
186  Eigen::Matrix4f currentLeftPoseInObjFrame;
187  Eigen::Matrix4f currentRightPoseInObjFrame;
188  Eigen::Matrix4f currentObjPose;
189  Eigen::Vector3f currentObjVel;
190  Eigen::Vector3f currentObjForce;
191  };
192  TripleBuffer<RT2InterfaceData> rt2InterfaceBuffer;
193 
194  struct Inferface2rtData
195  {
196  Eigen::VectorXf KpImpedance;
197  Eigen::VectorXf KdImpedance;
198  Eigen::VectorXf KmAdmittance;
199  Eigen::VectorXf KpAdmittance;
200  Eigen::VectorXf KdAdmittance;
201  };
202  TripleBuffer<Inferface2rtData> interface2rtBuffer;
203 
204 
205 
206  std::vector<ControlTarget1DoFActuatorTorque*> leftTargets;
207  std::vector<const SensorValue1DoFActuatorAcceleration*> leftAccelerationSensors;
208  std::vector<const SensorValue1DoFActuatorVelocity*> leftVelocitySensors;
209  std::vector<const SensorValue1DoFActuatorPosition*> leftPositionSensors;
210 
211  std::vector<ControlTarget1DoFActuatorTorque*> rightTargets;
212  std::vector<const SensorValue1DoFActuatorAcceleration*> rightAccelerationSensors;
213  std::vector<const SensorValue1DoFActuatorVelocity*> rightVelocitySensors;
214  std::vector<const SensorValue1DoFActuatorPosition*> rightPositionSensors;
215 
216  const SensorValueForceTorque* rightForceTorque;
217  const SensorValueForceTorque* leftForceTorque;
218 
219  NJointBimanualObjLevelMultiMPControllerConfigPtr cfg;
220  VirtualRobot::DifferentialIKPtr leftIK;
221  VirtualRobot::DifferentialIKPtr rightIK;
222 
224  tsvmp::TaskSpaceDMPControllerPtr leftTCPInObjDMP;
225  tsvmp::TaskSpaceDMPControllerPtr rightTCPInObjDMP;
226 
227  Eigen::Matrix4f objInitialPose; // in root frame
228  Eigen::Matrix4f leftInitialPose; // in obj frame
229  Eigen::Matrix4f rightInitialPose; // in obj frame
230 
231  // add integrated pose by accumulating dmp target velocity to initial pose
232  Eigen::Matrix4f integratedPoseObj;
233  Eigen::Matrix4f integratedPoseLeft;
234  Eigen::Matrix4f integratedPoseRight;
235 
236  Eigen::Matrix4f objTransMatrixInAnchor;
237 
238  double virtualtimer;
239 
240  mutable MutexType controllerMutex;
241  mutable MutexType interfaceDataMutex;
242  Eigen::VectorXf leftDesiredJointValues;
243  Eigen::VectorXf rightDesiredJointValues;
244 
245  Eigen::VectorXf KpImpedance;
246  Eigen::VectorXf KdImpedance;
247  Eigen::VectorXf KpAdmittance;
248  Eigen::VectorXf KdAdmittance;
249  Eigen::VectorXf KmAdmittance;
250  Eigen::VectorXf KmPID;
251 
252  Eigen::VectorXf virtualAcc;
253  Eigen::VectorXf virtualVel;
254  Eigen::Matrix4f virtualPose;
255 
256  Eigen::Matrix4f sensorFrame2TcpFrameLeft;
257  Eigen::Matrix4f sensorFrame2TcpFrameRight;
258 
259  //static compensation
260  float massLeft;
261  Eigen::Vector3f CoMVecLeft;
262  Eigen::Vector3f forceOffsetLeft;
263  Eigen::Vector3f torqueOffsetLeft;
264 
265  float massRight;
266  Eigen::Vector3f CoMVecRight;
267  Eigen::Vector3f forceOffsetRight;
268  Eigen::Vector3f torqueOffsetRight;
269 
270  // float knull;
271  // float dnull;
272 
273  std::vector<std::string> leftJointNames;
274  std::vector<std::string> rightJointNames;
275 
276  // float torqueLimit;
277  VirtualRobot::RobotNodeSetPtr leftRNS;
278  VirtualRobot::RobotNodeSetPtr rightRNS;
279  VirtualRobot::RobotNodePtr tcpLeft;
280  VirtualRobot::RobotNodePtr tcpRight;
281 
282  std::vector<PIDControllerPtr> forcePIDControllers;
283 
284  // filter parameters
285  float filterCoeff;
286  Eigen::VectorXf filteredOldValue;
287  bool finished;
288  bool dmpStarted;
289  double ftcalibrationTimer;
290  Eigen::VectorXf ftOffset;
291 
292  Eigen::Matrix3f fixedLeftRightRotOffset;
293  Eigen::Vector3f objCom2TCPLeftInObjFrame, objCom2TCPRightInObjFrame;
294 
295  protected:
297  bool firstLoop;
298  };
299 
300 } // namespace armarx
301 
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::getClassName
std::string getClassName(const Ice::Current &) const
Definition: NJointBimanualObjLevelMultiMPController.cpp:301
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::eigenPose2Vec
std::vector< double > eigenPose2Vec(const Eigen::Matrix4f &pose)
Definition: NJointBimanualObjLevelMultiMPController.cpp:904
MathUtils.h
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::setKpAdmittance
void setKpAdmittance(const Ice::FloatSeq &value, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:1113
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPControlData
Definition: NJointBimanualObjLevelMultiMPController.h:29
armarx::StringVariantBaseMap
std::map< std::string, VariantBasePtr > StringVariantBaseMap
Definition: ManagedIceObject.h:111
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::getLocalPose
Eigen::Matrix4f getLocalPose(const Eigen::Matrix4f &newCoordinate, const Eigen::Matrix4f &globalTargetPose)
Definition: NJointBimanualObjLevelMultiMPController.cpp:976
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::setAmplitude
void setAmplitude(Ice::Double amp, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:1075
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::NJointBimanualObjLevelMultiMPController
NJointBimanualObjLevelMultiMPController(const RobotUnitPtr &, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:12
armarx::NJointControllerWithTripleBuffer
Definition: NJointControllerWithTripleBuffer.h:10
RobotUnit.h
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController
Definition: NJointBimanualObjLevelMultiMPController.h:44
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::getVirtualTime
double getVirtualTime(const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.h:89
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::onDisconnectNJointController
void onDisconnectNJointController()
Definition: NJointBimanualObjLevelMultiMPController.cpp:1503
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPControlData::rightTargetTwistInObj
Eigen::VectorXf rightTargetTwistInObj
Definition: NJointBimanualObjLevelMultiMPController.h:40
SensorValueForceTorque.h
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::eigenPose2EigenVec
Eigen::VectorXf eigenPose2EigenVec(const Eigen::Matrix4f &pose)
Definition: NJointBimanualObjLevelMultiMPController.cpp:912
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::setKpImpedance
void setKpImpedance(const Ice::FloatSeq &value, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:1056
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::onPublish
virtual void onPublish(const SensorAndControl &, const DebugDrawerInterfacePrx &, const DebugObserverInterfacePrx &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:1195
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPControlData::objTargetPose
Eigen::Matrix4f objTargetPose
Definition: NJointBimanualObjLevelMultiMPController.h:33
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::learnMultiDMPFromFiles
void learnMultiDMPFromFiles(const Ice::StringSeq &objFileNames, const Ice::StringSeq &leftFileNames, const Ice::StringSeq &rightFileNames, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:861
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::publishVec
void publishVec(const Eigen::VectorXf &bufferVec, const std::string name, StringVariantBaseMap &datafields)
Definition: NJointBimanualObjLevelMultiMPController.cpp:1183
armarx::detail::ControlThreadOutputBufferEntry
Definition: ControlThreadOutputBuffer.h:177
armarx::VariantType::Double
const VariantTypeId Double
Definition: Variant.h:919
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::integrateVel2Pose
void integrateVel2Pose(const double deltaT, Eigen::VectorXf &vel, Eigen::Matrix4f &pose)
Definition: NJointBimanualObjLevelMultiMPController.cpp:893
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPControlData::leftTargetPoseInObj
Eigen::Matrix4f leftTargetPoseInObj
Definition: NJointBimanualObjLevelMultiMPController.h:36
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:926
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::setKdImpedance
void setKdImpedance(const Ice::FloatSeq &value, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:1095
armarx::NJointBimanualObjLevelMultiMPControllerInterface::getCurrentObjForce
Ice::FloatSeq getCurrentObjForce()
armarx::NJointBimanualObjLevelMultiMPControllerInterface::getCurrentObjVel
Ice::FloatSeq getCurrentObjVel()
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::setMultiMPGoals
void setMultiMPGoals(const Ice::DoubleSeq &goalObj, const Ice::DoubleSeq &goalLeft, const Ice::DoubleSeq &goalRight, const Ice::Current &ice)
Definition: NJointBimanualObjLevelMultiMPController.cpp:881
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPControlData::objTargetTwist
Eigen::VectorXf objTargetTwist
Definition: NJointBimanualObjLevelMultiMPController.h:34
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::setViaPoints
void setViaPoints(Ice::Double u, const Ice::DoubleSeq &viapoint, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:1040
ControlTarget1DoFActuator.h
armarx::control::deprecated_njoint_mp_controller::tsvmp
Definition: NJointTaskSpaceImpedanceDMPController.h:20
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::rtRun
void rtRun(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration)
TODO make protected and use attorneys.
Definition: NJointBimanualObjLevelMultiMPController.cpp:382
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::setGoals
void setGoals(const Ice::DoubleSeq &goals, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:873
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::controllerRun
void controllerRun()
Definition: NJointBimanualObjLevelMultiMPController.cpp:307
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::runDMP
void runDMP(const Ice::DoubleSeq &goalObj, const Ice::DoubleSeq &goalLeft, const Ice::DoubleSeq &goalRight, Ice::Double timeDuration, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:928
armarx::armem::Time
armarx::core::time::DateTime Time
Definition: forward_declarations.h:13
TaskSpaceVMP.h
PIDController.h
NJointController.h
armarx::control::deprecated_njoint_mp_controller::tsvmp::TaskSpaceDMPControllerPtr
std::shared_ptr< TaskSpaceDMPController > TaskSpaceDMPControllerPtr
Definition: NJointTaskSpaceImpedanceDMPController.h:24
GfxTL::Matrix3f
MatrixXX< 3, 3, float > Matrix3f
Definition: MatrixXX.h:600
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:601
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::isFinished
bool isFinished(const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.h:63
armarx::NJointControllerWithTripleBuffer< NJointBimanualObjLevelMultiMPControlData >::MutexType
std::recursive_mutex MutexType
Definition: NJointControllerWithTripleBuffer.h:13
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPControlData::rightTargetPoseInObj
Eigen::Matrix4f rightTargetPoseInObj
Definition: NJointBimanualObjLevelMultiMPController.h:39
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::setKdAdmittance
void setKdAdmittance(const Ice::FloatSeq &value, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:1131
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::rtPreActivateController
void rtPreActivateController()
This function is called before the controller is activated.
Definition: NJointBimanualObjLevelMultiMPController.cpp:296
armarx::NJointBimanualObjLevelMultiMPControllerInterface::removeAllViaPoints
void removeAllViaPoints()
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::skew
Eigen::Matrix3f skew(Eigen::Vector3f vec)
Definition: NJointBimanualObjLevelMultiMPController.h:67
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::firstLoop
bool firstLoop
Definition: NJointBimanualObjLevelMultiMPController.h:297
IceInternal::ProxyHandle<::IceProxy::armarx::DebugDrawerInterface >
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::onInitNJointController
void onInitNJointController()
Definition: NJointBimanualObjLevelMultiMPController.cpp:1483
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::getObjStatus
void getObjStatus(Eigen::Matrix4f &pose, Eigen::VectorXf &twist)
Definition: NJointBimanualObjLevelMultiMPController.cpp:835
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::learnDMPFromFiles
void learnDMPFromFiles(const Ice::StringSeq &fileNames, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:854
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPControlData::leftTargetTwistInObj
Eigen::VectorXf leftTargetTwistInObj
Definition: NJointBimanualObjLevelMultiMPController.h:37
SensorValue1DoFActuator.h
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::setKmAdmittance
void setKmAdmittance(const Ice::FloatSeq &value, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:1149
armarx::NJointBimanualObjLevelMultiMPControllerInterface
Definition: ObjLevelControllerInterface.ice:240
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition: Bus.h:18
armarx::control::deprecated_njoint_mp_controller::bimanual
Definition: NJointBimanualCartesianAdmittanceController.cpp:9
armarx::TripleBuffer< RT2DebugData >
armarx::control::deprecated_njoint_mp_controller::bimanual::NJointBimanualObjLevelMultiMPController::runDMPWithVirtualStart
void runDMPWithVirtualStart(const Ice::DoubleSeq &starts, const Ice::DoubleSeq &goals, Ice::Double timeDuration, const Ice::Current &)
Definition: NJointBimanualObjLevelMultiMPController.cpp:1018
armarx::control::deprecated_njoint_mp_controller::bimanual::TYPEDEF_PTRS_HANDLE
TYPEDEF_PTRS_HANDLE(NJointBimanualCartesianAdmittanceController)