28 #include <opencv2/opencv.hpp>
31 #include <ArmarXCore/interface/observers/ObserverInterface.h>
33 #include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
36 #include <VisionX/interface/components/RGBDImageProvider.h>
53 defineOptionalProperty<std::string>(
"DebugObserverName",
55 "Name of the topic the DebugObserver listens on");
56 defineOptionalProperty<std::string>(
57 "DebugDrawerTopicName",
"DebugDrawerUpdates",
"Name of the DebugDrawerTopic");
59 defineOptionalProperty<std::string>(
60 "FileName",
"VisionX/examples/point_clouds/",
"path to the klg log file");
61 defineOptionalProperty<bool>(
"Rewind",
true,
"loop through the point clouds");
63 defineOptionalProperty<Eigen::Vector2i>(
"Dimensions", Eigen::Vector2i(640, 480),
"")
64 .map(
"320x240", Eigen::Vector2i(320, 240))
65 .map(
"640x480", Eigen::Vector2i(640, 480))
66 .map(
"320x240", Eigen::Vector2i(320, 240))
67 .map(
"640x480", Eigen::Vector2i(640, 480))
68 .map(
"800x600", Eigen::Vector2i(800, 600))
69 .map(
"768x576", Eigen::Vector2i(768, 576))
70 .map(
"1024x768", Eigen::Vector2i(1024, 768))
71 .map(
"1024x1024", Eigen::Vector2i(1024, 1024))
72 .map(
"1280x960", Eigen::Vector2i(1280, 960))
73 .map(
"1600x1200", Eigen::Vector2i(1600, 1200));
76 defineOptionalProperty<std::string>(
77 "ReferenceFrameName",
"DepthCamera",
"Optional reference frame name.");
94 virtual public visionx::RGBDCapturingImageProviderInterface
103 return "KLGImageProvider";
106 visionx::StereoCalibration
109 visionx::StereoCalibration stereoCalibration;
111 Eigen::Vector2i dimensions = getProperty<Eigen::Vector2i>(
"Dimensions");
113 visionx::CameraParameters RGBCameraIntrinsics;
114 RGBCameraIntrinsics.distortion = {0, 0, 0};
115 RGBCameraIntrinsics.focalLength = {525.0, 525.0};
116 RGBCameraIntrinsics.height = dimensions(1);
117 RGBCameraIntrinsics.principalPoint = {dimensions(0) / 2.0f, dimensions(1) / 2.0f};
118 RGBCameraIntrinsics.rotation =
120 RGBCameraIntrinsics.translation =
122 RGBCameraIntrinsics.width = dimensions(0);
124 visionx::CameraParameters DepthCameraIntrinsics;
125 DepthCameraIntrinsics.distortion = {0, 0, 0};
126 DepthCameraIntrinsics.focalLength = {525.0, 525.0};
127 DepthCameraIntrinsics.height = dimensions(1);
128 DepthCameraIntrinsics.principalPoint = {dimensions(0) / 2.0f, dimensions(1) / 2.0f};
129 DepthCameraIntrinsics.rotation =
131 DepthCameraIntrinsics.translation = {0.075, 0, 0};
132 DepthCameraIntrinsics.width = dimensions(0);
136 stereoCalibration.calibrationRight =
138 stereoCalibration.calibrationLeft.cameraParam = RGBCameraIntrinsics;
139 stereoCalibration.calibrationRight.cameraParam = DepthCameraIntrinsics;
140 stereoCalibration.rectificationHomographyLeft =
142 stereoCalibration.rectificationHomographyRight =
146 return stereoCalibration;
158 return getProperty<std::string>(
"ReferenceFrameName");
170 bool capture(
void** ppImageBuffers)
override;
182 CByteImage** rgbImages;
184 int32_t currentFrame;