KinectV1PointCloudProvider.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5  *
6  * ArmarX is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * ArmarX is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * @package VisionX::ArmarXObjects::KinectV1PointCloudProvider
19  * @author Christoph Pohl (christoph dot pohl at kit dot edu)
20  * @date 2019
21  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22  * GNU General Public License
23  */
24 
25 #pragma once
26 
27 
28 #include <Eigen/Geometry>
29 
30 #include <pcl/common/transforms.h>
31 #include <pcl/point_cloud.h>
32 #include <pcl/point_types.h>
33 
36 
39 #include <VisionX/interface/components/RGBDImageProvider.h>
40 
41 #include "KinectV1Device.hpp"
42 #include <libfreenect.hpp>
43 
44 //#include <Image/IplImageAdaptor.h>
45 
46 namespace visionx
47 {
48 
49 
50  /**
51  * @class KinectV1PointCloudProviderPropertyDefinitions
52  * @brief
53  */
56  {
57  public:
60  {
61  defineOptionalProperty<std::string>(
62  "ReferenceFrameName", "DepthCamera", "Optional reference frame name.");
63  }
64  };
65 
66  /**
67  * @class KinectV1PointCloudProvider
68  * @ingroup VisionX-Components
69  * @brief A brief description
70  *
71  * Detailed Description
72  */
74  virtual public RGBDPointCloudProviderInterface,
75  virtual public CapturingPointCloudProvider,
76  virtual public ImageProvider
77  {
78  public:
79  /**
80  * @see armarx::ManagedIceObject::getDefaultName()
81  */
82 
83  std::string
84  getDefaultName() const override
85  {
86  return "KinectV1PointCloudProvider";
87  }
88 
89  protected:
90  /**
91  * @see visionx::PointCloudProviderBase::onInitPointCloudProvider()
92  */
93  void onInitCapturingPointCloudProvider() override;
94 
95  /**
96  * @see visionx::PointCloudProviderBase::onExitPointCloudProvider()
97  */
98  void onExitCapturingPointCloudProvider() override;
99 
100  /**
101  * @see visionx::PointCloudProviderBase::onStartCapture()
102  */
103  void onStartCapture(float frameRate) override;
104 
105  /**
106  * @see visionx::PointCloudProviderBase::onStopCapture()
107  */
108  void onStopCapture() override;
109 
110  /**
111  * @see visionx::PointCloudProviderBase::doCapture()
112  */
113  bool doCapture() override;
114 
115  /**
116  * @see visionx::CapturingImageProvider::onInitImageProvider()
117  */
118  void onInitImageProvider() override;
119 
120  /**
121  * @see visionx::CapturingImageProvider::onExitImageProvider()
122  */
123  void
125  {
126  }
127 
128  bool
129  hasSharedMemorySupport(const Ice::Current& c = Ice::emptyCurrent) override
130  {
131  return true;
132  }
133 
134  /**
135  * @see PropertyUser::createPropertyDefinitions()
136  */
138 
139  // mixed inherited stuff
140  void onInitComponent() override;
141 
142  void onConnectComponent() override;
143 
144  void onDisconnectComponent() override;
145 
146  void onExitComponent() override;
147 
148  StereoCalibration getStereoCalibration(const Ice::Current& c = Ice::emptyCurrent) override;
149 
150  bool
151  getImagesAreUndistorted(const ::Ice::Current& c = Ice::emptyCurrent) override
152  {
153  return false;
154  }
155 
156  std::string
157  getReferenceFrame(const Ice::Current& c = Ice::emptyCurrent) override
158  {
159  return getProperty<std::string>("ReferenceFrameName");
160  };
161 
162  private:
163  typedef pcl::PointXYZRGBA PointT;
164 
165  Freenect::Freenect freenect_;
166  KinectV1Device* device_;
167 
168  CByteImage** rgbImages_;
169  int width_, height_, size_;
170  StereoCalibration calibration;
171  float cx_, cy_, fx_, fy_;
172  };
173 } // namespace visionx
CapturingPointCloudProvider.h
visionx::KinectV1PointCloudProvider::onExitComponent
void onExitComponent() override
Definition: KinectV1PointCloudProvider.cpp:76
visionx
ArmarX headers.
Definition: OpenPoseStressTest.h:38
visionx::KinectV1PointCloudProvider::onExitCapturingPointCloudProvider
void onExitCapturingPointCloudProvider() override
Definition: KinectV1PointCloudProvider.cpp:119
visionx::KinectV1PointCloudProvider::onInitComponent
void onInitComponent() override
Definition: KinectV1PointCloudProvider.cpp:46
visionx::KinectV1PointCloudProvider::onDisconnectComponent
void onDisconnectComponent() override
Hook for subclass.
Definition: KinectV1PointCloudProvider.cpp:66
armarx::PropertyDefinitionContainer::prefix
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
Definition: PropertyDefinitionContainer.h:345
visionx::KinectV1PointCloudProvider::onInitCapturingPointCloudProvider
void onInitCapturingPointCloudProvider() override
Definition: KinectV1PointCloudProvider.cpp:87
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:46
KinectV1Device
Definition: KinectV1Device.hpp:14
visionx::KinectV1PointCloudProvider::getDefaultName
std::string getDefaultName() const override
Definition: KinectV1PointCloudProvider.h:84
visionx::KinectV1PointCloudProvider
A brief description.
Definition: KinectV1PointCloudProvider.h:73
visionx::KinectV1PointCloudProvider::hasSharedMemorySupport
bool hasSharedMemorySupport(const Ice::Current &c=Ice::emptyCurrent) override
Definition: KinectV1PointCloudProvider.h:129
visionx::KinectV1PointCloudProvider::onStopCapture
void onStopCapture() override
Definition: KinectV1PointCloudProvider.cpp:109
KinectV1Device.hpp
visionx::CapturingPointCloudProvider::frameRate
float frameRate
Required frame rate.
Definition: CapturingPointCloudProvider.h:220
ImageProcessor.h
visionx::KinectV1PointCloudProvider::createPropertyDefinitions
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
Definition: KinectV1PointCloudProvider.cpp:195
visionx::CapturingPointCloudProviderPropertyDefinitions
Definition: CapturingPointCloudProvider.h:39
visionx::KinectV1PointCloudProvider::onExitImageProvider
void onExitImageProvider() override
Definition: KinectV1PointCloudProvider.h:124
Component.h
visionx::CapturingPointCloudProvider
The CapturingPointCloudProvider provides a callback function to trigger the capturing of point clouds...
Definition: CapturingPointCloudProvider.h:58
visionx::ImageProvider
ImageProvider abstract class defines a component which provide images via ice or shared memory.
Definition: ImageProvider.h:66
visionx::KinectV1PointCloudProviderPropertyDefinitions
Definition: KinectV1PointCloudProvider.h:54
visionx::KinectV1PointCloudProvider::onStartCapture
void onStartCapture(float frameRate) override
Definition: KinectV1PointCloudProvider.cpp:102
visionx::KinectV1PointCloudProvider::getReferenceFrame
std::string getReferenceFrame(const Ice::Current &c=Ice::emptyCurrent) override
Definition: KinectV1PointCloudProvider.h:157
IceUtil::Handle< class PropertyDefinitionContainer >
visionx::KinectV1PointCloudProviderPropertyDefinitions::KinectV1PointCloudProviderPropertyDefinitions
KinectV1PointCloudProviderPropertyDefinitions(std::string prefix)
Definition: KinectV1PointCloudProvider.h:58
visionx::KinectV1PointCloudProvider::getStereoCalibration
StereoCalibration getStereoCalibration(const Ice::Current &c=Ice::emptyCurrent) override
Definition: KinectV1PointCloudProvider.cpp:202
visionx::KinectV1PointCloudProvider::onInitImageProvider
void onInitImageProvider() override
Definition: KinectV1PointCloudProvider.cpp:131
visionx::KinectV1PointCloudProvider::onConnectComponent
void onConnectComponent() override
Definition: KinectV1PointCloudProvider.cpp:56
ArmarXDataPath.h
visionx::KinectV1PointCloudProvider::doCapture
bool doCapture() override
Definition: KinectV1PointCloudProvider.cpp:149
visionx::KinectV1PointCloudProvider::getImagesAreUndistorted
bool getImagesAreUndistorted(const ::Ice::Current &c=Ice::emptyCurrent) override
Definition: KinectV1PointCloudProvider.h:151
visionx::PointT
pcl::PointXYZRGBA PointT
Definition: MaskRCNNPointCloudObjectLocalizer.h:77