Visu.h
Go to the documentation of this file.
1 #pragma once
2 
3 
6 
8 
10 #include <RobotAPI/interface/objectpose/ObjectPoseStorageInterface.h>
13 
14 namespace armarx
15 {
16  class ObjectFinder;
17 }
18 
20 {
21 
22  /**
23  * @brief Models decay of object localizations by decreasing the confidence
24  * the longer the object was not localized.
25  */
26  class Visu : public armarx::Logging
27  {
28  public:
30  const std::string& prefix = "visu.");
31 
32  std::vector<viz::Layer> visualizeCommit(
33  const std::map<std::string, objpose::ObjectPoseSeq>& objectPoses,
34  const std::map<std::string, std::vector<std::map<DateTime, objpose::ObjectPose>>>&
35  poseHistories,
36  const ObjectFinder& objectFinder) const;
37 
38  /// Visualize the given object poses, with one layer per provider.
39  std::vector<viz::Layer>
40  visualizeCommit(const objpose::ObjectPoseSeq& objectPoses,
41  const std::vector<std::map<DateTime, objpose::ObjectPose>>& poseHistories,
42  const ObjectFinder& objectFinder) const;
43  std::vector<viz::Layer> visualizeCommit(
44  const objpose::ObjectPoseMap& objectPoses,
45  const std::map<ObjectID, std::map<DateTime, objpose::ObjectPose>>& poseHistories,
46  const ObjectFinder& objectFinder) const;
47 
49  visualizeProvider(const std::string& providerName,
50  const objpose::ObjectPoseSeq& objectPoses,
51  const std::vector<std::map<DateTime, objpose::ObjectPose>>& poseHistories,
52  const ObjectFinder& objectFinder) const;
53 
54 
55  void visualizeObjectPose(viz::Layer& layer,
56  const objpose::ObjectPose& objectPose,
57  const std::map<DateTime, objpose::ObjectPose>& poseHistory,
58  const ObjectFinder& objectFinder) const;
59 
60 
61  private:
62  viz::Layer& getLayer(const std::string& providerName,
63  std::map<std::string, viz::Layer>& stage) const;
64 
65 
66  public:
68 
69  bool enabled = true;
70  float frequencyHz = 25;
71 
72  bool inGlobalFrame = true;
73  float minConfidence = -1;
74  float alpha = 1.0;
75  bool alphaByConfidence = false;
76  bool oobbs = false;
77 
78  bool objectFrames = false;
79  float objectFramesScale = 1.0;
80 
81  struct Gaussians
82  {
83  bool position = true;
84  float positionScale = 1.0;
85  bool orientation = false;
86  float orientationScale = 100;
87  bool orientationDisplaced = false;
88 
89  void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix);
90 
91  bool showAny() const;
92  void draw(viz::Layer& layer,
93  const objpose::ObjectPose& objectPose,
94  bool inGlobalFrame) const;
95  };
96 
98 
99  /// Prefer articulated models if available.
100  bool useArticulatedModels = true;
101 
102  /// Linear predictions for objects.
104 
106 
107  struct RemoteGui
108  {
110 
112 
117 
120 
121  struct Gaussians
122  {
125 
129 
131 
132  void setup(const Visu& data);
133  void update(Visu::Gaussians& data);
134  };
135 
137 
139 
141 
142  void setup(const Visu& visu);
143  void update(Visu& visu);
144  };
145  };
146 
147 } // 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
Client.h
armarx::armem::server::obj::instance::Visu::RemoteGui::objectFrames
armarx::RemoteGui::Client::CheckBox objectFrames
Definition: Visu.h:118
armarx::ObjectID
A known object ID of the form "Dataset/ClassName" or "Dataset/ClassName/InstanceName".
Definition: ObjectID.h:10
armarx::armem::server::obj::instance::Visu::enabled
bool enabled
Definition: Visu.h:69
armarx::armem::server::obj::instance::Visu::RemoteGui
Definition: Visu.h:107
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
armarx::armem::server::obj::instance::Visu::RemoteGui::group
armarx::RemoteGui::Client::GroupBox group
Definition: Visu.h:109
LinearPredictionsVisu.h
armarx::armem::server::obj::instance::visu::LinearPredictions::RemoteGui
Definition: LinearPredictionsVisu.h:37
armarx::armem::server::obj::instance::Visu::RemoteGui::Gaussians::positionScale
armarx::RemoteGui::Client::FloatSpinBox positionScale
Definition: Visu.h:124
armarx::armem::server::obj::instance::Visu::RemoteGui::Gaussians::setup
void setup(const Visu &data)
Definition: Visu.cpp:384
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::armem::server::obj::instance::Visu::RemoteGui::Gaussians::orientationDisplaced
armarx::RemoteGui::Client::CheckBox orientationDisplaced
Definition: Visu.h:128
armarx::armem::server::obj::instance::Visu::frequencyHz
float frequencyHz
Definition: Visu.h:70
armarx::armem::server::obj::instance::Visu::RemoteGui::linearPredictions
visu::LinearPredictions::RemoteGui linearPredictions
Definition: Visu.h:140
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
armarx::armem::server::obj::instance::Visu::Gaussians
Definition: Visu.h:81
armarx::ObjectFinder
Used to find objects in the ArmarX objects repository [1] (formerly [2]).
Definition: ObjectFinder.h:22
armarx::armem::server::obj::instance::Visu::objectFramesScale
float objectFramesScale
Definition: Visu.h:79
armarx::RemoteGui::Client::FloatSlider
Definition: Widgets.h:107
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::RemoteGui::Gaussians::orientationScale
armarx::RemoteGui::Client::FloatSpinBox orientationScale
Definition: Visu.h:127
armarx::armem::server::obj::instance::Visu::defineProperties
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string &prefix="visu.")
Definition: Visu.cpp:18
armarx::armem::server::obj::instance::Visu::RemoteGui::inGlobalFrame
armarx::RemoteGui::Client::CheckBox inGlobalFrame
Definition: Visu.h:113
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::armem::server::obj::instance::Visu::alpha
float alpha
Definition: Visu.h:74
armarx::armem::server::obj::instance::Visu::Gaussians::showAny
bool showAny() const
Definition: Visu.cpp:251
armarx::armem::server::obj::instance::Visu::RemoteGui::Gaussians::group
armarx::RemoteGui::Client::GroupBox group
Definition: Visu.h:130
data
uint8_t data[1]
Definition: EtherCATFrame.h:68
armarx::armem::server::obj::instance::Visu::RemoteGui::useArticulatedModels
armarx::RemoteGui::Client::CheckBox useArticulatedModels
Definition: Visu.h:138
armarx::armem::server::obj::instance::Visu::RemoteGui::enabled
armarx::RemoteGui::Client::CheckBox enabled
Definition: Visu.h:111
armarx::armem::server::obj::instance::Visu::Gaussians::orientation
bool orientation
Definition: Visu.h:85
armarx::RemoteGui::Client::GroupBox
Definition: Widgets.h:193
ObjectPose.h
armarx::armem::server::obj::instance::Visu::Gaussians::orientationScale
float orientationScale
Definition: Visu.h:86
armarx::armem::server::obj::instance::Visu::RemoteGui::alpha
armarx::RemoteGui::Client::FloatSlider alpha
Definition: Visu.h:114
TaskUtil.h
armarx::armem::server::obj::instance::Visu::RemoteGui::Gaussians::orientation
armarx::RemoteGui::Client::CheckBox orientation
Definition: Visu.h:126
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::Logging
Base Class for all Logging classes.
Definition: Logging.h:239
armarx::armem::server::obj::instance::Visu::Gaussians::orientationDisplaced
bool orientationDisplaced
Definition: Visu.h:87
armarx::armem::server::obj::instance::visu::LinearPredictions
Visualization control for linear predictions for objects.
Definition: LinearPredictionsVisu.h:17
armarx::armem::server::obj::instance::Visu::RemoteGui::Gaussians::position
armarx::RemoteGui::Client::CheckBox position
Definition: Visu.h:123
IceUtil::Handle< class PropertyDefinitionContainer >
armarx::armem::server::obj::instance::Visu::gaussians
Gaussians gaussians
Definition: Visu.h:97
armarx::armem::server::obj::instance::Visu::objectFrames
bool objectFrames
Definition: Visu.h:78
armarx::armem::server::obj::instance::Visu::oobbs
bool oobbs
Definition: Visu.h:76
armarx::RemoteGui::Client::CheckBox
Definition: Widgets.h:129
Widgets.h
armarx::armem::server::obj::instance::Visu::RemoteGui::gaussians
Gaussians gaussians
Definition: Visu.h:136
armarx::armem::server::obj::instance::Visu::RemoteGui::oobbs
armarx::RemoteGui::Client::CheckBox oobbs
Definition: Visu.h:116
armarx::armem::server::obj::instance::Visu::Gaussians::defineProperties
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string &prefix)
Definition: Visu.cpp:45
Logging.h
armarx::armem::server::obj::instance::Visu::RemoteGui::Gaussians
Definition: Visu.h:121
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::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::armem::server::obj::instance::Visu::RemoteGui::alphaByConfidence
armarx::RemoteGui::Client::CheckBox alphaByConfidence
Definition: Visu.h:115
armarx::armem::server::obj::instance::Visu::updateTask
SimpleRunningTask ::pointer_type updateTask
Definition: Visu.h:105
armarx::viz::Client
Definition: Client.h:117
armarx::viz::Layer
Definition: Layer.h:12
armarx::RemoteGui::Client::FloatSpinBox
Definition: Widgets.h:93
armarx::armem::server::obj::instance::Visu::RemoteGui::objectFramesScale
armarx::RemoteGui::Client::FloatSpinBox objectFramesScale
Definition: Visu.h:119
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
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::objpose::ObjectPoseMap
std::map< ObjectID, ObjectPose > ObjectPoseMap
Definition: forward_declarations.h:21