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 
25 
26 #include <pcl/common/transforms.h>
27 #include <pcl/point_types.h>
28 
30 
33 
34 #include <VisionX/interface/components/Calibration.h>
36 
37 static constexpr auto InMaskSuff = "_in_mask";
38 static constexpr auto OutOfMaskSuff = "_out_of_mask";
39 static constexpr auto OutOfMaskImgSuff = "_out_of_image";
40 static constexpr auto MaskVisuSuff = "_mask_visu";
41 static constexpr auto MaskAsCloudSuff = "_mask_as_cloud";
42 
43 #define call_template_function(F) \
44  switch (_pointCloudProviderInfo.pointCloudFormat->type) \
45  { \
46  /*case visionx::PointContentType::ePoints : F<pcl::PointXYZ>(); break; */ \
47  case visionx::PointContentType::eColoredPoints: \
48  F<pcl::PointXYZRGBA>(); \
49  break; \
50  case visionx::PointContentType::eColoredOrientedPoints: \
51  F<pcl::PointXYZRGBNormal>(); \
52  break; \
53  /*case visionx::PointContentType::eLabeledPoints : F<pcl::PointXYZL>(); break; */ \
54  case visionx::PointContentType::eColoredLabeledPoints: \
55  F<pcl::PointXYZRGBL>(); \
56  break; \
57  /*case visionx::PointContentType::eIntensity : F<pcl::PointXYZI>(); break; */ \
58  case visionx::PointContentType::eOrientedPoints: \
59  ARMARX_ERROR << "eOrientedPoints NOT HANDLED IN VISIONX"; /*no break*/ \
60  [[fallthrough]]; \
61  default: \
62  ARMARX_ERROR << "Could not process point cloud, because format '" \
63  << _pointCloudProviderInfo.pointCloudFormat->type << "' is unknown"; \
64  } \
65  do \
66  { \
67  } while (false)
68 
69 using namespace armarx;
70 
71 void
73 {
75 }
76 
77 void
79 {
80  _pointCloudProviderName = getProperty<std::string>("ProviderName");
81  _debugDrawerTopicName = getProperty<std::string>("DebugDrawerTopicName");
82  _remoteGuiName = getProperty<std::string>("RemoteGuiName");
83  _robotStateComponentName = getProperty<std::string>("RobotStateComponentName");
84  _maskImageProviderName = getProperty<std::string>("MaskImageProvider");
85 
88 
92 
93  _redHi = static_cast<std::uint8_t>(getProperty<int>("MaskRedHi"));
94  _redLo = static_cast<std::uint8_t>(getProperty<int>("MaskRedLo"));
95  _greenHi = static_cast<std::uint8_t>(getProperty<int>("MaskGreenHi"));
96  _greenLo = static_cast<std::uint8_t>(getProperty<int>("MaskGreenLo"));
97  _blueHi = static_cast<std::uint8_t>(getProperty<int>("MaskBlueHi"));
98  _blueLo = static_cast<std::uint8_t>(getProperty<int>("MaskBlueLo"));
99 
100  _pointCloudReportFrame = getProperty<std::string>("PointCloudReportFrame");
101 }
102 
103 void
105 {
106  //sync
107  {
108  _robotStateComponent = getProxy<RobotStateComponentInterfacePrx>(_robotStateComponentName);
110  VirtualRobot::RobotIO::eStructure);
111  }
112  //debug visu
113  {
114  _debugDrawerTopic = getTopic<DebugDrawerInterfacePrx>(_debugDrawerTopicName);
115  }
116  //point cloud provider
117  {
118  enableResultPointClouds<pcl::PointXYZRGBA>(getName() + InMaskSuff);
119  enableResultPointClouds<pcl::PointXYZRGBA>(getName() + OutOfMaskSuff);
120  enableResultPointClouds<pcl::PointXYZRGBA>(getName() + OutOfMaskImgSuff);
121  enableResultPointClouds<pcl::PointXYZRGBA>(getName() + MaskVisuSuff);
122  enableResultPointClouds<pcl::PointXYZRGBA>(getName() + MaskAsCloudSuff);
123 
127  getProperty<std::string>("PointCloudProviderReferenceFrameOverride");
128  if (_pointCloudProviderRefFrame.empty())
129  {
131  auto frameprov = visionx::ReferenceFrameInterfacePrx::checkedCast(_pointCloudProvider);
132  if (frameprov)
133  {
134  _pointCloudProviderRefFrame = frameprov->getReferenceFrame();
135  }
136  }
138  }
139  //guess some config params
140  {
141  _maskZRotation = -180;
142  if (_pointCloudProviderRefFrame.size() >= 3 &&
143  (_pointCloudProviderRefFrame.substr(_pointCloudProviderRefFrame.size() - 3) == "Sim" ||
144  _pointCloudProviderRefFrame.substr(_pointCloudProviderRefFrame.size() - 3) == "sim"))
145  {
146  _maskZRotation = -90;
147  }
148  }
149  //image provider
150  {
153  ARMARX_CHECK_EQUAL(_maskImageProviderInfo.imageFormat.type, visionx::ImageType::eRgb);
155  _maskImageProviderImages.clear();
159  for (int i = 0; i < _maskImageProviderInfo.numberImages; ++i)
160  {
161  _maskImageProviderImageOwner.emplace_back(
163  _maskImageProviderImages.emplace_back(
164  static_cast<void*>(_maskImageProviderImageOwner.back()->pixels));
165  }
166 
167 
168  {
170  getProperty<std::string>("MaskImageProviderReferenceFrameOverride");
171  if (_maskImageProviderRefFrame.empty())
172  {
174  auto frameprov =
175  visionx::ReferenceFrameInterfacePrx::checkedCast(_maskImageProvider);
176  if (frameprov)
177  {
178  _maskImageProviderRefFrame = frameprov->getReferenceFrame();
179  }
180  }
182  }
183 
184  const std::string calibProviderName = getProperty<std::string>("CalibrationProviderName");
185  if (calibProviderName.empty())
186  {
187  auto mcalibprov =
188  visionx::MonocularCalibrationCapturingProviderInterfacePrx::checkedCast(
190  auto scalibprov =
191  visionx::StereoCalibrationInterfacePrx::checkedCast(_maskImageProvider);
192  ARMARX_CHECK_EXPRESSION(mcalibprov || scalibprov);
193  if (scalibprov)
194  {
196  scalibprov->getStereoCalibration().calibrationLeft.cameraParam.focalLength.at(
197  0);
199  scalibprov->getStereoCalibration().calibrationLeft.cameraParam.focalLength.at(
200  1);
201  }
202  else if (mcalibprov)
203  {
205  mcalibprov->getCalibration().cameraParam.focalLength.at(0);
207  mcalibprov->getCalibration().cameraParam.focalLength.at(1);
208  }
209  }
210  else
211  {
212  auto calibProvider = getProxy<Ice::ObjectPrx>(calibProviderName);
213  auto mcalibprov =
214  visionx::MonocularCalibrationCapturingProviderInterfacePrx::checkedCast(
215  calibProvider);
216  auto scalibprov = visionx::StereoCalibrationInterfacePrx::checkedCast(calibProvider);
217  ARMARX_CHECK_EXPRESSION(mcalibprov || scalibprov);
218  if (scalibprov)
219  {
221  scalibprov->getStereoCalibration().calibrationLeft.cameraParam.focalLength.at(
222  0);
224  scalibprov->getStereoCalibration().calibrationLeft.cameraParam.focalLength.at(
225  1);
226  }
227  else if (mcalibprov)
228  {
230  mcalibprov->getCalibration().cameraParam.focalLength.at(0);
232  mcalibprov->getCalibration().cameraParam.focalLength.at(1);
233  }
234  }
235  }
236  //gui
237  {
238  _remoteGui = getProxy<RemoteGuiInterfacePrx>(_remoteGuiName);
240 
241  auto makeSlider = [&](std::string name, int val, int min = 0, int max = 255)
242  {
243  rootLayoutBuilder.addChild(
247  .addChild(
248  RemoteGui::makeIntSpinBox(name + "_spin").min(min).max(max).value(val)));
249  };
250  auto makeFSlider = [&](std::string name, int min, int max, float val)
251  {
252  rootLayoutBuilder.addChild(
255  .addChild(RemoteGui::makeFloatSlider(name).min(min).max(max).value(val).steps(
256  static_cast<int>(max - min)))
257  .addChild(
258  RemoteGui::makeFloatSpinBox(name + "_spin").min(min).max(max).value(val)));
259  };
260 
261  // ValueProxy<float> x1Slider = makeSlider ...
262  makeSlider("red lo", _redLo);
263  makeSlider("red hi", _redHi);
264  makeSlider("green lo", _greenLo);
265  makeSlider("green hi", _greenHi);
266  makeSlider("blue lo", _blueLo);
267  makeSlider("blue hi", _blueHi);
268 
269 
270  rootLayoutBuilder.addChild(
272  .addChild(RemoteGui::makeTextLabel("mask match one color range"))
274  .addChild(RemoteGui::makeTextLabel("flip x"))
275  .addChild(RemoteGui::makeCheckBox("flip x").value(_flipX))
276  .addChild(RemoteGui::makeTextLabel("flip y"))
277  .addChild(RemoteGui::makeCheckBox("flip y").value(_flipY)));
278 
279  rootLayoutBuilder.addChild(
281  .addChild(RemoteGui::makeTextLabel("offset x"))
282  .addChild(
283  RemoteGui::makeIntSpinBox("offset x").min(-2000).max(2000).value(_offsetX))
284  .addChild(RemoteGui::makeTextLabel("offset y"))
285  .addChild(
286  RemoteGui::makeIntSpinBox("offset y").min(-2000).max(2000).value(_offsetY)));
287 
289  const int focaladjrange = 10000;
290  makeFSlider(
291  "focal length adjustment", -focaladjrange, focaladjrange, _focalLengthAdjustment);
292  makeFSlider("Mask z rotation", -180, 180, _maskZRotation);
293 
294  rootLayoutBuilder.addChild(RemoteGui::makeHBoxLayout()
295  .addChild(RemoteGui::makeTextLabel("report frame"))
296  .addChild(RemoteGui::makeComboBox("report frame")
297  .options(_localRobot->getRobotNodeNames())
298  .addOptions({"Global", "root"})
299  .value("root")));
300 
301 
302  auto checkboxBuilder = RemoteGui::makeCheckBox("Sync using timestamp");
303  checkboxBuilder.value(_syncRobotWithTimestamp);
304  checkboxBuilder.widget().label = "Sync using timestamp";
305  rootLayoutBuilder.addChild(checkboxBuilder);
306  rootLayoutBuilder.addChild(new RemoteGui::VSpacer());
307 
309  [this]()
310  {
312 
313  _redLo = static_cast<std::uint8_t>(_guiTab.getValue<int>("red lo").get());
314  _guiTab.getValue<int>("red lo_spin").set(_redLo);
315 
316  _redHi = static_cast<std::uint8_t>(_guiTab.getValue<int>("red hi").get());
317  _guiTab.getValue<int>("red hi_spin").set(_redHi);
318 
319  _greenLo = static_cast<std::uint8_t>(_guiTab.getValue<int>("green lo").get());
320  _guiTab.getValue<int>("green lo_spin").set(_greenLo);
321 
322  _greenHi = static_cast<std::uint8_t>(_guiTab.getValue<int>("green hi").get());
323  _guiTab.getValue<int>("green hi_spin").set(_greenHi);
324 
325  _blueLo = static_cast<std::uint8_t>(_guiTab.getValue<int>("blue lo").get());
326  _guiTab.getValue<int>("blue lo_spin").set(_blueLo);
327 
328  _blueHi = static_cast<std::uint8_t>(_guiTab.getValue<int>("blue hi").get());
329  _guiTab.getValue<int>("blue hi_spin").set(_blueHi);
330 
331  _offsetX = _guiTab.getValue<int>("offset x").get();
332  _offsetY = _guiTab.getValue<int>("offset y").get();
333 
334  _maskZRotation = _guiTab.getValue<float>("Mask z rotation").get();
335  _guiTab.getValue<float>("Mask z rotation_spin").set(_maskZRotation);
336 
337  _focalLengthAdjustment = _guiTab.getValue<float>("focal length adjustment").get();
338  _guiTab.getValue<float>("focal length adjustment_spin").set(_focalLengthAdjustment);
339 
340  _flipX = _guiTab.getValue<bool>("flip x").get();
341  _flipY = _guiTab.getValue<bool>("flip y").get();
342  _maskMatchOneRangeInsteadOfAll = _guiTab.getValue<bool>("ormode").get();
343 
345 
346  std::lock_guard<std::mutex> guard{_pointCloudReportFrameMutex};
347  _pointCloudReportFrame = _guiTab.getValue<std::string>("report frame").get();
348  _guiParamUpdated = true;
349  _syncRobotWithTimestamp = _guiTab.getValue<bool>("Sync using timestamp").get();
350  },
351  10);
352 
353  RemoteGui::WidgetPtr rootLayout = rootLayoutBuilder;
354 
355  _remoteGui->createTab(getName(), rootLayout);
357 
358  _guiTask->start();
359  }
360 }
361 
362 void
364 {
365  _guiTask->stop();
366  _guiTask = nullptr;
367  _debugDrawerTopic->removeLayer(getName());
368 }
369 
370 std::pair<float, float>
372 {
375 }
376 
377 std::array<float, 3>
378 MaskFilterPointCloudProcessor::uvz2xyz(int u, int v, float z, float /*fx*/, float /*fy*/) const
379 {
380  const float alpha = -_maskZRotation / 180.0 * M_PI;
381  const float s = std::sin(alpha);
382  const float c = std::cos(alpha);
383 
384  const auto width = _maskImageProviderInfo.imageFormat.dimension.width;
385  const auto height = _maskImageProviderInfo.imageFormat.dimension.height;
386 
387  //middle to 0/0 and add offset
388  const float ushifted = u - +width / 2.f + _offsetX;
389  const float vshifted = v - +height / 2.f + _offsetY;
390 
391  const float rotatedU = c * ushifted + s * vshifted;
392  const float rotatedV = -s * ushifted + c * vshifted;
393 
394  const float x = (_flipX ? 1 : -1) * rotatedU;
395  const float y = (_flipY ? 1 : -1) * rotatedV;
396 
397  return {x, y, z};
398 }
399 
400 std::array<std::int64_t, 2>
401 MaskFilterPointCloudProcessor::xyz2uv(float x, float y, float z, float fx, float fy) const
402 {
403  const float alpha = _maskZRotation / 180.0 * M_PI;
404  const float s = std::sin(alpha);
405  const float c = std::cos(alpha);
406 
407  //transform to uv
408  const float u = (_flipX ? 1 : -1) * (x / z) * fx;
409  const float v = (_flipY ? 1 : -1) * (y / z) * fy;
410 
411  const float rotatedU = c * u + -s * v;
412  const float rotatedV = s * u + c * v;
413 
414  const auto width = _maskImageProviderInfo.imageFormat.dimension.width;
415  const auto height = _maskImageProviderInfo.imageFormat.dimension.height;
416 
417  // 0/0 is currently the middle of the image -> shift it and sub offsets
418  const std::int64_t imgx = static_cast<std::int64_t>(rotatedU + width / 2.f) - _offsetX;
419  const std::int64_t imgy = static_cast<std::int64_t>(rotatedV + height / 2.f) - _offsetY;
420 
421  return {imgx, imgy};
422 }
423 
426 {
429 }
430 
431 template <typename PointType>
432 void
434 {
435  //something new to do?
436  {
438  {
439  _newPointCloud = true;
440  }
442  {
443  _newMaskImage = true;
444  }
445 
447  {
448  return;
449  }
450  _newMaskImage = false;
451  _newPointCloud = false;
452  }
453 
454  std::lock_guard<std::mutex> guard{_cloudMutex};
455 
456  //working data
457  typename pcl::PointCloud<PointType>::Ptr inputCloud(new pcl::PointCloud<PointType>());
458  //get new data
459  {
461 
463 
465 
467  {
469  _localRobot, _robotStateComponent, format->timeProvided);
470  }
471  else
472  {
474  }
475  }
476  Eigen::Matrix4f pclInCamFrame = Eigen::Matrix4f::Identity();
477  Eigen::Matrix4f camInReportFrame = Eigen::Matrix4f::Identity();
478  {
479  {
480  std::lock_guard<std::mutex> guard{_pointCloudReportFrameMutex};
481  if (_pointCloudReportFrame == "root")
482  {
483  _pointCloudReportFrame = _localRobot->getRootNode()->getName();
484  }
485  FramedPose fp{
487  fp.changeFrame(_localRobot, _pointCloudReportFrame);
488  camInReportFrame = fp.toEigen();
489  }
490  {
491  FramedPose fp{
493  fp.changeFrame(_localRobot, _maskImageProviderRefFrame);
494  pclInCamFrame = fp.toEigen();
495  }
496  }
497 
498  {
499  typename pcl::PointCloud<PointType>::Ptr tmpCloud(new pcl::PointCloud<PointType>());
500  pcl::transformPointCloud(*inputCloud, *tmpCloud, pclInCamFrame);
501  tmpCloud.swap(inputCloud);
502  }
503 
504  const auto r = std::minmax(_redLo, _redHi);
505  const auto g = std::minmax(_greenLo, _greenHi);
506  const auto b = std::minmax(_blueLo, _blueHi);
507  const CByteImage& img = *_maskImageProviderImageOwner.front();
508  std::uint64_t pointsInImage = 0;
509  std::uint64_t pointsOutOfImage = 0;
510  _maskedCloud.reset(new pcl::PointCloud<pcl::PointXYZRGBA>());
511  _inputCloud.reset(new pcl::PointCloud<pcl::PointXYZRGBA>());
512  pcl::PointCloud<pcl::PointXYZRGBA>::Ptr unmaskedCloud(new pcl::PointCloud<pcl::PointXYZRGBA>());
513  pcl::PointCloud<pcl::PointXYZRGBA>::Ptr outOfImageCloud(
514  new pcl::PointCloud<pcl::PointXYZRGBA>());
515  pcl::PointCloud<pcl::PointXYZRGBA>::Ptr visuCloud(new pcl::PointCloud<pcl::PointXYZRGBA>());
516 
517  float fx, fy;
518  std::tie(fx, fy) = maskImageProviderFocalLength();
519  for (const auto& point : inputCloud->points)
520  {
521  pcl::PointXYZRGBA p;
522  p.x = point.x;
523  p.y = point.y;
524  p.z = point.z;
525  p.a = 255;
526 
531  "");
532  // if constexpr(
533  // std::is_same_v<PointType, pcl::PointXYZRGBA> ||
534  // std::is_same_v<PointType, pcl::PointXYZRGB> ||
535  // std::is_same_v<PointType, pcl::PointXYZRGBL> ||
536  // std::is_same_v<PointType, pcl::PointXYZRGBNormal>
537  // )
538  {
539  p.r = point.r;
540  p.g = point.g;
541  p.b = point.b;
542  }
543  // else
544  // {
545  // p.r = p.g = p.b = 0;
546  // }
547  const auto uv = xyz2uv(p.x, p.y, p.z, fx, fy);
548  const std::int64_t u = uv.at(0);
549  const std::int64_t v = uv.at(1);
550  if (u < 0 || u >= img.width || v < 0 || v >= img.height)
551  {
552  ++pointsOutOfImage;
553  _inputCloud->push_back(p);
554  p.r = p.b = p.a = 255;
555  p.g = 0;
556  outOfImageCloud->push_back(p);
557  continue; // point out of image
558  }
559  ++pointsInImage;
560 
561  p.r = img.pixels[(u + v * img.width) * 3 + 0];
562  p.g = img.pixels[(u + v * img.width) * 3 + 1];
563  p.b = img.pixels[(u + v * img.width) * 3 + 2];
564 
565  _inputCloud->push_back(p);
566 
567  const bool okR = r.first <= p.r && r.second >= p.r;
568  const bool okG = g.first <= p.g && g.second >= p.g;
569  const bool okB = b.first <= p.b && b.second >= p.b;
570 
571  if (_maskMatchOneRangeInsteadOfAll ? okR || okG || okB : okR && okG && okB)
572  {
573  _maskedCloud->push_back(p);
574  }
575  else
576  {
577  unmaskedCloud->push_back(p);
578  }
579  visuCloud->push_back(p);
580  }
581 
582  {
583  pcl::PointCloud<pcl::PointXYZRGBA>::Ptr tmpCloud(new pcl::PointCloud<pcl::PointXYZRGBA>());
584 
585  pcl::transformPointCloud(*_maskedCloud, *tmpCloud, camInReportFrame);
586  provideResultPointClouds(tmpCloud, getName() + InMaskSuff);
587 
588  pcl::transformPointCloud(*unmaskedCloud, *tmpCloud, camInReportFrame);
589  provideResultPointClouds(tmpCloud, getName() + OutOfMaskSuff);
590 
591  pcl::transformPointCloud(*outOfImageCloud, *tmpCloud, camInReportFrame);
592  provideResultPointClouds(tmpCloud, getName() + OutOfMaskImgSuff);
593 
594  pcl::transformPointCloud(*visuCloud, *tmpCloud, camInReportFrame);
595  provideResultPointClouds(tmpCloud, getName() + MaskVisuSuff);
596 
597  //reuse visuCloud
598  visuCloud->clear();
599  for (int u = 0; u < img.width; ++u)
600  {
601  for (int v = 0; v < img.height; ++v)
602  {
603  //visu the mastk at the image plane
604  auto xyz = uvz2xyz(u, v, (fx + fy) / 2, fx, fy);
605  pcl::PointXYZRGBA p;
606  p.x = xyz.at(0);
607  p.y = xyz.at(1);
608  p.z = xyz.at(2);
609  p.a = 255;
610  p.r = img.pixels[(u + v * img.width) * 3 + 0];
611  p.g = img.pixels[(u + v * img.width) * 3 + 1];
612  p.b = img.pixels[(u + v * img.width) * 3 + 2];
613  visuCloud->push_back(p);
614  }
615  }
616  pcl::transformPointCloud(*visuCloud, *tmpCloud, camInReportFrame);
617  provideResultPointClouds(tmpCloud, getName() + MaskAsCloudSuff);
618  }
619 }
armarx::MaskFilterPointCloudProcessor::_maskImageProvider
visionx::ImageProviderInterfacePrx _maskImageProvider
Definition: MaskFilterPointCloudProcessor.h:187
armarx::RemoteGui::detail::MinMaxMixin::min
Derived & min(Type min)
Definition: Basic.h:96
armarx::MaskFilterPointCloudProcessor::_guiTab
RemoteGui::TabProxy _guiTab
Definition: MaskFilterPointCloudProcessor.h:157
armarx::MaskFilterPointCloudProcessor::_redLo
std::atomic< std::uint8_t > _redLo
Definition: MaskFilterPointCloudProcessor.h:159
RemoteRobot.h
armarx::RemoteGui::makeIntSlider
detail::IntSliderBuilder makeIntSlider(std::string const &name)
Definition: IntegerWidgets.h:46
armarx::RemoteGui::makeVBoxLayout
detail::VBoxLayoutBuilder makeVBoxLayout(std::string const &name="")
Definition: LayoutWidgets.h:286
MaskFilterPointCloudProcessor.h
armarx::MaskFilterPointCloudProcessor::maskImageProviderFocalLength
std::pair< float, float > maskImageProviderFocalLength() const
Definition: MaskFilterPointCloudProcessor.cpp:371
armarx::RemoteGui::makeHBoxLayout
detail::HBoxLayoutBuilder makeHBoxLayout(std::string const &name="")
Definition: LayoutWidgets.h:268
armarx::MaskFilterPointCloudProcessor::_maskMatchOneRangeInsteadOfAll
std::atomic_bool _maskMatchOneRangeInsteadOfAll
Definition: MaskFilterPointCloudProcessor.h:171
visionx::PointCloudProcessor::getPointCloudFormat
MetaPointCloudFormatPtr getPointCloudFormat(std::string providerName)
Definition: PointCloudProcessor.cpp:534
visionx::ImageProviderInfo::numberImages
int numberImages
Number of images.
Definition: ImageProcessor.h:519
armarx::MaskFilterPointCloudProcessor::_inputCloud
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr _inputCloud
Definition: MaskFilterPointCloudProcessor.h:183
armarx::MaskFilterPointCloudProcessor::onInitPointCloudAndImageProcessor
void onInitPointCloudAndImageProcessor() override
Setup the vision component.
Definition: MaskFilterPointCloudProcessor.cpp:78
armarx::MaskFilterPointCloudProcessor::_maskedCloud
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr _maskedCloud
Definition: MaskFilterPointCloudProcessor.h:182
armarx::MaskFilterPointCloudProcessor::_redHi
std::atomic< std::uint8_t > _redHi
Definition: MaskFilterPointCloudProcessor.h:160
armarx::MaskFilterPointCloudProcessor::_localRobot
VirtualRobot::RobotPtr _localRobot
Definition: MaskFilterPointCloudProcessor.h:149
armarx::RemoteGui::detail::VBoxLayoutBuilder
Definition: LayoutWidgets.h:108
armarx::MaskFilterPointCloudProcessor::_maskImageProviderName
std::string _maskImageProviderName
Definition: MaskFilterPointCloudProcessor.h:185
armarx::RemoteRobot::synchronizeLocalClone
static bool synchronizeLocalClone(VirtualRobot::RobotPtr robot, RobotStateComponentInterfacePrx robotStatePrx)
Definition: RemoteRobot.cpp:522
armarx::FramedPose
The FramedPose class.
Definition: FramedPose.h:280
armarx::MaskFilterPointCloudProcessor::_pointCloudReportFrame
std::string _pointCloudReportFrame
Definition: MaskFilterPointCloudProcessor.h:168
armarx::MaskFilterPointCloudProcessor::_maskImageProviderFocalLengthY
float _maskImageProviderFocalLengthY
Definition: MaskFilterPointCloudProcessor.h:192
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:512
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:650
armarx::MaskFilterPointCloudProcessor::_maskImageProviderFocalLengthX
float _maskImageProviderFocalLengthX
Definition: MaskFilterPointCloudProcessor.h:191
armarx::MaskFilterPointCloudProcessor::_focalLengthAdjustment
std::atomic< float > _focalLengthAdjustment
Definition: MaskFilterPointCloudProcessor.h:165
armarx::MaskFilterPointCloudProcessor::_offsetY
std::atomic< std::int64_t > _offsetY
Definition: MaskFilterPointCloudProcessor.h:173
WidgetBuilder.h
armarx::MaskFilterPointCloudProcessor::_robotStateComponentName
std::string _robotStateComponentName
Definition: MaskFilterPointCloudProcessor.h:147
visionx::PointCloudProviderInfo::proxy
PointCloudProviderInterfacePrx proxy
Proxy to PointCloud provider.
Definition: PointCloudProcessor.h:86
visionx::ImageProcessor::getImageProvider
ImageProviderInfo getImageProvider(std::string name, ImageType destinationImageType=eRgb, bool waitForProxy=false)
Select an ImageProvider.
Definition: ImageProcessor.cpp:167
armarx::MaskFilterPointCloudProcessor::_guiTask
SimplePeriodicTask ::pointer_type _guiTask
Definition: MaskFilterPointCloudProcessor.h:156
armarx::max
std::vector< T > max(const std::vector< T > &v1, const std::vector< T > &v2)
Definition: VectorHelpers.h:297
armarx::MaskFilterPointCloudProcessor::_blueLo
std::atomic< std::uint8_t > _blueLo
Definition: MaskFilterPointCloudProcessor.h:161
armarx::MaskFilterPointCloudProcessor::_cloudMutex
std::mutex _cloudMutex
Definition: MaskFilterPointCloudProcessor.h:181
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:46
armarx::MaskFilterPointCloudProcessor::_pointCloudProviderRefFrame
std::string _pointCloudProviderRefFrame
Definition: MaskFilterPointCloudProcessor.h:179
armarx::MaskFilterPointCloudProcessor::_syncRobotWithTimestamp
std::atomic_bool _syncRobotWithTimestamp
Definition: MaskFilterPointCloudProcessor.h:150
armarx::RemoteGui::makeTextLabel
detail::LabelBuilder makeTextLabel(std::string const &text)
Definition: StaticWidgets.h:24
armarx::MaskFilterPointCloudProcessor::_flipX
std::atomic_bool _flipX
Definition: MaskFilterPointCloudProcessor.h:169
armarx::MaskFilterPointCloudProcessor::_greenHi
std::atomic< std::uint8_t > _greenHi
Definition: MaskFilterPointCloudProcessor.h:164
visionx::ImageProviderInfo::imageFormat
ImageFormatInfo imageFormat
Image format struct that contains all necessary image information.
Definition: ImageProcessor.h:509
armarx::MaskFilterPointCloudProcessor::_remoteGuiName
std::string _remoteGuiName
Definition: MaskFilterPointCloudProcessor.h:154
armarx::MaskFilterPointCloudProcessor::_guiParamUpdated
std::atomic< std::int64_t > _guiParamUpdated
Definition: MaskFilterPointCloudProcessor.h:174
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:153
armarx::RemoteGui::TabProxy
Definition: WidgetProxy.h:17
armarx::MaskFilterPointCloudProcessor::_maskImageProviderRefFrame
std::string _maskImageProviderRefFrame
Definition: MaskFilterPointCloudProcessor.h:190
armarx::RemoteGui::detail::ComboBoxBuilder::addOptions
ComboBoxBuilder & addOptions(std::vector< std::string > const &options)
Definition: StringWidgets.h:28
armarx::RemoteGui::detail::MinMaxMixin::max
Derived & max(Type max)
Definition: Basic.h:128
GfxTL::Identity
void Identity(MatrixXX< N, N, T > *a)
Definition: MatrixXX.h:570
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:855
armarx::RemoteGui::TabProxy::receiveUpdates
void receiveUpdates()
Definition: WidgetProxy.h:135
armarx::RemoteGui::makeIntSpinBox
detail::IntSpinBoxBuilder makeIntSpinBox(std::string const &name)
Definition: IntegerWidgets.h:40
visionx::PointCloudProcessor::provideResultPointClouds
void provideResultPointClouds(const PointCloudPtrT &pointClouds, std::string providerName="")
sends result PointClouds for visualization
Definition: PointCloudProcessor.h:288
armarx::RemoteGui::detail::ChildrenMixin::addChild
Derived & addChild(WidgetPtr const &child)
Definition: LayoutWidgets.h:27
M_PI
#define M_PI
Definition: MathTools.h:17
armarx::RemoteGui::makeCheckBox
detail::CheckBoxBuilder makeCheckBox(std::string const &name)
Definition: BoolWidgets.h:27
FramedPose.h
armarx::MaskFilterPointCloudProcessorPropertyDefinitions
Definition: MaskFilterPointCloudProcessor.h:45
armarx::RemoteGui::makeFloatSlider
detail::FloatSliderBuilder makeFloatSlider(std::string const &name)
Definition: FloatWidgets.h:64
visionx::PointCloudProcessor::waitForPointClouds
bool waitForPointClouds(int milliseconds=1000)
Wait for new PointClouds.
Definition: PointCloudProcessor.cpp:458
armarx::MaskFilterPointCloudProcessor::_offsetX
std::atomic< std::int64_t > _offsetX
Definition: MaskFilterPointCloudProcessor.h:172
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:128
armarx::RemoteGui::detail::ValueMixin::value
Derived & value(ValueT const &value)
Definition: Basic.h:84
armarx::MaskFilterPointCloudProcessor::createPropertyDefinitions
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
Definition: MaskFilterPointCloudProcessor.cpp:425
visionx::ImageProcessor::getImages
int getImages(CByteImage **ppImages)
Poll images from provider.
Definition: ImageProcessor.cpp:395
armarx::MaskFilterPointCloudProcessor::_newPointCloud
bool _newPointCloud
Definition: MaskFilterPointCloudProcessor.h:195
visionx::PointCloudProcessor::getPointClouds
int getPointClouds(const PointCloudPtrT &pointCloudPtr)
Poll PointClouds from provider.
Definition: PointCloudProcessor.h:380
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:177
armarx::WidgetDescription::WidgetPtr
::IceInternal::Handle<::armarx::WidgetDescription::Widget > WidgetPtr
Definition: NJointControllerBase.h:67
armarx::RemoteGui::TabProxy::getValue
ValueProxy< T > getValue(std::string const &name)
Definition: WidgetProxy.h:167
armarx::MaskFilterPointCloudProcessor::_robotStateComponent
RobotStateComponentInterfacePrx _robotStateComponent
Definition: MaskFilterPointCloudProcessor.h:148
armarx::MaskFilterPointCloudProcessor::_maskImageProviderImages
std::vector< void * > _maskImageProviderImages
Definition: MaskFilterPointCloudProcessor.h:189
armarx::Component::getConfigIdentifier
std::string getConfigIdentifier()
Retrieve config identifier for this component as set in constructor.
Definition: Component.cpp:79
armarx::ctrlutil::v
double v(double t, double v0, double a0, double j)
Definition: CtrlUtil.h:39
armarx::MaskFilterPointCloudProcessor::_remoteGui
RemoteGuiInterfacePrx _remoteGui
Definition: MaskFilterPointCloudProcessor.h:155
visionx::ImageProviderInfo::proxy
ImageProviderInterfacePrx proxy
proxy to image provider
Definition: ImageProcessor.h:485
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:178
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:181
armarx::MaskFilterPointCloudProcessor::_newMaskImage
bool _newMaskImage
Definition: MaskFilterPointCloudProcessor.h:194
armarx::MaskFilterPointCloudProcessor::xyz2uv
std::array< std::int64_t, 2 > xyz2uv(float x, float y, float z, float fx, float fy) const
Definition: MaskFilterPointCloudProcessor.cpp:401
VAROUT
#define VAROUT(x)
Definition: StringHelpers.h:198
armarx::ManagedIceObject::offeringTopic
void offeringTopic(const std::string &name)
Registers a topic for retrival after initialization.
Definition: ManagedIceObject.cpp:300
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:327
armarx::MaskFilterPointCloudProcessor::_maskImageProviderImageOwner
std::vector< visionx::CByteImageUPtr > _maskImageProviderImageOwner
Definition: MaskFilterPointCloudProcessor.h:188
call_template_function
#define call_template_function(F)
Definition: MaskFilterPointCloudProcessor.cpp:43
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:566
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:279
ImageUtil.h
armarx::MaskFilterPointCloudProcessor::uvz2xyz
std::array< float, 3 > uvz2xyz(int u, int v, float z, float fx, float fy) const
Definition: MaskFilterPointCloudProcessor.cpp:378
armarx::MaskFilterPointCloudProcessor::_maskZRotation
std::atomic< float > _maskZRotation
Definition: MaskFilterPointCloudProcessor.h:166
armarx::MaskFilterPointCloudProcessor::onDisconnectPointCloudAndImageProcessor
void onDisconnectPointCloudAndImageProcessor() override
Implement this method in the PointCloudAndImageProcessor in order to execute parts when the component...
Definition: MaskFilterPointCloudProcessor.cpp:363
armarx::RemoteGui::TabProxy::sendUpdates
void sendUpdates()
Definition: WidgetProxy.h:151
armarx::RemoteGui::makeComboBox
detail::ComboBoxBuilder makeComboBox(std::string const &name)
Definition: StringWidgets.h:61
armarx::MaskFilterPointCloudProcessor::onConnectPointCloudAndImageProcessor
void onConnectPointCloudAndImageProcessor() override
Implement this method in your PointCloudAndImageProcessor in order execute parts when the component i...
Definition: MaskFilterPointCloudProcessor.cpp:104
armarx::MaskFilterPointCloudProcessor::_debugDrawerTopicName
std::string _debugDrawerTopicName
Definition: MaskFilterPointCloudProcessor.h:152
armarx::MaskFilterPointCloudProcessor::_pointCloudReportFrameMutex
std::mutex _pointCloudReportFrameMutex
Definition: MaskFilterPointCloudProcessor.h:167
visionx::PointCloudProcessor::getPointCloudProvider
PointCloudProviderInfo getPointCloudProvider(std::string name, bool waitForProxy=false)
Select an PointCloudProvider.
Definition: PointCloudProcessor.cpp:325
armarx::ManagedIceObject::getName
std::string getName() const
Retrieve name of object.
Definition: ManagedIceObject.cpp:108
armarx::MaskFilterPointCloudProcessor::_blueHi
std::atomic< std::uint8_t > _blueHi
Definition: MaskFilterPointCloudProcessor.h:162
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:35
armarx::RemoteGui::makeFloatSpinBox
detail::FloatSpinBoxBuilder makeFloatSpinBox(std::string const &name)
Definition: FloatWidgets.h:58
armarx::MaskFilterPointCloudProcessor::_maskImageProviderInfo
visionx::ImageProviderInfo _maskImageProviderInfo
Definition: MaskFilterPointCloudProcessor.h:186
armarx::MaskFilterPointCloudProcessor::process
void process() override
Process the vision component.
Definition: MaskFilterPointCloudProcessor.cpp:72
armarx::MaskFilterPointCloudProcessor::_greenLo
std::atomic< std::uint8_t > _greenLo
Definition: MaskFilterPointCloudProcessor.h:163
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:154
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:27
armarx::RemoteGui::detail::FloatMinMaxMixin::steps
Derived & steps(int steps)
Definition: FloatWidgets.h:11
armarx::MaskFilterPointCloudProcessor::_flipY
std::atomic_bool _flipY
Definition: MaskFilterPointCloudProcessor.h:170
armarx::SimplePeriodicTask
Usage:
Definition: ApplicationNetworkStats.h:32
visionx::ImageProcessor::waitForImages
bool waitForImages(int milliseconds=1000)
Wait for new images.
Definition: ImageProcessor.cpp:309
armarx::MaskFilterPointCloudProcessor::_pointCloudProviderName
std::string _pointCloudProviderName
Definition: MaskFilterPointCloudProcessor.h:176