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,
80 const Ice::Current& = Ice::emptyCurrent)
override;
82 const Ice::Current& = Ice::emptyCurrent)
override;
83 void setFrameRate(Ice::Float r,
const Ice::Current& = Ice::emptyCurrent)
override;
90 template <
class Po
intType>
92 template <
class Po
intType>
110 std::string _pointCloudProviderName;
112 visionx::PointCloudProviderInterfacePrx _pointCloudProvider;
113 std::string _pointCloudProviderRefFrame;
115 mutable std::recursive_mutex _cfgBufWriteMutex;
116 mutable std::recursive_mutex _cfgBufReadMutex;
124 std::deque<std::any> clouds;
127 mutable std::recursive_mutex _viewPointsMutex;
128 std::deque<ViewPoint> _viewPoints;
129 std::atomic_int _currentViewpoint = -1;
130 std::atomic_bool _doRecord =
false;
131 std::atomic_bool _doClear =
false;
133 std::thread _providerThread;
134 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...
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
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.