YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
jointitem.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-FileCopyrightText: 2006-2010 RobotCub Consortium
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6
7#ifndef JOINTITEM_H
8#define JOINTITEM_H
9
10#include <QWidget>
11#include <QSlider>
12#include <QLabel>
13#include <QTimer>
15#include "sliderWithTarget.h"
16
17namespace Ui {
18class JointItem;
19}
20
22
23
24
25#define STIFF 0
26#define COMPLIANT 1
27
28class JointItem : public QWidget
29{
30 Q_OBJECT
31
32 public:
36 explicit JointItem(int index, QWidget *parent = 0);
37 ~JointItem();
38 void setJointInteraction(JointInteraction interaction);
40 void setPosition(double val);
41 void setTorque(double meas);
42 void setRefTorque(double ref);
43 void setRefVelocitySpeed(double ref);
44 void setRefTrajectorySpeed(double ref);
45 void setRefTrajectoryPosition(double ref);
46 void setSpeed(double val);
47 void setMotorPosition(double meas);
48 void setDutyCycles(double duty);
49 void setRefPWM(double ref);
50 void setCurrent(double meas);
51 void setRefCurrent(double ref);
52 void updateMotionDone(bool done);
53 void updateJointFault(int i, std::string message);
54 void setJointName(QString name);
55 QString getJointName();
56 int getJointIndex();
57 void setPositionRange(double min, double max);
58 void setVelocityRange(double min, double max);
59 void setTrajectoryVelocityRange(double max);
60 void setPWMRange(double min, double max);
61 void setCurrentRange(double min, double max);
62 void setTorqueRange(double max);
67 bool enable_calib_all);
68
69 void setSpeedVisible(bool);
70 void setMotorPositionVisible(bool);
71 void setDutyVisible(bool);
72 void setCurrentsVisible(bool);
74 void viewPositionTargetBox(bool);
75 void viewPositionTargetValue(bool);
76 void enableControlVelocity(bool control);
77 void enableControlMixed(bool control);
78 void enableControlPositionDirect(bool control);
79 void enableControlPWM(bool control);
80 void enableControlCurrent(bool control);
81 void enableControlTorque(bool control);
82 void sequenceActivated();
83 void sequenceStopped();
84
85 void setNumberOfPositionSliderDecimals(size_t num);
86
88 void enablePositionSliderDoubleValue(double value);
91 void enableVelocitySliderDoubleValue(double value);
94 void enableTorqueSliderDoubleValue(double value);
97 void enableCurrentSliderDoubleValue(double value);
102 void resetTarget();
103
104 void home();
105 void run();
106 void idle();
107 void showPID();
108
109 static QColor GetModeColor(JointState mode);
110 static QString GetModeString(JointState mode);
111
112protected:
113 bool eventFilter(QObject *obj, QEvent *event) override;
114
115private:
116 void enableAll();
117 void installFilter();
118 void setJointInternalState(int mode);
119 void setJointInternalInteraction(int interaction);
120
121 void updateSliderPosition (SliderWithTarget *slider, double val);
122 void updateSliderVelocity (double val);
123 void updateSliderTrajectoryVelocity (double val);
124 void updateSliderPWM (double val);
125 void updateSliderCurrent (double val);
126 void updateSliderTorque (double val);
127
128 void updateTrajectoryPositionTarget (double val);
129 void updateMixedPositionTarget (double val);
130
131private:
132 Ui::JointItem *ui;
133 QString comboStyle1;
134 QString comboStyle2;
135 int jointIndex;
136 QString jointName;
137 bool sliderVelocityPressed;
138 bool sliderDirectPositionPressed;
139 bool sliderMixedPositionPressed;
140 bool sliderMixedVelocityPressed;
141 bool sliderTrajectoryVelocityPressed;
142 bool sliderTrajectoryPositionPressed;
143 bool sliderTorquePressed;
144 bool sliderPWMPressed;
145 bool sliderCurrentPressed;
146 bool motionDone;
147 bool enableCalib;
148 bool joint_speedVisible;
149 bool joint_motorPositionVisible;
150 bool joint_currentVisible;
151 bool joint_dutyVisible;
152 QTimer velocityTimer;
153 double lastVelocity;
154 bool velocityModeEnabled;
155 QTimer pwmTimer;
156 double lastPwm;
157 bool pwmModeEnabled;
158 QTimer currentTimer;
159 double lastCurrent;
160 bool currentModeEnabled;
161 QTimer torqueTimer;
162 double lastTorque;
163 bool torqueModeEnabled;
164
165 int IDLE;
166 int POSITION;
167 int POSITION_DIR;
168 int MIXED;
169 int VELOCITY;
170 int TORQUE;
171 int PWM;
172 int CURRENT;
173 int HW_FAULT;
174
175 int shiftPositions;
176
177 JointState internalState;
178 JointInteraction internalInteraction;
179
180 double max_current;
181 double min_current;
182 double max_torque;
183 double min_torque;
184 double max_position;
185 double min_position;
186 double max_velocity;
187 double min_velocity;
188 double max_trajectory_velocity;
189
190 //double speed;
191
192 double ref_speed;
193 double ref_torque;
194 double ref_pwm;
195 double ref_current;
196 double ref_trajectory_velocity;
197
198
199
200private slots:
201 void onModeChanged(int index);
202 void onInteractionChanged(int index);
203
204 void onSliderTrajectoryPositionPressed();
205 void onSliderTrajectoryPositionReleased();
206
207 void onSliderDirectPositionPressed();
208 void onSliderDirectPositionReleased();
209
210 void onSliderMixedPositionPressed();
211 void onSliderMixedPositionReleased();
212
213 void onSliderTrajectoryVelocityReleased();
214 void onSliderTrajectoryVelocityPressed();
215
216 void onSliderMixedVelocityReleased();
217 void onSliderMixedVelocityPressed();
218
219 void onSliderTorquePressed();
220 void onSliderTorqueReleased();
221
222 void onSliderCurrentPressed();
223 void onSliderCurrentReleased();
224
225 void onSliderPWMPressed();
226 void onSliderPWMReleased();
227
228 void onSliderVelocityReleased();
229 void onSliderVelocityPressed();
230
231 void onCalibClicked();
232 void onHomeClicked();
233 void onIdleClicked();
234 void onRunClicked();
235 void onPidClicked();
236 void onVelocityTimer();
237 void onPwmTimer();
238 void onCurrentTimer();
239 void onTorqueTimer();
240 void onStackedWidgetChanged(int);
241
242signals:
244 void pidClicked(JointItem *joint);
245 void homeClicked(JointItem *joint);
246 void idleClicked(JointItem *joint);
247 void runClicked(JointItem *joint);
248 void changeMode(int mode,JointItem *joint);
249 void changeInteraction(int interaction,JointItem *joint);
250
251 void sliderTrajectoryPositionCommand(double val, int jointIndex);
252 void sliderMixedPositionCommand(double val, int jointIndex);
253 void sliderMixedVelocityCommand(double val, int jointIndex);
254 void sliderDirectPositionCommand(double val, int jointIndex);
255 void sliderTrajectoryVelocityCommand(double val, int jointIndex);
256 void sliderTorqueCommand(double val, int jointIndex);
257 void sliderPWMCommand(double val, int jointIndex);
258 void sliderCurrentCommand(double val, int jointIndex);
259 void sliderVelocityCommand(double val, int jointIndex);
260};
261
262
263class WheelEventFilter : public QObject
264{
265 Q_OBJECT
266
267
268protected:
269 bool eventFilter(QObject *obj, QEvent *event) override;
270};
271
272
273#endif // JOINTITEM_H
define control board standard interfaces
void setMotorPosition(double meas)
void viewPositionTargetValue(bool)
void setVelocityRange(double min, double max)
void setDutyVisible(bool)
void sequenceActivated()
void enableTrajectoryVelocitySliderDoubleAuto()
void updateJointFault(int i, std::string message)
void enableControlPositionDirect(bool control)
void enableVelocitySliderDoubleAuto()
void setCurrentsVisible(bool)
void setUnits(yarp::dev::JointTypeEnum t)
static QColor GetModeColor(JointState mode)
Definition jointitem.cpp:95
void setPositionRange(double min, double max)
void enableControlMixed(bool control)
void setRefTrajectoryPosition(double ref)
void sliderVelocityCommand(double val, int jointIndex)
void resetTarget()
Definition jointitem.cpp:21
void enablePositionSliderDoubleValue(double value)
void sliderCurrentCommand(double val, int jointIndex)
void enableCurrentSliderDoubleValue(double value)
void viewPositionTargetBox(bool)
void setJointState(JointState)
void enableControlPWM(bool control)
void disablePositionSliderDouble()
void disableCurrentSliderDouble()
void enableTorqueSliderDoubleValue(double value)
void homeClicked(JointItem *joint)
void setPosition(double val)
void sliderPWMCommand(double val, int jointIndex)
void setRefVelocitySpeed(double ref)
static QString GetModeString(JointState mode)
void sliderTrajectoryPositionCommand(double val, int jointIndex)
void setCurrentRange(double min, double max)
void setJointName(QString name)
void pidClicked(JointItem *joint)
QString getJointName()
void setPWMRange(double min, double max)
void updateMotionDone(bool done)
void setRefCurrent(double ref)
@ InteractionStarting
Definition jointitem.h:35
double getTrajectoryVelocityValue()
void setTrajectoryVelocityRange(double max)
void setSpeed(double val)
void enableCurrentSliderDoubleAuto()
bool eventFilter(QObject *obj, QEvent *event) override
int getJointIndex()
void sliderMixedPositionCommand(double val, int jointIndex)
void sliderDirectPositionCommand(double val, int jointIndex)
void disableTrajectoryVelocitySliderDouble()
void setJointInteraction(JointInteraction interaction)
void calibClicked(JointItem *joint)
void runClicked(JointItem *joint)
void setMotorPositionVisible(bool)
void enableControlVelocity(bool control)
void setDutyCycles(double duty)
double getTrajectoryPositionValue()
void setCurrent(double meas)
void setRefTrajectorySpeed(double ref)
void idle()
Definition jointitem.cpp:69
void disableVelocitySliderDouble()
void sliderTrajectoryVelocityCommand(double val, int jointIndex)
void setRefPWM(double ref)
void run()
Definition jointitem.cpp:48
void sliderTorqueCommand(double val, int jointIndex)
void enableControlCurrent(bool control)
void enableTrajectoryVelocitySliderDoubleValue(double value)
void setEnabledOptions(bool debug_param_enabled, bool speedview_param_enabled, bool enable_calib_all)
void sequenceStopped()
void changeMode(int mode, JointItem *joint)
void enableTorqueSliderDoubleAuto()
void setSpeedVisible(bool)
void showPID()
Definition jointitem.cpp:90
void home()
Definition jointitem.cpp:27
void setNumberOfPositionSliderDecimals(size_t num)
@ PositionDirect
Definition jointitem.h:33
@ Disconnected
Definition jointitem.h:34
@ StateStarting
Definition jointitem.h:34
@ Calibrating
Definition jointitem.h:34
@ NotConfigured
Definition jointitem.h:34
void enableVelocitySliderDoubleValue(double value)
void enablePositionSliderDoubleAuto()
void disableTorqueSliderDouble()
void enableControlTorque(bool control)
void setTorque(double meas)
void sliderMixedVelocityCommand(double val, int jointIndex)
void idleClicked(JointItem *joint)
void setTorqueRange(double max)
void setRefTorque(double ref)
void changeInteraction(int interaction, JointItem *joint)
bool eventFilter(QObject *obj, QEvent *event) override
bool speedview_param_enabled
Definition main.cpp:35
bool debug_param_enabled
Definition main.cpp:34
bool enable_calib_all
Definition main.cpp:36
Definition aboutdlg.h:11