33 #include <RobotAPI/gui-plugins/FTSensorCalibrationGui/ui_FTSensorCalibrationGuiWidget.h>
55 mutable std::size_t last_idx = 0;
67 search_dummy.at(0) = decision;
70 std::lower_bound(table.begin(),
74 if (lower == table.end())
76 return apply(table.back(),
value);
78 if (lower == table.begin())
80 return apply(table.front(),
value);
83 return interpolate(decision, *(lower - 1), *lower,
value);
90 return f.at(1) *
value + f.at(2);
95 compensation_table<T>::interpolate(value_t decision,
100 const value_t t = (decision -
lo.at(0)) / (
hi.at(0) -
lo.at(0));
101 const value_t
a =
lo.at(1) * (1 - t) +
hi.at(1) * t;
102 const value_t b =
lo.at(2) * (1 - t) +
hi.at(2) * t;
129 FTSensorCalibrationGuiWidgetController>,
140 void loadSettings(QSettings* settings)
override;
141 void saveSettings(QSettings* settings)
override;
142 QPointer<QDialog> getConfigDialog(QWidget* parent)
override;
143 void configured()
override;
152 return "Debugging.FTSensorCalibrationGui";
160 void onConnectComponent()
override;
161 void onDisconnectComponent()
override;
169 void timerEvent(QTimerEvent* event)
override;
172 void loadCalibFromFile();
173 void startRecording();
174 void stopRecording();
175 void updateCalibration();
176 void updateCompensation();
177 void loadDefaultArmar6FTL();
178 void loadDefaultArmar6FTR();
181 QPointer<SimpleConfigDialog> _dialog;
182 mutable std::recursive_mutex _all_mutex;
184 Ui::FTSensorCalibrationGuiWidget _widget;
185 bool _recording =
false;
186 bool _comboboxes_are_set_up =
false;
187 std::set<std::string> _all_logging_names;
191 Eigen::Vector6i _channel_order;
192 float _ticks_to_volt_factor;
195 std::array<RobotUnitDataStreaming::DataEntry, 6> _adc;
196 std::array<RobotUnitDataStreaming::DataEntry, 6> _adc_temp;
197 std::vector<RobotUnitDataStreaming::DataEntry> _joints;
198 std::ofstream _logfile;