30#include <Eigen/Geometry>
32#include <pcl/filters/crop_box.h>
34#include <opencv2/opencv.hpp>
40#include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
47#include <VisionX/interface/components/ObjectLocalizerInterfaces.h>
52#include <Image/ImageProcessor.h>
53#include <Image/IplImageAdaptor.h>
55#include <MemoryX/interface/observers/ObjectMemoryObserverInterface.h>
56#include <MemoryX/interface/workingmemory/WorkingMemoryUpdaterBase.h>
72 "RobotStateComponentProxyName",
"RobotStateComponent",
"");
77 "RightHandNameViewSelection",
"handright3a",
"Name of the normal hand");
80 "DebugDrawerTopicName",
82 "Name of the debug drawer topic that should be used");
85 "PrimitiveCalibrationOnStart",
87 "If true the component calibrates itself in a primitive way.");
117 virtual public ObjectLocalizerPointCloudAndImageInterface
126 return "RGBDHandLocalizer";
129 memoryx::ObjectLocalizationResultList
148 std::string providerName;
151 getFramedPosition(pcl::PointCloud<pcl::PointXYZRGBA>::Ptr,
int x,
int y);
156 int calibrationCounter = 0;
157 Eigen::Vector3f calibrationSum = Eigen::Vector3f::Zero();
159 std::mutex positionLock;
161 pcl::CropBox<pcl::PointXYZRGBA> cropper;
163 std::string sensorFrameName;
164 std::string markerFrameName;
165 std::string handFrameName;
168 void calcPositions(cv::Mat& binaryImage,
169 pcl::PointCloud<pcl::PointXYZRGBA>::Ptr pointcloud,
170 std::vector<Eigen::Vector3f>& medianCoordinates);
171 void cropFilter(pcl::PointCloud<pcl::PointXYZRGBA>::Ptr input,
172 pcl::PointCloud<pcl::PointXYZRGBA>::Ptr output,
174 Eigen::Vector3f guessMM);
Default component property definition container.
ComponentPropertyDefinitions(std::string prefix, bool hasObjectNameParameter=true)
The FramedPosition class.
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)
The PointCloudAndImageProcessor class provides an interface for access to PointCloudProviders and Ima...
RGBDHandLocalizerPropertyDefinitions(std::string prefix)
Brief description of class RGBDHandLocalizer.
void onDisconnectPointCloudAndImageProcessor() override
Implement this method in the PointCloudAndImageProcessor in order to execute parts when the component...
void onConnectPointCloudAndImageProcessor() override
Implement this method in your PointCloudAndImageProcessor in order execute parts when the component i...
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
void process() override
Process the vision component.
void onInitPointCloudAndImageProcessor() override
Setup the vision component.
memoryx::ObjectLocalizationResultList localizeObjectClasses(const memoryx::ObjectClassNameList &, const Ice::Current &) override
void onExitPointCloudAndImageProcessor() override
Exit the ImapeProcessor component.
std::string getDefaultName() const override
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::RobotStateComponentInterface > RobotStateComponentInterfacePrx
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugDrawerInterface > DebugDrawerInterfacePrx
IceInternal::Handle< TimestampVariant > TimestampVariantPtr
IceInternal::Handle< FramedPose > FramedPosePtr