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 sequenceActivated();
82 void sequenceStopped();
83
84 void setNumberOfPositionSliderDecimals(size_t num);
85
87 void enablePositionSliderDoubleValue(double value);
90 void enableVelocitySliderDoubleValue(double value);
93 void enableTorqueSliderDoubleValue(double value);
96 void enableCurrentSliderDoubleValue(double value);
101 void resetTarget();
102
103 void home();
104 void run();
105 void idle();
106 void showPID();
107
108 static QColor GetModeColor(JointState mode);
109 static QString GetModeString(JointState mode);
110
111protected:
112 bool eventFilter(QObject *obj, QEvent *event) override;
113
114private:
115 void enableAll();
116 void installFilter();
117 void setJointInternalState(int mode);
118 void setJointInternalInteraction(int interaction);
119
120 void updateSliderPosition (SliderWithTarget *slider, double val);
121 void updateSliderVelocity (double val);
122 void updateSliderTrajectoryVelocity (double val);
123 void updateSliderPWM (double val);
124 void updateSliderCurrent (double val);
125 void updateSliderTorque (double val);
126
127 void updateTrajectoryPositionTarget (double val);
128 void updateMixedPositionTarget (double val);
129
130private:
131 Ui::JointItem *ui;
132 QString comboStyle1;
133 QString comboStyle2;
134 int jointIndex;
135 QString jointName;
136 bool sliderVelocityPressed;
137 bool sliderDirectPositionPressed;
138 bool sliderMixedPositionPressed;
139 bool sliderMixedVelocityPressed;
140 bool sliderTrajectoryVelocityPressed;
141 bool sliderTrajectoryPositionPressed;
142 bool sliderTorquePressed;
143 bool sliderPWMPressed;
144 bool sliderCurrentPressed;
145 bool motionDone;
146 bool enableCalib;
147 bool joint_speedVisible;
148 bool joint_motorPositionVisible;
149 bool joint_currentVisible;
150 bool joint_dutyVisible;
151 QTimer velocityTimer;
152 double lastVelocity;
153 bool velocityModeEnabled;
154
155 int IDLE;
156 int POSITION;
157 int POSITION_DIR;
158 int MIXED;
159 int VELOCITY;
160 int TORQUE;
161 int PWM;
162 int CURRENT;
163 int HW_FAULT;
164
165 int shiftPositions;
166
167 JointState internalState;
168 JointInteraction internalInteraction;
169
170 double max_current;
171 double min_current;
172 double max_torque;
173 double min_torque;
174 double max_position;
175 double min_position;
176 double max_velocity;
177 double min_velocity;
178 double max_trajectory_velocity;
179
180 //double speed;
181
182 double ref_speed;
183 double ref_torque;
184 double ref_pwm;
185 double ref_current;
186 double ref_trajectory_velocity;
187
188
189
190private slots:
191 void onModeChanged(int index);
192 void onInteractionChanged(int index);
193
194 void onSliderTrajectoryPositionPressed();
195 void onSliderTrajectoryPositionReleased();
196
197 void onSliderDirectPositionPressed();
198 void onSliderDirectPositionReleased();
199
200 void onSliderMixedPositionPressed();
201 void onSliderMixedPositionReleased();
202
203 void onSliderTrajectoryVelocityReleased();
204 void onSliderTrajectoryVelocityPressed();
205
206 void onSliderMixedVelocityReleased();
207 void onSliderMixedVelocityPressed();
208
209 void onSliderTorquePressed();
210 void onSliderTorqueReleased();
211
212 void onSliderCurrentPressed();
213 void onSliderCurrentReleased();
214
215 void onSliderPWMPressed();
216 void onSliderPWMReleased();
217
218 void onSliderVelocityReleased();
219 void onSliderVelocityPressed();
220
221 void onCalibClicked();
222 void onHomeClicked();
223 void onIdleClicked();
224 void onRunClicked();
225 void onPidClicked();
226 void onVelocityTimer();
227 void onStackedWidgetChanged(int);
228
229signals:
231 void pidClicked(JointItem *joint);
232 void homeClicked(JointItem *joint);
233 void idleClicked(JointItem *joint);
234 void runClicked(JointItem *joint);
235 void changeMode(int mode,JointItem *joint);
236 void changeInteraction(int interaction,JointItem *joint);
237
238 void sliderTrajectoryPositionCommand(double val, int jointIndex);
239 void sliderMixedPositionCommand(double val, int jointIndex);
240 void sliderMixedVelocityCommand(double val, int jointIndex);
241 void sliderDirectPositionCommand(double val, int jointIndex);
242 void sliderTrajectoryVelocityCommand(double val, int jointIndex);
243 void sliderTorqueCommand(double val, int jointIndex);
244 void sliderPWMCommand(double val, int jointIndex);
245 void sliderCurrentCommand(double val, int jointIndex);
246 void sliderVelocityCommand(double val, int jointIndex);
247};
248
249
250class WheelEventFilter : public QObject
251{
252 Q_OBJECT
253
254
255protected:
256 bool eventFilter(QObject *obj, QEvent *event) override;
257};
258
259
260#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:57
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:19
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:43
void disableVelocitySliderDouble()
void sliderTrajectoryVelocityCommand(double val, int jointIndex)
void setRefPWM(double ref)
void run()
Definition jointitem.cpp:34
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:52
void home()
Definition jointitem.cpp:25
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 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