Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
ds5-private.h
Go to the documentation of this file.
1 // License: Apache 2.0. See LICENSE file in root directory.
2 // Copyright(c) 2015 Intel Corporation. All Rights Reserved.
3 
4 #pragma once
5 
6 #include "backend.h"
7 #include "types.h"
8 
9 #include <map>
10 #include <iomanip>
11 
12 
13 namespace librealsense
14 {
15  namespace ds
16  {
17  const uint16_t RS400_PID = 0x0ad1; // PSR
18  const uint16_t RS410_PID = 0x0ad2; // ASR
19  const uint16_t RS415_PID = 0x0ad3; // ASRC
20  const uint16_t RS430_PID = 0x0ad4; // AWG
21  const uint16_t RS430_MM_PID = 0x0ad5; // AWGT
22  const uint16_t RS_USB2_PID = 0x0ad6; // USB2
23  const uint16_t RS420_PID = 0x0af6; // PWG
24  const uint16_t RS420_MM_PID = 0x0afe; // PWGT
25  const uint16_t RS410_MM_PID = 0x0aff; // ASR
26  const uint16_t RS400_MM_PID = 0x0b00; // PSR
27  const uint16_t RS430_MM_RGB_PID = 0x0b01; // AWGCT
28  const uint16_t RS460_PID = 0x0b03; // DS5U
29  const uint16_t RS435_RGB_PID = 0x0b07; // AWGC
30  const uint16_t RS405_PID = 0x0b0c; // DS5U
31 
32  // DS5 depth XU identifiers
33  const uint8_t DS5_HWMONITOR = 1;
34  const uint8_t DS5_DEPTH_EMITTER_ENABLED = 2;
35  const uint8_t DS5_EXPOSURE = 3;
36  const uint8_t DS5_LASER_POWER = 4;
37  const uint8_t DS5_ERROR_REPORTING = 7;
38  const uint8_t DS5_EXT_TRIGGER = 8;
40  const uint8_t DS5_ENABLE_AUTO_WHITE_BALANCE = 0xA;
41  const uint8_t DS5_ENABLE_AUTO_EXPOSURE = 0xB;
42 
43  static const std::set<std::uint16_t> rs400_sku_pid = {
58  };
59 
60  static const std::map<std::uint16_t, std::string> rs400_sku_names = {
61  { RS400_PID, "Intel RealSense D400"},
62  { RS400_MM_PID, "Intel RealSense D400 with Tracking Module"},
63  { RS410_PID, "Intel RealSense D410"},
64  { RS410_MM_PID, "Intel RealSense D410 with Tracking Module"},
65  { RS415_PID, "Intel RealSense D415"},
66  { RS420_PID, "Intel RealSense D420"},
67  { RS420_MM_PID, "Intel RealSense D420 with Tracking Module"},
68  { RS430_PID, "Intel RealSense D430"},
69  { RS430_MM_PID, "Intel RealSense D430 with Tracking Module"},
70  { RS430_MM_PID, "Intel RealSense D430 with Tracking Module and RGB Module"},
71  { RS435_RGB_PID, "Intel RealSense D435"},
72  { RS460_PID, "Intel RealSense D460" },
73  { RS405_PID, "Intel RealSense D405" },
74  { RS_USB2_PID, "Intel RealSense USB2" }
75  };
76 
77  // DS5 fisheye XU identifiers
78  const uint8_t FISHEYE_EXPOSURE = 1;
79 
81  { 0xC9606CCB, 0x594C, 0x4D25,{ 0xaf, 0x47, 0xcc, 0xc4, 0x96, 0x43, 0x59, 0x95 } } };
82 
84  { 0xf6c3c3d1, 0x5cde, 0x4477,{ 0xad, 0xf0, 0x41, 0x33, 0xf5, 0x8d, 0xa6, 0xf4 } } };
85 
86  enum fw_cmd : uint8_t
87  {
88  GLD = 0x0f, // FW logs
89  GVD = 0x10, // camera details
90  GETINTCAL = 0x15, // Read calibration table
91  HWRST = 0x20, // hardware reset
92  OBW = 0x29, // OVT bypass write
93  SET_ADV = 0x2B, // set advanced mode control
94  GET_ADV = 0x2C, // get advanced mode control
95  EN_ADV = 0x2D, // enable advanced mode
96  UAMG = 0X30, // get advanced mode status
97  SETAEROI = 0x44, // set auto-exposure region of interest
98  GETAEROI = 0x45, // get auto-exposure region of interest
99  MMER = 0x4F, // MM EEPROM read ( from DS5 cache )
100  GET_EXTRINSICS = 0x53, // get extrinsics
101  };
102 
103  const int etDepthTableControl = 9; // Identifier of the depth table control
104 
106  {
107  GET_VAL = 0,
108  GET_MIN = 1,
109  GET_MAX = 2,
110  };
111 
112  const std::string DEPTH_STEREO = "Stereo Module";
113 
115  {
116  big_endian<uint16_t> version; // major.minor. Big-endian
117  uint16_t table_type; // ctCalibration
118  uint32_t table_size; // full size including: TOC header + TOC + actual tables
119  uint32_t param; // This field content is defined ny table type
120  uint32_t crc32; // crc of all the actual table data excluding header/CRC
121  };
122 
123  enum ds5_rect_resolutions : unsigned short
124  {
138  // Resolutions for DS5U
143  };
144 
146  {
148  float3x3 intrinsic_left; // left camera intrinsic data, normilized
149  float3x3 intrinsic_right; // right camera intrinsic data, normilized
150  float3x3 world2left_rot; // the inverse rotation of the left camera
151  float3x3 world2right_rot; // the inverse rotation of the right camera
152  float baseline; // the baseline between the cameras in mm units
153  uint32_t brown_model; // Distortion model: 0 - DS distorion model, 1 - Brown model
154  uint8_t reserved1[88];
156  uint8_t reserved2[64];
157  };
158 
159  template<class T>
160  const T* check_calib(const std::vector<uint8_t>& raw_data)
161  {
162  using namespace std;
163 
164  auto table = reinterpret_cast<const T*>(raw_data.data());
165  auto header = reinterpret_cast<const table_header*>(raw_data.data());
166  if(raw_data.size() < sizeof(table_header))
167  {
168  throw invalid_value_exception(to_string() << "Calibration data invald, buffer too small : expected " << sizeof(table_header) << " , actual: " << raw_data.size());
169  }
170  // verify the parsed table
171  if (table->header.crc32 != calc_crc32(raw_data.data() + sizeof(table_header), raw_data.size() - sizeof(table_header)))
172  {
173  throw invalid_value_exception("Calibration data CRC error, parsing aborted!");
174  }
175  LOG_DEBUG("Loaded Valid Table: version [mjr.mnr]: 0x" <<
176  hex << setfill('0') << setw(4) << header->version << dec
177  << ", type " << header->table_type << ", size " << header->table_size
178  << ", CRC: " << hex << header->crc32);
179  return table;
180  }
181 
182 #pragma pack(push, 1)
183 
185  {
187  int64_t serial_mm;
188  int64_t serial_depth;
189  float3x3 rotation; // the fisheye rotation matrix
190  float3 translation; // the fisheye translation vector
191  };
192 
194  {
197  };
198 
200  {
201  float bias[3];
202  float scale[3];
203  };
204 
206  {
208  float intrinsics_model; // 1 - Brown, 2 - FOV, 3 - Kannala Brandt
209  float3x3 intrinsic; // FishEye intrinsic matrix, normalize by [-1 1]
210  float distortion[5]; // FishEye forward distortion parameters, F-theta model
211  extrinsics_table fisheye_to_imu; // FishEye rotation matrix and translation vector in IMU CS
212  uint8_t reserved[28];
213  };
214 
216 
218  {
220  float rmax;
224  uint8_t reserved[64];
225  };
226 
228 
230  {
232  uint8_t serial_num[8]; // 2 bytes reserved + 6 data (0000xxxxxxxxxxxx)
233  uint8_t optic_module_mm[4];
234  uint8_t ta[10];
235  uint32_t board_num; // SKU id
236  uint32_t board_rev; // 0
237  uint8_t reserved[34]; // Align to 64 byte ???
238  };
239 
240  constexpr size_t tm1_module_info_size = sizeof(tm1_module_info);
241 
243  {
245  float calibration_model_flag; // 1 - Brown, 2 - FOV, 3 - Kannala Brandt ???????
247  float temperature;
248  uint8_t reserved[20];
249  };
250 
251  constexpr size_t tm1_calib_model_size = sizeof(tm1_calib_model);
252 
254  {
256  uint8_t serial_num[8]; // 2 bytes reserved + 6 data 12 digits in (0000xxxxxxxxxxxx) format
257  uint8_t reserved[8];
258  };
259 
261 
263  {
268  };
269 
271 
272  // TM1 ver 0.51
273  struct tm1_eeprom
274  {
278  };
279 
280  constexpr size_t tm1_eeprom_size = sizeof(tm1_eeprom);
281 
283  {
284  uint32_t depth_units;
289  };
290 
292  {
294  // RGB Intrinsic
295  float3x3 intrinsic; // normalized by [-1 1]
296  float distortion[5]; // RGB forward distortion coefficients, Brown model
297  // RGB Extrinsic
298  float3 rotation; // RGB rotation angles (Rodrigues)
299  float3 translation; // RGB translation vector, mm
300  // RGB Projection
301  float projection[12]; // Projection matrix from depth to RGB [3 X 4]
302  uint16_t width; // original calibrated resolution
303  uint16_t height;
304  // RGB Rectification Coefficients
305  float3x3 intrinsic_matrix_rect; // RGB intrinsic matrix after rectification
306  float3x3 rotation_matrix_rect; // Rotation matrix for rectification of RGB
307  float3 translation_rect; // Translation vector for rectification
308  float reserved[24];
309  };
310 
311 
313  {
315  memset(&result, 0, sizeof(result));
316  for (int i = 0; i < 3; i++)
317  {
318  result.data[i][3] = data.bias[i];
319  result.data[i][i] = data.scale[i];
320  }
321  return result;
322  }
323 
324 
325 
326 #pragma pack(pop)
327 
329  {
334  };
335 
337  {
345  max_id = -1
346  };
347 
349  {
350  uint16_t version; // major.minor
357  std::map<calibration_table_id, bool> data_present;
358 
359  ds5_calibration() : version(0), left_imager_intrinsic({}), right_imager_intrinsic({}),
360  left_imager_extrinsic({}), right_imager_extrinsic({}), depth_extrinsic({})
361  {
362  for (auto i = 0; i < max_ds5_rect_resolutions; i++)
363  depth_intrinsic[i] = {};
364  data_present.emplace(coefficients_table_id, false);
365  data_present.emplace(depth_calibration_id, false);
366  data_present.emplace(rgb_calibration_id, false);
367  data_present.emplace(fisheye_calibration_id, false);
368  data_present.emplace(imu_calibration_id, false);
369  data_present.emplace(lens_shading_id, false);
370  data_present.emplace(projector_id, false);
371  };
372  };
373 
374  static std::map< ds5_rect_resolutions, int2> resolutions_list = {
375  { res_320_240,{ 320, 240 } },
376  { res_424_240,{ 424, 240 } },
377  { res_480_270,{ 480, 270 } },
378  { res_640_360,{ 640, 360 } },
379  { res_640_400,{ 640, 400 } },
380  { res_640_480,{ 640, 480 } },
381  { res_848_480,{ 848, 480 } },
382  { res_960_540,{ 960, 540 } },
383  { res_1280_720,{ 1280, 720 } },
384  { res_1280_800,{ 1280, 800 } },
385  { res_1920_1080,{ 1920, 1080 } },
386  //Resolutions for DS5U
387  { res_576_576,{ 576, 576 } },
388  { res_720_720,{ 720, 720 } },
389  { res_1152_1152,{ 1152, 1152 } },
390  };
391 
392 
393  ds5_rect_resolutions width_height_to_ds5_rect_resolutions(uint32_t width, uint32_t height);
394 
395  rs2_intrinsics get_intrinsic_by_resolution(const std::vector<uint8_t>& raw_data, calibration_table_id table_id, uint32_t width, uint32_t height);
396  rs2_intrinsics get_intrinsic_by_resolution_coefficients_table(const std::vector<uint8_t>& raw_data, uint32_t width, uint32_t height);
397  rs2_intrinsics get_intrinsic_fisheye_table(const std::vector<uint8_t>& raw_data, uint32_t width, uint32_t height);
398  pose get_fisheye_extrinsics_data(const std::vector<uint8_t>& raw_data);
399  pose get_color_stream_extrinsic(const std::vector<uint8_t>& raw_data);
400 
401  bool try_fetch_usb_device(std::vector<platform::usb_device_info>& devices,
403 
404 
406  {
407  success = 0,
433  };
434 
435  // Elaborate FW XU report. The reports may be consequently extended for PU/CTL/ISP
436  const std::map< uint8_t, std::string> ds5_fw_error_report = {
437  { success, "Success" },
438  { hot_laser_power_reduce, "Laser hot - power reduce" },
439  { hot_laser_disable, "Laser hot - disabled" },
440  { flag_B_laser_disable, "Flag B - laser disabled" },
441  { stereo_module_not_connected, "Stered Module is not connected" },
442  { eeprom_corrupted, "EEPROM corrupted" },
443  { calibration_corrupted, "Calibration corrupted" },
444  { mm_upd_fail, "Moton Module update failed" },
445  { isp_upd_fail, "ISP update failed" },
446  { mm_force_pause, "Motion Module force pause" },
447  { mm_failure, "Motion Module failure" },
448  { usb_scp_overflow, "USB SCP overflow" },
449  { usb_rec_overflow, "USB REC overflow" },
450  { usb_cam_overflow, "USB CAM overflow" },
451  { mipi_left_error, "Left MIPI error" },
452  { mipi_right_error, "Right MIPI error" },
453  { mipi_rt_error, "RT MIPI error" },
454  { mipi_fe_error, "FishEye MIPI error" },
455  { i2c_cfg_left_error, "Left IC2 Config error" },
456  { i2c_cfg_right_error, "Right IC2 Config error" },
457  { i2c_cfg_rt_error, "RT IC2 Config error" },
458  { i2c_cfg_fe_error, "FishEye IC2 Config error" },
459  { stream_not_start_z, "Depth stream start failure" },
460  { stream_not_start_y, "IR stream start failure" },
461  { stream_not_start_cam, "Camera stream start failure" },
462  { rec_error, "REC error" },
463  };
464 
465  } // librealsense::ds
466 } // namespace librealsense
Definition: ds5-private.h:420
rs2_intrinsics get_intrinsic_by_resolution_coefficients_table(const std::vector< uint8_t > &raw_data, uint32_t width, uint32_t height)
Definition: ds5-private.h:127
Definition: ds5-private.h:90
Definition: ds5-private.h:242
rs2_extrinsics right_imager_extrinsic
Definition: ds5-private.h:355
const std::string DEPTH_STEREO
Definition: ds5-private.h:112
const int etDepthTableControl
Definition: ds5-private.h:103
float bias[3]
Definition: ds5-private.h:201
Definition: ds5-private.h:418
rs2_extrinsics left_imager_extrinsic
Definition: ds5-private.h:354
constexpr size_t tm1_calibration_table_size
Definition: ds5-private.h:270
rs2_motion_device_intrinsic create_motion_intrinsics(imu_intrinsics data)
Definition: ds5-private.h:312
Definition: ds5-private.h:427
Definition: ds5-private.h:253
float rmax
Definition: ds5-private.h:220
float3x3 intrinsic_matrix_rect
Definition: ds5-private.h:305
Definition: ds5-private.h:414
uint16_t table_type
Definition: ds5-private.h:117
Definition: ds5-private.h:95
float3x3 rotation
Definition: ds5-private.h:189
Definition: types.h:418
int64_t serial_mm
Definition: ds5-private.h:187
imu_calibration_table imu_calib_table
Definition: ds5-private.h:266
int32_t depth_clamp_min
Definition: ds5-private.h:285
Definition: ds5-private.h:331
table_header header
Definition: ds5-private.h:186
Definition: ds5-private.h:424
Definition: ds5-private.h:108
uint16_t height
Definition: ds5-private.h:303
Definition: ds5-private.h:91
const uint8_t DS5_LASER_POWER
Definition: ds5-private.h:36
rs2_intrinsics get_intrinsic_fisheye_table(const std::vector< uint8_t > &raw_data, uint32_t width, uint32_t height)
constexpr size_t tm1_serial_num_table_size
Definition: ds5-private.h:260
constexpr size_t tm1_eeprom_size
Definition: ds5-private.h:280
const uint8_t DS5_EXT_TRIGGER
Definition: ds5-private.h:38
int32_t disparity_multiplier
Definition: ds5-private.h:287
const uint16_t RS415_PID
Definition: ds5-private.h:19
ds5_notifications_types
Definition: ds5-private.h:405
constexpr size_t imu_calibration_table_size
Definition: ds5-private.h:227
Definition: ds5-private.h:341
big_endian< uint16_t > version
Definition: ds5-private.h:116
Definition: ds5-private.h:338
uint32_t crc32
Definition: ds5-private.h:120
Definition: ds5-private.h:291
rs2_extrinsics depth_extrinsic
Definition: ds5-private.h:356
float calibration_model_flag
Definition: ds5-private.h:245
advanced_query_mode
Definition: ds5-private.h:105
Definition: ds5-private.h:408
const uint16_t RS460_PID
Definition: ds5-private.h:28
Definition: ds5-private.h:412
Definition: ds5-private.h:342
Definition: ds5-private.h:217
float scale[3]
Definition: ds5-private.h:202
extrinsics_table imu_to_imu
Definition: ds5-private.h:221
const uint16_t RS435_RGB_PID
Definition: ds5-private.h:29
uint16_t width
Definition: ds5-private.h:302
tm1_calib_model calib_model
Definition: ds5-private.h:265
const uint8_t DS5_HWMONITOR
Definition: ds5-private.h:33
Definition: ds5-private.h:415
float3x3 rotation
Definition: ds5-private.h:195
float data[3][4]
Definition: rs_types.h:74
Definition: ds5-private.h:131
Definition: ds5-private.h:97
const uint8_t DS5_ERROR_REPORTING
Definition: ds5-private.h:37
tm1_module_info module_info
Definition: ds5-private.h:276
rs2_intrinsics left_imager_intrinsic
Definition: ds5-private.h:351
Definition: ds5-private.h:135
Definition: ds5-private.h:132
Definition: stream.h:188
Definition: ds5-private.h:410
float baseline
Definition: ds5-private.h:152
Definition: ds5-private.h:134
imu_intrinsics gyro_intrinsics
Definition: ds5-private.h:223
Definition: ds5-private.h:140
Definition: ds5-private.h:407
float intrinsics_model
Definition: ds5-private.h:208
Definition: ds5-private.h:343
float3x3 intrinsic_left
Definition: ds5-private.h:148
Definition: ds5-private.h:417
float3x3 world2right_rot
Definition: ds5-private.h:151
float3 translation_rect
Definition: ds5-private.h:307
Definition: ds5-private.h:423
ds5_rect_resolutions width_height_to_ds5_rect_resolutions(uint32_t width, uint32_t height)
Definition: ds5-private.h:126
Definition: ds5-private.h:100
Definition: ds5-private.h:98
Definition: ds5-private.h:425
ds5_calibration()
Definition: ds5-private.h:359
Definition: algo.h:16
Definition: ds5-private.h:199
Definition: ds5-private.h:339
const uint16_t RS410_MM_PID
Definition: ds5-private.h:25
Definition: ds5-private.h:107
float3x3 intrinsic_right
Definition: ds5-private.h:149
Definition: ds5-private.h:129
table_header header
Definition: ds5-private.h:293
std::map< calibration_table_id, bool > data_present
Definition: ds5-private.h:357
Definition: ds5-private.h:413
Definition: ds5-private.h:141
const uint16_t RS410_PID
Definition: ds5-private.h:18
Definition: types.h:417
#define LOG_DEBUG(...)
Definition: types.h:108
table_header header
Definition: ds5-private.h:244
float3 rotation
Definition: ds5-private.h:298
bool try_fetch_usb_device(std::vector< platform::usb_device_info > &devices, const platform::uvc_device_info &info, platform::usb_device_info &result)
float3 translation
Definition: ds5-private.h:299
Definition: ds5-private.h:273
fisheye_calibration_table fe_calibration
Definition: ds5-private.h:246
Definition: types.h:415
constexpr size_t fisheye_calibration_table_size
Definition: ds5-private.h:215
int32_t depth_clamp_max
Definition: ds5-private.h:286
float3 translation
Definition: ds5-private.h:196
Definition: ds5-private.h:421
Definition: ds5-private.h:193
Definition: ds5-private.h:92
Definition: ds5-private.h:99
Definition: ds5-private.h:128
pose get_fisheye_extrinsics_data(const std::vector< uint8_t > &raw_data)
const uint8_t FISHEYE_EXPOSURE
Definition: ds5-private.h:78
uint32_t param
Definition: ds5-private.h:119
const uint16_t RS420_PID
Definition: ds5-private.h:23
const std::map< uint8_t, std::string > ds5_fw_error_report
Definition: ds5-private.h:436
const uint16_t RS_USB2_PID
Definition: ds5-private.h:22
float3x3 intrinsic
Definition: ds5-private.h:295
Definition: ds5-private.h:137
constexpr size_t tm1_calib_model_size
Definition: ds5-private.h:251
table_header header
Definition: ds5-private.h:231
float3x3 rotation_matrix_rect
Definition: ds5-private.h:306
Definition: ds5-private.h:431
Definition: ds5-private.h:125
const platform::extension_unit depth_xu
Definition: ds5-private.h:80
table_header header
Definition: ds5-private.h:255
const uint8_t DS5_ENABLE_AUTO_EXPOSURE
Definition: ds5-private.h:41
Definition: ds5-private.h:419
const uint8_t DS5_EXPOSURE
Definition: ds5-private.h:35
table_header header
Definition: ds5-private.h:147
const T * check_calib(const std::vector< uint8_t > &raw_data)
Definition: ds5-private.h:160
Definition: ds5-private.h:344
Definition: ds5-private.h:88
Definition: ds5-private.h:229
constexpr size_t tm1_module_info_size
Definition: ds5-private.h:240
Definition: ds5-private.h:93
Definition: ds5-private.h:340
float temperature
Definition: ds5-private.h:247
Definition: types.h:55
rs2_intrinsics get_intrinsic_by_resolution(const std::vector< uint8_t > &raw_data, calibration_table_id table_id, uint32_t width, uint32_t height)
Cross-stream extrinsics: encode the topology describing how the different devices are connected...
Definition: rs_sensor.h:81
Definition: types.h:416
float3x3 world2left_rot
Definition: ds5-private.h:150
const uint16_t RS430_PID
Definition: ds5-private.h:20
const uint8_t DS5_ENABLE_AUTO_WHITE_BALANCE
Definition: ds5-private.h:40
float3 translation
Definition: ds5-private.h:190
Definition: ds5-private.h:205
const uint16_t RS420_MM_PID
Definition: ds5-private.h:24
Definition: ds5-private.h:429
table_header header
Definition: ds5-private.h:219
Definition: ds5-private.h:145
Definition: ds5-private.h:416
imu_intrinsics accel_intrinsics
Definition: ds5-private.h:222
Definition: ds5-private.h:262
Definition: ds5-private.h:409
uint32_t board_num
Definition: ds5-private.h:235
const platform::extension_unit fisheye_xu
Definition: ds5-private.h:83
Definition: ds5-private.h:345
uint16_t version
Definition: ds5-private.h:350
uint32_t table_size
Definition: ds5-private.h:118
int64_t serial_depth
Definition: ds5-private.h:188
Definition: ds5-private.h:330
const uint8_t DS5_DEPTH_EMITTER_ENABLED
Definition: ds5-private.h:34
Definition: ds5-private.h:333
table_header header
Definition: ds5-private.h:207
uint32_t depth_units
Definition: ds5-private.h:284
int32_t disparity_shift
Definition: ds5-private.h:288
Video stream intrinsics.
Definition: rs_types.h:55
uint32_t brown_model
Definition: ds5-private.h:153
rs2_intrinsics right_imager_intrinsic
Definition: ds5-private.h:352
Definition: ds5-private.h:432
const uint16_t RS430_MM_RGB_PID
Definition: ds5-private.h:27
Definition: ds5-private.h:184
Definition: ds5-private.h:94
Motion device intrinsics: scale, bias, and variances.
Definition: rs_types.h:68
ds5_rect_resolutions
Definition: ds5-private.h:123
calibration_table_id
Definition: ds5-private.h:336
Definition: ds5-private.h:348
Definition: ds5-private.h:139
Definition: ds5-private.h:430
Definition: ds5-private.h:422
tm1_calibration_table calibration_table
Definition: ds5-private.h:277
Definition: ds5-private.h:109
float3x3 intrinsic
Definition: ds5-private.h:209
Definition: ds5-private.h:136
Definition: ds5-private.h:89
gvd_fields
Definition: ds5-private.h:328
Definition: ds5-private.h:96
pose get_color_stream_extrinsic(const std::vector< uint8_t > &raw_data)
table_header header
Definition: ds5-private.h:275
tm1_serial_num_table serial_num_table
Definition: ds5-private.h:267
Definition: ds5-private.h:142
extrinsics_table fisheye_to_imu
Definition: ds5-private.h:211
Definition: ds5-private.h:133
const uint16_t RS400_PID
Definition: ds5-private.h:17
const uint16_t RS400_MM_PID
Definition: ds5-private.h:26
Definition: ds5-private.h:130
Definition: ds5-private.h:114
const uint8_t DS5_ASIC_AND_PROJECTOR_TEMPERATURES
Definition: ds5-private.h:39
uint32_t board_rev
Definition: ds5-private.h:236
Definition: ds5-private.h:428
const uint16_t RS430_MM_PID
Definition: ds5-private.h:21
uint32_t calc_crc32(const uint8_t *buf, size_t bufsize)
const uint16_t RS405_PID
Definition: ds5-private.h:30
Definition: ds5-private.h:282
Definition: ds5-private.h:426
fw_cmd
Definition: ds5-private.h:86
table_header header
Definition: ds5-private.h:264