SLAMTEC Aurora Public Remote SDK  1.2.0-rtm
slamtec_remote_objects.hxx
1 /*
2  * SLAMTEC Aurora
3  * Copyright 2013 - 2024 SLAMTEC Co., Ltd.
4  *
5  * http://www.slamtec.com
6  *
7  * Aurora Remote SDK
8  * C++ Wrapper Header of the SDK
9  *
10  * At lease C++ 14 is required
11  */
12 
13 #include <type_traits>
14 
15 #pragma once
16 
17 namespace cv {
18  class Mat; // in case of opencv
19 }
20 
21 namespace rp { namespace standalone { namespace aurora {
22 
23 
24 class Noncopyable {
25 protected:
26  Noncopyable() = default;
27  ~Noncopyable() = default;
28 
29  Noncopyable(const Noncopyable&) = delete;
30  Noncopyable& operator=(const Noncopyable&) = delete;
31 
32  Noncopyable(Noncopyable&&) = default;
33  Noncopyable& operator=(Noncopyable&&) = default;
34 };
35 
42 {
43 public:
45  memset(this, 0, sizeof(slamtec_aurora_sdk_connection_info_t));
46  }
47 
55  SDKConnectionInfo(const char* ip, int port = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_PORT, const char * proto = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_PROTOCOL) : SDKConnectionInfo() {
56  snprintf(this->address, sizeof(this->address), "%s", ip);
57  this->port = port;
58  snprintf(this->protocol_type, sizeof(this->protocol_type), "%s", proto);
59  }
60 
62  memcpy(this, &other, sizeof(SDKConnectionInfo));
63  }
64 
65  SDKConnectionInfo& operator=(const SDKConnectionInfo& other) {
66  memcpy(this, &other, sizeof(SDKConnectionInfo));
67  return *this;
68  }
69 
70  SDKConnectionInfo(const slamtec_aurora_sdk_connection_info_t& other) : SDKConnectionInfo() {
71  memcpy(this, &other, sizeof(slamtec_aurora_sdk_connection_info_t));
72  }
73 
74 
81  std::string toLocatorString() const {
82  char buffer[128];
83  snprintf(buffer, sizeof(buffer), "%s/%s:%d", protocol_type, address, port);
84  return std::string(buffer);
85  }
86 
94  bool fromLocatorString(const char* input) {
95  std::string protocol;
96  std::string ip;
97  uint16_t tport = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_PORT;
98 
99  std::string inputWrapper = input;
100 
101  size_t protocol_pos = inputWrapper.find('/');
102  if (protocol_pos != std::string::npos) {
103  protocol = inputWrapper.substr(0, protocol_pos);
104  }
105  else {
106  protocol = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_PROTOCOL;
107  protocol_pos = -1;
108  }
109 
110  size_t port_pos = inputWrapper.rfind(':');
111  if (port_pos != std::string::npos) {
112  ip = inputWrapper.substr(protocol_pos + 1, port_pos - protocol_pos - 1);
113  auto&& portStr = inputWrapper.substr(port_pos + 1);
114  tport = (uint16_t)std::stoi(portStr);
115  }
116  else {
117  ip = inputWrapper.substr(protocol_pos + 1);
118  }
119 
120  snprintf(protocol_type, sizeof(protocol_type), "%s", protocol.c_str());
121  snprintf(address, sizeof(address), "%s", ip.c_str());
122  this->port = tport;
123 
124  return true;
125  }
126 };
127 
128 
135 {
136 public:
138  memset(this, 0, sizeof(slamtec_aurora_sdk_server_connection_info_t));
139  }
140 
147  {
148  memcpy(this, &info, sizeof(slamtec_aurora_sdk_server_connection_info_t));
149  }
150 
151 
153  memcpy(this, &other, sizeof(SDKServerConnectionDesc));
154  }
155 
156  SDKServerConnectionDesc(const std::vector<SDKConnectionInfo>& src) {
157  memset(this, 0, sizeof(slamtec_aurora_sdk_server_connection_info_t));
158  for (auto&& info : src) {
159  push_back(info);
160  }
161  }
162 
170  SDKServerConnectionDesc(const char* ip, int port = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_PORT, const char* proto = SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_PROTOCOL)
171  {
172  memset(this, 0, sizeof(slamtec_aurora_sdk_server_connection_info_t));
173  push_back(SDKConnectionInfo(ip, port, proto));
174  }
175 
176  SDKServerConnectionDesc& operator=(const SDKServerConnectionDesc& other) {
177  memcpy(this, &other, sizeof(SDKServerConnectionDesc));
178  return *this;
179  }
180 
186  std::vector<SDKConnectionInfo> toVector() const {
187  std::vector<SDKConnectionInfo> result;
188  for (size_t i = 0; i < connection_count; i++) {
189  result.push_back(connection_info[i]);
190  }
191  return result;
192  }
193 
194  SDKServerConnectionDesc& operator=(const std::vector<SDKConnectionInfo>& src) {
195  memset(this, 0, sizeof(slamtec_aurora_sdk_server_connection_info_t));
196  for (auto&& info : src) {
197  push_back(info);
198  }
199  return *this;
200  }
201 
207  size_t size() const {
208  return connection_count;
209  }
210 
216  size_t capacity() const {
217  return sizeof(connection_info) / sizeof(connection_info[0]);
218  }
219 
224  void clear() {
225  connection_count = 0;
226  }
227 
235  if (connection_count >= capacity()) {
236  return false;
237  }
238 
240  return true;
241  }
242 
247  void pop_back() {
248  if (connection_count > 0) {
250  }
251  }
252 
259  const SDKConnectionInfo& operator[](size_t index) const {
260  return *(const SDKConnectionInfo *) ( & connection_info[index]);
261  }
262 
269  const SDKConnectionInfo& at(size_t index) const {
270  return *(const SDKConnectionInfo*)(&connection_info[index]);
271  }
272 
273 
274 };
275 
282 public:
283 
284  RemoteImageRef(const slamtec_aurora_sdk_image_desc_t& desc, const void * data)
285  : _desc(desc), _data(data)
286  {
287  }
288 
292  const void* _data;
293 
294  /*
295  * @brief The description of the image
296  */
297  const slamtec_aurora_sdk_image_desc_t & _desc;
298 
299 
300 public:
308  template <typename T>
309  typename std::enable_if<std::is_same<T, cv::Mat>::value, bool>::type
310  toMat(T &mat)const {
311  switch (_desc.format)
312  {
313  case 0: // mono
314  mat = T(_desc.height, _desc.width, 0, (void*)_data, _desc.stride);
315  break;
316  case 1: // bgr
317  mat = T(_desc.height, _desc.width, (2<<3), (void*)_data, _desc.stride);
318  break;
319  case 2: // rgba
320  mat = T(_desc.height, _desc.width, (3<<3), (void*)_data, _desc.stride);
321  break;
322  default:
323  mat = T();
324  return false;
325  }
326 
327  return true;
328  }
329 
330 };
331 
338 public:
342  , _keypoints_left(_keypoints_buffer_left.data())
343  , _keypoints_right(_keypoints_buffer_rightf.data())
344  {
346  }
347 
355  : trackingInfo(info)
356  , leftImage(info.left_image_desc, buffer.imgdata_left)
357  , rightImage(info.right_image_desc, buffer.imgdata_right)
358  , _keypoints_left(buffer.keypoints_left)
359  , _keypoints_right(buffer.keypoints_right)
360  {
361  }
362 
374  std::vector<uint8_t>&& imgbuffer_left,
375  std::vector<uint8_t>&& imgbuffer_right,
376  std::vector< slamtec_aurora_sdk_keypoint_t>&& keypoints_buffer_left,
377  std::vector< slamtec_aurora_sdk_keypoint_t>&& keypoints_buffer_right)
378  : trackingInfo(info)
379  , leftImage(info.left_image_desc, imgbuffer_left.data())
380  , rightImage(info.right_image_desc, imgbuffer_right.data())
381  , _keypoints_left(keypoints_buffer_left.data())
382  , _keypoints_right(keypoints_buffer_right.data())
383  , _imgbuffer_left(std::move(imgbuffer_left))
384  , _imgbuffer_right(std::move(imgbuffer_right))
385  , _keypoints_buffer_left(std::move(keypoints_buffer_left))
386  , _keypoints_buffer_rightf(std::move(keypoints_buffer_right))
387  {}
388 
390  : trackingInfo(other.trackingInfo)
391  , leftImage(trackingInfo.left_image_desc, nullptr)
392  , rightImage(trackingInfo.right_image_desc, nullptr)
393  , _keypoints_left(nullptr)
394  , _keypoints_right(nullptr)
395  {
396  _copyFrom(other);
397  }
398 
399  RemoteTrackingFrameInfo(RemoteTrackingFrameInfo&& other)
400  : trackingInfo(other.trackingInfo)
401  , leftImage(trackingInfo.left_image_desc, nullptr)
402  , rightImage(trackingInfo.right_image_desc, nullptr)
403  , _keypoints_left(nullptr)
404  , _keypoints_right(nullptr)
405  {
406  if (!other._isOwnBuffer()) {
407  _copyFrom(other);
408  }
409  else {
410  _moveFrom(other);
411  }
412  }
413 
414 
415  RemoteTrackingFrameInfo& operator=(const RemoteTrackingFrameInfo& other) {
416  trackingInfo = other.trackingInfo;
417  _copyFrom(other);
418  return *this;
419  }
420 
421  RemoteTrackingFrameInfo& operator=(RemoteTrackingFrameInfo&& other) {
422  trackingInfo = other.trackingInfo;
423  if (!other._isOwnBuffer()) {
424  _copyFrom(other);
425  }
426  else {
427  _moveFrom(other);
428  }
429  return *this;
430  }
431 
438  return _keypoints_left;
439  }
440 
447  return _keypoints_right;
448  }
449 
455  size_t getKeypointsLeftCount() const {
457  }
458 
464  size_t getKeypointsRightCount() const {
466  }
467 
468 
469 public:
470 
475 
480 
485 
486 protected:
487  bool _isOwnBuffer() const {
488  return (_keypoints_left == _keypoints_buffer_left.data());
489  }
490 
491  void _moveFrom(RemoteTrackingFrameInfo& other) {
492  _imgbuffer_left = std::move(other._imgbuffer_left);
493  _imgbuffer_right = std::move(other._imgbuffer_right);
494  _keypoints_buffer_left = std::move(other._keypoints_buffer_left);
495  _keypoints_buffer_rightf = std::move(other._keypoints_buffer_rightf);
496 
497  leftImage._data = _imgbuffer_left.data();
498  rightImage._data = _imgbuffer_right.data();
499  _keypoints_left = _keypoints_buffer_left.data();
500  _keypoints_right = _keypoints_buffer_rightf.data();
501 
502  }
503 
504  void _copyFrom(const RemoteTrackingFrameInfo& other) {
505  if (other.leftImage._data) {
506  _imgbuffer_left.resize(other.trackingInfo.left_image_desc.data_size);
507  memcpy(_imgbuffer_left.data(), other.leftImage._data, other.trackingInfo.left_image_desc.data_size);
508  leftImage._data = _imgbuffer_left.data();
509  }
510  else {
511  leftImage._data = nullptr;
512  _imgbuffer_left.clear();
513  }
514 
515  if (other.rightImage._data) {
516  _imgbuffer_right.resize(other.trackingInfo.right_image_desc.data_size);
517  memcpy(_imgbuffer_right.data(), other.rightImage._data, other.trackingInfo.right_image_desc.data_size);
518  rightImage._data = _imgbuffer_right.data();
519  }
520  else {
521  rightImage._data = nullptr;
522  _imgbuffer_right.clear();
523  }
524 
525  if (other._keypoints_left) {
526  _keypoints_buffer_left.resize(other.trackingInfo.keypoints_left_count);
527  memcpy(_keypoints_buffer_left.data(), other._keypoints_left, other.trackingInfo.keypoints_left_count * sizeof(slamtec_aurora_sdk_keypoint_t));
528  _keypoints_left = _keypoints_buffer_left.data();
529  }
530  else {
531  _keypoints_left = nullptr;
532  _keypoints_buffer_left.clear();
533  }
534 
535  if (other._keypoints_right) {
536  _keypoints_buffer_rightf.resize(other.trackingInfo.keypoints_right_count);
537  memcpy(_keypoints_buffer_rightf.data(), other._keypoints_right, other.trackingInfo.keypoints_right_count * sizeof(slamtec_aurora_sdk_keypoint_t));
538  _keypoints_right = _keypoints_buffer_rightf.data();
539  }
540  else {
541  _keypoints_right = nullptr;
542  _keypoints_buffer_rightf.clear();
543  }
544  }
545 
546 
547  const slamtec_aurora_sdk_keypoint_t* _keypoints_left;
548  const slamtec_aurora_sdk_keypoint_t* _keypoints_right;
549 
550 
551  std::vector<uint8_t> _imgbuffer_left;
552  std::vector<uint8_t> _imgbuffer_right;
553  std::vector< slamtec_aurora_sdk_keypoint_t> _keypoints_buffer_left;
554  std::vector< slamtec_aurora_sdk_keypoint_t> _keypoints_buffer_rightf;
555 
556 };
557 
564 public:
565  RemoteKeyFrameData() : desc{ 0 } {
566  }
567 
568  RemoteKeyFrameData(const slamtec_aurora_sdk_keyframe_desc_t& desc, const uint64_t * lcIDs, const uint64_t * connIDs)
569  : desc(desc)
570  {
571  if (lcIDs && desc.looped_frame_count) {
573  loopedKeyFrameIDs.insert(loopedKeyFrameIDs.end(), lcIDs, lcIDs + desc.looped_frame_count);
574  }
575 
576  if (connIDs && desc.connected_frame_count) {
578  connectedKeyFrameIDs.insert(connectedKeyFrameIDs.end(), connIDs, connIDs + desc.connected_frame_count);
579  }
580  }
581 
583  }
584 
585  RemoteKeyFrameData& operator=(const RemoteKeyFrameData& other) {
586  desc = other.desc;
589  return *this;
590  }
591 
593  }
594 
595  RemoteKeyFrameData& operator=(RemoteKeyFrameData&& other) {
596  desc = other.desc;
597  loopedKeyFrameIDs = std::move(other.loopedKeyFrameIDs);
598  connectedKeyFrameIDs = std::move(other.connectedKeyFrameIDs);
599  return *this;
600  }
601 
602 public:
607 
611  std::vector<uint64_t> loopedKeyFrameIDs;
612 
616  std::vector<uint64_t> connectedKeyFrameIDs;
617 };
618 
619 
626 public:
629  }
630 
631  SingleLayerLIDARScan(const SingleLayerLIDARScan& other) : info(other.info), scanData(other.scanData) {
632  }
633 
634  SingleLayerLIDARScan& operator=(const SingleLayerLIDARScan& other) {
635  info = other.info;
636  scanData = other.scanData;
637  return *this;
638  }
639 
640  SingleLayerLIDARScan(SingleLayerLIDARScan&& other) : info(other.info), scanData(std::move(other.scanData)) {
641  }
642 
643  SingleLayerLIDARScan& operator=(SingleLayerLIDARScan&& other) {
644  info = other.info;
645  scanData = std::move(other.scanData);
646  return *this;
647  }
648 
649 public:
654 
658  std::vector< slamtec_aurora_sdk_lidar_scan_point_t> scanData;
659 
660 };
661 
668 public:
670  {
672  loadDefaults();
673  }
674 
675 
677  memcpy(this, &other, sizeof(slamtec_aurora_sdk_2d_gridmap_generation_options_t));
678  }
679 
680 
681 
683  memcpy(this, &other, sizeof(LIDAR2DGridMapGenerationOptions));
684  }
685 
687  memcpy(this, &other, sizeof(LIDAR2DGridMapGenerationOptions));
688  return *this;
689  }
690 
691 
692 
696  void loadDefaults() {
697  this->resolution = SLAMTEC_AURORA_SDK_LIDAR_2D_GRIDMAP_DEFAULT_RESOLUTION;
698  this->map_canvas_width = SLAMTEC_AURORA_SDK_LIDAR_2D_GRIDMAP_DEFAULT_WIDTH;
699  this->map_canvas_height = SLAMTEC_AURORA_SDK_LIDAR_2D_GRIDMAP_DEFAULT_HEIGHT;
700  this->active_map_only = 1;
701  this->height_range_specified = 0;
702  }
703 
709  void setHeightRange(float minHeight, float maxHeight) {
710  this->height_range_specified = 1;
711  this->min_height = minHeight;
712  this->max_height = maxHeight;
713  }
714 
719  this->height_range_specified = 0;
720  this->min_height = 0;
721  this->max_height = 0;
722  }
723 
724 
725 };
726 
733 public:
736  }
737 
739  }
740 
741  FloorDetectionHistogram& operator=(const FloorDetectionHistogram& other) {
742  info = other.info;
744  return *this;
745  }
746 
748  }
749 
751  info = other.info;
752  histogramData = std::move(other.histogramData);
753  return *this;
754  }
755 
756 public:
761 
765  std::vector<float> histogramData;
766 };
767 
768 
769 }}} // namespace rp::standalone::aurora
The floor detection histogram class wraps the floor detection histogram data and its description.
Definition: slamtec_remote_objects.hxx:732
slamtec_aurora_sdk_floor_detection_histogram_info_t info
The floor detection histogram info.
Definition: slamtec_remote_objects.hxx:760
std::vector< float > histogramData
The floor detection histogram data.
Definition: slamtec_remote_objects.hxx:765
The 2D gridmap generation options class wraps the 2D gridmap generation options.
Definition: slamtec_remote_objects.hxx:667
void loadDefaults()
Load the default 2D gridmap generation options.
Definition: slamtec_remote_objects.hxx:696
void clearHeightRange()
Clear the height range for the 2D gridmap generation.
Definition: slamtec_remote_objects.hxx:718
void setHeightRange(float minHeight, float maxHeight)
Set the height range for the 2D gridmap generation.
Definition: slamtec_remote_objects.hxx:709
Definition: slamtec_remote_objects.hxx:24
The image reference class wraps the image description and data.
Definition: slamtec_remote_objects.hxx:281
const void * _data
The data pointer of the image.
Definition: slamtec_remote_objects.hxx:292
std::enable_if< std::is_same< T, cv::Mat >::value, bool >::type toMat(T &mat) const
Convert the image to a cv::Mat object.
Definition: slamtec_remote_objects.hxx:310
The keyframe data class wraps the keyframe description and its data.
Definition: slamtec_remote_objects.hxx:563
std::vector< uint64_t > loopedKeyFrameIDs
The looped keyframe IDs.
Definition: slamtec_remote_objects.hxx:611
slamtec_aurora_sdk_keyframe_desc_t desc
The keyframe description.
Definition: slamtec_remote_objects.hxx:606
std::vector< uint64_t > connectedKeyFrameIDs
The connected keyframe IDs.
Definition: slamtec_remote_objects.hxx:616
The tracking frame info class wraps the tracking information and its data.
Definition: slamtec_remote_objects.hxx:337
size_t getKeypointsRightCount() const
Get the right keypoints count.
Definition: slamtec_remote_objects.hxx:464
const slamtec_aurora_sdk_keypoint_t * getKeypointsRightBuffer() const
Get the right keypoints buffer.
Definition: slamtec_remote_objects.hxx:446
RemoteTrackingFrameInfo(const slamtec_aurora_sdk_tracking_info_t &info, const slamtec_aurora_sdk_tracking_data_buffer_t &buffer)
Create the tracking frame info with the tracking information and the tracking data buffer.
Definition: slamtec_remote_objects.hxx:354
RemoteImageRef leftImage
The left image reference.
Definition: slamtec_remote_objects.hxx:474
RemoteTrackingFrameInfo(const slamtec_aurora_sdk_tracking_info_t &info, std::vector< uint8_t > &&imgbuffer_left, std::vector< uint8_t > &&imgbuffer_right, std::vector< slamtec_aurora_sdk_keypoint_t > &&keypoints_buffer_left, std::vector< slamtec_aurora_sdk_keypoint_t > &&keypoints_buffer_right)
Create the tracking frame info with the tracking information and the image data buffer.
Definition: slamtec_remote_objects.hxx:373
const slamtec_aurora_sdk_keypoint_t * getKeypointsLeftBuffer() const
Get the left keypoints buffer.
Definition: slamtec_remote_objects.hxx:437
slamtec_aurora_sdk_tracking_info_t trackingInfo
The tracking information.
Definition: slamtec_remote_objects.hxx:484
RemoteImageRef rightImage
The right image reference.
Definition: slamtec_remote_objects.hxx:479
size_t getKeypointsLeftCount() const
Get the left keypoints count.
Definition: slamtec_remote_objects.hxx:455
The connection info class.
Definition: slamtec_remote_objects.hxx:42
SDKConnectionInfo(const char *ip, int port=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_PORT, const char *proto=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_PROTOCOL)
The constructor with IP address, port and protocol.
Definition: slamtec_remote_objects.hxx:55
std::string toLocatorString() const
Convert the connection info to a locator string.
Definition: slamtec_remote_objects.hxx:81
bool fromLocatorString(const char *input)
Parse the connection info from a locator string.
Definition: slamtec_remote_objects.hxx:94
The server connection description class.
Definition: slamtec_remote_objects.hxx:135
const SDKConnectionInfo & at(size_t index) const
Get the connection info at the specified index.
Definition: slamtec_remote_objects.hxx:269
SDKServerConnectionDesc(const char *ip, int port=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_PORT, const char *proto=SLAMTEC_AURORA_SDK_REMOTE_SERVER_DEFAULT_PROTOCOL)
Create the server connection description with one connection option with IP address,...
Definition: slamtec_remote_objects.hxx:170
size_t size() const
Get the count of the server connection description.
Definition: slamtec_remote_objects.hxx:207
void clear()
Clear the connection description.
Definition: slamtec_remote_objects.hxx:224
size_t capacity() const
Get the capacity of the connection description this object can hold.
Definition: slamtec_remote_objects.hxx:216
std::vector< SDKConnectionInfo > toVector() const
Convert the server connection description to a vector of connection info.
Definition: slamtec_remote_objects.hxx:186
SDKServerConnectionDesc(const slamtec_aurora_sdk_server_connection_info_t &info)
Create the server connection description with a server connection info structure.
Definition: slamtec_remote_objects.hxx:146
void pop_back()
Pop a connection info from the server connection description.
Definition: slamtec_remote_objects.hxx:247
const SDKConnectionInfo & operator[](size_t index) const
Get the connection info at the specified index.
Definition: slamtec_remote_objects.hxx:259
bool push_back(const slamtec_aurora_sdk_connection_info_t &info)
Push a connection info to the server connection description.
Definition: slamtec_remote_objects.hxx:234
The single layer LIDAR scan data class wraps the LIDAR scan data and its description.
Definition: slamtec_remote_objects.hxx:625
slamtec_aurora_sdk_lidar_singlelayer_scandata_info_t info
The LIDAR scan data info.
Definition: slamtec_remote_objects.hxx:653
std::vector< slamtec_aurora_sdk_lidar_scan_point_t > scanData
The LIDAR scan data.
Definition: slamtec_remote_objects.hxx:658
struct _slamtec_aurora_sdk_connection_info_t slamtec_aurora_sdk_connection_info_t
The connection info structure.
struct _slamtec_aurora_sdk_server_connection_info_t slamtec_aurora_sdk_server_connection_info_t
The server connection info structure.
The 2D gridmap generation options structure.
Definition: aurora_pubsdk_objects.h:883
float min_height
The minimum height of LIDAR scan pose to be included in the gridmap.
Definition: aurora_pubsdk_objects.h:908
int active_map_only
Whether to generate the active map only.
Definition: aurora_pubsdk_objects.h:899
float map_canvas_height
The height of the gridmap canvas.
Definition: aurora_pubsdk_objects.h:895
float map_canvas_width
The width of the gridmap canvas.
Definition: aurora_pubsdk_objects.h:891
float resolution
The resolution of the gridmap.
Definition: aurora_pubsdk_objects.h:887
float max_height
The maximum height of LIDAR scan pose to be included in the gridmap.
Definition: aurora_pubsdk_objects.h:912
int height_range_specified
Whether the height range is specified.
Definition: aurora_pubsdk_objects.h:904
The connection info structure.
Definition: aurora_pubsdk_objects.h:114
uint16_t port
The port.
Definition: aurora_pubsdk_objects.h:135
char address[64]
The address.
Definition: aurora_pubsdk_objects.h:128
char protocol_type[16]
The protocol type.
Definition: aurora_pubsdk_objects.h:121
The floor detection histogram info structure.
Definition: aurora_pubsdk_objects.h:976
The image description structure.
Definition: aurora_pubsdk_objects.h:517
uint32_t width
The width of the image.
Definition: aurora_pubsdk_objects.h:522
uint32_t stride
The stride of the image.
Definition: aurora_pubsdk_objects.h:532
uint32_t format
The format of the image.
Definition: aurora_pubsdk_objects.h:538
uint32_t height
The height of the image.
Definition: aurora_pubsdk_objects.h:527
The keyframe description structure.
Definition: aurora_pubsdk_objects.h:1158
size_t connected_frame_count
The count of the connected frames.
Definition: aurora_pubsdk_objects.h:1190
size_t looped_frame_count
The count of the looped frames.
Definition: aurora_pubsdk_objects.h:1186
The keypoint structure.
Definition: aurora_pubsdk_objects.h:552
The single layer LIDAR scan data header structure.
Definition: aurora_pubsdk_objects.h:798
The server connection info structure.
Definition: aurora_pubsdk_objects.h:145
uint32_t connection_count
The number of connection methods.
Definition: aurora_pubsdk_objects.h:164
slamtec_aurora_sdk_connection_info_t connection_info[8]
The connection methods.
Definition: aurora_pubsdk_objects.h:158
The tracking data buffer structure.
Definition: aurora_pubsdk_objects.h:578
The tracking info structure.
Definition: aurora_pubsdk_objects.h:659
uint32_t keypoints_left_count
The count of the keypoints of the left image.
Definition: aurora_pubsdk_objects.h:698
slamtec_aurora_sdk_image_desc_t left_image_desc
The description of the left image.
Definition: aurora_pubsdk_objects.h:670
slamtec_aurora_sdk_image_desc_t right_image_desc
The description of the right image.
Definition: aurora_pubsdk_objects.h:675
uint32_t keypoints_right_count
The count of the keypoints of the right image.
Definition: aurora_pubsdk_objects.h:703