31 #include <RobotAPI/interface/core/RobotState.h>
33 #include <RobotComponents/gui-plugins/HandEyeCalibration/ui_HandEyeCalibrationWidget.h>
35 #include <Inventor/sensors/SoTimerSensor.h>
42 #include <VisionX/interface/core/PointCloudProviderInterface.h>
45 #include <QColorDialog>
91 void loadSettings(QSettings* settings)
override;
96 void saveSettings(QSettings* settings)
override;
105 return "RobotControl.HandEyeCalibrationGUI";
108 QPointer<QDialog> getConfigDialog(QWidget* parent = 0)
override;
109 void configured()
override;
112 void onInitPointCloudProcessor()
override;
113 void onConnectPointCloudProcessor()
override;
114 void onDisconnectPointCloudProcessor()
override;
115 void onExitPointCloudProcessor()
override;
116 void process()
override;
122 std::string getProviderFrame()
const;
123 void cropOriginalPointCloud(
const pcl::PointCloud<PointT>& cloud,
124 const VirtualRobot::EndEffectorPtr eef)
const;
126 int decimalPlacesOrientation = 6,
127 int decimalPlacesPosition = 2)
const;
128 void enableGuiElements();
129 void disableGuiElements();
130 void updateManipulatorVisualization();
131 bool findStringIC(
const std::string& strHaystack,
const std::string& strNeedle)
const;
134 void processPointCloud();
135 void activeEndEffectorChanged(QString endEffectorName);
137 void slider_croppingRange_changed(
int value);
138 void cb_croppingActive_changed(
int state);
139 void cb_inverted_changed(
bool checked);
140 void btn_copyToClipboard_pressed();
141 void btn_resetToModel_pressed();
142 void btn_backgroundColor_pressed();
143 void btn_pointCloudColor_pressed();
144 void sB_pointSize_changed(
int value);
146 void cameraNodeTransformationChanged(
double value);
151 void saveDatapoint();
155 void pointCloudUpdated();
158 QPointer<QWidget> m_widget;
163 Ui::HandEyeCalibrationWidget widget;
164 QPointer<SimpleConfigDialog> dialog;
166 std::string providerName;
168 std::string referenceFrame;
169 pcl::PointCloud<PointT>::Ptr providerBuffer;
177 std::string robotStateComponentName;
182 VirtualRobot::EndEffectorPtr activeEndEffector;
183 std::map<std::string, std::pair<VirtualRobot::RobotPtr, Eigen::Matrix4f>> robotEEFMap;
185 Eigen::Matrix4f getOffsetMatrixForEEF(
const VirtualRobot::EndEffectorPtr eef)
187 void setOffsetMatrixForEEF(
const VirtualRobot::EndEffectorPtr eef,
190 bool croppingActive =
true;
193 void taskEEFManipulationCB();
195 void taskLocalRobotUpdateCB();
198 QColorDialog colorDialog;
200 VirtualRobot::RobotNodePtr cameraNode;