Visu.cpp
Go to the documentation of this file.
1 #include "Visu.h"
2 
3 #include <SimoxUtility/math/pose.h>
4 #include <SimoxUtility/math/rescale.h>
5 
9 
13 
14 
16 {
17 
18  void Visu::defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix)
19  {
20  defs->optional(enabled, prefix + "enabled",
21  "Enable or disable visualization of objects.");
22  defs->optional(frequencyHz, prefix + "frequenzyHz",
23  "Frequency of visualization.");
24  defs->optional(inGlobalFrame, prefix + "inGlobalFrame",
25  "If true, show global poses. If false, show poses in robot frame.");
26  defs->optional(alpha, prefix + "alpha",
27  "Alpha of objects (1 = solid, 0 = transparent).");
28  defs->optional(alphaByConfidence, prefix + "alphaByConfidence",
29  "If true, use the pose confidence as alpha (if < 1.0).");
30  defs->optional(oobbs, prefix + "oobbs",
31  "Enable showing oriented bounding boxes.");
32 
33  defs->optional(objectFrames, prefix + "objectFrames",
34  "Enable showing object frames.");
35  defs->optional(objectFramesScale, prefix + "objectFramesScale",
36  "Scaling of object frames.");
37 
38  gaussians.defineProperties(defs, prefix + "gaussians.");
39 
40  defs->optional(useArticulatedModels, prefix + "useArticulatedModels",
41  "Prefer articulated object models if available.");
42 
43  linearPredictions.defineProperties(defs, prefix + "predictions.linear.");
44  }
45 
46 
47  void Visu::Gaussians::defineProperties(PropertyDefinitionsPtr defs, const std::string& prefix)
48  {
49  defs->optional(position, prefix + "position",
50  "Enable showing pose gaussians (position part).");
51  defs->optional(positionScale, prefix + "positionScale",
52  "Scaling of pose gaussians (position part).");
53 
54  defs->optional(orientation, prefix + "position",
55  "Enable showing pose gaussians (orientation part).");
56  defs->optional(orientationScale, prefix + "positionScale",
57  "Scaling of pose gaussians (orientation part).");
58  defs->optional(orientationDisplaced, prefix + "positionDisplaced",
59  "Displace center orientation (co)variance circle arrows along their rotation axis.");
60  }
61 
62 
63  std::vector<viz::Layer>
65  const std::map<std::string, objpose::ObjectPoseSeq>& objectPoses,
66  const std::map<std::string, std::vector<std::map<DateTime, objpose::ObjectPose>>>&
67  poseHistories,
68  const ObjectFinder& objectFinder) const
69  {
70  std::vector<viz::Layer> layers;
71  for (const auto& [name, poses] : objectPoses)
72  {
73  if(name.empty())
74  {
75  continue;
76  }
77 
78  auto poseHistoryMap = poseHistories.find(name);
79  if (poseHistoryMap != poseHistories.end())
80  {
81  layers.push_back(visualizeProvider(name, poses, poseHistoryMap->second, objectFinder));
82  }
83  else
84  {
85  layers.push_back(visualizeProvider(name, poses, {}, objectFinder));
86  }
87  }
88  return layers;
89  }
90 
91 
92  std::vector<viz::Layer>
94  const std::vector<std::map<DateTime, objpose::ObjectPose>>& poseHistories,
95  const ObjectFinder& objectFinder) const
96  {
97  std::map<std::string, viz::Layer> stage;
98  for (size_t i = 0; i < objectPoses.size(); ++i)
99  {
100  if(objectPoses.at(i).providerName.empty())
101  {
102  ARMARX_INFO << "Object pose provider not set!";
103  continue;
104  }
105 
106  visualizeObjectPose(getLayer(objectPoses.at(i).providerName, stage),
107  objectPoses.at(i),
108  poseHistories.at(i),
109  objectFinder);
110  }
111  return simox::alg::get_values(stage);
112  }
113 
114 
115  std::vector<viz::Layer>
117  const objpose::ObjectPoseMap& objectPoses,
118  const std::map<ObjectID, std::map<DateTime, objpose::ObjectPose>>& poseHistories,
119  const ObjectFinder& objectFinder) const
120  {
121  std::map<std::string, viz::Layer> stage;
122  for (const auto& [id, pose] : objectPoses)
123  {
124 
125  auto poseHistoryMap = poseHistories.find(id);
126  if (poseHistoryMap != poseHistories.end())
127  {
129  getLayer(pose.providerName, stage), pose, poseHistoryMap->second, objectFinder);
130  }
131  else
132  {
133  visualizeObjectPose(getLayer(pose.providerName, stage), pose, {}, objectFinder);
134  }
135  }
136  return simox::alg::get_values(stage);
137  }
138 
139 
140  viz::Layer& Visu::getLayer(
141  const std::string& providerName,
142  std::map<std::string, viz::Layer>& stage) const
143  {
144  auto it = stage.find(providerName);
145  if (it == stage.end())
146  {
147  it = stage.emplace(providerName, arviz.layer(providerName)).first;
148  }
149  return it->second;
150  }
151 
152 
153  viz::Layer
155  const std::string& providerName,
156  const objpose::ObjectPoseSeq& objectPoses,
157  const std::vector<std::map<DateTime, objpose::ObjectPose>>& poseHistories,
158  const ObjectFinder& objectFinder) const
159  {
160  viz::Layer layer = arviz.layer(providerName);
161  for (size_t i = 0; i < poseHistories.size(); ++i)
162  {
163  visualizeObjectPose(layer, objectPoses.at(i), poseHistories.at(i), objectFinder);
164  }
165  return layer;
166  }
167 
169  viz::Layer& layer,
170  const objpose::ObjectPose& objectPose,
171  const std::map<DateTime, objpose::ObjectPose>& poseHistory,
172  const ObjectFinder& objectFinder) const
173  {
174  const bool show = objectPose.confidence >= minConfidence;
175  if (not show)
176  {
177  return;
178  }
179  const armarx::ObjectID id = objectPose.objectID;
180  const std::string key = id.str();
181 
182  const Eigen::Matrix4f pose = inGlobalFrame ? objectPose.objectPoseGlobal : objectPose.objectPoseRobot;
183  std::optional<ObjectInfo> objectInfo = objectFinder.findObject(id);
184 
185  auto makeObject = [&objectInfo, &id](const std::string& key)
186  {
187  viz::Object object(key);
188  if (objectInfo)
189  {
190  object.file(objectInfo->package(), objectInfo->simoxXML().relativePath);
191  }
192  else
193  {
194  object.fileByObjectFinder(id);
195  }
196  return object;
197  };
198 
199  bool hasObject = false;
200  {
201  bool done = false;
202  if (useArticulatedModels and objectInfo)
203  {
204  if (std::optional<PackageFileLocation> model = objectInfo->getArticulatedModel())
205  {
206  viz::Robot robot(key);
207  robot.pose(pose);
208  robot.file(model->package, model->package + "/" + model->relativePath);
209  robot.joints(objectPose.objectJointValues);
210 
211  layer.add(robot);
212  done = true;
213  }
214  }
215  if (not done)
216  {
217  viz::Object object = makeObject(key).pose(pose);
218  if (alphaByConfidence && objectPose.confidence < 1.0f)
219  {
220  object.overrideColor(simox::Color::white().with_alpha(objectPose.confidence));
221  }
222  else if (alpha < 1)
223  {
224  object.overrideColor(simox::Color::white().with_alpha(alpha));
225  }
226  layer.add(object);
227  hasObject = true;
228  }
229  }
230 
231  if (oobbs and objectPose.localOOBB)
232  {
233  const simox::OrientedBoxf oobb = inGlobalFrame
234  ? objectPose.oobbGlobal().value()
235  : objectPose.oobbRobot().value();
236  layer.add(viz::Box(key + " OOBB").set(oobb).color(simox::Color::lime(255, 64)));
237  }
238  if (objectFrames)
239  {
240  layer.add(viz::Pose(key + " Pose").pose(pose).scale(objectFramesScale));
241  }
242  if (gaussians.showAny()
243  and (inGlobalFrame ? objectPose.objectPoseGlobalGaussian.has_value() : objectPose.objectPoseRobotGaussian.has_value()))
244  {
245  gaussians.draw(layer, objectPose, inGlobalFrame);
246  }
247  if (linearPredictions.showAny() and hasObject)
248  {
249  linearPredictions.draw(layer, makeObject, objectPose, poseHistory, inGlobalFrame);
250  }
251  }
252 
254  {
255  return position or orientation;
256  }
257 
259  viz::Layer& layer,
260  const objpose::ObjectPose& objectPose,
261  bool inGlobalFrame) const
262  {
263  const std::string key = objectPose.objectID.str();
264 
265  const objpose::PoseManifoldGaussian& gaussian =
267  ? objectPose.objectPoseGlobalGaussian.value()
268  : objectPose.objectPoseRobotGaussian.value()
269  ;
271 
272  if (position)
273  {
274  layer.add(viz::Ellipsoid(key + " Gaussian (Translation)")
275  .position(ellipsoid.center)
276  .orientation(ellipsoid.orientation)
277  .axisLengths(positionScale * ellipsoid.size)
278  .color(viz::Color::azure(255, 32))
279  );
280 
281  if (false) // Arrows can be visualized for debugging.
282  {
283  for (int i = 0; i < 3; ++i)
284  {
285  Eigen::Vector3i color = Eigen::Vector3i::Zero();
286  color(i) = 255;
287 
288  layer.add(viz::Arrow(key + " Gaussian (Translation)" + std::to_string(i))
289  .fromTo(ellipsoid.center,
290  ellipsoid.center + positionScale * ellipsoid.size(i)
291  * ellipsoid.orientation.col(i)
292  )
293  .width(5)
294  .color(simox::Color(color))
295  );
296  }
297  }
298  }
299  if (orientation)
300  {
301  const float pi = static_cast<float>(M_PI);
302  for (int i = 0; i < 3; ++i)
303  {
304  const bool global = true;
305  Eigen::AngleAxisf rot = gaussian.getScaledRotationAxis(i, global);
306 
307  Eigen::Vector4i color = Eigen::Vector4i::Zero();
308  color(i) = 255;
309  color(3) = 64;
310 
311  layer.add(viz::ArrowCircle(key + " Gaussian (Orientation) " + std::to_string(i))
312  .position(orientationDisplaced
313  ? ellipsoid.center + orientationScale * rot.axis()
314  : ellipsoid.center)
315  .normal(rot.axis())
316  .radius(orientationScale)
317  .completion(simox::math::rescale(rot.angle(), 0.f, pi * 2, 0.f, 1.f))
318  .width(simox::math::rescale(rot.angle(), 0.f, pi * 2, 2.f, 7.f))
319  .color(simox::Color(color))
320  );
321  }
322  }
323  }
324 
325 
326  void Visu::RemoteGui::setup(const Visu& visu)
327  {
328  using namespace armarx::RemoteGui::Client;
329 
330  enabled.setValue(visu.enabled);
331  inGlobalFrame.setValue(visu.inGlobalFrame);
332  alpha.setRange(0, 1.0);
333  alpha.setValue(visu.alpha);
334  alphaByConfidence.setValue(visu.alphaByConfidence);
335  oobbs.setValue(visu.oobbs);
336 
337  auto initScale = [](FloatSpinBox& scale, float value, float stepResolution)
338  {
339  float max = 10000;
340  scale.setRange(0, max);
341  scale.setDecimals(2);
342  scale.setSteps(int(stepResolution * max));
343  scale.setValue(value);
344  };
345  objectFrames.setValue(visu.objectFrames);
346  initScale(objectFramesScale, visu.objectFramesScale, 10);
347 
348  gaussians.position.setValue(visu.gaussians.position);
349  initScale(gaussians.positionScale, visu.gaussians.positionScale, 10);
350 
354 
356 
357 
358  GridLayout grid;
359  int row = 0;
360  grid.add(Label("Enabled"), {row, 0}).add(enabled, {row, 1});
361  row++;
362  grid.add(Label("Global Frame"), {row, 0}).add(inGlobalFrame, {row, 1});
363  row++;
364  grid.add(Label("Alpha"), {row, 0}).add(alpha, {row, 1}, {1, 3});
365  row++;
366  grid.add(Label("Alpha by Confidence"), {row, 0}).add(alphaByConfidence, {row, 1});
367  row++;
368  grid.add(Label("OOBB"), {row, 0}).add(oobbs, {row, 1});
369  row++;
370 
371  grid.add(Label("Object Frames"), {row, 0}).add(objectFrames, {row, 1});
372  grid.add(Label("Scale:"), {row, 2}).add(objectFramesScale, {row, 3});
373  row++;
374 
375  gaussians.setup(visu);
376  grid.add(gaussians.group, {row, 0}, {1, 4});
377  row++;
378 
379  grid.add(Label("Use Articulated Models"), {row, 0}).add(useArticulatedModels, {row, 1});
380  row++;
381 
383  grid.add(linearPredictions.group, {row, 0}, {1, 4});
384  row++;
385 
386  group = GroupBox();
387  group.setLabel("Visualization");
388  group.addChild(grid);
389  }
390 
391 
393  {
394  using namespace armarx::RemoteGui::Client;
395 
396  GridLayout grid;
397  int row = 0;
398 
399  grid.add(Label("Position"), {row, 0}).add(position, {row, 1});
400  grid.add(Label("Scale:"), {row, 2}).add(positionScale, {row, 3});
401  row++;
402 
403  grid.add(Label("Orientation"), {row, 0}).add(orientation, {row, 1});
404  grid.add(Label("Scale:"), {row, 2}).add(orientationScale, {row, 3});
405  grid.add(Label("Displaced"), {row, 4}).add(orientationDisplaced, {row, 5});
406  row++;
407 
408  group = GroupBox();
409  group.setLabel("Pose Gaussians");
410  group.addChild(grid);
411  }
412 
413 
415  {
416  data.position = position.getValue();
417  data.positionScale = positionScale.getValue();
418 
419  data.orientation = orientation.getValue();
420  data.orientationScale = orientationScale.getValue();
421  data.orientationDisplaced = orientationDisplaced.getValue();
422  }
423 
424 
426  {
427  visu.enabled = enabled.getValue();
428  visu.inGlobalFrame = inGlobalFrame.getValue();
429  visu.alpha = alpha.getValue();
430  visu.alphaByConfidence = alphaByConfidence.getValue();
431  visu.oobbs = oobbs.getValue();
432 
433  visu.objectFrames = objectFrames.getValue();
434  visu.objectFramesScale = objectFramesScale.getValue();
435 
436  gaussians.update(visu.gaussians);
437 
438  visu.useArticulatedModels = useArticulatedModels.getValue();
439 
441  }
442 
443 }
armarx::armem::server::obj::instance::Visu::Gaussians::draw
void draw(viz::Layer &layer, const objpose::ObjectPose &objectPose, bool inGlobalFrame) const
Definition: Visu.cpp:258
armarx::armem::server::obj::instance::Visu::useArticulatedModels
bool useArticulatedModels
Prefer articulated models if available.
Definition: Visu.h:105
armarx::armem::server::obj::instance::visu::LinearPredictions::showAny
bool showAny() const
Definition: LinearPredictionsVisu.cpp:36
armarx::viz::ArrowCircle::radius
ArrowCircle & radius(float r)
Definition: Elements.h:235
ice_conversions.h
armarx::ObjectID
A known object ID of the form "Dataset/ClassName" or "Dataset/ClassName/InstanceName".
Definition: ObjectID.h:11
armarx::objpose::PoseManifoldGaussian::Ellipsoid::orientation
Eigen::Matrix3f orientation
Definition: PoseManifoldGaussian.h:65
predictions.h
armarx::armem::server::obj::instance::Visu::enabled
bool enabled
Definition: Visu.h:75
armarx::objpose::ObjectPoseSeq
std::vector< ObjectPose > ObjectPoseSeq
Definition: forward_declarations.h:20
armarx::armem::server::obj::instance::Visu::RemoteGui::Gaussians::update
void update(Visu::Gaussians &data)
Definition: Visu.cpp:414
armarx::armem::server::obj::instance::Visu::RemoteGui::Gaussians::setup
void setup(const Visu &data)
Definition: Visu.cpp:392
armarx::viz::Robot::file
Robot & file(std::string const &project, std::string const &filename)
Definition: Robot.h:14
armarx::RemoteGui::Client::GridLayout::add
GridLayout & add(Widget const &child, Pos pos, Span span=Span{1, 1})
Definition: Widgets.cpp:412
armarx::armem::server::obj::instance::Visu::visualizeObjectPose
void visualizeObjectPose(viz::Layer &layer, const objpose::ObjectPose &objectPose, const std::map< DateTime, objpose::ObjectPose > &poseHistory, const ObjectFinder &objectFinder) const
Definition: Visu.cpp:168
armarx::objpose::PoseManifoldGaussian::Ellipsoid::size
Eigen::Vector3f size
Definition: PoseManifoldGaussian.h:66
armarx::RemoteGui::Client::FloatSpinBox::setValue
void setValue(float newValue)
Definition: Widgets.cpp:337
armarx::objpose::ObjectPose::localOOBB
std::optional< simox::OrientedBoxf > localOOBB
Object bounding box in object's local coordinate frame.
Definition: ObjectPose.h:104
armarx::armem::server::obj::instance::visu::LinearPredictions::draw
void draw(viz::Layer &layer, std::function< viz::Object(const std::string &key)> makeObjectFn, const objpose::ObjectPose &objectPose, const std::map< DateTime, objpose::ObjectPose > &poseHistory, bool inGlobalFrame) const
Definition: LinearPredictionsVisu.cpp:41
armarx::objpose::PoseManifoldGaussian
A "gaussian" distribution in pose space (i.e.
Definition: PoseManifoldGaussian.h:25
armarx::max
std::vector< T > max(const std::vector< T > &v1, const std::vector< T > &v2)
Definition: VectorHelpers.h:267
armarx::objpose::ObjectPose::oobbRobot
std::optional< simox::OrientedBoxf > oobbRobot() const
Get the OOBB in the robot frame (according to objectPoseRobot).
Definition: ObjectPose.cpp:221
armarx::RemoteGui::Client::FloatSpinBox::setRange
void setRange(float min, float max)
Definition: Widgets.cpp:313
armarx::viz::Arrow
Definition: Elements.h:198
armarx::armem::server::obj::instance::Visu::frequencyHz
float frequencyHz
Definition: Visu.h:76
ice_conversions.h
armarx::objpose::PoseManifoldGaussian::getScaledRotationAxis
Eigen::AngleAxisf getScaledRotationAxis(int index, bool global=false) const
Get a column of the pure orientational covariance matrix as axis-angle rotation.
Definition: PoseManifoldGaussian.cpp:46
armarx::viz::Layer::add
void add(ElementT const &element)
Definition: Layer.h:29
armarx::viz::ArrowCircle::normal
ArrowCircle & normal(Eigen::Vector3f dir)
Definition: Elements.cpp:103
pi
#define pi
Definition: Transition.cpp:37
armarx::armem::server::obj::instance::Visu::linearPredictions
visu::LinearPredictions linearPredictions
Linear predictions for objects.
Definition: Visu.h:108
armarx::armem::server::obj::instance
Definition: ArticulatedObjectVisu.cpp:16
visionx::voxelgrid::Label
uint32_t Label
Type of an object label.
Definition: types.h:7
armarx::objpose::ObjectPose::oobbGlobal
std::optional< simox::OrientedBoxf > oobbGlobal() const
Get the OOBB in the global frame (according to objectPoseGlobal).
Definition: ObjectPose.cpp:230
armarx::armem::server::obj::instance::Visu::Gaussians
Definition: Visu.h:87
armarx::RemoteGui::Client::GridLayout
Definition: Widgets.h:186
armarx::viz::Robot::joints
Robot & joints(std::map< std::string, float > const &values)
Definition: Robot.h:57
armarx::ObjectFinder
Used to find objects in the ArmarX objects repository [1] (formerly [2]).
Definition: ObjectFinder.h:23
armarx::objpose::ObjectPose::objectPoseRobotGaussian
std::optional< PoseManifoldGaussian > objectPoseRobotGaussian
... and with uncertainty.
Definition: ObjectPose.h:70
armarx::objpose::PoseManifoldGaussian::getPositionEllipsoid
Ellipsoid getPositionEllipsoid() const
Get the parameters of a 3D ellipsoid illustrating this gaussian.
Definition: PoseManifoldGaussian.cpp:11
Color
uint32_t Color
RGBA color.
Definition: color.h:8
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:926
armarx::viz::ArrowCircle::width
ArrowCircle & width(float w)
Definition: Elements.h:242
armarx::armem::server::obj::instance::Visu::objectFramesScale
float objectFramesScale
Definition: Visu.h:85
armarx::viz::Object
Definition: Elements.h:321
armarx::armem::server::obj::instance::Visu::minConfidence
float minConfidence
Definition: Visu.h:79
armarx::armem::server::obj::instance::Visu::visualizeCommit
std::vector< viz::Layer > visualizeCommit(const std::map< std::string, objpose::ObjectPoseSeq > &objectPoses, const std::map< std::string, std::vector< std::map< DateTime, objpose::ObjectPose >>> &poseHistories, const ObjectFinder &objectFinder) const
Definition: Visu.cpp:64
armarx::armem::server::obj::instance::Visu::defineProperties
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string &prefix="visu.")
Definition: Visu.cpp:18
M_PI
#define M_PI
Definition: MathTools.h:17
armarx::armem::server::obj::instance::visu::LinearPredictions::defineProperties
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string &prefix)
Definition: LinearPredictionsVisu.cpp:18
armarx::armem::server::obj::instance::Visu
Models decay of object localizations by decreasing the confidence the longer the object was not local...
Definition: Visu.h:26
armarx::armem::server::obj::instance::Visu::RemoteGui::setup
void setup(const Visu &visu)
Definition: Visu.cpp:326
armarx::viz::Arrow::width
Arrow & width(float w)
Definition: Elements.h:211
armarx::armem::server::obj::instance::Visu::alpha
float alpha
Definition: Visu.h:80
armarx::objpose::PoseManifoldGaussian::Ellipsoid
Definition: PoseManifoldGaussian.h:62
armarx::armem::server::obj::instance::Visu::Gaussians::showAny
bool showAny() const
Definition: Visu.cpp:253
data
uint8_t data[1]
Definition: EtherCATFrame.h:68
armarx::viz::ElementOps::orientation
DerivedT & orientation(Eigen::Quaternionf const &ori)
Definition: ElementOps.h:140
armarx::armem::server::obj::instance::Visu::Gaussians::orientation
bool orientation
Definition: Visu.h:91
armarx::RemoteGui::Client::GroupBox
Definition: Widgets.h:193
armarx::viz::Ellipsoid
Definition: Elements.h:147
armarx::viz::Ellipsoid::axisLengths
Ellipsoid & axisLengths(const Eigen::Vector3f &axisLengths)
Definition: Elements.h:157
armarx::viz::Box
Definition: Elements.h:51
armarx::viz::Pose
Definition: Elements.h:179
armarx::viz::Robot
Definition: Robot.h:9
armarx::armem::server::obj::instance::Visu::Gaussians::orientationScale
float orientationScale
Definition: Visu.h:92
armarx::RemoteGui::Client::FloatSpinBox::setDecimals
void setDecimals(int decimals)
Definition: Widgets.cpp:326
armarx::RemoteGui::Client::FloatSpinBox::setSteps
void setSteps(int steps)
Definition: Widgets.cpp:320
armarx::viz::Object::overrideColor
Object & overrideColor(Color c)
Definition: Elements.h:369
armarx::to_string
const std::string & to_string(const std::string &s)
Definition: StringHelpers.h:40
armarx::armem::server::obj::instance::Visu::arviz
viz::Client arviz
Definition: Visu.h:73
armarx::armem::server::obj::instance::Visu::alphaByConfidence
bool alphaByConfidence
Definition: Visu.h:81
armarx::armem::server::obj::instance::Visu::RemoteGui::update
void update(Visu &visu)
Definition: Visu.cpp:425
armarx::objpose::ObjectPose::objectID
armarx::ObjectID objectID
The object ID, i.e. dataset, class name and instance name.
Definition: ObjectPose.h:58
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:601
armarx::armem::server::obj::instance::Visu::Gaussians::orientationDisplaced
bool orientationDisplaced
Definition: Visu.h:93
TimeUtil.h
armarx::objpose::ObjectPose::objectPoseGlobal
Eigen::Matrix4f objectPoseGlobal
The object pose in the global frame.
Definition: ObjectPose.h:73
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:174
armarx::viz::ElementOps::pose
DerivedT & pose(Eigen::Matrix4f const &pose)
Definition: ElementOps.h:159
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::armem::server::obj::instance::Visu::gaussians
Gaussians gaussians
Definition: Visu.h:102
armarx::viz::ElementOps::color
DerivedT & color(Color color)
Definition: ElementOps.h:195
armarx::armem::server::obj::instance::Visu::objectFrames
bool objectFrames
Definition: Visu.h:84
armarx::ObjectFinder::findObject
std::optional< ObjectInfo > findObject(const std::string &dataset, const std::string &name) const
Definition: ObjectFinder.cpp:65
armarx::viz::ArrowCircle::completion
ArrowCircle & completion(float c)
Definition: Elements.h:249
armarx::armem::server::obj::instance::Visu::oobbs
bool oobbs
Definition: Visu.h:82
Visu.h
armarx::objpose::PoseManifoldGaussian::Ellipsoid::center
Eigen::Vector3f center
Definition: PoseManifoldGaussian.h:64
ice_conversions_templates.h
armarx::armem::server::obj::instance::Visu::Gaussians::defineProperties
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string &prefix)
Definition: Visu.cpp:47
armarx::armem::server::obj::instance::Visu::Gaussians::position
bool position
Definition: Visu.h:89
armarx::armem::server::obj::instance::Visu::inGlobalFrame
bool inGlobalFrame
Definition: Visu.h:78
armarx::objpose::ObjectPose::objectPoseRobot
Eigen::Matrix4f objectPoseRobot
The object pose in the robot root frame.
Definition: ObjectPose.h:68
armarx::armem::server::obj::instance::Visu::visualizeProvider
viz::Layer visualizeProvider(const std::string &providerName, const objpose::ObjectPoseSeq &objectPoses, const std::vector< std::map< DateTime, objpose::ObjectPose >> &poseHistories, const ObjectFinder &objectFinder) const
Definition: Visu.cpp:154
armarx::viz::Client::layer
Layer layer(std::string const &name) const
Definition: Client.cpp:73
armarx::viz::Color::azure
static Color azure(int az=255, int a=255)
2 Blue + 1 Green
Definition: Color.h:143
armarx::RemoteGui::Client
Definition: EigenWidgets.cpp:8
armarx::viz::Layer
Definition: Layer.h:12
armarx::objpose::ObjectPose::objectJointValues
std::map< std::string, float > objectJointValues
The object's joint values if it is articulated.
Definition: ObjectPose.h:85
armarx::objpose::ObjectPose::confidence
float confidence
Confidence in [0, 1] (1 = full, 0 = none).
Definition: ObjectPose.h:98
armarx::RemoteGui::Client::FloatSpinBox
Definition: Widgets.h:93
armarx::armem::server::obj::instance::Visu::Gaussians::positionScale
float positionScale
Definition: Visu.h:90
armarx::objpose::ObjectPose
An object pose as stored by the ObjectPoseStorage.
Definition: ObjectPose.h:36
armarx::ObjectID::str
std::string str() const
Return "dataset/className" or "dataset/className/instanceName".
Definition: ObjectID.cpp:55
ObjectFinder.h
armarx::objpose::ObjectPose::objectPoseGlobalGaussian
std::optional< PoseManifoldGaussian > objectPoseGlobalGaussian
... and with uncertainty.
Definition: ObjectPose.h:75
armarx::objpose::ObjectPoseMap
std::map< ObjectID, ObjectPose > ObjectPoseMap
Definition: forward_declarations.h:21
armarx::viz::ArrowCircle
Definition: Elements.h:229