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