30#include <IceUtil/IceUtil.h>
35#include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
38#include <VisionX/interface/components/AffordancePipelineVisualization.h>
39#include <VisionX/interface/components/PointCloudSegmenter.h>
42#include <AffordanceKit/primitives/Box.h>
43#include <AffordanceKit/primitives/Cylinder.h>
44#include <AffordanceKit/primitives/Plane.h>
45#include <AffordanceKit/primitives/Sphere.h>
47#include <MemoryX/interface/components/WorkingMemoryInterface.h>
65 "WorkingMemoryName",
"WorkingMemory",
"Name of WorkingMemory component");
67 "DebugDrawerTopicName",
"DebugDrawerUpdates",
"The name of the debug drawer topic");
69 "DebugDrawerSelections",
70 "The name of the debug drawer topic");
72 "VisualizationUpdateTopicName",
73 "AffordanceVisualizationTopic",
74 "Topic under which visualization updates are reported");
77 "Allow users to select primitives via debug drawer");
80 "EnablePrimitiveVisualization",
true,
"Initially enable primitive visualization");
82 "EnableAffordanceVisualization",
true,
"Initially enable affordance visualization");
84 "EnableDebugVisualization",
false,
"Initially enable debug visualization");
87 "VisualizeAffordanceBeliefFunction",
89 "The affordance belief function that should initially be visualized");
91 "MinExpectedProbability",
93 "Visualize only samplings with expected probability greater than X");
96 "NoAffordanceExtractionConfigured",
98 "In this case visualization will start as soon as primitives are computed");
101 "FileName",
"",
"Load affordances from a file name and exit.");
114 virtual public AffordancePipelineVisualizationInterface
125 return "AffordancePipelineVisualization";
132 const Ice::Current&
c = Ice::emptyCurrent)
override;
134 const Ice::Current&
c = Ice::emptyCurrent)
override;
138 bool enableAffordances,
139 bool enableDebugInformation,
140 const Ice::Current&
c = Ice::emptyCurrent)
override;
142 const std::vector<std::string>& primitives,
143 const std::vector<std::string>& affordances,
144 float minExpectedProbability,
145 const Ice::Current&
c = Ice::emptyCurrent)
override;
149 const Ice::Current&
c = Ice::emptyCurrent)
override;
151 const Ice::Current&
c = Ice::emptyCurrent)
override;
157 const ::Ice::Current& = Ice::emptyCurrent)
override;
186 bool updatePrimitives =
true,
187 bool updateAffordances =
true,
188 bool updateDebugInfo =
true);
193 const AffordanceKit::PrimitivePtr& primitve,
196 const std::vector<std::string>& labels);
205 void visualize(
bool updatePrimitives =
true,
206 bool updateAffordances =
true,
207 bool updateDebugInfo =
true);
AffordancePipelineVisualizationPropertyDefinitions(std::string prefix)
void visualize(bool updatePrimitives=true, bool updateAffordances=true, bool updateDebugInfo=true)
void visualizeBox(const AffordanceKit::BoxPtr &box)
void onInitComponent() override
bool debugVisualizationEnabled
void visualizePrimitive(const AffordanceKit::PrimitivePtr &primitive)
float visualizationMinExpectedProbability
bool affordanceVisualizationEnabled
void visualizePrimitives(const AffordanceKit::PrimitiveSetPtr &primitives)
void deselectAllPrimitives(const Ice::Current &c=Ice::emptyCurrent) override
void visualizePlane(const AffordanceKit::PlanePtr &plane)
memoryx::AffordanceSegmentBasePrx affordanceSegment
DebugDrawerInterfacePrx debugDrawerTopicPrx
void triggerVisualization(const Ice::Current &c=Ice::emptyCurrent) override
void onDisconnectComponent() override
void enableVisualization(bool enablePrimitives, bool enableAffordances, bool enableDebugInformation, const Ice::Current &c=Ice::emptyCurrent) override
void visualizeAffordance(const AffordanceKit::AffordancePtr &affordance, const AffordanceKit::PrimitivePtr &primitve, unsigned int index)
memoryx::WorkingMemoryInterfacePrx workingMemoryPrx
void reportNewPointCloudSegmentation(const Ice::Current &c=Ice::emptyCurrent) override
std::vector< std::string > visualizationPrimitiveSet
AffordanceVisualizationStyle visualizationStyle
DrawColor primitiveColorFrame
void visualizeScene(const AffordanceKit::ScenePtr &scene, bool updatePrimitives=true, bool updateAffordances=true, bool updateDebugInfo=true)
void configureAffordanceVisualization(AffordanceVisualizationStyle style, const std::vector< std::string > &primitives, const std::vector< std::string > &affordances, float minExpectedProbability, const Ice::Current &c=Ice::emptyCurrent) override
DrawColor affordanceLabelColor
std::set< std::string > selections
void onConnectComponent() override
void visualizeCylinder(const AffordanceKit::CylinderPtr &cylinder)
void exportVisualizationAsIV(const std::string &filename, const Ice::Current &c=Ice::emptyCurrent) override
void clearVisualization(const Ice::Current &c=Ice::emptyCurrent) override
PropertyDefinitionsPtr createPropertyDefinitions() override
bool primitiveVisualizationEnabled
void visualizeDebugInformation(const AffordanceKit::ScenePtr &scene)
std::vector< std::string > visualizationAffordanceSet
void deselectPrimitive(const std::string &id, const Ice::Current &c=Ice::emptyCurrent) override
void visualizeAffordances(const AffordanceKit::ScenePtr &scene)
void visualizeSphere(const AffordanceKit::SpherePtr &sphere)
void onExitComponent() override
void exportVisualizationAsJSON(const std::string &filename, const Ice::Current &c=Ice::emptyCurrent) override
void reportSelectionChanged(const DebugDrawerSelectionList &selectedObjects, const ::Ice::Current &=Ice::emptyCurrent) override
memoryx::EnvironmentalPrimitiveSegmentBasePrx environmentalPrimitiveSegment
AffordancePipelineVisualization()
AffordanceKitArmarX::SceneArmarXPtr scene
std::map< int, std::list< std::string > > labelMap
std::string getDefaultName() const override
void selectPrimitive(const std::string &id, const Ice::Current &c=Ice::emptyCurrent) override
AffordancePipelineVisualizationListenerPrx affordanceVisualizationTopicPrx
void visualizeAffordanceLabels(const AffordanceKit::PrimitivePtr &primitive, const std::vector< std::string > &labels)
void reportNewAffordances(const Ice::Current &c=Ice::emptyCurrent) override
Default component property definition container.
ComponentPropertyDefinitions(std::string prefix, bool hasObjectNameParameter=true)
Component()
Protected default constructor. Used for virtual inheritance. Use createManagedIceObject() instead.
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
PropertyDefinition< PropertyType > & defineOptionalProperty(const std::string &name, PropertyType defaultValue, const std::string &description="", PropertyDefinitionBase::PropertyConstness constness=PropertyDefinitionBase::eConstant)
std::shared_ptr< SceneArmarX > SceneArmarXPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugDrawerInterface > DebugDrawerInterfacePrx