diff --git a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp index 1779a712b377711c34e23a7fa15dfe152611cc47..636b567c2345a9f74b66b1422e80e7c846b7b4fb 100644 --- a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp +++ b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp @@ -49,7 +49,6 @@ KinematicUnitGuiPlugin::KinematicUnitGuiPlugin() addWidget<KinematicUnitWidgetController>(); } - KinematicUnitWidgetController::KinematicUnitWidgetController() : kinematicUnitNode(nullptr), selectedControlMode(ePositionControl) @@ -64,7 +63,6 @@ KinematicUnitWidgetController::KinematicUnitWidgetController() : ui.tableJointList->setItemDelegateForColumn(eTabelColumnAngleProgressbar, &delegate); } - void KinematicUnitWidgetController::onInitComponent() { dirty_squaresum_old.resize(5, 0); @@ -238,8 +236,6 @@ QPointer<QDialog> KinematicUnitWidgetController::getConfigDialog(QWidget* parent return qobject_cast<KinematicUnitConfigDialog*>(dialog); } - - void KinematicUnitWidgetController::configured() { ARMARX_VERBOSE << "KinematicUnitWidget::configured()"; @@ -249,7 +245,6 @@ void KinematicUnitWidgetController::configured() topicName = dialog->topicFinder->getSelectedProxyName().toStdString(); } - void KinematicUnitWidgetController::loadSettings(QSettings* settings) { kinematicUnitFile = settings->value("kinematicUnitFile", QString::fromStdString(KINEMATIC_UNIT_FILE_DEFAULT)).toString().toStdString(); @@ -301,21 +296,15 @@ void KinematicUnitWidgetController::updateGuiElements() void KinematicUnitWidgetController::modelUpdateCB() { - } SoNode* KinematicUnitWidgetController::getScene() { - //if(kinematicUnitNode) - // std::cout << "returning scene=" << kinematicUnitNode->getName() << std::endl; return rootVisu; } - - void KinematicUnitWidgetController::connectSlots() { - connect(ui.pushButtonKinematicUnitPos1, SIGNAL(clicked()), this, SLOT(kinematicUnitZeroPosition())); connect(ui.nodeListComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(selectJoint(int))); @@ -329,12 +318,6 @@ void KinematicUnitWidgetController::connectSlots() connect(ui.showDebugLayer, SIGNAL(toggled(bool)), this, SLOT(showVisuLayers(bool)), Qt::QueuedConnection); - /* connect(this, SIGNAL(jointAnglesReported()), this, SLOT(updateJointAnglesTable()), Qt::QueuedConnection); - connect(this, SIGNAL(jointVelocitiesReported()), this, SLOT(updateJointVelocitiesTable()), Qt::QueuedConnection); - connect(this, SIGNAL(jointTorquesReported()), this, SLOT(updateJointTorquesTable()), Qt::QueuedConnection); - connect(this, SIGNAL(jointControlModesReported()), this, SLOT(updateControlModesTable()), Qt::QueuedConnection); - connect(this, SIGNAL(jointMotorTemperaturesReported()), this, SLOT(updateJointMotorTemperaturesTable()), Qt::QueuedConnection); - */ connect(this, SIGNAL(jointAnglesReported()), this, SLOT(updateJointAnglesTable()), Qt::QueuedConnection); connect(this, SIGNAL(jointVelocitiesReported()), this, SLOT(updateJointVelocitiesTable()), Qt::QueuedConnection); connect(this, SIGNAL(jointTorquesReported()), this, SLOT(updateJointTorquesTable()), Qt::QueuedConnection); @@ -343,7 +326,6 @@ void KinematicUnitWidgetController::connectSlots() connect(this, SIGNAL(jointMotorTemperaturesReported()), this, SLOT(updateJointMotorTemperaturesTable()), Qt::QueuedConnection); connect(this, SIGNAL(jointStatusesReported()), this, SLOT(updateJointStatusesTable()), Qt::QueuedConnection); - connect(ui.tableJointList, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(selectJointFromTableWidget(int, int)), Qt::QueuedConnection); } @@ -400,8 +382,6 @@ void KinematicUnitWidgetController::setControlModePosition() { jointModes[currentNode->getName()] = ePositionControl; - - if (kinematicUnitInterfacePrx) { kinematicUnitInterfacePrx->switchControlMode(jointModes); @@ -417,14 +397,17 @@ void KinematicUnitWidgetController::setControlModePosition() float pos = currentNode->getJointValue() * 180.0 / M_PI; ARMARX_INFO << "setting position control for current Node Name: " << currentNode->getName() << " with current value: " << pos; - // ARMARX_INFO << "current joint position of " << currentNode->getName() << ": " << pos; + + // Setting the slider position to pos will set the position to the slider tick closest to pos + // This will initially send a position target with a small delta to the joint. + ui.horizontalSliderKinematicUnitPos->blockSignals(true); + ui.horizontalSliderKinematicUnitPos->setMaximum(hi); ui.horizontalSliderKinematicUnitPos->setMinimum(lo); - // float ticks = (float)(ui.horizontalSliderKinematicUnitPos->maximum() - ui.horizontalSliderKinematicUnitPos->minimum()+1); - // float posT = (pos-lo) / (hi-lo) * ticks + (float)ui.horizontalSliderKinematicUnitPos->minimum(); ui.horizontalSliderKinematicUnitPos->setSliderPosition((int)(pos)); - } + ui.horizontalSliderKinematicUnitPos->blockSignals(false); + } } void KinematicUnitWidgetController::setControlModeVelocity() @@ -668,7 +651,6 @@ void KinematicUnitWidgetController::selectJoint(int i) setControlModeTorque(); ui.horizontalSliderKinematicUnitPos->setSliderPosition(SLIDER_ZERO_POSITION); } - } void KinematicUnitWidgetController::selectJointFromTableWidget(int row, int column) @@ -704,10 +686,9 @@ void KinematicUnitWidgetController::sliderValueChanged(int pos) //float lo = currentNode->getJointLimitLo(); //float hi = currentNode->getJointLimitHi(); //float result = lo + (hi-lo)*perc; - + //jointAngles[currentNode->getName()] = (perc - 0.5) * 2 * M_PI; NameValueMap jointAngles; - // jointAngles[currentNode->getName()] = (perc - 0.5) * 2 * M_PI; jointAngles[currentNode->getName()] = value / 180.0 * M_PI; if (kinematicUnitInterfacePrx) @@ -773,14 +754,14 @@ void KinematicUnitWidgetController::updateControlModesTable() switch (currentMode) { - /*case eNoMode: - state = "None"; - break; - - case eUnknownMode: - state = "Unknown"; - break; - */ + /*case eNoMode: + state = "None"; + break; + + case eUnknownMode: + state = "Unknown"; + break; + */ case eDisabled: state = "Disabled"; break; @@ -1103,7 +1084,7 @@ void KinematicUnitWidgetController::reportControlModeChanged(const NameControlMo // return; boost::recursive_mutex::scoped_lock lock(mutexNodeSet); - for (auto& e : jointModes) + for (auto & e : jointModes) { // ARMARX_INFO << "Setting jointMode of joint " << e.first << " to " << e.second; diff --git a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h index 07a887ab5b5a0b13a57d65dcf6280d695224b273..6c248994f988b044802ef130c7a0cd078217995a 100644 --- a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h +++ b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.h @@ -286,8 +286,6 @@ namespace armarx */ static const int SLIDER_ZERO_POSITION = 0; - - /** * @brief Returns values in * (-ui.jitterThresholdSpinBox->value(),ui.jitterThresholdSpinBox->value())