3#include <VirtualRobot/RobotNodeSet.h>
11 while ((item = layout->takeAt(0)))
16 delete item->layout();
20 delete item->widget();
32 kxyz.addWidget(
ui.doubleSpinBoxKTX);
33 kxyz.addWidget(
ui.doubleSpinBoxKTY);
34 kxyz.addWidget(
ui.doubleSpinBoxKTZ);
35 kxyz.setMinMax(0, 5000);
38 krpy.addWidget(
ui.doubleSpinBoxKRX);
39 krpy.addWidget(
ui.doubleSpinBoxKRY);
40 krpy.addWidget(
ui.doubleSpinBoxKRZ);
41 krpy.setMinMax(0, 5000);
44 dxyz.addWidget(
ui.doubleSpinBoxDTX);
45 dxyz.addWidget(
ui.doubleSpinBoxDTY);
46 dxyz.addWidget(
ui.doubleSpinBoxDTZ);
47 dxyz.setMinMax(0, 5000);
50 drpy.addWidget(
ui.doubleSpinBoxDRX);
51 drpy.addWidget(
ui.doubleSpinBoxDRY);
52 drpy.addWidget(
ui.doubleSpinBoxDRZ);
53 drpy.setMinMax(0, 5000);
57 connect(
ui.pushButtonNullspaceUpdateJoints,
58 &QPushButton::clicked,
60 &T::on_pushButtonNullspaceUpdateJoints_clicked);
61 connect(
ui.pushButtonNullspaceSend,
62 &QPushButton::clicked,
64 &T::on_pushButtonNullspaceSend_clicked);
65 connect(
ui.pushButtonSettingsSend,
66 &QPushButton::clicked,
68 &T::on_pushButtonSettingsSend_clicked);
73 const QString& prefix)
77 settings->beginGroup(prefix);
88 const QString& prefix)
92 settings->beginGroup(
"layer");
101 NJointTaskSpaceImpedanceControlConfigPtr
107 NJointTaskSpaceImpedanceControlConfigPtr cfg =
new NJointTaskSpaceImpedanceControlConfig;
108 cfg->nodeSetName = _rns->getName();
110 cfg->desiredPosition = targPos;
111 cfg->desiredOrientation = targOri;
119 cfg->desiredJointPositions = joint;
123 cfg->torqueLimit =
ui.doubleSpinBoxTorqueLim->value();
127 NJointTaskSpaceImpedanceControlRuntimeConfig
132 NJointTaskSpaceImpedanceControlRuntimeConfig cfg;
140 cfg.desiredJointPositions = joint;
144 cfg.torqueLimit =
ui.doubleSpinBoxTorqueLim->value();
148 std::tuple<Eigen::VectorXf, Eigen::VectorXf, Eigen::VectorXf>
166 _controller->setNullspaceConfig(joint, knull, dnull);
193 const NJointTaskSpaceImpedanceControlInterfacePrx& prx)
203 auto lay =
ui.gridLayoutNullspace;
205 lay->addWidget(
new QLabel{
"Joint"}, 0, 0);
206 lay->addWidget(
new QLabel{
"Target"}, 0, 1);
207 lay->addWidget(
new QLabel{
"Knull"}, 0, 2);
208 lay->addWidget(
new QLabel{
"Dnull"}, 0, 3);
219 for (
const auto& rn : _rns->getAllRobotNodes())
222 const auto&& n = rn->getName();
223 lay->addWidget(
new QLabel{QString::fromStdString(n)}, i, 0);
225 auto b =
new QDoubleSpinBox;
227 lay->addWidget(b, i, 1);
228 const auto lo = rn->getJointLimitLow();
229 const auto hi = rn->getJointLimitHigh();
232 b->setValue((
lo +
hi) / 2);
235 auto b =
new QDoubleSpinBox;
237 lay->addWidget(b, i, 2);
243 auto b =
new QDoubleSpinBox;
245 lay->addWidget(b, i, 3);
#define ARMARX_CHECK_NOT_NULL(ptr)
This macro evaluates whether ptr is not null and if it turns out to be false it will throw an Express...
Quaternion< float, 0 > Quaternionf
This file offers overloads of toIce() and fromIce() functions for STL container types.
void clearLayout(QLayout *layout)