HandUnitGuiPlugin.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5  *
6  * ArmarX is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * ArmarX is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * @package
19  * @author
20  * @date
21  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22  * GNU General Public License
23  */
24 #include "HandUnitGuiPlugin.h"
25 #include "HandUnitConfigDialog.h"
26 #include <RobotAPI/gui-plugins/HandUnitPlugin/ui_HandUnitConfigDialog.h>
29 
30 // Qt headers
31 #include <Qt>
32 #include <QtGlobal>
33 #include <QPushButton>
34 #include <QLabel>
35 #include <QLineEdit>
36 #include <QMessageBox>
37 #include <QTimer>
38 #include <QtWidgets/QSlider>
39 #include <QtWidgets/QTableWidgetItem>
40 #include <QString>
41 
42 #include <cmath>
43 
44 namespace armarx
45 {
47  {
48  addWidget<HandUnitWidget>();
49  }
50 
52  leftHandName("NOT SET YET"),
53  rightHandName("NOT SET YET"),
54  leftHandUnitProxyName(""),
55  rightHandUnitProxyName(""),
56  setLeftHandJointAnglesFlag(false),
57  setRightHandJointAnglesFlag(false)
58  {
59  // init gui
60  ui.setupUi(getWidget());
61 
62  setLeftHandJointAngleUpdateTask = new PeriodicTask<HandUnitWidget>(this, &HandUnitWidget::setLeftHandJointAngles, 50);
63  setRightHandJointAngleUpdateTask = new PeriodicTask<HandUnitWidget>(this, &HandUnitWidget::setRightHandJointAngles, 50);
64  updateInfoTimer = new QTimer(this);
65  }
66 
67 
69  {
70  usingProxy(leftHandUnitProxyName);
71  usingProxy(rightHandUnitProxyName);
72  //usingTopic(handName + "State");
73  //ARMARX_WARNING << "Listening on Topic: " << handName + "State";
74  }
75 
77  {
78  updateInfoTimer->start(50);
79 
80 
81 
82  setLeftHandJointAngleUpdateTask->start();
83 
84  leftHandUnitProxy = getProxy<HandUnitInterfacePrx>(leftHandUnitProxyName);
85  leftHandName = leftHandUnitProxy->getHandName();
86 
87  if (leftHandName == "Hand L" || leftHandName == "TCP L")
88  {
89  leftHandConversionFactor *= M_PI / 2;
90  }
91  else if (leftHandName != "Hand_L_EEF")
92  {
93  ARMARX_WARNING << "Left hand with name \"" << leftHandName << "\" is not supported.";
94  }
95 
96  SingleTypeVariantListPtr leftHandPreshapeStrings = SingleTypeVariantListPtr::dynamicCast(leftHandUnitProxy->getShapeNames());
97  QStringList leftHandList;
98  int leftHandPreshapeCount = leftHandPreshapeStrings->getSize();
99 
100  for (int i = 0; i < leftHandPreshapeCount; ++i)
101  {
102  std::string shape = ((leftHandPreshapeStrings->getVariant(i))->get<std::string>());
103 // ARMARX_INFO << VAROUT(shape);
104  leftHandList << QString::fromStdString(shape);
105  }
106 
107  ui.comboLeftHandPreshapes->clear();
108  ui.comboLeftHandPreshapes->addItems(leftHandList);
109 
110 
111 
112  setRightHandJointAngleUpdateTask->start();
113 
114  rightHandUnitProxy = getProxy<HandUnitInterfacePrx>(rightHandUnitProxyName);
115  rightHandName = rightHandUnitProxy->getHandName();
116 
117  if (rightHandName == "Hand R" || rightHandName == "TCP R")
118  {
119  rightHandConversionFactor *= M_PI / 2;
120  }
121  else if (rightHandName != "Hand_R_EEF")
122  {
123  ARMARX_WARNING << "Right hand with name \"" << rightHandName << "\" is not supported.";
124  }
125 
126  SingleTypeVariantListPtr rightHandPreshapeStrings = SingleTypeVariantListPtr::dynamicCast(rightHandUnitProxy->getShapeNames());
127  QStringList rightHandList;
128  int rightHandPreshapeCount = rightHandPreshapeStrings->getSize();
129 
130  for (int i = 0; i < rightHandPreshapeCount; ++i)
131  {
132  std::string shape = ((rightHandPreshapeStrings->getVariant(i))->get<std::string>());
133 // ARMARX_INFO << VAROUT(shape);
134  rightHandList << QString::fromStdString(shape);
135  }
136 
137  ui.comboRightHandPreshapes->clear();
138  ui.comboRightHandPreshapes->addItems(rightHandList);
139 
140 
141 
142 // ARMARX_INFO << "initGUIJointFrames";
144  displayJointAngleUpdateTask = new PeriodicTask<HandUnitWidget>(this, &HandUnitWidget::updateJointValueTable, 50);
145  displayJointAngleUpdateTask->start();
146  }
147 
149  {
150  setLeftHandJointAngleUpdateTask->stop();
151  setRightHandJointAngleUpdateTask->stop();
152  displayJointAngleUpdateTask->stop();
153  updateInfoTimer->stop();
154  }
155 
157  {
158  }
159 
160  QPointer<QDialog> HandUnitWidget::getConfigDialog(QWidget* parent)
161  {
162  if (!dialog)
163  {
164  dialog = new HandUnitConfigDialog(parent);
165  //dialog->ui->editHandUnitName->setText(QString::fromStdString(handUnitProxyName));
166  //dialog->ui->editHandName->setText(QString::fromStdString(handName));
167  }
168 
169  return qobject_cast<HandUnitConfigDialog*>(dialog);
170  }
171 
173  {
174  leftHandUnitProxyName = dialog->proxyFinderLeftHand->getSelectedProxyName().toStdString();
175  rightHandUnitProxyName = dialog->proxyFinderRightHand->getSelectedProxyName().toStdString();
176  }
177 
179  {
180  setLeftHandPreshape(ui.comboLeftHandPreshapes->currentText().toUtf8().data());
181  }
182 
184  {
185  setRightHandPreshape(ui.comboRightHandPreshapes->currentText().toUtf8().data());
186  }
187 
189  {
190 // ARMARX_INFO << "setLeftHandJointAngles";
191  if (!leftHandUnitProxy)
192  {
193  ARMARX_WARNING << "invalid proxy";
194  return;
195  }
196 
197  if (!setLeftHandJointAnglesFlag)
198  {
199  return;
200  }
201 
202  setLeftHandJointAnglesFlag = false;
203 
204  NameValueMap leftHandJa;
205  NameValueMap currentLeftHandJointValues = leftHandUnitProxy->getCurrentJointValues();
206  float value = 0;
207  if (leftHandName == "Hand L" || leftHandName == "TCP L")
208  {
209  leftHandConversionFactor *= M_PI / 2;
210  }
211  else if (leftHandName != "Hand_L_EEF")
212  {
213  ARMARX_WARNING << "Left hand with name \"" << leftHandName << "\" is not supported.";
214  return;
215  }
216 
217  for (const auto& pair : currentLeftHandJointValues)
218  {
219  if (pair.first == currentLeftHandJoint)
220  {
221  value = static_cast<float>(ui.horizontalSliderLeftHandJointPos->value() * leftHandConversionFactor);
222 // ARMARX_INFO << VAROUT(value);
223  leftHandJa[pair.first] = value;
224  break;
225  }
226  }
227 
228 // ARMARX_INFO << VAROUT(value / leftHandConversionFactor);
229  ui.lcdNumberLeftHandJointValue->display(value / leftHandConversionFactor);
230  leftHandUnitProxy->setJointAngles(leftHandJa);
231  }
232 
234  {
235 // ARMARX_INFO << "setRightHandJointAngles";
236  if (!rightHandUnitProxy)
237  {
238  ARMARX_WARNING << "invalid proxy";
239  return;
240  }
241 
242  if (!setRightHandJointAnglesFlag)
243  {
244  return;
245  }
246 
247  setRightHandJointAnglesFlag = false;
248 
249  NameValueMap rightHandJa;
250  NameValueMap currentRightHandJointValues = rightHandUnitProxy->getCurrentJointValues();
251  float value = 0;
252  if (rightHandName == "Hand R" || rightHandName == "TCP R")
253  {
254  rightHandConversionFactor *= M_PI / 2;
255  }
256  else if (rightHandName != "Hand_R_EEF")
257  {
258  ARMARX_WARNING << "Right hand with name \"" << rightHandName << "\" is not supported.";
259  return;
260  }
261 
262  for (const auto& pair : currentRightHandJointValues)
263  {
264  if (pair.first == currentRightHandJoint)
265  {
266  value = static_cast<float>(ui.horizontalSliderRightHandJointPos->value() * rightHandConversionFactor);
267 // ARMARX_INFO << VAROUT(value);
268  rightHandJa[pair.first] = value;
269  break;
270  }
271  }
272 
273 // ARMARX_INFO << VAROUT(value / rightHandConversionFactor);
274  ui.lcdNumberRightHandJointValue->display(value / rightHandConversionFactor);
275  rightHandUnitProxy->setJointAngles(rightHandJa);
276  }
277 
279  {
280  setLeftHandJointAnglesFlag = true;
281  }
282 
284  {
285  setRightHandJointAnglesFlag = true;
286  }
287 
289  {
290  setLeftHandPreshape("Open");
291  }
292 
294  {
295  setRightHandPreshape("Open");
296  }
297 
299  {
300  setLeftHandPreshape("Close");
301  }
302 
304  {
305  setRightHandPreshape("Close");
306  }
307 
309  {
310  setLeftHandPreshape("Relax");
311  }
312 
314  {
315  setRightHandPreshape("Relax");
316  }
317 
319  {
320  ui.labelInfoLeftHand->setText(QString::fromStdString(leftHandUnitProxyName + " :: " + leftHandName + " State: " + leftHandUnitProxy->describeHandState()));
321  ui.labelInfoRightHand->setText(QString::fromStdString(rightHandUnitProxyName + " :: " + rightHandName + " State: " + rightHandUnitProxy->describeHandState()));
322  }
323 
325  {
326  NameValueMap currentLeftHandJointValues = leftHandUnitProxy->getCurrentJointValues();
327 // ARMARX_INFO << VAROUT(leftHandUnitProxy->getCurrentJointValues());
328  int frameLeftHandRowIdx = 0;
329 
330  for (const auto& pair : currentLeftHandJointValues)
331  {
332 // ARMARX_INFO << VAROUT(pair.first);
333  QString name(pair.first.c_str());
334  QTableWidgetItem* newItem = new QTableWidgetItem(QString::number(pair.second));
335  ui.tableWidgetLeftHand->setItem(frameLeftHandRowIdx, 1, newItem);
336  frameLeftHandRowIdx++;
337  }
338 
339 
340 
341  NameValueMap currentRightHandJointValues = rightHandUnitProxy->getCurrentJointValues();
342 // ARMARX_INFO << VAROUT(rightHandUnitProxy->getCurrentJointValues());
343  int frameRightHandRowIdx = 0;
344 
345  for (const auto& pair : currentRightHandJointValues)
346  {
347 // ARMARX_INFO << VAROUT(pair.first);
348  QString name(pair.first.c_str());
349  QTableWidgetItem* newItem = new QTableWidgetItem(QString::number(pair.second));
350  ui.tableWidgetRightHand->setItem(frameRightHandRowIdx, 1, newItem);
351  frameRightHandRowIdx++;
352  }
353  }
354 
356  {
357 // ARMARX_INFO << "selectLeftHandJoint " << i;
358  NameValueMap currentLeftHandJointValues = leftHandUnitProxy->getCurrentJointValues();
359  int idx = 0;
360 
361  for (const auto& pair: currentLeftHandJointValues)
362  {
363  if (idx == i)
364  {
365  currentLeftHandJoint = pair.first;
366  int convertedValue = static_cast<int>(pair.second / leftHandConversionFactor);
367  ui.horizontalSliderLeftHandJointPos->setSliderPosition(convertedValue);
368  ui.lcdNumberLeftHandJointValue->display(convertedValue);
369 // ARMARX_INFO << "Found joint";
370  break;
371  }
372  idx++;
373  }
374  }
375 
377  {
378 // ARMARX_INFO << "selectRightHandJoint " << i;
379  NameValueMap currentRightHandJointValues = rightHandUnitProxy->getCurrentJointValues();
380  int idx = 0;
381 
382  for (const auto& pair: currentRightHandJointValues)
383  {
384  if (idx == i)
385  {
386  currentRightHandJoint = pair.first;
387  int convertedValue = static_cast<int>(pair.second / rightHandConversionFactor);
388  ui.horizontalSliderRightHandJointPos->setSliderPosition(convertedValue);
389  ui.lcdNumberRightHandJointValue->display(convertedValue);
390 // ARMARX_INFO << "Found joint";
391  break;
392  }
393  idx++;
394  }
395  }
396 
397  void HandUnitWidget::setLeftHandPreshape(std::string preshape)
398  {
399 // ARMARX_INFO << "Setting new left hand shape: " << preshape;
400  leftHandUnitProxy->setShape(preshape);
401  }
402 
403  void HandUnitWidget::setRightHandPreshape(std::string preshape)
404  {
405 // ARMARX_INFO << "Setting new right hand shape: " << preshape;
406  rightHandUnitProxy->setShape(preshape);
407  }
408 
409  void HandUnitWidget::loadSettings(QSettings* settings)
410  {
411  leftHandUnitProxyName = settings->value("leftHandUnitProxyName", QString::fromStdString(leftHandUnitProxyName)).toString().toStdString();
412  leftHandName = settings->value("leftHandName", QString::fromStdString(leftHandName)).toString().toStdString();
413  rightHandUnitProxyName = settings->value("rightHandUnitProxyName", QString::fromStdString(rightHandUnitProxyName)).toString().toStdString();
414  rightHandName = settings->value("rightHandName", QString::fromStdString(rightHandName)).toString().toStdString();
415  }
416 
417  void HandUnitWidget::saveSettings(QSettings* settings)
418  {
419  settings->setValue("leftHandUnitProxyName", QString::fromStdString(leftHandUnitProxyName));
420  settings->setValue("leftHandName", QString::fromStdString(leftHandName));
421  settings->setValue("rightHandUnitProxyName", QString::fromStdString(rightHandUnitProxyName));
422  settings->setValue("rightHandName", QString::fromStdString(rightHandName));
423  }
424 
425 
427  {
428  NameValueMap currentLeftHandJointValues = leftHandUnitProxy->getCurrentJointValues();
429 // ARMARX_INFO << VAROUT(leftHandUnitProxy->getCurrentJointValues());
430  int frameLeftHandRowIdx = 0;
431 
432  connect(ui.buttonPreshapeLeftHand, SIGNAL(clicked()), this, SLOT(preshapeLeftHand()), Qt::UniqueConnection);
433  connect(ui.buttonOpenLeftHand, SIGNAL(clicked()), this, SLOT(openLeftHand()), Qt::UniqueConnection);
434  connect(ui.buttonCloseLeftHand, SIGNAL(clicked()), this, SLOT(closeLeftHand()), Qt::UniqueConnection);
435  connect(ui.buttonRelaxLeftHand, SIGNAL(clicked()), this, SLOT(relaxLeftHand()), Qt::UniqueConnection);
436  ui.horizontalSliderLeftHandJointPos->setMaximum(100);
437  ui.horizontalSliderLeftHandJointPos->setMinimum(0);
438  connect(ui.horizontalSliderLeftHandJointPos, SIGNAL(sliderMoved(int)), this, SLOT(requestSetLeftHandJointAngles()), Qt::UniqueConnection);
439  connect(ui.comboLeftHandJoints, SIGNAL(currentIndexChanged(int)), this, SLOT(selectLeftHandJoint(int)), Qt::UniqueConnection);
440 
441  ui.tableWidgetLeftHand->setRowCount(currentLeftHandJointValues.size());
442  ui.tableWidgetLeftHand->setColumnCount(2);
443 
444  ui.comboLeftHandJoints->clear();
445 
446  qRegisterMetaType<QVector<int> >("QVector<int>");
447  for (const auto& pair : currentLeftHandJointValues)
448  {
449 // ARMARX_INFO << VAROUT(pair.first);
450  QString name(pair.first.c_str());
451  QTableWidgetItem* newItem = new QTableWidgetItem(name);
452  ui.tableWidgetLeftHand->setItem(frameLeftHandRowIdx, 0, newItem);
453  ui.comboLeftHandJoints->addItem(name);
454  frameLeftHandRowIdx++;
455  }
456 
457  ui.comboLeftHandJoints->setCurrentIndex(-1);
458 
459 
460 
461  NameValueMap currentRightHandJointValues = rightHandUnitProxy->getCurrentJointValues();
462 // ARMARX_INFO << VAROUT(rightHandUnitProxy->getCurrentJointValues());
463  int frameRightHandRowIdx = 0;
464 
465  connect(ui.buttonPreshapeRightHand, SIGNAL(clicked()), this, SLOT(preshapeRightHand()), Qt::UniqueConnection);
466  connect(ui.buttonOpenRightHand, SIGNAL(clicked()), this, SLOT(openRightHand()), Qt::UniqueConnection);
467  connect(ui.buttonCloseRightHand, SIGNAL(clicked()), this, SLOT(closeRightHand()), Qt::UniqueConnection);
468  connect(ui.buttonRelaxRightHand, SIGNAL(clicked()), this, SLOT(relaxRightHand()), Qt::UniqueConnection);
469  ui.horizontalSliderRightHandJointPos->setMaximum(100);
470  ui.horizontalSliderRightHandJointPos->setMinimum(0);
471  connect(ui.horizontalSliderRightHandJointPos, SIGNAL(sliderMoved(int)), this, SLOT(requestSetRightHandJointAngles()), Qt::UniqueConnection);
472  connect(ui.comboRightHandJoints, SIGNAL(currentIndexChanged(int)), this, SLOT(selectRightHandJoint(int)), Qt::UniqueConnection);
473 
474  ui.tableWidgetRightHand->setRowCount(currentRightHandJointValues.size());
475  ui.tableWidgetRightHand->setColumnCount(2);
476 
477  ui.comboRightHandJoints->clear();
478 
479  qRegisterMetaType<QVector<int> >("QVector<int>");
480  for (const auto& pair : currentRightHandJointValues)
481  {
482 // ARMARX_INFO << VAROUT(pair.first);
483  QString name(pair.first.c_str());
484  QTableWidgetItem* newItem = new QTableWidgetItem(name);
485  ui.tableWidgetRightHand->setItem(frameRightHandRowIdx, 0, newItem);
486  ui.comboRightHandJoints->addItem(name);
487  frameRightHandRowIdx++;
488  }
489 
490  ui.comboRightHandJoints->setCurrentIndex(-1);
491  }
492 
493 
494 
495 
496 
497  void armarx::HandUnitWidget::reportHandShaped(const std::string& handName, const std::string& handShapeName, const Ice::Current&)
498  {
499  ARMARX_IMPORTANT << handName << ": " << handShapeName;
500  }
501 
502  void armarx::HandUnitWidget::reportNewHandShapeName(const std::string& handName, const std::string& handShapeName, const Ice::Current&)
503  {
504  ARMARX_IMPORTANT << handName << ": " << handShapeName;
505  }
506 
507  void armarx::HandUnitWidget::reportJointAngles(const armarx::NameValueMap& actualJointAngles, const Ice::Current& c)
508  {
509 
510  }
511 
512  void armarx::HandUnitWidget::reportJointPressures(const armarx::NameValueMap& actualJointPressures, const Ice::Current& c)
513  {
514 
515  }
516 }
armarx::HandUnitWidget::selectLeftHandJoint
void selectLeftHandJoint(int i)
Definition: HandUnitGuiPlugin.cpp:355
armarx::HandUnitWidget::setRightHandJointAngles
void setRightHandJointAngles()
Definition: HandUnitGuiPlugin.cpp:233
HandUnitGuiPlugin.h
SingleTypeVariantList.h
ARMARX_IMPORTANT
#define ARMARX_IMPORTANT
Definition: Logging.h:183
armarx::HandUnitWidget::onConnectComponent
void onConnectComponent() override
Pure virtual hook for the subclass.
Definition: HandUnitGuiPlugin.cpp:76
armarx::HandUnitWidget::selectRightHandJoint
void selectRightHandJoint(int i)
Definition: HandUnitGuiPlugin.cpp:376
armarx::HandUnitWidget::onDisconnectComponent
void onDisconnectComponent() override
Hook for subclass.
Definition: HandUnitGuiPlugin.cpp:148
armarx::HandUnitWidget::requestSetLeftHandJointAngles
void requestSetLeftHandJointAngles()
Definition: HandUnitGuiPlugin.cpp:278
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:43
armarx::HandUnitWidget::updateJointValueTable
void updateJointValueTable()
Definition: HandUnitGuiPlugin.cpp:324
armarx::HandUnitWidget::loadSettings
void loadSettings(QSettings *settings) override
Implement to load the settings that are part of the GUI configuration.
Definition: HandUnitGuiPlugin.cpp:409
armarx::HandUnitWidget::reportJointAngles
void reportJointAngles(const ::armarx::NameValueMap &actualJointAngles, const Ice::Current &) override
Definition: HandUnitGuiPlugin.cpp:507
armarx::HandUnitWidget::openLeftHand
void openLeftHand()
Definition: HandUnitGuiPlugin.cpp:288
armarx::HandUnitWidget::openRightHand
void openRightHand()
Definition: HandUnitGuiPlugin.cpp:293
armarx::HandUnitWidget::preshapeRightHand
void preshapeRightHand()
Definition: HandUnitGuiPlugin.cpp:183
armarx::HandUnitWidget::reportJointPressures
void reportJointPressures(const ::armarx::NameValueMap &actualJointPressures, const Ice::Current &) override
Definition: HandUnitGuiPlugin.cpp:512
IceInternal::Handle< SingleTypeVariantList >
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:926
armarx::HandUnitWidget::saveSettings
void saveSettings(QSettings *settings) override
Implement to save the settings as part of the GUI configuration.
Definition: HandUnitGuiPlugin.cpp:417
armarx::HandUnitGuiPlugin::HandUnitGuiPlugin
HandUnitGuiPlugin()
Definition: HandUnitGuiPlugin.cpp:46
M_PI
#define M_PI
Definition: MathTools.h:17
armarx::HandUnitWidget::setLeftHandJointAngles
void setLeftHandJointAngles()
Definition: HandUnitGuiPlugin.cpp:188
armarx::HandUnitWidget::closeRightHand
void closeRightHand()
Definition: HandUnitGuiPlugin.cpp:303
armarx::HandUnitWidget::getConfigDialog
QPointer< QDialog > getConfigDialog(QWidget *parent=0) override
getConfigDialog returns a pointer to the a configuration widget of this controller.
Definition: HandUnitGuiPlugin.cpp:160
armarx::HandUnitWidget::onInitComponent
void onInitComponent() override
Pure virtual hook for the subclass.
Definition: HandUnitGuiPlugin.cpp:68
armarx::HandUnitWidget::ui
Ui::HandUnitGuiPlugin ui
Definition: HandUnitGuiPlugin.h:139
armarx::HandUnitWidget::reportHandShaped
void reportHandShaped(const std::string &, const std::string &, const Ice::Current &) override
Definition: HandUnitGuiPlugin.cpp:497
armarx::HandUnitWidget::relaxRightHand
void relaxRightHand()
Definition: HandUnitGuiPlugin.cpp:313
armarx::HandUnitWidget::HandUnitWidget
HandUnitWidget()
Definition: HandUnitGuiPlugin.cpp:51
armarx::HandUnitWidget::onExitComponent
void onExitComponent() override
Hook for subclass.
Definition: HandUnitGuiPlugin.cpp:156
armarx::control::njoint_controller::platform::platform_follower_controller::NameValueMap
std::map< std::string, float > NameValueMap
Definition: PlatformFollowerController.h:91
HandUnitConfigDialog.h
armarx::HandUnitConfigDialog
Definition: HandUnitConfigDialog.h:39
armarx::HandUnitWidget::relaxLeftHand
void relaxLeftHand()
Definition: HandUnitGuiPlugin.cpp:308
armarx::HandUnitWidget::updateInfoLabel
void updateInfoLabel()
Definition: HandUnitGuiPlugin.cpp:318
armarx::HandUnitWidget::reportNewHandShapeName
void reportNewHandShapeName(const std::string &, const std::string &, const Ice::Current &) override
Definition: HandUnitGuiPlugin.cpp:502
armarx::ArmarXWidgetController::getWidget
virtual QPointer< QWidget > getWidget()
getWidget returns a pointer to the a widget of this controller.
Definition: ArmarXWidgetController.cpp:54
armarx::HandUnitWidget::closeLeftHand
void closeLeftHand()
Definition: HandUnitGuiPlugin.cpp:298
armarx::PeriodicTask
Definition: ArmarXManager.h:70
ARMARX_WARNING
#define ARMARX_WARNING
Definition: Logging.h:186
armarx::HandUnitWidget::initGUIJointFrames
void initGUIJointFrames()
Definition: HandUnitGuiPlugin.cpp:426
ArmarXDataPath.h
armarx::ManagedIceObject::usingProxy
bool usingProxy(const std::string &name, const std::string &endpoints="")
Registers a proxy for retrieval after initialization and adds it to the dependency list.
Definition: ManagedIceObject.cpp:151
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
armarx::HandUnitWidget::requestSetRightHandJointAngles
void requestSetRightHandJointAngles()
Definition: HandUnitGuiPlugin.cpp:283
armarx::HandUnitWidget::configured
void configured() override
This function must be implemented by the user, if he supplies a config dialog.
Definition: HandUnitGuiPlugin.cpp:172
armarx::HandUnitWidget::preshapeLeftHand
void preshapeLeftHand()
Definition: HandUnitGuiPlugin.cpp:178