VisionaryTData.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2023 SICK AG, Waldkirch
3 //
4 // SPDX-License-Identifier: Unlicense
5 
6 #pragma once
7 
8 #include "VisionaryData.h"
9 
10 #include <cstddef> // for size_t
11 #include <cstdint>
12 #include <string>
13 #include <vector>
14 
15 namespace visionary {
16 
17 typedef struct
18 {
21  float polarScale;
22  float polarOffset;
24 
26 {
27 public:
29  ~VisionaryTData() override;
30 
31  //-----------------------------------------------
32  // Getter Functions
33  const std::vector<std::uint16_t>& getDistanceMap() const;
34  const std::vector<std::uint16_t>& getIntensityMap() const;
35  const std::vector<std::uint16_t>& getConfidenceMap() const;
36  // Returns Number of points get by the polar reduction.
37  // 0 when no data is available.
38  std::uint8_t getPolarSize() const;
39  float getPolarStartAngle() const;
40  float getPolarAngularResolution() const;
41  const std::vector<float>& getPolarDistanceData() const;
42  const std::vector<float>& getPolarConfidenceData() const;
43  // Returns Number of points get by the cartesian reduction.
44  // 0 when no data is available.
45  std::uint32_t getCartesianSize() const;
46  const std::vector<PointXYZC>& getCartesianData() const;
47 
48  // Calculate and return the Point Cloud in the camera perspective. Units are in meters.
49  void generatePointCloud(std::vector<PointXYZ>& pointCloud) override;
50 
51 protected:
52  using ByteBuffer = std::vector<std::uint8_t>;
53 
54  //-----------------------------------------------
55  // functions for parsing received blob
56 
57  // Parse the XML Metadata part to get information about the sensor and the following image data.
58  // This function uses boost library. An other XML parser is needed to remove boost from source.
59  // Returns true when parsing was successful.
60  bool parseXML(const std::string& xmlString, std::uint32_t changeCounter) override;
61 
62  // Parse the Binary data part to extract the image data.
63  // some variables are commented out, because they are not used in this sample.
64  // Returns true when parsing was successful.
65  bool parseBinaryData(ByteBuffer::iterator itBuf, std::size_t size) override;
66 
67 private:
68  // Indicator for the received data sets
70 
71  // Byte depth of images
73 
74  // Angle information of polar scan
77 
78  // Number of values for polar data reduction
79  std::uint_fast8_t m_numPolarValues;
80  // Number of values for cartesian data reduction
81  std::uint_fast32_t m_numCartesianValues;
82 
83  // Pointers to the image data
84  std::vector<std::uint16_t> m_distanceMap;
85  std::vector<std::uint16_t> m_intensityMap;
86  std::vector<std::uint16_t> m_confidenceMap;
87  std::vector<float> m_polarDistanceData;
88  std::vector<float> m_polarConfidenceData;
89  std::vector<PointXYZC> m_cartesianData;
90 };
91 
92 } // namespace visionary
visionary::VisionaryTData::getPolarConfidenceData
const std::vector< float > & getPolarConfidenceData() const
Definition: VisionaryTData.cpp:433
visionary::VisionaryTData::getPolarStartAngle
float getPolarStartAngle() const
Definition: VisionaryTData.cpp:418
visionary::PolarParameters::angularResolution
float angularResolution
Definition: VisionaryTData.h:20
visionary::VisionaryTData::m_polarDistanceData
std::vector< float > m_polarDistanceData
Definition: VisionaryTData.h:87
visionary::VisionaryTData::parseXML
bool parseXML(const std::string &xmlString, std::uint32_t changeCounter) override
Definition: VisionaryTData.cpp:57
visionary
Definition: MD5.cpp:44
visionary::VisionaryTData::getCartesianData
const std::vector< PointXYZC > & getCartesianData() const
Definition: VisionaryTData.cpp:443
visionary::DataSetsActive
Definition: VisionaryData.h:34
visionary::PolarParameters::angleFirstScanPoint
float angleFirstScanPoint
Definition: VisionaryTData.h:19
visionary::VisionaryTData::generatePointCloud
void generatePointCloud(std::vector< PointXYZ > &pointCloud) override
Definition: VisionaryTData.cpp:393
visionary::VisionaryTData::getPolarSize
std::uint8_t getPolarSize() const
Definition: VisionaryTData.cpp:413
visionary::VisionaryTData::m_numPolarValues
std::uint_fast8_t m_numPolarValues
Definition: VisionaryTData.h:79
visionary::VisionaryTData::m_polarConfidenceData
std::vector< float > m_polarConfidenceData
Definition: VisionaryTData.h:88
visionary::VisionaryTData
Definition: VisionaryTData.h:25
visionary::VisionaryTData::m_cartesianData
std::vector< PointXYZC > m_cartesianData
Definition: VisionaryTData.h:89
visionary::PolarParameters
Definition: VisionaryTData.h:17
visionary::VisionaryTData::m_numCartesianValues
std::uint_fast32_t m_numCartesianValues
Definition: VisionaryTData.h:81
visionary::VisionaryTData::getCartesianSize
std::uint32_t getCartesianSize() const
Definition: VisionaryTData.cpp:438
visionary::VisionaryTData::getConfidenceMap
const std::vector< std::uint16_t > & getConfidenceMap() const
Definition: VisionaryTData.cpp:408
VisionaryData.h
visionary::VisionaryTData::VisionaryTData
VisionaryTData()
Definition: VisionaryTData.cpp:42
visionary::VisionaryTData::m_confidenceByteDepth
std::size_t m_confidenceByteDepth
Definition: VisionaryTData.h:72
visionary::VisionaryTData::m_angleFirstScanPoint
float m_angleFirstScanPoint
Definition: VisionaryTData.h:75
visionary::VisionaryTData::ByteBuffer
std::vector< std::uint8_t > ByteBuffer
Definition: VisionaryTData.h:52
visionary::VisionaryTData::m_distanceMap
std::vector< std::uint16_t > m_distanceMap
Definition: VisionaryTData.h:84
visionary::VisionaryTData::m_dataSetsActive
DataSetsActive m_dataSetsActive
Definition: VisionaryTData.h:69
visionary::PolarParameters::polarScale
float polarScale
Definition: VisionaryTData.h:21
visionary::VisionaryTData::m_distanceByteDepth
std::size_t m_distanceByteDepth
Definition: VisionaryTData.h:72
visionary::VisionaryTData::m_intensityMap
std::vector< std::uint16_t > m_intensityMap
Definition: VisionaryTData.h:85
visionary::VisionaryTData::m_intensityByteDepth
std::size_t m_intensityByteDepth
Definition: VisionaryTData.h:72
visionary::VisionaryTData::getPolarDistanceData
const std::vector< float > & getPolarDistanceData() const
Definition: VisionaryTData.cpp:428
visionary::VisionaryTData::parseBinaryData
bool parseBinaryData(ByteBuffer::iterator itBuf, std::size_t size) override
Definition: VisionaryTData.cpp:158
visionary::VisionaryTData::m_confidenceMap
std::vector< std::uint16_t > m_confidenceMap
Definition: VisionaryTData.h:86
visionary::VisionaryTData::getIntensityMap
const std::vector< std::uint16_t > & getIntensityMap() const
Definition: VisionaryTData.cpp:403
visionary::VisionaryData
Definition: VisionaryData.h:49
visionary::VisionaryTData::getDistanceMap
const std::vector< std::uint16_t > & getDistanceMap() const
Definition: VisionaryTData.cpp:398
visionary::VisionaryTData::getPolarAngularResolution
float getPolarAngularResolution() const
Definition: VisionaryTData.cpp:423
visionary::VisionaryTData::m_angularResolution
float m_angularResolution
Definition: VisionaryTData.h:76
visionary::PolarParameters::polarOffset
float polarOffset
Definition: VisionaryTData.h:22
visionary::VisionaryTData::~VisionaryTData
~VisionaryTData() override


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:56:19