control_ui
ControlUi.h
Go to the documentation of this file.
1 #ifndef CONTROLBOT_H
2 #define CONTROLBOT_H
3 
4 #include <base/JointLimits.hpp>
5 #include <QtGui>
6 #include <base/commands/Joints.hpp>
7 #include "jointform.h"
8 #include <QTimer>
9 
10 inline double deg(double rad){return rad*57.2957795;}
11 inline double rad(double deg){return deg*0.0174532925;}
12 
13 class ControlUi : public QWidget
14 {
15  Q_OBJECT
17 public:
18  ControlUi(QWidget *parent = 0);
19  virtual ~ControlUi();
20 
21 public:
23  inline bool setGenerateJointStateUi(bool generate){generateJointStateUi=generate; return true;}
24 
25  Q_INVOKABLE void setJointState(base::samples::Joints const &sample);
26  Q_INVOKABLE base::commands::Joints getJoints();
27  Q_INVOKABLE void setReference(const base::samples::Joints &sample);
28 
29 public slots:
30 
31  void checkKeepSendingCB(bool checked);
32  void checkUpdateCB(bool checked);
33  void enableUpdateCB(bool enable);
34  void enableSendCBs(bool enable);
35  void layoutJointForms(int columns);
36  void configureUi(double override_vel_limit, bool positive_vel_only,
37  bool no_effort, bool no_velocity, double command_noise_std_dev = 0);
38 
39  void initFromFile(QString filepath, QString mode = "auto");
40  void initFromYaml(QString filepath);
41  void initFromURDF(QString filepath);
42  void initFromSDF(QString filePath);
43 
44  void initFromString(QString string, QString mode);
45  void initFromSDFString(QString string);
46  void initFromURDFString(QString string);
47 
48  void initModel(const base::JointLimits &limits);
49 
50 protected slots:
51  void handleUserInput(std::string, base::JointState);
52  void triggerSend();
53  void handleUpdateCheckbox(bool update);
55 signals:
56  void newVal(base::samples::Joints val);
57  void sendSignal();
58 
59 protected:
60 
61  double whiteNoise(const double std_dev);
62 
63  base::samples::Joints current_joint_states;
65  std::vector<JointForm*> joint_forms;
66  QTimer* sendTimer;
67  QPushButton* send_button;
68  bool doSend;
69  bool doUpdate;
70  QCheckBox* send_pos;
71  QCheckBox* send_vel;
72  QCheckBox* send_eff;
74  QCheckBox *cb_update;
75  QCheckBox *cb_keep_sending;
76  QSpinBox *sb_columns;
77  QGridLayout* joints_layout;
78  QWidget* joints_widget;
79  QScrollArea* joints_scroll;
80 };
81 
82 #endif /* CONTROLBOT_H */
Definition: jointform.h:21
void layoutJointForms(int columns)
Definition: ControlUi.cc:269
Q_INVOKABLE void setReference(const base::samples::Joints &sample)
Definition: ControlUi.cc:449
void initFromYaml(QString filepath)
Definition: ControlUi.cc:138
Q_INVOKABLE void setJointState(base::samples::Joints const &sample)
Definition: ControlUi.cc:430
bool generateJointStateUi
Definition: ControlUi.h:16
bool doUpdate
Definition: ControlUi.h:69
void handleKeepSendingCheckbox(bool doSend)
Definition: ControlUi.cc:398
void initFromSDFString(QString string)
Definition: ControlUi.cc:184
base::samples::Joints current_joint_states
Definition: ControlUi.h:63
void initFromString(QString string, QString mode)
Definition: ControlUi.cc:83
Definition: ControlUi.h:13
QCheckBox * send_vel
Definition: ControlUi.h:71
double whiteNoise(const double std_dev)
Definition: ControlUi.cc:467
void initFromSDF(QString filePath)
Definition: ControlUi.cc:100
QCheckBox * cb_update
Definition: ControlUi.h:74
Q_INVOKABLE base::commands::Joints getJoints()
Definition: ControlUi.cc:24
void handleUserInput(std::string, base::JointState)
Definition: ControlUi.cc:29
QWidget * joints_widget
Definition: ControlUi.h:78
virtual ~ControlUi()
Definition: ControlUi.cc:20
void initFromURDF(QString filepath)
Definition: ControlUi.cc:96
bool getGenerateJointStateUi()
Definition: ControlUi.h:22
double deg(double rad)
Definition: ControlUi.h:10
bool doSend
Definition: ControlUi.h:68
void initModel(const base::JointLimits &limits)
Definition: ControlUi.cc:289
void triggerSend()
Definition: ControlUi.cc:410
QScrollArea * joints_scroll
Definition: ControlUi.h:79
QCheckBox * send_pos
Definition: ControlUi.h:70
void checkKeepSendingCB(bool checked)
Definition: ControlUi.cc:249
ControlUi(QWidget *parent=0)
Definition: ControlUi.cc:11
void initFromFile(QString filepath, QString mode="auto")
Definition: ControlUi.cc:60
void sendSignal()
QTimer * sendTimer
Definition: ControlUi.h:66
QPushButton * send_button
Definition: ControlUi.h:67
void enableSendCBs(bool enable)
Definition: ControlUi.cc:261
void enableUpdateCB(bool enable)
Definition: ControlUi.cc:257
QSpinBox * sb_columns
Definition: ControlUi.h:76
double rad(double deg)
Definition: ControlUi.h:11
QCheckBox * cb_keep_sending
Definition: ControlUi.h:75
void checkUpdateCB(bool checked)
Definition: ControlUi.cc:253
void newVal(base::samples::Joints val)
void initFromURDFString(QString string)
Definition: ControlUi.cc:104
JointForm::Config config
Definition: ControlUi.h:73
void handleUpdateCheckbox(bool update)
Definition: ControlUi.cc:380
QCheckBox * send_eff
Definition: ControlUi.h:72
QGridLayout * joints_layout
Definition: ControlUi.h:77
bool setGenerateJointStateUi(bool generate)
Definition: ControlUi.h:23
void configureUi(double override_vel_limit, bool positive_vel_only, bool no_effort, bool no_velocity, double command_noise_std_dev=0)
Definition: ControlUi.cc:52
std::vector< JointForm * > joint_forms
Definition: ControlUi.h:65