51 public yarp::os::Thread,
52 public yarp::dev::IMultipleWrapper
88 bool open(yarp::os::Searchable& config)
override;
89 bool close()
override;
97 bool attachAll(
const yarp::dev::PolyDriverList& device2attach)
override;
106 std::string _portPrefix =
"/fineCalibrationChecker";
107 std::string _robotName=
"";
108 std::string _deviceName=
"fineCalibrationChecker";
109 std::string _remoteRawValuesPort =
"";
110 bool _withGui =
false;
114 yarp::os::Bottle _axesNamesList = yarp::os::Bottle();
115 yarp::os::Bottle _goldPositionsList = yarp::os::Bottle();
116 yarp::os::Bottle _encoderResolutionsList = yarp::os::Bottle();
117 yarp::os::Bottle _calibrationDeltasList = yarp::os::Bottle();
118 yarp::os::Bottle _axesSignsList = yarp::os::Bottle();
120 std::vector<std::string> _robotSubpartsWrapper = {
"setup_mc",
"head",
"left_arm",
"right_arm",
"torso",
"left_leg",
"right_leg"};
121 std::map<std::string, std::vector<std::int32_t>> rawDataValuesMap;
123 std::map<std::string, std::array<int32_t, 2>> axesRawGoldenPositionsResMap;
124 std::string _rawValuesTag =
"eoprot_tag_mc_joint_status_addinfo_multienc";
131 yarp::dev::IMotor*
_imot {
nullptr };
132 yarp::dev::IEncoders*
_ienc {
nullptr };
133 } remappedControlBoardInterfaces;
137 yarp::dev::IMultipleWrapper*
_imultwrap{
nullptr };
139 } remappedRawValuesPublisherInterfaces;
142 std::unique_ptr<yarp::dev::PolyDriver> _remappedControlBoardDevice;
143 std::unique_ptr<yarp::dev::PolyDriver> _remappedRawValuesPublisherDevice;
145 void evaluateHardStopPositionDelta(
const std::string& key,
const std::string& outputFileName);
146 void generateOutputImage(
int frameWidth,
int frameHeight,
const std::vector<ItemData>& items);
149 cv::Scalar getColorForDelta(
double delta,
double threshold_1,
double threshold_2);
151 bool attachToAllControlBoards(
const yarp::dev::PolyDriverList& polyList);