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);
88 compensation_table<T>::apply(
const entry_t& f, value_t value)
const
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;
103 return a * value + b;
129 FTSensorCalibrationGuiWidgetController>,
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;
#define ARMARXCOMPONENT_IMPORT_EXPORT
DebugObserverComponentPluginUser()
RobotStateComponentPluginUser()
RobotUnitComponentPluginUser()
Matrix< Ice::Float, 6, 6 > Matrix6f
Matrix< float, 6, 1 > Vector6f
std::shared_ptr< class Robot > RobotPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::shared_ptr< class RobotUnitDataStreamingReceiver > RobotUnitDataStreamingReceiverPtr
std::array< value_t, 3 > entry_t
value_t compensate(value_t decision, value_t value) const
std::vector< entry_t > table