29 #include <Eigen/Eigen>
33 #include <ArmarXCore/interface/observers/ObserverInterface.h>
35 #include <VisionX/interface/components/AffordanceExtraction.h>
36 #include <VisionX/interface/components/PointCloudSegmenter.h>
38 #include <AffordanceKit/affordances/BimanualAlignedGraspAffordance.h>
39 #include <AffordanceKit/affordances/BimanualAlignedPlatformGraspAffordance.h>
40 #include <AffordanceKit/affordances/BimanualAlignedPrismaticGraspAffordance.h>
41 #include <AffordanceKit/affordances/BimanualGraspAffordance.h>
42 #include <AffordanceKit/affordances/BimanualLiftAffordance.h>
43 #include <AffordanceKit/affordances/BimanualOpposedGraspAffordance.h>
44 #include <AffordanceKit/affordances/BimanualOpposedPlatformGraspAffordance.h>
45 #include <AffordanceKit/affordances/BimanualOpposedPrismaticGraspAffordance.h>
46 #include <AffordanceKit/affordances/BimanualPlatformGraspAffordance.h>
47 #include <AffordanceKit/affordances/BimanualPrismaticGraspAffordance.h>
48 #include <AffordanceKit/affordances/BimanualTurnAffordance.h>
49 #include <AffordanceKit/affordances/GraspAffordance.h>
50 #include <AffordanceKit/affordances/HoldAffordance.h>
51 #include <AffordanceKit/affordances/LeanAffordance.h>
52 #include <AffordanceKit/affordances/LiftAffordance.h>
53 #include <AffordanceKit/affordances/PlatformGraspAffordance.h>
54 #include <AffordanceKit/affordances/PrismaticGraspAffordance.h>
55 #include <AffordanceKit/affordances/PullAffordance.h>
56 #include <AffordanceKit/affordances/PushAffordance.h>
57 #include <AffordanceKit/affordances/SupportAffordance.h>
58 #include <AffordanceKit/affordances/TurnAffordance.h>
60 #include <MemoryX/interface/components/WorkingMemoryInterface.h>
76 defineOptionalProperty<std::string>(
"DebugObserverName",
78 "Name of the topic the DebugObserver listens on");
79 defineOptionalProperty<std::string>(
80 "WorkingMemoryName",
"WorkingMemory",
"Name of WorkingMemory component");
81 defineOptionalProperty<std::string>(
"AffordanceExtractionTopicName",
82 "ExtractedAffordances",
83 "Topic for publishing extraction notifications");
84 defineOptionalProperty<std::string>(
85 "PrimitiveExtractionTopicName",
86 "SegmentedPointCloud",
87 "Topic under which primitive extraction notifications are published");
88 defineOptionalProperty<std::string>(
91 "Name of the embodiment to use for affordance extraction (Armar3, Armar4, WalkMan");
92 defineOptionalProperty<float>(
93 "SpatialSamplingDistance", 75,
"Distance between two spatial samplings in mm");
94 defineOptionalProperty<int>(
95 "NumOrientationalSamplings", 4,
"Number of orientational samplings");
96 defineOptionalProperty<std::string>(
"RestrictToAffordanceList",
98 "Only evaluate affordances from this list (use "
99 "short names in comma separated list)");
100 defineOptionalProperty<int>(
"MaxPrimitiveSamplingSize",
102 "Maximum size of primitive sampling to be considered for "
103 "extracting affordances (0 means infinity)");
104 defineOptionalProperty<float>(
105 "AffordanceExtractionCertainty",
107 "Certainty value attributed to visual affordance extraction");
120 virtual public AffordanceExtractionInterface
131 return "AffordanceExtraction";
139 armarx::TimestampBasePtr
143 const std::string& affordance,
144 const std::string& primitiveId,
149 const Ice::Current&
c = Ice::emptyCurrent)
override;
152 const Ice::Current&
c = Ice::emptyCurrent)
override;
154 const Ice::Current&
c = Ice::emptyCurrent)
override;
225 AffordanceKit::BimanualOpposedPlatformGraspAffordancePtr
227 AffordanceKit::BimanualOpposedPrismaticGraspAffordancePtr
229 AffordanceKit::BimanualAlignedPlatformGraspAffordancePtr
231 AffordanceKit::BimanualAlignedPrismaticGraspAffordancePtr