ArticulatedObjectVisu.cpp
Go to the documentation of this file.
2 
3 #include <algorithm>
4 
5 #include <SimoxUtility/math/pose.h>
6 
11 
13 
14 #include "Segment.h"
15 
17 {
18 
19  void
21  const std::string& prefix)
22  {
23  defs->optional(
24  p.enabled, prefix + "enabled", "Enable or disable visualization of objects.");
25  defs->optional(p.frequencyHz, prefix + "frequenzyHz", "Frequency of visualization.");
26  }
27 
30  const std::string& providerName,
32  {
33  viz::Layer layer = arviz.layer(providerName);
34 
35  visualizeObjects(layer, objects);
36 
37  return layer;
38  }
39 
40  void
42  viz::Layer& layer,
44  {
45  const auto visualizeObject =
47  {
48  const auto xmlPath = obj.description.xml.serialize();
49 
50  // clang-format off
51  auto robot = viz::Robot(obj.description.name)
52  // .file(xmlPath.package, xmlPath.path)
53  .file(xmlPath.path, xmlPath.path)
54  .joints(obj.config.jointMap)
55  .pose(obj.config.globalPose);
56  // clang-format on
57 
58  robot.useFullModel();
59 
60  layer.add(robot);
61  };
62 
63  std::for_each(objects.begin(), objects.end(), visualizeObject);
64  }
65 
66  void
68  {
69  updateTask = new PeriodicTask<ArticulatedObjectVisu>(
70  this, &ArticulatedObjectVisu::visualizeRun, 1000 / p.frequencyHz);
71 
72  ARMARX_INFO << "ArticulatedObjectVisu: init";
73  updateTask->start();
74  }
75 
76  void
77  ArticulatedObjectVisu::visualizeRun()
78  {
79  // std::scoped_lock lock(visuMutex);
80  ARMARX_INFO << "Update task";
81 
82  // if (not p.enabled)
83  // {
84  // return;
85  // }
86 
87  // TIMING_START(Visu);
88 
89  const auto articulatedObjects = segment.getArticulatedObjects();
90  ARMARX_INFO << "Found " << articulatedObjects.size() << " articulated objects";
91 
92  viz::Layer layer = arviz.layer("ArticulatedObjectInstances");
93 
94  ARMARX_INFO << "visualizing objects";
96 
97  ARMARX_INFO << "Committing objects";
98  arviz.commit({layer});
99 
100  ARMARX_INFO << "Done committing";
101 
102  // TIMING_END_STREAM(Visu, ARMARX_VERBOSE);
103 
104  // if (debugObserver)
105  // {
106  // debugObserver->setDebugChannel(getName(),
107  // {
108  // { "t Visualize [ms]", new Variant(Visu.toMilliSecondsDouble()) },
109  // });
110  // }
111  }
112 
113  // void Visu::RemoteGui::setup(const Visu& visu)
114  // {
115  // using namespace armarx::RemoteGui::Client;
116 
117  // enabled.setValue(visu.enabled);
118  // inGlobalFrame.setValue(visu.inGlobalFrame);
119  // alpha.setRange(0, 1.0);
120  // alpha.setValue(visu.alpha);
121  // alphaByConfidence.setValue(visu.alphaByConfidence);
122  // oobbs.setValue(visu.oobbs);
123  // objectFrames.setValue(visu.objectFrames);
124  // {
125  // float max = 10000;
126  // objectFramesScale.setRange(0, max);
127  // objectFramesScale.setDecimals(2);
128  // objectFramesScale.setSteps(int(10 * max));
129  // objectFramesScale.setValue(visu.objectFramesScale);
130  // }
131 
132  // GridLayout grid;
133  // int row = 0;
134  // grid.add(Label("Enabled"), {row, 0}).add(enabled, {row, 1});
135  // row++;
136  // grid.add(Label("Global Frame"), {row, 0}).add(inGlobalFrame, {row, 1});
137  // row++;
138  // grid.add(Label("Alpha"), {row, 0}).add(alpha, {row, 1}, {1, 3});
139  // row++;
140  // grid.add(Label("Alpha by Confidence"), {row, 0}).add(alphaByConfidence, {row, 1});
141  // row++;
142  // grid.add(Label("OOBB"), {row, 0}).add(oobbs, {row, 1});
143  // row++;
144  // grid.add(Label("Object Frames"), {row, 0}).add(objectFrames, {row, 1});
145  // grid.add(Label("Scale:"), {row, 2}).add(objectFramesScale, {row, 3});
146  // row++;
147 
148  // group.setLabel("Visualization");
149  // group.addChild(grid);
150  // }
151 
152  // void Visu::RemoteGui::update(Visu& visu)
153  // {
154  // visu.enabled = enabled.getValue();
155  // visu.inGlobalFrame = inGlobalFrame.getValue();
156  // visu.alpha = alpha.getValue();
157  // visu.alphaByConfidence = alphaByConfidence.getValue();
158  // visu.oobbs = oobbs.getValue();
159  // visu.objectFrames = objectFrames.getValue();
160  // visu.objectFramesScale = objectFramesScale.getValue();
161  // }
162 
163 } // namespace armarx::armem::server::obj::instance
armarx::viz::Client::commit
CommitResult commit(StagedCommit const &commit)
Definition: Client.cpp:89
armarx::armem::server::obj::instance::ArticulatedObjectVisu::visualizeObjects
void visualizeObjects(viz::Layer &layer, const armarx::armem::articulated_object::ArticulatedObjects &objects) const
Definition: ArticulatedObjectVisu.cpp:41
armarx::armem::robot_state::Robot
Definition: types.h:126
armarx::objpose::util::articulatedObjects
objpose::ObjectPoseSeq articulatedObjects(objpose::ObjectPoseSeq objects)
Definition: util.cpp:82
armarx::armem::server::obj::instance::ArticulatedObjectVisu::defineProperties
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string &prefix="visu.")
Definition: ArticulatedObjectVisu.cpp:20
Segment.h
PeriodicTask.h
armarx::viz::Layer::add
void add(ElementT const &element)
Definition: Layer.h:31
armarx::armem::server::obj::instance
Definition: ArticulatedObjectVisu.cpp:16
armarx::armem::server::obj::instance::ArticulatedObjectVisu::visualizeProvider
viz::Layer visualizeProvider(const std::string &providerName, const armarx::armem::articulated_object::ArticulatedObjects &objects) const
Definition: ArticulatedObjectVisu.cpp:29
armarx::armem::human::Robot
@ Robot
Definition: util.h:17
armarx::armem::server::obj::instance::ArticulatedObjectVisu::init
void init()
Definition: ArticulatedObjectVisu.cpp:67
armarx::armem::server::obj::instance::Segment::getArticulatedObjects
::armarx::armem::articulated_object::ArticulatedObjects getArticulatedObjects()
Definition: Segment.cpp:712
CycleUtil.h
armarx::armem::articulated_object::ArticulatedObjects
armarx::armem::robot_state::Robots ArticulatedObjects
Definition: types.h:141
TimeUtil.h
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:181
IceUtil::Handle< class PropertyDefinitionContainer >
armarx::PeriodicTask
Definition: ArmarXManager.h:70
Logging.h
armarx::viz::Client::layer
Layer layer(std::string const &name) const
Definition: Client.cpp:80
armarx::viz::Layer
Definition: Layer.h:12
ArticulatedObjectVisu.h
ObjectFinder.h