Go to the documentation of this file.
29 #include <pcl/common/transforms.h>
30 #include <pcl/filters/crop_box.h>
31 #include <pcl/filters/filter.h>
32 #include <pcl/io/pcd_io.h>
33 #include <pcl/point_types.h>
35 #include <opencv2/opencv.hpp>
41 #include <VisionX/interface/components/PointCloudAndImageAndCalibrationProviderInterface.h>
43 #include <Image/IplImageAdaptor.h>
44 #include <MultiSense/MultiSenseChannel.hh>
45 #include <MultiSense/MultiSenseTypes.hh>
50 static Eigen::Vector4f
51 stringToVector4f(std::string propertyValue)
54 sscanf(propertyValue.c_str(),
76 defineOptionalProperty<Eigen::Vector4f>(
77 "minPoint", Eigen::Vector4f(-5000, -1e+06, -0, 1),
"")
79 defineOptionalProperty<Eigen::Vector4f>(
80 "maxPoint", Eigen::Vector4f(1000, 1e+08, 1e+08, 1),
"")
82 defineOptionalProperty<std::string>(
"ipAddress",
"10.66.171.21",
"Description");
83 defineOptionalProperty<bool>(
84 "enableLight",
false,
"Switch on the MultiSense LEDs on startup");
85 defineOptionalProperty<bool>(
"useLidar",
false,
"Use the laser for depth information");
86 defineOptionalProperty<std::string>(
"CalibrationFileName",
87 "VisionX/examples/camera_multisense.txt",
88 "Camera calibration file");
104 virtual public visionx::CapturingPointCloudAndImageAndStereoCalibrationProviderInterface,
115 return "MultiSensePointCloudProvider";
201 visionx::MonocularCalibration
204 visionx::StereoCalibration
221 pcl::PointCloud<pcl::PointXYZRGBA>::Ptr pointCloudData;
223 crl::multisense::Channel* driver;
225 boost::mutex dataMutex;
227 crl::multisense::DataSource mask;
229 bool hasNewDisparityData;
230 bool hasNewColorData;
232 std::vector<uint8_t> lumaData;
235 cv::Mat_<double> q_matrix;
238 cv::Mat disparityImage;
243 pcl::CropBox<pcl::PointXYZRGBA> cropBoxFilter;
246 visionx::StereoCalibration calibration;
247 CByteImage** rgbImages;
void chromaImageCallback(const crl::multisense::image::Header &header)
void onConnectComponent() override
void lumaImageCallback(const crl::multisense::image::Header &header)
void onExitComponent() override
void onStopCapture() override
MatrixXX< 4, 4, float > Matrix4f
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
void onExitComponent() override
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
visionx::StereoCalibration getStereoCalibration(const Ice::Current &c=Ice::emptyCurrent) override
void onExitImageProvider() override
void onDisconnectComponent() override
Hook for subclass.
void onExitComponent() override
void onDisconnectComponent() override
Hook for subclass.
CapturingPointCloudProviderPropertyDefinitions(std::string prefix)
bool hasSharedMemorySupport(const Ice::Current &c=Ice::emptyCurrent) override
void lidarScanCallback(const crl::multisense::lidar::Header &header)
float frameRate
Required frame rate.
void onInitComponent() override
void onConnectComponent() override
std::string getDefaultName() const override
void onInitComponent() override
bool getImagesAreUndistorted(const ::Ice::Current &c=Ice::emptyCurrent) override
void onInitImageProvider() override
The CapturingPointCloudProvider provides a callback function to trigger the capturing of point clouds...
MultiSensePointCloudProviderPropertyDefinitions(std::string prefix)
ImageProvider abstract class defines a component which provide images via ice or shared memory.
void onInitCapturingPointCloudProvider() override
void onExitCapturingPointCloudProvider() override
void onConnectComponent() override
void onInitComponent() override
void disparityImageCallback(const crl::multisense::image::Header &header)
void onDisconnectComponent() override
Hook for subclass.
void onStartCapture(float frameRate) override
Brief description of class MultiSensePointCloudProvider.
bool doCapture() override
std::function< PropertyType(std::string)> PropertyFactoryFunction
visionx::MonocularCalibration getMonocularCalibration(const ::Ice::Current &c=Ice::emptyCurrent) override
This file offers overloads of toIce() and fromIce() functions for STL container types.
visionx::MetaPointCloudFormatPtr getDefaultPointCloudFormat() override
default point cloud format used to initialize shared memory