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 
28 
29 #include <RobotAPI/gui-plugins/HandUnitPlugin/ui_HandUnitConfigDialog.h>
30 
31 #include "HandUnitConfigDialog.h"
32 
33 // Qt headers
34 #include <cmath>
35 
36 #include <QLabel>
37 #include <QLineEdit>
38 #include <QMessageBox>
39 #include <QPushButton>
40 #include <QString>
41 #include <QTimer>
42 #include <Qt>
43 #include <QtGlobal>
44 #include <QtWidgets/QSlider>
45 #include <QtWidgets/QTableWidgetItem>
46 
47 namespace armarx
48 {
50  {
51  addWidget<HandUnitWidget>();
52  }
53 
55  leftHandName("NOT SET YET"),
56  rightHandName("NOT SET YET"),
57  leftHandUnitProxyName(""),
58  rightHandUnitProxyName(""),
59  setLeftHandJointAnglesFlag(false),
60  setRightHandJointAnglesFlag(false)
61  {
62  // init gui
63  ARMARX_INFO << "Setup UI";
64  ui.setupUi(getWidget());
65 
66  ARMARX_INFO << "Done: Setup UI";
67 
68 
69  setLeftHandJointAngleUpdateTask =
71  setRightHandJointAngleUpdateTask =
73  updateInfoTimer = new QTimer(this);
74  }
75 
76  void
78  {
79  usingProxy(leftHandUnitProxyName);
80  usingProxy(rightHandUnitProxyName);
81  //usingTopic(handName + "State");
82  //ARMARX_WARNING << "Listening on Topic: " << handName + "State";
83  }
84 
85  void
87  {
88  updateInfoTimer->start(50);
89 
90 
91  setLeftHandJointAngleUpdateTask->start();
92 
93  leftHandUnitProxy = getProxy<HandUnitInterfacePrx>(leftHandUnitProxyName);
94  leftHandName = leftHandUnitProxy->getHandName();
95 
96  if (leftHandName == "Hand L" || leftHandName == "TCP L")
97  {
98  leftHandConversionFactor *= M_PI / 2;
99  }
100  else if (leftHandName != "Hand_L_EEF")
101  {
102  ARMARX_WARNING << "Left hand with name \"" << leftHandName << "\" is not supported.";
103  }
104 
105  SingleTypeVariantListPtr leftHandPreshapeStrings =
106  SingleTypeVariantListPtr::dynamicCast(leftHandUnitProxy->getShapeNames());
107  QStringList leftHandList;
108  int leftHandPreshapeCount = leftHandPreshapeStrings->getSize();
109 
110  for (int i = 0; i < leftHandPreshapeCount; ++i)
111  {
112  std::string shape = ((leftHandPreshapeStrings->getVariant(i))->get<std::string>());
113  // ARMARX_INFO << VAROUT(shape);
114  leftHandList << QString::fromStdString(shape);
115  }
116 
117  ui.comboLeftHandPreshapes->clear();
118  ui.comboLeftHandPreshapes->addItems(leftHandList);
119 
120 
121  setRightHandJointAngleUpdateTask->start();
122 
123  rightHandUnitProxy = getProxy<HandUnitInterfacePrx>(rightHandUnitProxyName);
124  rightHandName = rightHandUnitProxy->getHandName();
125 
126  if (rightHandName == "Hand R" || rightHandName == "TCP R")
127  {
128  rightHandConversionFactor *= M_PI / 2;
129  }
130  else if (rightHandName != "Hand_R_EEF")
131  {
132  ARMARX_WARNING << "Right hand with name \"" << rightHandName << "\" is not supported.";
133  }
134 
135  SingleTypeVariantListPtr rightHandPreshapeStrings =
136  SingleTypeVariantListPtr::dynamicCast(rightHandUnitProxy->getShapeNames());
137  QStringList rightHandList;
138  int rightHandPreshapeCount = rightHandPreshapeStrings->getSize();
139 
140  for (int i = 0; i < rightHandPreshapeCount; ++i)
141  {
142  std::string shape = ((rightHandPreshapeStrings->getVariant(i))->get<std::string>());
143  // ARMARX_INFO << VAROUT(shape);
144  rightHandList << QString::fromStdString(shape);
145  }
146 
147  ui.comboRightHandPreshapes->clear();
148  ui.comboRightHandPreshapes->addItems(rightHandList);
149 
150 
151  // ARMARX_INFO << "initGUIJointFrames";
153  displayJointAngleUpdateTask =
155  displayJointAngleUpdateTask->start();
156 
157  updateInfoLabel();
158  }
159 
160  void
162  {
163  setLeftHandJointAngleUpdateTask->stop();
164  setRightHandJointAngleUpdateTask->stop();
165  displayJointAngleUpdateTask->stop();
166  updateInfoTimer->stop();
167  }
168 
169  void
171  {
172  }
173 
174  QPointer<QDialog>
176  {
177  if (!dialog)
178  {
179  dialog = new HandUnitConfigDialog(parent);
180  //dialog->ui->editHandUnitName->setText(QString::fromStdString(handUnitProxyName));
181  //dialog->ui->editHandName->setText(QString::fromStdString(handName));
182  }
183 
184  return qobject_cast<HandUnitConfigDialog*>(dialog);
185  }
186 
187  void
189  {
190  leftHandUnitProxyName = dialog->proxyFinderLeftHand->getSelectedProxyName().toStdString();
191  rightHandUnitProxyName = dialog->proxyFinderRightHand->getSelectedProxyName().toStdString();
192  }
193 
194  void
196  {
197  setLeftHandPreshape(ui.comboLeftHandPreshapes->currentText().toUtf8().data());
198  }
199 
200  void
202  {
203  setRightHandPreshape(ui.comboRightHandPreshapes->currentText().toUtf8().data());
204  }
205 
206  void
208  {
209  ARMARX_INFO << "Reloading preshapes in robot unit ...";
210 
211  // left hand unit
212  {
213  if (leftHandUnitProxy)
214  {
215  ARMARX_INFO << "Left hand unit: reloading preshapes.";
216  leftHandUnitProxy->reloadPreshapes();
217  }
218  }
219 
220  // right hand unit
221  {
222  if (rightHandUnitProxy)
223  {
224  ARMARX_INFO << "Right hand unit: reloading preshapes.";
225  rightHandUnitProxy->reloadPreshapes();
226  }
227  }
228  }
229 
230  void
232  {
233  // ARMARX_INFO << "setLeftHandJointAngles";
234  if (!leftHandUnitProxy)
235  {
236  ARMARX_WARNING << "invalid proxy";
237  return;
238  }
239 
240  if (!setLeftHandJointAnglesFlag)
241  {
242  return;
243  }
244 
245  setLeftHandJointAnglesFlag = false;
246 
247  NameValueMap leftHandJa;
248  NameValueMap currentLeftHandJointValues = leftHandUnitProxy->getCurrentJointValues();
249  float value = 0;
250  if (leftHandName == "Hand L" || leftHandName == "TCP L")
251  {
252  leftHandConversionFactor *= M_PI / 2;
253  }
254  else if (leftHandName != "Hand_L_EEF")
255  {
256  ARMARX_WARNING << "Left hand with name \"" << leftHandName << "\" is not supported.";
257  return;
258  }
259 
260  for (const auto& pair : currentLeftHandJointValues)
261  {
262  if (pair.first == currentLeftHandJoint)
263  {
264  value = static_cast<float>(ui.horizontalSliderLeftHandJointPos->value() *
265  leftHandConversionFactor);
266  // ARMARX_INFO << VAROUT(value);
267  leftHandJa[pair.first] = value;
268  break;
269  }
270  }
271 
272  // ARMARX_INFO << VAROUT(value / leftHandConversionFactor);
273  ui.lcdNumberLeftHandJointValue->display(value / leftHandConversionFactor);
274  leftHandUnitProxy->setJointAngles(leftHandJa);
275  }
276 
277  void
279  {
280  // ARMARX_INFO << "setRightHandJointAngles";
281  if (!rightHandUnitProxy)
282  {
283  ARMARX_WARNING << "invalid proxy";
284  return;
285  }
286 
287  if (!setRightHandJointAnglesFlag)
288  {
289  return;
290  }
291 
292  setRightHandJointAnglesFlag = false;
293 
294  NameValueMap rightHandJa;
295  NameValueMap currentRightHandJointValues = rightHandUnitProxy->getCurrentJointValues();
296  float value = 0;
297  if (rightHandName == "Hand R" || rightHandName == "TCP R")
298  {
299  rightHandConversionFactor *= M_PI / 2;
300  }
301  else if (rightHandName != "Hand_R_EEF")
302  {
303  ARMARX_WARNING << "Right hand with name \"" << rightHandName << "\" is not supported.";
304  return;
305  }
306 
307  for (const auto& pair : currentRightHandJointValues)
308  {
309  if (pair.first == currentRightHandJoint)
310  {
311  value = static_cast<float>(ui.horizontalSliderRightHandJointPos->value() *
312  rightHandConversionFactor);
313  // ARMARX_INFO << VAROUT(value);
314  rightHandJa[pair.first] = value;
315  break;
316  }
317  }
318 
319  // ARMARX_INFO << VAROUT(value / rightHandConversionFactor);
320  ui.lcdNumberRightHandJointValue->display(value / rightHandConversionFactor);
321  rightHandUnitProxy->setJointAngles(rightHandJa);
322  }
323 
324  void
326  {
327  setLeftHandJointAnglesFlag = true;
328  }
329 
330  void
332  {
333  setRightHandJointAnglesFlag = true;
334  }
335 
336  void
338  {
339  setLeftHandPreshape("Open");
340  }
341 
342  void
344  {
345  setRightHandPreshape("Open");
346  }
347 
348  void
350  {
351  setLeftHandPreshape("Close");
352  }
353 
354  void
356  {
357  setRightHandPreshape("Close");
358  }
359 
360  void
362  {
363  setLeftHandPreshape("Relax");
364  }
365 
366  void
368  {
369  setRightHandPreshape("Relax");
370  }
371 
372  void
374  {
375  ui.labelInfoLeftHand->setText(
376  QString::fromStdString(leftHandUnitProxyName + " :: " + leftHandName +
377  " State: " + leftHandUnitProxy->describeHandState()));
378  ui.labelInfoRightHand->setText(
379  QString::fromStdString(rightHandUnitProxyName + " :: " + rightHandName +
380  " State: " + rightHandUnitProxy->describeHandState()));
381  }
382 
383  void
385  {
386  NameValueMap currentLeftHandJointValues = leftHandUnitProxy->getCurrentJointValues();
387  // ARMARX_INFO << VAROUT(leftHandUnitProxy->getCurrentJointValues());
388  int frameLeftHandRowIdx = 0;
389 
390  for (const auto& pair : currentLeftHandJointValues)
391  {
392  // ARMARX_INFO << VAROUT(pair.first);
393  QString name(pair.first.c_str());
394  QTableWidgetItem* newItem = new QTableWidgetItem(QString::number(pair.second));
395  ui.tableWidgetLeftHand->setItem(frameLeftHandRowIdx, 1, newItem);
396  frameLeftHandRowIdx++;
397  }
398 
399 
400  NameValueMap currentRightHandJointValues = rightHandUnitProxy->getCurrentJointValues();
401  // ARMARX_INFO << VAROUT(rightHandUnitProxy->getCurrentJointValues());
402  int frameRightHandRowIdx = 0;
403 
404  for (const auto& pair : currentRightHandJointValues)
405  {
406  // ARMARX_INFO << VAROUT(pair.first);
407  QString name(pair.first.c_str());
408  QTableWidgetItem* newItem = new QTableWidgetItem(QString::number(pair.second));
409  ui.tableWidgetRightHand->setItem(frameRightHandRowIdx, 1, newItem);
410  frameRightHandRowIdx++;
411  }
412  }
413 
414  void
416  {
417  bool const isExpert = state == Qt::Checked;
418 
419  if (side == side::left)
420  {
421  ui.leftTare->setEnabled(isExpert);
422  ui.leftReset->setEnabled(isExpert);
423  }
424  else if (side == side::right)
425  {
426  ui.rightTare->setEnabled(isExpert);
427  ui.rightReset->setEnabled(isExpert);
428  }
429  else
430  {
431  ARMARX_WARNING << "Invalid side to set expert mode.";
432  }
433  }
434 
435  void
437  {
438  if (side == side::left)
439  {
440  ARMARX_INFO << "Trigger taring left hand now...";
441  leftHandUnitProxy->tare();
442  }
443  else if (side == side::right)
444  {
445  ARMARX_INFO << "Trigger taring right hand now...";
446  rightHandUnitProxy->tare();
447  }
448  else
449  {
450  ARMARX_WARNING << "Invalid side to tare hand.";
451  }
452  }
453 
454  void
456  {
457  if (side == side::left)
458  {
459  ARMARX_INFO << "Trigger resetting left hand firmware now...";
460  leftHandUnitProxy->resetFirmware();
461  }
462  else if (side == side::right)
463  {
464  ARMARX_INFO << "Trigger resetting right hand firmware now...";
465  rightHandUnitProxy->resetFirmware();
466  }
467  else
468  {
469  ARMARX_WARNING << "Invalid side to reset hand firmware.";
470  }
471  }
472 
473  void
475  {
476  // ARMARX_INFO << "selectLeftHandJoint " << i;
477  NameValueMap currentLeftHandJointValues = leftHandUnitProxy->getCurrentJointValues();
478  int idx = 0;
479 
480  for (const auto& pair : currentLeftHandJointValues)
481  {
482  if (idx == i)
483  {
484  currentLeftHandJoint = pair.first;
485  int convertedValue = static_cast<int>(pair.second / leftHandConversionFactor);
486  ui.horizontalSliderLeftHandJointPos->setSliderPosition(convertedValue);
487  ui.lcdNumberLeftHandJointValue->display(convertedValue);
488  // ARMARX_INFO << "Found joint";
489  break;
490  }
491  idx++;
492  }
493  }
494 
495  void
497  {
498  // ARMARX_INFO << "selectRightHandJoint " << i;
499  NameValueMap currentRightHandJointValues = rightHandUnitProxy->getCurrentJointValues();
500  int idx = 0;
501 
502  for (const auto& pair : currentRightHandJointValues)
503  {
504  if (idx == i)
505  {
506  currentRightHandJoint = pair.first;
507  int convertedValue = static_cast<int>(pair.second / rightHandConversionFactor);
508  ui.horizontalSliderRightHandJointPos->setSliderPosition(convertedValue);
509  ui.lcdNumberRightHandJointValue->display(convertedValue);
510  // ARMARX_INFO << "Found joint";
511  break;
512  }
513  idx++;
514  }
515  }
516 
517  void
518  HandUnitWidget::setLeftHandPreshape(std::string preshape)
519  {
520  // ARMARX_INFO << "Setting new left hand shape: " << preshape;
521  leftHandUnitProxy->setShape(preshape);
522  }
523 
524  void
525  HandUnitWidget::setRightHandPreshape(std::string preshape)
526  {
527  // ARMARX_INFO << "Setting new right hand shape: " << preshape;
528  rightHandUnitProxy->setShape(preshape);
529  }
530 
531  void
532  HandUnitWidget::loadSettings(QSettings* settings)
533  {
534  leftHandUnitProxyName =
535  settings->value("leftHandUnitProxyName", QString::fromStdString(leftHandUnitProxyName))
536  .toString()
537  .toStdString();
538  leftHandName = settings->value("leftHandName", QString::fromStdString(leftHandName))
539  .toString()
540  .toStdString();
541  rightHandUnitProxyName =
542  settings
543  ->value("rightHandUnitProxyName", QString::fromStdString(rightHandUnitProxyName))
544  .toString()
545  .toStdString();
546  rightHandName = settings->value("rightHandName", QString::fromStdString(rightHandName))
547  .toString()
548  .toStdString();
549  }
550 
551  void
552  HandUnitWidget::saveSettings(QSettings* settings)
553  {
554  settings->setValue("leftHandUnitProxyName", QString::fromStdString(leftHandUnitProxyName));
555  settings->setValue("leftHandName", QString::fromStdString(leftHandName));
556  settings->setValue("rightHandUnitProxyName",
557  QString::fromStdString(rightHandUnitProxyName));
558  settings->setValue("rightHandName", QString::fromStdString(rightHandName));
559  }
560 
561  void
563  {
564  ARMARX_INFO << "initGUIJointFrames";
565 
566  NameValueMap currentLeftHandJointValues = leftHandUnitProxy->getCurrentJointValues();
567  // ARMARX_INFO << VAROUT(leftHandUnitProxy->getCurrentJointValues());
568  int frameLeftHandRowIdx = 0;
569 
570  connect(ui.buttonPreshapeLeftHand,
571  SIGNAL(clicked()),
572  this,
573  SLOT(preshapeLeftHand()),
574  Qt::UniqueConnection);
575  connect(ui.buttonOpenLeftHand,
576  SIGNAL(clicked()),
577  this,
578  SLOT(openLeftHand()),
579  Qt::UniqueConnection);
580  connect(ui.buttonCloseLeftHand,
581  SIGNAL(clicked()),
582  this,
583  SLOT(closeLeftHand()),
584  Qt::UniqueConnection);
585  connect(ui.buttonRelaxLeftHand,
586  SIGNAL(clicked()),
587  this,
588  SLOT(relaxLeftHand()),
589  Qt::UniqueConnection);
590  ui.horizontalSliderLeftHandJointPos->setMaximum(100);
591  ui.horizontalSliderLeftHandJointPos->setMinimum(0);
592  connect(ui.horizontalSliderLeftHandJointPos,
593  SIGNAL(sliderMoved(int)),
594  this,
596  Qt::UniqueConnection);
597  connect(ui.comboLeftHandJoints,
598  SIGNAL(currentIndexChanged(int)),
599  this,
600  SLOT(selectLeftHandJoint(int)),
601  Qt::UniqueConnection);
602  connect(ui.leftExpertMode,
603  &QCheckBox::stateChanged,
604  [&](int state) { setExpertMode(side::left, state); });
605  connect(ui.leftTare, &QPushButton::clicked, [&] { tareHand(side::left); });
606  connect(ui.leftReset, &QPushButton::clicked, [&] { resetHand(side::left); });
607 
608  ui.tableWidgetLeftHand->setRowCount(currentLeftHandJointValues.size());
609  ui.tableWidgetLeftHand->setColumnCount(2);
610 
611  ui.comboLeftHandJoints->clear();
612 
613  qRegisterMetaType<QVector<int>>("QVector<int>");
614  for (const auto& pair : currentLeftHandJointValues)
615  {
616  // ARMARX_INFO << VAROUT(pair.first);
617  QString name(pair.first.c_str());
618  QTableWidgetItem* newItem = new QTableWidgetItem(name);
619  ui.tableWidgetLeftHand->setItem(frameLeftHandRowIdx, 0, newItem);
620  ui.comboLeftHandJoints->addItem(name);
621  frameLeftHandRowIdx++;
622  }
623 
624  ui.comboLeftHandJoints->setCurrentIndex(-1);
625 
626 
627  NameValueMap currentRightHandJointValues = rightHandUnitProxy->getCurrentJointValues();
628  // ARMARX_INFO << VAROUT(rightHandUnitProxy->getCurrentJointValues());
629  int frameRightHandRowIdx = 0;
630 
631  connect(ui.buttonPreshapeRightHand,
632  SIGNAL(clicked()),
633  this,
634  SLOT(preshapeRightHand()),
635  Qt::UniqueConnection);
636  connect(ui.buttonOpenRightHand,
637  SIGNAL(clicked()),
638  this,
639  SLOT(openRightHand()),
640  Qt::UniqueConnection);
641  connect(ui.buttonCloseRightHand,
642  SIGNAL(clicked()),
643  this,
644  SLOT(closeRightHand()),
645  Qt::UniqueConnection);
646  connect(ui.buttonRelaxRightHand,
647  SIGNAL(clicked()),
648  this,
649  SLOT(relaxRightHand()),
650  Qt::UniqueConnection);
651  ui.horizontalSliderRightHandJointPos->setMaximum(100);
652  ui.horizontalSliderRightHandJointPos->setMinimum(0);
653  connect(ui.horizontalSliderRightHandJointPos,
654  SIGNAL(sliderMoved(int)),
655  this,
657  Qt::UniqueConnection);
658  connect(ui.comboRightHandJoints,
659  SIGNAL(currentIndexChanged(int)),
660  this,
661  SLOT(selectRightHandJoint(int)),
662  Qt::UniqueConnection);
663  connect(ui.rightExpertMode,
664  &QCheckBox::stateChanged,
665  [&](int state) { setExpertMode(side::right, state); });
666  connect(ui.rightTare, &QPushButton::clicked, [&] { tareHand(side::right); });
667  connect(ui.rightReset, &QPushButton::clicked, [&] { resetHand(side::right); });
668 
669  ui.tableWidgetRightHand->setRowCount(currentRightHandJointValues.size());
670  ui.tableWidgetRightHand->setColumnCount(2);
671 
672  ui.comboRightHandJoints->clear();
673 
674  qRegisterMetaType<QVector<int>>("QVector<int>");
675  for (const auto& pair : currentRightHandJointValues)
676  {
677  // ARMARX_INFO << VAROUT(pair.first);
678  QString name(pair.first.c_str());
679  QTableWidgetItem* newItem = new QTableWidgetItem(name);
680  ui.tableWidgetRightHand->setItem(frameRightHandRowIdx, 0, newItem);
681  ui.comboRightHandJoints->addItem(name);
682  frameRightHandRowIdx++;
683  }
684 
685  ui.comboRightHandJoints->setCurrentIndex(-1);
686 
687 
688  // reloading of preshapes
689  connect(ui.reloadPreshapesButton,
690  SIGNAL(clicked()),
691  this,
692  SLOT(reloadPreshapes()),
693  Qt::UniqueConnection);
694  }
695 
696  void
697  armarx::HandUnitWidget::reportHandShaped(const std::string& handName,
698  const std::string& handShapeName,
699  const Ice::Current&)
700  {
701  ARMARX_IMPORTANT << handName << ": " << handShapeName;
702  }
703 
704  void
706  const std::string& handShapeName,
707  const Ice::Current&)
708  {
709  ARMARX_IMPORTANT << handName << ": " << handShapeName;
710  }
711 
712  void
714  const Ice::Current& c)
715  {
716  }
717 
718  void
720  const Ice::Current& c)
721  {
722  }
723 } // namespace armarx
armarx::HandUnitWidget::selectLeftHandJoint
void selectLeftHandJoint(int i)
Definition: HandUnitGuiPlugin.cpp:474
armarx::HandUnitWidget::setRightHandJointAngles
void setRightHandJointAngles()
Definition: HandUnitGuiPlugin.cpp:278
HandUnitGuiPlugin.h
SingleTypeVariantList.h
ARMARX_IMPORTANT
#define ARMARX_IMPORTANT
Definition: Logging.h:190
armarx::HandUnitWidget::onConnectComponent
void onConnectComponent() override
Pure virtual hook for the subclass.
Definition: HandUnitGuiPlugin.cpp:86
armarx::HandUnitWidget::selectRightHandJoint
void selectRightHandJoint(int i)
Definition: HandUnitGuiPlugin.cpp:496
armarx::HandUnitWidget::resetHand
void resetHand(side side)
Definition: HandUnitGuiPlugin.cpp:455
armarx::HandUnitWidget::onDisconnectComponent
void onDisconnectComponent() override
Hook for subclass.
Definition: HandUnitGuiPlugin.cpp:161
armarx::HandUnitWidget::requestSetLeftHandJointAngles
void requestSetLeftHandJointAngles()
Definition: HandUnitGuiPlugin.cpp:325
armarx::HandUnitWidget::reloadPreshapes
void reloadPreshapes()
Definition: HandUnitGuiPlugin.cpp:207
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:46
armarx::HandUnitWidget::updateJointValueTable
void updateJointValueTable()
Definition: HandUnitGuiPlugin.cpp:384
armarx::HandUnitWidget::loadSettings
void loadSettings(QSettings *settings) override
Implement to load the settings that are part of the GUI configuration.
Definition: HandUnitGuiPlugin.cpp:532
armarx::HandUnitWidget::reportJointAngles
void reportJointAngles(const ::armarx::NameValueMap &actualJointAngles, const Ice::Current &) override
Definition: HandUnitGuiPlugin.cpp:713
armarx::HandUnitWidget::openLeftHand
void openLeftHand()
Definition: HandUnitGuiPlugin.cpp:337
armarx::HandUnitWidget::openRightHand
void openRightHand()
Definition: HandUnitGuiPlugin.cpp:343
armarx::HandUnitWidget::preshapeRightHand
void preshapeRightHand()
Definition: HandUnitGuiPlugin.cpp:201
armarx::HandUnitWidget::reportJointPressures
void reportJointPressures(const ::armarx::NameValueMap &actualJointPressures, const Ice::Current &) override
Definition: HandUnitGuiPlugin.cpp:719
IceInternal::Handle< SingleTypeVariantList >
armarx::HandUnitWidget::side
side
Definition: HandUnitGuiPlugin.h:120
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:855
armarx::HandUnitWidget::saveSettings
void saveSettings(QSettings *settings) override
Implement to save the settings as part of the GUI configuration.
Definition: HandUnitGuiPlugin.cpp:552
armarx::HandUnitGuiPlugin::HandUnitGuiPlugin
HandUnitGuiPlugin()
Definition: HandUnitGuiPlugin.cpp:49
M_PI
#define M_PI
Definition: MathTools.h:17
armarx::HandUnitWidget::setLeftHandJointAngles
void setLeftHandJointAngles()
Definition: HandUnitGuiPlugin.cpp:231
armarx::HandUnitWidget::side::right
@ right
armarx::HandUnitWidget::closeRightHand
void closeRightHand()
Definition: HandUnitGuiPlugin.cpp:355
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:175
armarx::HandUnitWidget::onInitComponent
void onInitComponent() override
Pure virtual hook for the subclass.
Definition: HandUnitGuiPlugin.cpp:77
armarx::HandUnitWidget::ui
Ui::HandUnitGuiPlugin ui
Definition: HandUnitGuiPlugin.h:157
armarx::HandUnitWidget::reportHandShaped
void reportHandShaped(const std::string &, const std::string &, const Ice::Current &) override
Definition: HandUnitGuiPlugin.cpp:697
armarx::HandUnitWidget::side::left
@ left
armarx::HandUnitWidget::relaxRightHand
void relaxRightHand()
Definition: HandUnitGuiPlugin.cpp:367
armarx::HandUnitWidget::HandUnitWidget
HandUnitWidget()
Definition: HandUnitGuiPlugin.cpp:54
armarx::HandUnitWidget::setExpertMode
void setExpertMode(side side, int state)
Definition: HandUnitGuiPlugin.cpp:415
armarx::HandUnitWidget::onExitComponent
void onExitComponent() override
Hook for subclass.
Definition: HandUnitGuiPlugin.cpp:170
armarx::control::njoint_controller::platform::platform_follower_controller::NameValueMap
std::map< std::string, float > NameValueMap
Definition: PlatformFollowerController.h:88
HandUnitConfigDialog.h
armarx::HandUnitConfigDialog
Definition: HandUnitConfigDialog.h:39
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:181
armarx::HandUnitWidget::relaxLeftHand
void relaxLeftHand()
Definition: HandUnitGuiPlugin.cpp:361
armarx::HandUnitWidget::updateInfoLabel
void updateInfoLabel()
Definition: HandUnitGuiPlugin.cpp:373
armarx::HandUnitWidget::reportNewHandShapeName
void reportNewHandShapeName(const std::string &, const std::string &, const Ice::Current &) override
Definition: HandUnitGuiPlugin.cpp:705
armarx::HandUnitWidget::tareHand
void tareHand(side side)
Definition: HandUnitGuiPlugin.cpp:436
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:349
armarx::PeriodicTask
Definition: ArmarXManager.h:70
ARMARX_WARNING
#define ARMARX_WARNING
Definition: Logging.h:193
armarx::HandUnitWidget::initGUIJointFrames
void initGUIJointFrames()
Definition: HandUnitGuiPlugin.cpp:562
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:154
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
armarx::HandUnitWidget::requestSetRightHandJointAngles
void requestSetRightHandJointAngles()
Definition: HandUnitGuiPlugin.cpp:331
armarx::HandUnitWidget::configured
void configured() override
This function must be implemented by the user, if he supplies a config dialog.
Definition: HandUnitGuiPlugin.cpp:188
armarx::HandUnitWidget::preshapeLeftHand
void preshapeLeftHand()
Definition: HandUnitGuiPlugin.cpp:195