27#include <VirtualRobot/Robot.h>
32#include <ArmarXGui/interface/RemoteGuiInterface.h>
35#include <RobotAPI/interface/core/RobotState.h>
53 "DebugDrawerTopicName",
55 "Name of the debug drawer topic that should be used");
58 "RobotStateComponentName",
59 "RobotStateComponent",
60 "Name of the robot state component that should be used");
62 "RemoteGuiName",
"RemoteGuiProvider",
"Name of the remote gui");
65 "The Image Provider used to get a mask");
68 "PointCloudProviderReferenceFrameOverride",
70 "If set, the component will assume incoming point clouds to be in this frame");
72 "MaskImageProviderReferenceFrameOverride",
74 "If set, the component will assume incoming mask images to be in this frame");
77 "CalibrationProviderName",
79 "An alternative component to receive calibration data from (mono or stereo)");
82 "PointCloudReportFrame",
"root",
"The frame used to report the point clouds");
85 "MaskRedHi", 255,
"Higher bound for the mask color's red channel");
87 "MaskGreenHi", 255,
"Higher bound for the mask color's green channel");
89 "MaskBlueHi", 255,
"Higher bound for the mask color's blue channel");
91 "MaskRedLo", 0,
"Lower bound for the mask color's red channel");
93 "MaskGreenLo", 0,
"Lower bound for the mask color's green channel");
95 "MaskBlueLo", 128,
"Lower bound for the mask color's blue channel");
119 return "MaskFilterPointCloudProcessor";
136 std::array<std::int64_t, 2>
xyz2uv(
float x,
float y,
float z,
float fx,
float fy)
const;
137 std::array<float, 3>
uvz2xyz(
int u,
int v,
float z,
float fx,
float fy)
const;
144 template <
typename Po
intType>
MaskFilterPointCloudProcessorPropertyDefinitions(std::string prefix)
Brief description of class MaskFilterPointCloudProcessor.
visionx::PointCloudProviderInterfacePrx _pointCloudProvider
VirtualRobot::RobotPtr _localRobot
visionx::ImageProviderInterfacePrx _maskImageProvider
visionx::ImageProviderInfo _maskImageProviderInfo
void onDisconnectPointCloudAndImageProcessor() override
Implement this method in the PointCloudAndImageProcessor in order to execute parts when the component...
std::string _remoteGuiName
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr _maskedCloud
void onConnectPointCloudAndImageProcessor() override
Implement this method in your PointCloudAndImageProcessor in order execute parts when the component i...
std::atomic< std::uint8_t > _greenLo
std::atomic< std::int64_t > _offsetY
std::string _pointCloudReportFrame
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
std::mutex _pointCloudReportFrameMutex
void process() override
Process the vision component.
RemoteGui::TabProxy _guiTab
std::array< float, 3 > uvz2xyz(int u, int v, float z, float fx, float fy) const
std::string _pointCloudProviderRefFrame
std::atomic< std::uint8_t > _blueHi
float _maskImageProviderFocalLengthY
std::string _pointCloudProviderName
std::atomic_bool _syncRobotWithTimestamp
std::atomic< std::uint8_t > _blueLo
std::atomic< std::uint8_t > _redLo
std::vector< visionx::CByteImageUPtr > _maskImageProviderImageOwner
std::string _maskImageProviderName
float _maskImageProviderFocalLengthX
RobotStateComponentInterfacePrx _robotStateComponent
void onInitPointCloudAndImageProcessor() override
Setup the vision component.
std::atomic< std::uint8_t > _greenHi
visionx::PointCloudProviderInfo _pointCloudProviderInfo
std::string _maskImageProviderRefFrame
DebugDrawerInterfacePrx _debugDrawerTopic
RemoteGuiInterfacePrx _remoteGui
std::string _robotStateComponentName
std::pair< float, float > maskImageProviderFocalLength() const
std::atomic< std::int64_t > _guiParamUpdated
SimplePeriodicTask ::pointer_type _guiTask
std::vector< void * > _maskImageProviderImages
std::atomic< float > _focalLengthAdjustment
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr _inputCloud
std::atomic_bool _maskMatchOneRangeInsteadOfAll
std::string _debugDrawerTopicName
std::atomic< std::uint8_t > _redHi
void onExitPointCloudAndImageProcessor() override
Exit the ImapeProcessor component.
std::atomic< float > _maskZRotation
std::atomic< std::int64_t > _offsetX
std::string getDefaultName() const override
std::array< std::int64_t, 2 > xyz2uv(float x, float y, float z, float fx, float fy) const
IceUtil::Handle< PeriodicTask< T > > pointer_type
Shared pointer type for convenience.
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)
PropertyDefinition< PropertyType > & defineRequiredProperty(const std::string &name, const std::string &description="", PropertyDefinitionBase::PropertyConstness constness=PropertyDefinitionBase::eConstant)
The PointCloudAndImageProcessor class provides an interface for access to PointCloudProviders and Ima...
Properties of PointCloudProcessor.
PointCloudProcessorPropertyDefinitions(std::string prefix)
std::shared_ptr< class Robot > RobotPtr
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