36#include <VisionX/interface/components/MultiViewPointCloudProcessor.h>
40 armarx::cfg::MVPCLProc,
47 AX_DESCRIPTION(
"Grid size for approximate voxel grid (0 = disabled)")),
48 (
float, frameRate, AX_DEFAULT(30), AX_MIN(0), AX_MAX(300)),
49 (
int, maxNumberOfFramesPerViewPoint, AX_DEFAULT(100), AX_MIN(1), AX_MAX(1000)));
65 virtual public visionx::MultiViewPointCloudProcessorInterface,
81 const Ice::Current& = Ice::emptyCurrent)
override;
83 const Ice::Current& = Ice::emptyCurrent)
override;
84 void setFrameRate(Ice::Float r,
const Ice::Current& = Ice::emptyCurrent)
override;
91 template <
class Po
intType>
93 template <
class Po
intType>
111 std::string _pointCloudProviderName;
113 visionx::PointCloudProviderInterfacePrx _pointCloudProvider;
114 std::string _pointCloudProviderRefFrame;
116 mutable std::recursive_mutex _cfgBufWriteMutex;
117 mutable std::recursive_mutex _cfgBufReadMutex;
125 std::deque<std::any> clouds;
128 mutable std::recursive_mutex _viewPointsMutex;
129 std::deque<ViewPoint> _viewPoints;
130 std::atomic_int _currentViewpoint = -1;
131 std::atomic_bool _doRecord =
false;
132 std::atomic_bool _doClear =
false;
134 std::thread _providerThread;
135 std::atomic_bool _stopProviding =
false;
DebugObserverComponentPluginUser()
Brief description of class MultiViewPointCloudProcessor.
void stopRecordingViewPoint(const Ice::Current &=Ice::emptyCurrent) override
RemoteGui::WidgetPtr buildGui()
void clearViewPoints(const Ice::Current &=Ice::emptyCurrent) override
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
void process() override
Process the vision component.
void onExitPointCloudProcessor() override
Exit the ImapeProcessor component.
void startRecordingNextViewPoint(const Ice::Current &=Ice::emptyCurrent) override
void onConnectPointCloudProcessor() override
Implement this method in the PointCloudProcessor in order execute parts when the component is fully i...
void onDisconnectPointCloudProcessor() override
Implement this method in the PointCloudProcessor in order execute parts when the component looses net...
static std::string GetDefaultName()
void setFrameRate(Ice::Float r, const Ice::Current &=Ice::emptyCurrent) override
void setDownsamplingGridSize(Ice::Float s, const Ice::Current &=Ice::emptyCurrent) override
void processGui(RemoteGui::TabProxy &prx)
void onInitPointCloudProcessor() override
Setup the vision component.
void setMaxNumberOfFramesPerViewPoint(Ice::Int n, const Ice::Current &=Ice::emptyCurrent) override
std::string getDefaultName() const override
Retrieve default name of component.
RemoteGuiComponentPluginUser()
Same as the TripleBuffer, but partial writes of the data structure are ok. The write operation may be...
The PointCloudProcessor class provides an interface for access to PointCloudProviders via Ice and sha...
#define ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE(Namespace, Name,...)
Usage ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE( foospace, foo, (float, flooat, AX_DEFAULT(1234),...
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.