33#include <VisionX/interface/components/RGBDImageProvider.h>
36#include <Eigen/Geometry>
38#include <pcl/common/transforms.h>
39#include <pcl/point_cloud.h>
40#include <pcl/point_types.h>
44#include <libfreenect2/frame_listener_impl.h>
45#include <libfreenect2/libfreenect2.hpp>
46#include <libfreenect2/packet_pipeline.h>
47#include <libfreenect2/registration.h>
79 "Kinect Pipeline for image processing. Can be one of CPU, GL, CL, CLKDE, CUDA, "
89 "Serial Number of the Camera to use. If empty the "
90 "serial will be chosen automatically");
93 "ReferenceFrameName",
"DepthCamera",
"Optional reference frame name.");
105 virtual public RGBDPointCloudProviderInterface,
114 listener_(libfreenect2::Frame::
Color | libfreenect2::Frame::Ir |
115 libfreenect2::Frame::Depth),
116 undistorted_(512, 424, 4),
117 registered_(512, 424, 4){};
122 return "KinectV2PointCloudProvider";
199 typedef pcl::PointXYZRGBA
PointT;
201 libfreenect2::Freenect2Device::IrCameraParams getCameraIrParameters();
203 libfreenect2::Freenect2Device::ColorCameraParams getCameraRGBParameters();
205 void initializeCameraCalibration();
207 libfreenect2::Freenect2 freenect2_;
208 libfreenect2::Freenect2Device* dev_;
209 libfreenect2::PacketPipeline* pipeline_;
210 libfreenect2::SyncMultiFrameListener listener_;
211 libfreenect2::FrameMap frames_;
212 libfreenect2::Registration* registration_;
213 libfreenect2::Frame undistorted_, registered_;
214 bool enable_rgb_, enable_depth_, mirror_;
222 ImageProviderInterfacePrx imageProviderPrx;
223 std::string providerName;
224 CByteImage** rgbImages_;
225 int rgb_width_, rgb_height_, d_width_, d_height_;
226 StereoCalibration calibration;
Property< PropertyType > getProperty(const std::string &name)
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)
CapturingPointCloudProviderPropertyDefinitions(std::string prefix)
The CapturingPointCloudProvider provides a callback function to trigger the capturing of point clouds...
float frameRate
Required frame rate.
ImageProvider abstract class defines a component which provide images via ice or shared memory.
KinectV2PointCloudProviderPropertyDefinitions(std::string prefix)
std::string getReferenceFrame(const Ice::Current &c=Ice::emptyCurrent) override
bool hasSharedMemorySupport(const Ice::Current &c=Ice::emptyCurrent) override
void onInitComponent() override
Pure virtual hook for the subclass.
bool doCapture() override
void onExitCapturingPointCloudProvider() override
void onDisconnectComponent() override
Hook for subclass.
void onStartCapture(float frameRate) override
void onInitCapturingPointCloudProvider() override
void onConnectComponent() override
Pure virtual hook for the subclass.
StereoCalibration getStereoCalibration(const Ice::Current &c=Ice::emptyCurrent) override
KinectV2PointCloudProvider()
void onStopCapture() override
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
void onInitImageProvider() override
void onExitComponent() override
Hook for subclass.
void onExitImageProvider() override
std::string getDefaultName() const override
Retrieve default name of component.
bool getImagesAreUndistorted(const ::Ice::Current &c=Ice::emptyCurrent) override
uint32_t Color
RGBA color.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.