27 #include <ArmarXCore/interface/observers/ObserverInterface.h>
33 #include <VisionX/interface/components/PointCloudSegmenter.h>
34 #include <VisionX/interface/components/AffordanceExtraction.h>
36 #include <AffordanceKit/affordances/PlatformGraspAffordance.h>
37 #include <AffordanceKit/affordances/PrismaticGraspAffordance.h>
38 #include <AffordanceKit/affordances/GraspAffordance.h>
39 #include <AffordanceKit/affordances/SupportAffordance.h>
40 #include <AffordanceKit/affordances/LeanAffordance.h>
41 #include <AffordanceKit/affordances/HoldAffordance.h>
42 #include <AffordanceKit/affordances/LiftAffordance.h>
43 #include <AffordanceKit/affordances/TurnAffordance.h>
44 #include <AffordanceKit/affordances/PushAffordance.h>
45 #include <AffordanceKit/affordances/PullAffordance.h>
46 #include <AffordanceKit/affordances/BimanualPlatformGraspAffordance.h>
47 #include <AffordanceKit/affordances/BimanualPrismaticGraspAffordance.h>
48 #include <AffordanceKit/affordances/BimanualGraspAffordance.h>
49 #include <AffordanceKit/affordances/BimanualOpposedGraspAffordance.h>
50 #include <AffordanceKit/affordances/BimanualAlignedGraspAffordance.h>
51 #include <AffordanceKit/affordances/BimanualOpposedPlatformGraspAffordance.h>
52 #include <AffordanceKit/affordances/BimanualOpposedPrismaticGraspAffordance.h>
53 #include <AffordanceKit/affordances/BimanualAlignedPlatformGraspAffordance.h>
54 #include <AffordanceKit/affordances/BimanualAlignedPrismaticGraspAffordance.h>
55 #include <AffordanceKit/affordances/BimanualTurnAffordance.h>
56 #include <AffordanceKit/affordances/BimanualLiftAffordance.h>
58 #include <MemoryX/interface/components/WorkingMemoryInterface.h>
63 #include <Eigen/Eigen>
79 defineOptionalProperty<std::string>(
"DebugObserverName",
"DebugObserver",
"Name of the topic the DebugObserver listens on");
80 defineOptionalProperty<std::string>(
"WorkingMemoryName",
"WorkingMemory",
"Name of WorkingMemory component");
81 defineOptionalProperty<std::string>(
"AffordanceExtractionTopicName",
"ExtractedAffordances",
"Topic for publishing extraction notifications");
82 defineOptionalProperty<std::string>(
"PrimitiveExtractionTopicName",
"SegmentedPointCloud",
"Topic under which primitive extraction notifications are published");
83 defineOptionalProperty<std::string>(
"EmbodimentName",
"WalkMan",
"Name of the embodiment to use for affordance extraction (Armar3, Armar4, WalkMan");
84 defineOptionalProperty<float>(
"SpatialSamplingDistance", 75,
"Distance between two spatial samplings in mm");
85 defineOptionalProperty<int>(
"NumOrientationalSamplings", 4,
"Number of orientational samplings");
86 defineOptionalProperty<std::string>(
"RestrictToAffordanceList",
"",
"Only evaluate affordances from this list (use short names in comma separated list)");
87 defineOptionalProperty<int>(
"MaxPrimitiveSamplingSize", 0,
"Maximum size of primitive sampling to be considered for extracting affordances (0 means infinity)");
88 defineOptionalProperty<float>(
"AffordanceExtractionCertainty", 0.8,
"Certainty value attributed to visual affordance extraction");
101 virtual public AffordanceExtractionInterface
111 return "AffordanceExtraction";
121 void addObservation(
const PoseBasePtr& endEffectorPose,
const std::string& affordance,
const std::string& primitiveId,
float result,
float certainty,
float sigma_pos,
float sigma_rot,
const Ice::Current&
c = Ice::emptyCurrent)
override;
123 void exportScene(
const std::string&
filename,
const Ice::Current&
c = Ice::emptyCurrent)
override;
124 void importScene(
const std::string&
filename,
const Ice::Current&
c = Ice::emptyCurrent)
override;