MaskFilterPointCloudProcessor.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @package VisionX::ArmarXObjects::MaskFilterPointCloudProcessor
17  * @author Raphael Grimm ( raphael dot grimm at kit dot edu )
18  * @date 2018
19  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20  * GNU General Public License
21  */
22 
23 
24 #include <pcl/point_types.h>
25 #include <pcl/common/transforms.h>
26 
30 #include <VisionX/interface/components/Calibration.h>
32 
34 
35 static constexpr auto InMaskSuff = "_in_mask";
36 static constexpr auto OutOfMaskSuff = "_out_of_mask";
37 static constexpr auto OutOfMaskImgSuff = "_out_of_image";
38 static constexpr auto MaskVisuSuff = "_mask_visu";
39 static constexpr auto MaskAsCloudSuff = "_mask_as_cloud";
40 
41 #define call_template_function(F) \
42  switch(_pointCloudProviderInfo.pointCloudFormat->type) \
43  { \
44  /*case visionx::PointContentType::ePoints : F<pcl::PointXYZ>(); break; */ \
45  case visionx::PointContentType::eColoredPoints : F<pcl::PointXYZRGBA>(); break; \
46  case visionx::PointContentType::eColoredOrientedPoints : F<pcl::PointXYZRGBNormal>(); break; \
47  /*case visionx::PointContentType::eLabeledPoints : F<pcl::PointXYZL>(); break; */ \
48  case visionx::PointContentType::eColoredLabeledPoints : F<pcl::PointXYZRGBL>(); break; \
49  /*case visionx::PointContentType::eIntensity : F<pcl::PointXYZI>(); break; */ \
50  case visionx::PointContentType::eOrientedPoints : \
51  ARMARX_ERROR << "eOrientedPoints NOT HANDLED IN VISIONX"; /*no break*/ \
52  [[fallthrough]]; default: \
53  ARMARX_ERROR << "Could not process point cloud, because format '" \
54  << _pointCloudProviderInfo.pointCloudFormat->type << "' is unknown"; \
55  } do{}while(false)
56 
57 using namespace armarx;
58 
60 {
62 }
63 
65 {
66  _pointCloudProviderName = getProperty<std::string>("ProviderName");
67  _debugDrawerTopicName = getProperty<std::string>("DebugDrawerTopicName");
68  _remoteGuiName = getProperty<std::string>("RemoteGuiName");
69  _robotStateComponentName = getProperty<std::string>("RobotStateComponentName");
70  _maskImageProviderName = getProperty<std::string>("MaskImageProvider");
71 
74 
78 
79  _redHi = static_cast<std::uint8_t>(getProperty<int>("MaskRedHi"));
80  _redLo = static_cast<std::uint8_t>(getProperty<int>("MaskRedLo"));
81  _greenHi = static_cast<std::uint8_t>(getProperty<int>("MaskGreenHi"));
82  _greenLo = static_cast<std::uint8_t>(getProperty<int>("MaskGreenLo"));
83  _blueHi = static_cast<std::uint8_t>(getProperty<int>("MaskBlueHi"));
84  _blueLo = static_cast<std::uint8_t>(getProperty<int>("MaskBlueLo"));
85 
86  _pointCloudReportFrame = getProperty<std::string>("PointCloudReportFrame");
87 }
88 
90 {
91  //sync
92  {
93  _robotStateComponent = getProxy<RobotStateComponentInterfacePrx>(_robotStateComponentName);
94  _localRobot = RemoteRobot::createLocalCloneFromFile(_robotStateComponent, VirtualRobot::RobotIO::eStructure);
95  }
96  //debug visu
97  {
98  _debugDrawerTopic = getTopic<DebugDrawerInterfacePrx>(_debugDrawerTopicName);
99  }
100  //point cloud provider
101  {
102  enableResultPointClouds<pcl::PointXYZRGBA>(getName() + InMaskSuff);
103  enableResultPointClouds<pcl::PointXYZRGBA>(getName() + OutOfMaskSuff);
104  enableResultPointClouds<pcl::PointXYZRGBA>(getName() + OutOfMaskImgSuff);
105  enableResultPointClouds<pcl::PointXYZRGBA>(getName() + MaskVisuSuff);
106  enableResultPointClouds<pcl::PointXYZRGBA>(getName() + MaskAsCloudSuff);
107 
110  _pointCloudProviderRefFrame = getProperty<std::string>("PointCloudProviderReferenceFrameOverride");
111  if (_pointCloudProviderRefFrame.empty())
112  {
114  auto frameprov = visionx::ReferenceFrameInterfacePrx::checkedCast(_pointCloudProvider);
115  if (frameprov)
116  {
117  _pointCloudProviderRefFrame = frameprov->getReferenceFrame();
118  }
119  }
121  }
122  //guess some config params
123  {
124  _maskZRotation = -180;
125  if (
126  _pointCloudProviderRefFrame.size() >= 3 &&
127  (
128  _pointCloudProviderRefFrame.substr(_pointCloudProviderRefFrame.size() - 3) == "Sim" ||
129  _pointCloudProviderRefFrame.substr(_pointCloudProviderRefFrame.size() - 3) == "sim"
130  )
131  )
132  {
133  _maskZRotation = -90;
134  }
135  }
136  //image provider
137  {
140  ARMARX_CHECK_EQUAL(_maskImageProviderInfo.imageFormat.type, visionx::ImageType::eRgb);
142  _maskImageProviderImages.clear();
146  for (int i = 0; i < _maskImageProviderInfo.numberImages; ++i)
147  {
149  _maskImageProviderImages.emplace_back(static_cast<void*>(_maskImageProviderImageOwner.back()->pixels));
150  }
151 
152 
153  {
154  _maskImageProviderRefFrame = getProperty<std::string>("MaskImageProviderReferenceFrameOverride");
155  if (_maskImageProviderRefFrame.empty())
156  {
158  auto frameprov = visionx::ReferenceFrameInterfacePrx::checkedCast(_maskImageProvider);
159  if (frameprov)
160  {
161  _maskImageProviderRefFrame = frameprov->getReferenceFrame();
162  }
163  }
165  }
166 
167  const std::string calibProviderName = getProperty<std::string>("CalibrationProviderName");
168  if (calibProviderName.empty())
169  {
170  auto mcalibprov = visionx::MonocularCalibrationCapturingProviderInterfacePrx::checkedCast(_maskImageProvider);
171  auto scalibprov = visionx::StereoCalibrationInterfacePrx::checkedCast(_maskImageProvider);
172  ARMARX_CHECK_EXPRESSION(mcalibprov || scalibprov);
173  if (scalibprov)
174  {
175  _maskImageProviderFocalLengthX = scalibprov->getStereoCalibration().calibrationLeft.cameraParam.focalLength.at(0);
176  _maskImageProviderFocalLengthY = scalibprov->getStereoCalibration().calibrationLeft.cameraParam.focalLength.at(1);
177  }
178  else if (mcalibprov)
179  {
180  _maskImageProviderFocalLengthX = mcalibprov->getCalibration().cameraParam.focalLength.at(0);
181  _maskImageProviderFocalLengthY = mcalibprov->getCalibration().cameraParam.focalLength.at(1);
182  }
183  }
184  else
185  {
186  auto calibProvider = getProxy<Ice::ObjectPrx>(calibProviderName);
187  auto mcalibprov = visionx::MonocularCalibrationCapturingProviderInterfacePrx::checkedCast(calibProvider);
188  auto scalibprov = visionx::StereoCalibrationInterfacePrx::checkedCast(calibProvider);
189  ARMARX_CHECK_EXPRESSION(mcalibprov || scalibprov);
190  if (scalibprov)
191  {
192  _maskImageProviderFocalLengthX = scalibprov->getStereoCalibration().calibrationLeft.cameraParam.focalLength.at(0);
193  _maskImageProviderFocalLengthY = scalibprov->getStereoCalibration().calibrationLeft.cameraParam.focalLength.at(1);
194  }
195  else if (mcalibprov)
196  {
197  _maskImageProviderFocalLengthX = mcalibprov->getCalibration().cameraParam.focalLength.at(0);
198  _maskImageProviderFocalLengthY = mcalibprov->getCalibration().cameraParam.focalLength.at(1);
199  }
200  }
201  }
202  //gui
203  {
204  _remoteGui = getProxy<RemoteGuiInterfacePrx>(_remoteGuiName);
206 
207  auto makeSlider = [&](std::string name, int val, int min = 0, int max = 255)
208  {
209  rootLayoutBuilder.addChild(
213  .addChild(RemoteGui::makeIntSpinBox(name + "_spin").min(min).max(max).value(val))
214  );
215  };
216  auto makeFSlider = [&](std::string name, int min, int max, float val)
217  {
218  rootLayoutBuilder.addChild(
221  .addChild(RemoteGui::makeFloatSlider(name).min(min).max(max).value(val).steps(static_cast<int>(max - min)))
222  .addChild(RemoteGui::makeFloatSpinBox(name + "_spin").min(min).max(max).value(val))
223  );
224  };
225 
226  // ValueProxy<float> x1Slider = makeSlider ...
227  makeSlider("red lo", _redLo);
228  makeSlider("red hi", _redHi);
229  makeSlider("green lo", _greenLo);
230  makeSlider("green hi", _greenHi);
231  makeSlider("blue lo", _blueLo);
232  makeSlider("blue hi", _blueHi);
233 
234 
235 
236  rootLayoutBuilder.addChild(
238  .addChild(RemoteGui::makeTextLabel("mask match one color range"))
240  .addChild(RemoteGui::makeTextLabel("flip x"))
241  .addChild(RemoteGui::makeCheckBox("flip x").value(_flipX))
242  .addChild(RemoteGui::makeTextLabel("flip y"))
243  .addChild(RemoteGui::makeCheckBox("flip y").value(_flipY))
244  );
245 
246  rootLayoutBuilder.addChild(
248  .addChild(RemoteGui::makeTextLabel("offset x"))
249  .addChild(RemoteGui::makeIntSpinBox("offset x").min(-2000).max(2000).value(_offsetX))
250  .addChild(RemoteGui::makeTextLabel("offset y"))
251  .addChild(RemoteGui::makeIntSpinBox("offset y").min(-2000).max(2000).value(_offsetY))
252  );
253 
255  const int focaladjrange = 10000;
256  makeFSlider("focal length adjustment", -focaladjrange, focaladjrange, _focalLengthAdjustment);
257  makeFSlider("Mask z rotation", -180, 180, _maskZRotation);
258 
259  rootLayoutBuilder.addChild(
261  .addChild(RemoteGui::makeTextLabel("report frame"))
262  .addChild(
263  RemoteGui::makeComboBox("report frame")
264  .options(_localRobot->getRobotNodeNames())
265  .addOptions({"Global", "root"})
266  .value("root")
267  )
268  );
269 
270 
271  auto checkboxBuilder = RemoteGui::makeCheckBox("Sync using timestamp");
272  checkboxBuilder.value(_syncRobotWithTimestamp);
273  checkboxBuilder.widget().label = "Sync using timestamp";
274  rootLayoutBuilder.addChild(checkboxBuilder);
275  rootLayoutBuilder.addChild(new RemoteGui::VSpacer());
276 
277  _guiTask = new SimplePeriodicTask<>([this]()
278  {
280 
281  _redLo = static_cast<std::uint8_t>(_guiTab.getValue<int>("red lo").get());
282  _guiTab.getValue<int>("red lo_spin").set(_redLo);
283 
284  _redHi = static_cast<std::uint8_t>(_guiTab.getValue<int>("red hi").get());
285  _guiTab.getValue<int>("red hi_spin").set(_redHi);
286 
287  _greenLo = static_cast<std::uint8_t>(_guiTab.getValue<int>("green lo").get());
288  _guiTab.getValue<int>("green lo_spin").set(_greenLo);
289 
290  _greenHi = static_cast<std::uint8_t>(_guiTab.getValue<int>("green hi").get());
291  _guiTab.getValue<int>("green hi_spin").set(_greenHi);
292 
293  _blueLo = static_cast<std::uint8_t>(_guiTab.getValue<int>("blue lo").get());
294  _guiTab.getValue<int>("blue lo_spin").set(_blueLo);
295 
296  _blueHi = static_cast<std::uint8_t>(_guiTab.getValue<int>("blue hi").get());
297  _guiTab.getValue<int>("blue hi_spin").set(_blueHi);
298 
299  _offsetX = _guiTab.getValue<int>("offset x").get();
300  _offsetY = _guiTab.getValue<int>("offset y").get();
301 
302  _maskZRotation = _guiTab.getValue<float>("Mask z rotation").get();
303  _guiTab.getValue<float>("Mask z rotation_spin").set(_maskZRotation);
304 
305  _focalLengthAdjustment = _guiTab.getValue<float>("focal length adjustment").get();
306  _guiTab.getValue<float>("focal length adjustment_spin").set(_focalLengthAdjustment);
307 
308  _flipX = _guiTab.getValue<bool>("flip x").get();
309  _flipY = _guiTab.getValue<bool>("flip y").get();
310  _maskMatchOneRangeInsteadOfAll = _guiTab.getValue<bool>("ormode").get();
311 
313 
314  std::lock_guard<std::mutex> guard {_pointCloudReportFrameMutex};
315  _pointCloudReportFrame = _guiTab.getValue<std::string>("report frame").get();
316  _guiParamUpdated = true;
317  _syncRobotWithTimestamp = _guiTab.getValue<bool>("Sync using timestamp").get();
318  }, 10);
319 
320  RemoteGui::WidgetPtr rootLayout = rootLayoutBuilder;
321 
322  _remoteGui->createTab(getName(), rootLayout);
324 
325  _guiTask->start();
326  }
327 }
328 
330 {
331  _guiTask->stop();
332  _guiTask = nullptr;
333  _debugDrawerTopic->removeLayer(getName());
334 }
335 
337 {
339 }
340 
341 std::array<float, 3> MaskFilterPointCloudProcessor::uvz2xyz(int u, int v, float z, float /*fx*/, float /*fy*/) const
342 {
343  const float alpha = -_maskZRotation / 180.0 * M_PI;
344  const float s = std::sin(alpha);
345  const float c = std::cos(alpha);
346 
347  const auto width = _maskImageProviderInfo.imageFormat.dimension.width;
348  const auto height = _maskImageProviderInfo.imageFormat.dimension.height;
349 
350  //middle to 0/0 and add offset
351  const float ushifted = u - + width / 2.f + _offsetX;
352  const float vshifted = v - + height / 2.f + _offsetY;
353 
354  const float rotatedU = c * ushifted + s * vshifted;
355  const float rotatedV = -s * ushifted + c * vshifted;
356 
357  const float x = (_flipX ? 1 : -1) * rotatedU;
358  const float y = (_flipY ? 1 : -1) * rotatedV;
359 
360  return {x, y, z};
361 }
362 
363 std::array<std::int64_t, 2> MaskFilterPointCloudProcessor::xyz2uv(float x, float y, float z, float fx, float fy) const
364 {
365  const float alpha = _maskZRotation / 180.0 * M_PI;
366  const float s = std::sin(alpha);
367  const float c = std::cos(alpha);
368 
369  //transform to uv
370  const float u = (_flipX ? 1 : -1) * (x / z) * fx;
371  const float v = (_flipY ? 1 : -1) * (y / z) * fy;
372 
373  const float rotatedU = c * u + -s * v;
374  const float rotatedV = s * u + c * v;
375 
376  const auto width = _maskImageProviderInfo.imageFormat.dimension.width;
377  const auto height = _maskImageProviderInfo.imageFormat.dimension.height;
378 
379  // 0/0 is currently the middle of the image -> shift it and sub offsets
380  const std::int64_t imgx = static_cast<std::int64_t>(rotatedU + width / 2.f) - _offsetX;
381  const std::int64_t imgy = static_cast<std::int64_t>(rotatedV + height / 2.f) - _offsetY;
382 
383  return {imgx, imgy};
384 }
385 
387 {
390 }
391 
392 
393 template<typename PointType> void MaskFilterPointCloudProcessor::process()
394 {
395  //something new to do?
396  {
398  {
399  _newPointCloud = true;
400  }
402  {
403  _newMaskImage = true;
404  }
405 
407  {
408  return;
409  }
410  _newMaskImage = false;
411  _newPointCloud = false;
412  }
413 
414  std::lock_guard<std::mutex> guard {_cloudMutex};
415 
416  //working data
417  typename pcl::PointCloud<PointType>::Ptr inputCloud(new pcl::PointCloud<PointType>());
418  //get new data
419  {
421 
423 
425 
427  {
429  _localRobot,
431  format->timeProvided
432  );
433  }
434  else
435  {
437  _localRobot,
439  );
440  }
441  }
442  Eigen::Matrix4f pclInCamFrame = Eigen::Matrix4f::Identity();
443  Eigen::Matrix4f camInReportFrame = Eigen::Matrix4f::Identity();
444  {
445  {
446  std::lock_guard<std::mutex> guard {_pointCloudReportFrameMutex};
447  if (_pointCloudReportFrame == "root")
448  {
449  _pointCloudReportFrame = _localRobot->getRootNode()->getName();
450  }
452  fp.changeFrame(_localRobot, _pointCloudReportFrame);
453  camInReportFrame = fp.toEigen();
454  }
455  {
457  fp.changeFrame(_localRobot, _maskImageProviderRefFrame);
458  pclInCamFrame = fp.toEigen();
459  }
460  }
461 
462  {
463  typename pcl::PointCloud<PointType>::Ptr tmpCloud(new pcl::PointCloud<PointType>());
464  pcl::transformPointCloud(*inputCloud, *tmpCloud, pclInCamFrame);
465  tmpCloud.swap(inputCloud);
466  }
467 
468  const auto r = std::minmax(_redLo, _redHi);
469  const auto g = std::minmax(_greenLo, _greenHi);
470  const auto b = std::minmax(_blueLo, _blueHi);
471  const CByteImage& img = *_maskImageProviderImageOwner.front();
472  std::uint64_t pointsInImage = 0;
473  std::uint64_t pointsOutOfImage = 0;
474  _maskedCloud.reset(new pcl::PointCloud<pcl::PointXYZRGBA>());
475  _inputCloud.reset(new pcl::PointCloud<pcl::PointXYZRGBA>());
476  pcl::PointCloud<pcl::PointXYZRGBA>::Ptr unmaskedCloud(new pcl::PointCloud<pcl::PointXYZRGBA>());
477  pcl::PointCloud<pcl::PointXYZRGBA>::Ptr outOfImageCloud(new pcl::PointCloud<pcl::PointXYZRGBA>());
478  pcl::PointCloud<pcl::PointXYZRGBA>::Ptr visuCloud(new pcl::PointCloud<pcl::PointXYZRGBA>());
479 
480  float fx, fy;
481  std::tie(fx, fy) = maskImageProviderFocalLength();
482  for (const auto& point : inputCloud->points)
483  {
484  pcl::PointXYZRGBA p;
485  p.x = point.x;
486  p.y = point.y;
487  p.z = point.z;
488  p.a = 255;
489 
490  static_assert(
495  );
496  // if constexpr(
497  // std::is_same_v<PointType, pcl::PointXYZRGBA> ||
498  // std::is_same_v<PointType, pcl::PointXYZRGB> ||
499  // std::is_same_v<PointType, pcl::PointXYZRGBL> ||
500  // std::is_same_v<PointType, pcl::PointXYZRGBNormal>
501  // )
502  {
503  p.r = point.r;
504  p.g = point.g;
505  p.b = point.b;
506  }
507  // else
508  // {
509  // p.r = p.g = p.b = 0;
510  // }
511  const auto uv = xyz2uv(p.x, p.y, p.z, fx, fy);
512  const std::int64_t u = uv.at(0);
513  const std::int64_t v = uv.at(1);
514  if (u < 0 || u >= img.width || v < 0 || v >= img.height)
515  {
516  ++pointsOutOfImage;
517  _inputCloud->push_back(p);
518  p.r = p.b = p.a = 255;
519  p.g = 0;
520  outOfImageCloud->push_back(p);
521  continue; // point out of image
522  }
523  ++pointsInImage;
524 
525  p.r = img.pixels[(u + v * img.width) * 3 + 0];
526  p.g = img.pixels[(u + v * img.width) * 3 + 1];
527  p.b = img.pixels[(u + v * img.width) * 3 + 2];
528 
529  _inputCloud->push_back(p);
530 
531  const bool okR = r.first <= p.r && r.second >= p.r;
532  const bool okG = g.first <= p.g && g.second >= p.g;
533  const bool okB = b.first <= p.b && b.second >= p.b;
534 
535  if (_maskMatchOneRangeInsteadOfAll ? okR || okG || okB : okR && okG && okB)
536  {
537  _maskedCloud->push_back(p);
538  }
539  else
540  {
541  unmaskedCloud->push_back(p);
542  }
543  visuCloud->push_back(p);
544  }
545 
546  {
547  pcl::PointCloud<pcl::PointXYZRGBA>::Ptr tmpCloud(new pcl::PointCloud<pcl::PointXYZRGBA>());
548 
549  pcl::transformPointCloud(*_maskedCloud, *tmpCloud, camInReportFrame);
550  provideResultPointClouds(tmpCloud, getName() + InMaskSuff);
551 
552  pcl::transformPointCloud(*unmaskedCloud, *tmpCloud, camInReportFrame);
553  provideResultPointClouds(tmpCloud, getName() + OutOfMaskSuff);
554 
555  pcl::transformPointCloud(*outOfImageCloud, *tmpCloud, camInReportFrame);
556  provideResultPointClouds(tmpCloud, getName() + OutOfMaskImgSuff);
557 
558  pcl::transformPointCloud(*visuCloud, *tmpCloud, camInReportFrame);
559  provideResultPointClouds(tmpCloud, getName() + MaskVisuSuff);
560 
561  //reuse visuCloud
562  visuCloud->clear();
563  for (int u = 0; u < img.width; ++u)
564  {
565  for (int v = 0; v < img.height; ++v)
566  {
567  //visu the mastk at the image plane
568  auto xyz = uvz2xyz(u, v, (fx + fy) / 2, fx, fy);
569  pcl::PointXYZRGBA p;
570  p.x = xyz.at(0);
571  p.y = xyz.at(1);
572  p.z = xyz.at(2);
573  p.a = 255;
574  p.r = img.pixels[(u + v * img.width) * 3 + 0];
575  p.g = img.pixels[(u + v * img.width) * 3 + 1];
576  p.b = img.pixels[(u + v * img.width) * 3 + 2];
577  visuCloud->push_back(p);
578  }
579  }
580  pcl::transformPointCloud(*visuCloud, *tmpCloud, camInReportFrame);
581  provideResultPointClouds(tmpCloud, getName() + MaskAsCloudSuff);
582  }
583 }
armarx::MaskFilterPointCloudProcessor::_maskImageProvider
visionx::ImageProviderInterfacePrx _maskImageProvider
Definition: MaskFilterPointCloudProcessor.h:157
armarx::RemoteGui::detail::MinMaxMixin::min
Derived & min(Type min)
Definition: Basic.h:88
armarx::MaskFilterPointCloudProcessor::_guiTab
RemoteGui::TabProxy _guiTab
Definition: MaskFilterPointCloudProcessor.h:127
armarx::MaskFilterPointCloudProcessor::_redLo
std::atomic< std::uint8_t > _redLo
Definition: MaskFilterPointCloudProcessor.h:129
RemoteRobot.h
armarx::RemoteGui::makeIntSlider
detail::IntSliderBuilder makeIntSlider(std::string const &name)
Definition: IntegerWidgets.h:43
armarx::RemoteGui::makeVBoxLayout
detail::VBoxLayoutBuilder makeVBoxLayout(std::string const &name="")
Definition: LayoutWidgets.h:245
MaskFilterPointCloudProcessor.h
armarx::MaskFilterPointCloudProcessor::maskImageProviderFocalLength
std::pair< float, float > maskImageProviderFocalLength() const
Definition: MaskFilterPointCloudProcessor.cpp:336
armarx::RemoteGui::makeHBoxLayout
detail::HBoxLayoutBuilder makeHBoxLayout(std::string const &name="")
Definition: LayoutWidgets.h:230
armarx::MaskFilterPointCloudProcessor::_maskMatchOneRangeInsteadOfAll
std::atomic_bool _maskMatchOneRangeInsteadOfAll
Definition: MaskFilterPointCloudProcessor.h:141
visionx::PointCloudProcessor::getPointCloudFormat
MetaPointCloudFormatPtr getPointCloudFormat(std::string providerName)
Definition: PointCloudProcessor.cpp:506
visionx::ImageProviderInfo::numberImages
int numberImages
Number of images.
Definition: ImageProcessor.h:506
armarx::MaskFilterPointCloudProcessor::_inputCloud
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr _inputCloud
Definition: MaskFilterPointCloudProcessor.h:153
armarx::MaskFilterPointCloudProcessor::onInitPointCloudAndImageProcessor
void onInitPointCloudAndImageProcessor() override
Setup the vision component.
Definition: MaskFilterPointCloudProcessor.cpp:64
armarx::MaskFilterPointCloudProcessor::_maskedCloud
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr _maskedCloud
Definition: MaskFilterPointCloudProcessor.h:152
armarx::MaskFilterPointCloudProcessor::_redHi
std::atomic< std::uint8_t > _redHi
Definition: MaskFilterPointCloudProcessor.h:130
armarx::MaskFilterPointCloudProcessor::_localRobot
VirtualRobot::RobotPtr _localRobot
Definition: MaskFilterPointCloudProcessor.h:119
armarx::RemoteGui::detail::VBoxLayoutBuilder
Definition: LayoutWidgets.h:94
armarx::MaskFilterPointCloudProcessor::_maskImageProviderName
std::string _maskImageProviderName
Definition: MaskFilterPointCloudProcessor.h:155
armarx::RemoteRobot::synchronizeLocalClone
static bool synchronizeLocalClone(VirtualRobot::RobotPtr robot, RobotStateComponentInterfacePrx robotStatePrx)
Definition: RemoteRobot.cpp:448
armarx::FramedPose
The FramedPose class.
Definition: FramedPose.h:258
armarx::MaskFilterPointCloudProcessor::_pointCloudReportFrame
std::string _pointCloudReportFrame
Definition: MaskFilterPointCloudProcessor.h:138
armarx::MaskFilterPointCloudProcessor::_maskImageProviderFocalLengthY
float _maskImageProviderFocalLengthY
Definition: MaskFilterPointCloudProcessor.h:162
armarx::RemoteRobot::createLocalCloneFromFile
static VirtualRobot::RobotPtr createLocalCloneFromFile(RobotStateComponentInterfacePrx robotStatePrx, VirtualRobot::RobotIO::RobotDescription loadMode=VirtualRobot::RobotIO::eFull)
This is a convenience function for createLocalClone, which automatically gets the filename from the R...
Definition: RemoteRobot.cpp:441
armarx::MaskFilterPointCloudProcessor::_maskImageProviderFocalLengthX
float _maskImageProviderFocalLengthX
Definition: MaskFilterPointCloudProcessor.h:161
armarx::MaskFilterPointCloudProcessor::_focalLengthAdjustment
std::atomic< float > _focalLengthAdjustment
Definition: MaskFilterPointCloudProcessor.h:135
armarx::MaskFilterPointCloudProcessor::_offsetY
std::atomic< std::int64_t > _offsetY
Definition: MaskFilterPointCloudProcessor.h:143
WidgetBuilder.h
armarx::MaskFilterPointCloudProcessor::_robotStateComponentName
std::string _robotStateComponentName
Definition: MaskFilterPointCloudProcessor.h:117
visionx::PointCloudProviderInfo::proxy
PointCloudProviderInterfacePrx proxy
Proxy to PointCloud provider.
Definition: PointCloudProcessor.h:87
visionx::ImageProcessor::getImageProvider
ImageProviderInfo getImageProvider(std::string name, ImageType destinationImageType=eRgb, bool waitForProxy=false)
Select an ImageProvider.
Definition: ImageProcessor.cpp:152
armarx::MaskFilterPointCloudProcessor::_guiTask
SimplePeriodicTask ::pointer_type _guiTask
Definition: MaskFilterPointCloudProcessor.h:126
armarx::max
std::vector< T > max(const std::vector< T > &v1, const std::vector< T > &v2)
Definition: VectorHelpers.h:267
armarx::MaskFilterPointCloudProcessor::_blueLo
std::atomic< std::uint8_t > _blueLo
Definition: MaskFilterPointCloudProcessor.h:131
armarx::MaskFilterPointCloudProcessor::_cloudMutex
std::mutex _cloudMutex
Definition: MaskFilterPointCloudProcessor.h:151
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:43
armarx::MaskFilterPointCloudProcessor::_pointCloudProviderRefFrame
std::string _pointCloudProviderRefFrame
Definition: MaskFilterPointCloudProcessor.h:149
armarx::MaskFilterPointCloudProcessor::_syncRobotWithTimestamp
std::atomic_bool _syncRobotWithTimestamp
Definition: MaskFilterPointCloudProcessor.h:120
armarx::RemoteGui::makeTextLabel
detail::LabelBuilder makeTextLabel(std::string const &text)
Definition: StaticWidgets.h:22
armarx::MaskFilterPointCloudProcessor::_flipX
std::atomic_bool _flipX
Definition: MaskFilterPointCloudProcessor.h:139
armarx::MaskFilterPointCloudProcessor::_greenHi
std::atomic< std::uint8_t > _greenHi
Definition: MaskFilterPointCloudProcessor.h:134
visionx::ImageProviderInfo::imageFormat
ImageFormatInfo imageFormat
Image format struct that contains all necessary image information.
Definition: ImageProcessor.h:496
armarx::MaskFilterPointCloudProcessor::_remoteGuiName
std::string _remoteGuiName
Definition: MaskFilterPointCloudProcessor.h:124
armarx::MaskFilterPointCloudProcessor::_guiParamUpdated
std::atomic< std::int64_t > _guiParamUpdated
Definition: MaskFilterPointCloudProcessor.h:144
visionx::tools::createByteImage
CByteImage * createByteImage(const ImageFormatInfo &imageFormat, const ImageType imageType)
Creates a ByteImage for the destination type specified in the given imageProviderInfo.
armarx::MaskFilterPointCloudProcessor::_debugDrawerTopic
DebugDrawerInterfacePrx _debugDrawerTopic
Definition: MaskFilterPointCloudProcessor.h:123
armarx::RemoteGui::TabProxy
Definition: WidgetProxy.h:17
armarx::MaskFilterPointCloudProcessor::_maskImageProviderRefFrame
std::string _maskImageProviderRefFrame
Definition: MaskFilterPointCloudProcessor.h:160
armarx::RemoteGui::detail::ComboBoxBuilder::addOptions
ComboBoxBuilder & addOptions(std::vector< std::string > const &options)
Definition: StringWidgets.h:25
armarx::RemoteGui::detail::MinMaxMixin::max
Derived & max(Type max)
Definition: Basic.h:116
GfxTL::Identity
void Identity(MatrixXX< N, N, T > *a)
Definition: MatrixXX.h:523
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:926
armarx::RemoteGui::TabProxy::receiveUpdates
void receiveUpdates()
Definition: WidgetProxy.h:131
armarx::RemoteGui::makeIntSpinBox
detail::IntSpinBoxBuilder makeIntSpinBox(std::string const &name)
Definition: IntegerWidgets.h:38
visionx::PointCloudProcessor::provideResultPointClouds
void provideResultPointClouds(const PointCloudPtrT &pointClouds, std::string providerName="")
sends result PointClouds for visualization
Definition: PointCloudProcessor.h:286
armarx::RemoteGui::detail::ChildrenMixin::addChild
Derived & addChild(WidgetPtr const &child)
Definition: LayoutWidgets.h:22
M_PI
#define M_PI
Definition: MathTools.h:17
armarx::RemoteGui::makeCheckBox
detail::CheckBoxBuilder makeCheckBox(std::string const &name)
Definition: BoolWidgets.h:26
FramedPose.h
armarx::MaskFilterPointCloudProcessorPropertyDefinitions
Definition: MaskFilterPointCloudProcessor.h:45
armarx::RemoteGui::makeFloatSlider
detail::FloatSliderBuilder makeFloatSlider(std::string const &name)
Definition: FloatWidgets.h:57
visionx::PointCloudProcessor::waitForPointClouds
bool waitForPointClouds(int milliseconds=1000)
Wait for new PointClouds.
Definition: PointCloudProcessor.cpp:433
armarx::MaskFilterPointCloudProcessor::_offsetX
std::atomic< std::int64_t > _offsetX
Definition: MaskFilterPointCloudProcessor.h:142
visionx::ImageProcessor::usingImageProvider
void usingImageProvider(std::string name)
Registers a delayed topic subscription and a delayed provider proxy retrieval which all will be avail...
Definition: ImageProcessor.cpp:117
armarx::RemoteGui::detail::ValueMixin::value
Derived & value(ValueT const &value)
Definition: Basic.h:77
armarx::MaskFilterPointCloudProcessor::createPropertyDefinitions
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
Definition: MaskFilterPointCloudProcessor.cpp:386
visionx::ImageProcessor::getImages
int getImages(CByteImage **ppImages)
Poll images from provider.
Definition: ImageProcessor.cpp:351
armarx::MaskFilterPointCloudProcessor::_newPointCloud
bool _newPointCloud
Definition: MaskFilterPointCloudProcessor.h:165
visionx::PointCloudProcessor::getPointClouds
int getPointClouds(const PointCloudPtrT &pointCloudPtr)
Poll PointClouds from provider.
Definition: PointCloudProcessor.h:373
ARMARX_CHECK_GREATER_EQUAL
#define ARMARX_CHECK_GREATER_EQUAL(lhs, rhs)
This macro evaluates whether lhs is greater or equal (>=) rhs and if it turns out to be false it will...
Definition: ExpressionException.h:123
armarx::MaskFilterPointCloudProcessor::_pointCloudProviderInfo
visionx::PointCloudProviderInfo _pointCloudProviderInfo
Definition: MaskFilterPointCloudProcessor.h:147
armarx::WidgetDescription::WidgetPtr
::IceInternal::Handle<::armarx::WidgetDescription::Widget > WidgetPtr
Definition: NJointControllerBase.h:66
armarx::RemoteGui::TabProxy::getValue
ValueProxy< T > getValue(std::string const &name)
Definition: WidgetProxy.h:161
armarx::MaskFilterPointCloudProcessor::_robotStateComponent
RobotStateComponentInterfacePrx _robotStateComponent
Definition: MaskFilterPointCloudProcessor.h:118
armarx::MaskFilterPointCloudProcessor::_maskImageProviderImages
std::vector< void * > _maskImageProviderImages
Definition: MaskFilterPointCloudProcessor.h:159
armarx::Component::getConfigIdentifier
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
Definition: Component.cpp:74
armarx::ctrlutil::v
double v(double t, double v0, double a0, double j)
Definition: CtrlUtil.h:39
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:601
armarx::MaskFilterPointCloudProcessor::_remoteGui
RemoteGuiInterfacePrx _remoteGui
Definition: MaskFilterPointCloudProcessor.h:125
visionx::ImageProviderInfo::proxy
ImageProviderInterfacePrx proxy
proxy to image provider
Definition: ImageProcessor.h:472
ARMARX_CHECK_EXPRESSION
#define ARMARX_CHECK_EXPRESSION(expression)
This macro evaluates the expression and if it turns out to be false it will throw an ExpressionExcept...
Definition: ExpressionException.h:73
armarx::MaskFilterPointCloudProcessor::_pointCloudProvider
visionx::PointCloudProviderInterfacePrx _pointCloudProvider
Definition: MaskFilterPointCloudProcessor.h:148
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:174
armarx::MaskFilterPointCloudProcessor::_newMaskImage
bool _newMaskImage
Definition: MaskFilterPointCloudProcessor.h:164
armarx::MaskFilterPointCloudProcessor::xyz2uv
std::array< std::int64_t, 2 > xyz2uv(float x, float y, float z, float fx, float fy) const
Definition: MaskFilterPointCloudProcessor.cpp:363
VAROUT
#define VAROUT(x)
Definition: StringHelpers.h:182
armarx::ManagedIceObject::offeringTopic
void offeringTopic(const std::string &name)
Registers a topic for retrival after initialization.
Definition: ManagedIceObject.cpp:290
set
set(LIBS ArmarXCoreInterfaces ${CMAKE_THREAD_LIBS_INIT} ${dl_LIBRARIES} ${rt_LIBRARIES} ${QT_LIBRARIES} ${Boost_LIBRARIES} BoostAssertionHandler ArmarXCPPUtility SimoxUtility) set(LIB_FILES ArmarXManager.cpp ArmarXMultipleObjectsScheduler.cpp ArmarXObjectScheduler.cpp ManagedIceObject.cpp ManagedIceObjectPlugin.cpp Component.cpp ComponentPlugin.cpp IceGridAdmin.cpp ArmarXObjectObserver.cpp IceManager.cpp PackagePath.cpp RemoteReferenceCount.cpp logging/LoggingUtil.cpp logging/Logging.cpp logging/LogSender.cpp logging/ArmarXLogBuf.cpp system/ArmarXDataPath.cpp system/DynamicLibrary.cpp system/ProcessWatcher.cpp system/FactoryCollectionBase.cpp system/cmake/CMakePackageFinder.cpp system/cmake/CMakePackageFinderCache.cpp system/cmake/ArmarXPackageToolInterface.cpp system/RemoteObjectNode.cpp services/sharedmemory/HardwareId.cpp services/tasks/RunningTask.cpp services/tasks/ThreadList.cpp services/tasks/ThreadPool.cpp services/profiler/Profiler.cpp services/profiler/FileLoggingStrategy.cpp services/profiler/IceLoggingStrategy.cpp application/Application.cpp application/ApplicationOptions.cpp application/ApplicationProcessFacet.cpp application/ApplicationNetworkStats.cpp application/properties/PropertyUser.cpp application/properties/Property.cpp application/properties/PropertyDefinition.cpp application/properties/PropertyDefinitionContainer.cpp application/properties/PropertyDefinitionHelpFormatter.cpp application/properties/PropertyDefinitionConfigFormatter.cpp application/properties/PropertyDefinitionBriefHelpFormatter.cpp application/properties/PropertyDefinitionXmlFormatter.cpp application/properties/PropertyDefinitionDoxygenFormatter.cpp application/properties/PropertyDefinitionDoxygenComponentPagesFormatter.cpp application/properties/PropertyDefinitionContainerBriefHelpFormatter.cpp application/properties/IceProperties.cpp exceptions/Exception.cpp exceptions/local/UnexpectedEnumValueException.cpp util/FileSystemPathBuilder.cpp util/StringHelpers.cpp util/IceReportSkipper.cpp util/Throttler.cpp util/distributed/AMDCallbackCollection.cpp util/distributed/RemoteHandle/ClientSideRemoteHandleControlBlock.cpp util/distributed/RemoteHandle/RemoteHandle.cpp util/distributed/RemoteHandle/RemoteHandleControlBlock.cpp time/ice_conversions.cpp time/json_conversions.cpp time/CallbackWaitLock.cpp time/Clock.cpp time/ClockType.cpp time/ClockTypeNames.cpp time/CycleUtil.cpp time/DateTime.cpp time/Duration.cpp time/Frequency.cpp time/LocalTimeServer.cpp time/Metronome.cpp time/ScopedStopWatch.cpp time/StopWatch.cpp time/Timer.cpp time/TimeKeeper.cpp time/TimeUtil.cpp csv/CsvWriter.cpp csv/CsvReader.cpp eigen/conversions.cpp eigen/ice_conversions.cpp) set(LIB_HEADERS ArmarXManager.h ArmarXDummyManager.h ArmarXMultipleObjectsScheduler.h ArmarXObjectObserver.h ArmarXObjectScheduler.h ArmarXFwd.h Component.h ComponentPlugin.h ComponentFactories.h CoreObjectFactories.h IceGridAdmin.h IceManager.h IceManagerImpl.h json_conversions.h ManagedIceObject.h ManagedIceObjectPlugin.h ManagedIceObjectImpl.h ManagedIceObjectDependency.h ManagedIceObjectRegistryInterface.h PackagePath.h RemoteReferenceCount.h system/ImportExport.h system/ImportExportComponent.h system/AbstractFactoryMethod.h system/FactoryCollectionBase.h system/Synchronization.h system/ArmarXDataPath.h system/DynamicLibrary.h system/ProcessWatcher.h system/ConditionSynchronization.h system/cmake/CMakePackageFinder.h system/cmake/CMakePackageFinderCache.h system/cmake/FindPackageX.cmake system/cmake/ArmarXPackageToolInterface.h system/RemoteObjectNode.h logging/LoggingUtil.h logging/LogSender.h logging/Logging.h logging/ArmarXLogBuf.h logging/SpamFilterData.h services/tasks/RunningTask.h services/tasks/PeriodicTask.h services/tasks/ThreadList.h services/tasks/TaskUtil.h services/tasks/ThreadPool.h services/sharedmemory/SharedMemoryProvider.h services/sharedmemory/SharedMemoryConsumer.h services/sharedmemory/IceSharedMemoryProvider.h services/sharedmemory/IceSharedMemoryConsumer.h services/sharedmemory/HardwareIdentifierProvider.h services/sharedmemory/HardwareId.h services/sharedmemory/exceptions/SharedMemoryExceptions.h services/profiler/Profiler.h services/profiler/LoggingStrategy.h services/profiler/FileLoggingStrategy.h services/profiler/IceLoggingStrategy.h application/Application.h application/ApplicationOptions.h application/ApplicationProcessFacet.h application/ApplicationNetworkStats.h application/properties/forward_declarations.h application/properties/Properties.h application/properties/Property.h application/properties/PluginEigen.h application/properties/PluginEnumNames.h application/properties/PluginCfgStruct.h application/properties/PluginAll.h application/properties/PropertyUser.h application/properties/PropertyDefinition.h application/properties/PropertyDefinition.hpp application/properties/PropertyDefinitionInterface.h application/properties/PropertyDefinitionContainer.h application/properties/PropertyDefinitionFormatter.h application/properties/PropertyDefinitionContainerFormatter.h application/properties/PropertyDefinitionConfigFormatter.h application/properties/PropertyDefinitionHelpFormatter.h application/properties/PropertyDefinitionBriefHelpFormatter.h application/properties/PropertyDefinitionXmlFormatter.h application/properties/PropertyDefinitionDoxygenFormatter.h application/properties/PropertyDefinitionDoxygenComponentPagesFormatter.h application/properties/PropertyDefinitionContainerBriefHelpFormatter.h application/properties/ProxyPropertyDefinition.h application/properties/IceProperties.h exceptions/Exception.h exceptions/LocalException.h exceptions/local/DynamicLibraryException.h exceptions/local/ExpressionException.h exceptions/local/FileIOException.h exceptions/local/InvalidPropertyValueException.h exceptions/local/MissingRequiredPropertyException.h exceptions/local/PropertyInheritanceCycleException.h exceptions/local/ProxyNotInitializedException.h exceptions/local/UnexpectedEnumValueException.h exceptions/local/UnmappedValueException.h exceptions/local/ValueRangeExceededException.h exceptions/user/NotImplementedYetException.h rapidxml/rapidxml.hpp rapidxml/rapidxml_print.hpp rapidxml/rapidxml_iterators.hpp rapidxml/rapidxml_utils.hpp rapidxml/wrapper/RapidXmlReader.h rapidxml/wrapper/RapidXmlWriter.h rapidxml/wrapper/DefaultRapidXmlReader.h rapidxml/wrapper/MultiNodeRapidXMLReader.h util/IceBlobToObject.h util/ObjectToIceBlob.h util/FileSystemPathBuilder.h util/FiniteStateMachine.h util/StringHelpers.h util/StringHelperTemplates.h util/algorithm.h util/OnScopeExit.h util/Predicates.h util/Preprocessor.h util/PropagateConst.h util/Registrar.h util/TemplateMetaProgramming.h util/TripleBuffer.h util/IceReportSkipper.h util/Throttler.h util/distributed/AMDCallbackCollection.h util/distributed/RemoteHandle/ClientSideRemoteHandleControlBlock.h util/distributed/RemoteHandle/RemoteHandle.h util/distributed/RemoteHandle/RemoteHandleControlBlock.h util/SimpleStatemachine.h time.h time_minimal.h time/forward_declarations.h time/ice_conversions.h time/json_conversions.h time/CallbackWaitLock.h time/Clock.h time/ClockType.h time/ClockTypeNames.h time/CycleUtil.h time/DateTime.h time/Duration.h time/Frequency.h time/LocalTimeServer.h time/Metronome.h time/ScopedStopWatch.h time/StopWatch.h time/Timer.h time/TimeUtil.h time/TimeKeeper.h csv/CsvWriter.h csv/CsvReader.h eigen/conversions.h eigen/ice_conversions.h ice_conversions.h ice_conversions/ice_conversions_boost_templates.h ice_conversions/ice_conversions_templates.h ice_conversions/ice_conversions_templates.tpp $
Definition: CMakeLists.txt:12
IceUtil::Handle< class PropertyDefinitionContainer >
armarx::min
std::vector< T > min(const std::vector< T > &v1, const std::vector< T > &v2)
Definition: VectorHelpers.h:294
armarx::MaskFilterPointCloudProcessor::_maskImageProviderImageOwner
std::vector< visionx::CByteImageUPtr > _maskImageProviderImageOwner
Definition: MaskFilterPointCloudProcessor.h:158
call_template_function
#define call_template_function(F)
Definition: MaskFilterPointCloudProcessor.cpp:41
armarx::RemoteRobot::synchronizeLocalCloneToTimestamp
static bool synchronizeLocalCloneToTimestamp(VirtualRobot::RobotPtr robot, RobotStateComponentInterfacePrx robotStatePrx, Ice::Long timestamp)
Synchronizes a local robot to a robot state at timestamp.
Definition: RemoteRobot.cpp:487
visionx::PointCloudProcessor::usingPointCloudProvider
void usingPointCloudProvider(std::string providerName)
Registers a delayed topic subscription and a delayed provider proxy retrieval which will be available...
Definition: PointCloudProcessor.cpp:261
ImageUtil.h
armarx::MaskFilterPointCloudProcessor::uvz2xyz
std::array< float, 3 > uvz2xyz(int u, int v, float z, float fx, float fy) const
Definition: MaskFilterPointCloudProcessor.cpp:341
armarx::MaskFilterPointCloudProcessor::_maskZRotation
std::atomic< float > _maskZRotation
Definition: MaskFilterPointCloudProcessor.h:136
armarx::MaskFilterPointCloudProcessor::onDisconnectPointCloudAndImageProcessor
void onDisconnectPointCloudAndImageProcessor() override
Implement this method in the PointCloudAndImageProcessor in order to execute parts when the component...
Definition: MaskFilterPointCloudProcessor.cpp:329
armarx::RemoteGui::TabProxy::sendUpdates
void sendUpdates()
Definition: WidgetProxy.h:146
armarx::RemoteGui::makeComboBox
detail::ComboBoxBuilder makeComboBox(std::string const &name)
Definition: StringWidgets.h:58
armarx::MaskFilterPointCloudProcessor::onConnectPointCloudAndImageProcessor
void onConnectPointCloudAndImageProcessor() override
Implement this method in your PointCloudAndImageProcessor in order execute parts when the component i...
Definition: MaskFilterPointCloudProcessor.cpp:89
armarx::MaskFilterPointCloudProcessor::_debugDrawerTopicName
std::string _debugDrawerTopicName
Definition: MaskFilterPointCloudProcessor.h:122
armarx::MaskFilterPointCloudProcessor::_pointCloudReportFrameMutex
std::mutex _pointCloudReportFrameMutex
Definition: MaskFilterPointCloudProcessor.h:137
visionx::PointCloudProcessor::getPointCloudProvider
PointCloudProviderInfo getPointCloudProvider(std::string name, bool waitForProxy=false)
Select an PointCloudProvider.
Definition: PointCloudProcessor.cpp:304
armarx::ManagedIceObject::getName
std::string getName() const
Retrieve name of object.
Definition: ManagedIceObject.cpp:107
armarx::MaskFilterPointCloudProcessor::_blueHi
std::atomic< std::uint8_t > _blueHi
Definition: MaskFilterPointCloudProcessor.h:132
ARMARX_CHECK_EQUAL
#define ARMARX_CHECK_EQUAL(lhs, rhs)
This macro evaluates whether lhs is equal (==) rhs and if it turns out to be false it will throw an E...
Definition: ExpressionException.h:130
armarx::PropertyDefinitionsPtr
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
Definition: forward_declarations.h:34
armarx::RemoteGui::makeFloatSpinBox
detail::FloatSpinBoxBuilder makeFloatSpinBox(std::string const &name)
Definition: FloatWidgets.h:52
armarx::MaskFilterPointCloudProcessor::_maskImageProviderInfo
visionx::ImageProviderInfo _maskImageProviderInfo
Definition: MaskFilterPointCloudProcessor.h:156
armarx::MaskFilterPointCloudProcessor::process
void process() override
Process the vision component.
Definition: MaskFilterPointCloudProcessor.cpp:59
armarx::MaskFilterPointCloudProcessor::_greenLo
std::atomic< std::uint8_t > _greenLo
Definition: MaskFilterPointCloudProcessor.h:133
armarx::ManagedIceObject::usingProxy
bool usingProxy(const std::string &name, const std::string &endpoints="")
Registers a proxy for retrieval after initialization and adds it to the dependency list.
Definition: ManagedIceObject.cpp:151
armarx::ctrlutil::s
double s(double t, double s0, double v0, double a0, double j)
Definition: CtrlUtil.h:33
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
armarx::RemoteGui::detail::FloatMinMaxMixin::steps
Derived & steps(int steps)
Definition: FloatWidgets.h:10
armarx::MaskFilterPointCloudProcessor::_flipY
std::atomic_bool _flipY
Definition: MaskFilterPointCloudProcessor.h:140
armarx::SimplePeriodicTask
Usage:
Definition: ApplicationNetworkStats.h:32
visionx::ImageProcessor::waitForImages
bool waitForImages(int milliseconds=1000)
Wait for new images.
Definition: ImageProcessor.cpp:275
armarx::MaskFilterPointCloudProcessor::_pointCloudProviderName
std::string _pointCloudProviderName
Definition: MaskFilterPointCloudProcessor.h:146