8 #include "aditof/camera.h"
9 #include "aditof/frame.h"
10 #include "aditof/system.h"
11 #include "aditof/version.h"
12 #include "aditof/sensor_definitions.h"
13 #include "aditof/depth_sensor_interface.h"
29 std::string config_file_name, std::string input_sensor_ip)
34 Status status = Status::OK;
35 aditof::System system;
36 std::vector<std::shared_ptr<aditof::Camera>> cameras;
38 if (!input_sensor_ip.empty())
40 std::string ip =
"ip:" + input_sensor_ip;
41 system.getCameraList(cameras, ip);
45 system.getCameraList(cameras);
56 status =
camera_->initialize(config_file_name);
57 if (status != Status::OK)
59 ROS_ERROR(
"Could not initialize camera!");
81 Status status = Status::OK;
82 aditof::System system;
84 std::vector<uint8_t> available_modes;
85 camera_->getAvailableModes(available_modes);
86 if (available_modes.empty())
92 aditof::CameraDetails camera_details;
93 camera_->getDetails(camera_details);
95 std::cout << std::endl <<
"Camera Parameters:" << std::endl;
96 std::cout <<
"Cx, Cy : " << camera_details.intrinsics.cx <<
", " << camera_details.intrinsics.cy << std::endl;
97 std::cout <<
"Fx, Fy : " << camera_details.intrinsics.fx <<
", " << camera_details.intrinsics.fy << std::endl;
98 std::cout <<
"K1, K2 : " << camera_details.intrinsics.k1 <<
", " << camera_details.intrinsics.k2 << std::endl;
99 std::cout <<
"K3, K4 : " << camera_details.intrinsics.k3 <<
", " << camera_details.intrinsics.k4 << std::endl;
100 std::cout <<
"K5, K6 : " << camera_details.intrinsics.k5 <<
", " << camera_details.intrinsics.k6 << std::endl;
101 std::cout <<
"P1, P2 : " << camera_details.intrinsics.p1 <<
", " << camera_details.intrinsics.p2 << std::endl;
126 status =
camera_->setMode(camera_mode);
127 if (status != Status::OK)
133 aditof::DepthSensorModeDetails depth_sensor_details;
134 std::shared_ptr<aditof::DepthSensorInterface> sensor =
camera_->getSensor();
136 aditof::Status st = sensor->getModeDetails(camera_mode, depth_sensor_details);
137 if (st != aditof::Status::OK)
139 ROS_ERROR(
"Failed to get frame type details!");
147 if ((depth_sensor_details.baseResolutionWidth == 1024 && depth_sensor_details.baseResolutionHeight == 1024) ||
148 (depth_sensor_details.baseResolutionWidth == 512 && depth_sensor_details.baseResolutionHeight == 640))
158 if (status != Status::OK)
160 ROS_ERROR(
"Could not start the camera!");
195 unsigned short* conf_frame,
short* xyz_frame)
199 Status status =
camera_->requestFrame(&frame);
201 if (status != Status::OK)
211 uint16_t* depth_frame_src;
212 status = frame.getData(
"depth", &depth_frame_src);
213 if (status != Status::OK)
218 memcpy(depth_frame, depth_frame_src, frame_width * frame_height *
bytes_per_pixel_);
221 unsigned short* ab_frame_src;
222 status = frame.getData(
"ab", &ab_frame_src);
223 if (status != Status::OK)
228 memcpy(ab_frame, ab_frame_src, frame_width * frame_height *
bytes_per_pixel_);
231 uint16_t* conf_frame_src;
232 status = frame.getData(
"conf", &conf_frame_src);
233 if (status != Status::OK)
235 ROS_ERROR(
"Could not get confidence data!");
238 memcpy(conf_frame, conf_frame_src, frame_width * frame_height *
bytes_per_pixel_);
241 short* xyz_frame_src;
242 status = frame.getData(
"xyz", (
unsigned short int**)&xyz_frame_src);
243 if (status != Status::OK)
248 memcpy(xyz_frame, xyz_frame_src, frame_width * frame_height * 3 *
sizeof(
short));
307 camera_->adsd3500SetABinvalidationThreshold(threshold);
318 camera_->adsd3500SetConfidenceThreshold(threshold);
329 camera_->adsd3500SetJBLFfilterEnableState(enable_jblf_filter);
340 camera_->adsd3500SetJBLFfilterSize(jbfl_filter_size);
351 camera_->adsd3500SetRadialThresholdMin(radial_min_threshold);
362 camera_->adsd3500SetRadialThresholdMax(radial_max_threshold);