LibMultiSense
LibMultiSense Documentation
MultiSenseTypes.hh
Go to the documentation of this file.
1 
37 #pragma once
38 
39 #include <array>
40 #include <chrono>
41 #include <cstdint>
42 #include <map>
43 #include <memory>
44 #include <optional>
45 #include <stdexcept>
46 #include <string>
47 #include <vector>
48 
49 #ifdef HAVE_OPENCV
50 #include <opencv2/core/mat.hpp>
51 #endif
52 
53 #if !defined(MULTISENSE_API)
54 #if defined (_MSC_VER)
55 #define MULTISENSE_API __declspec(dllexport)
56 #else
57 #define MULTISENSE_API
58 #endif
59 #endif
60 
61 
62 namespace multisense
63 {
64 
65 using TimeT = std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds>;
66 
67 enum class Status : uint8_t
68 {
69  UNKNOWN,
70  OK,
71  TIMEOUT,
73  FAILED,
75  EXCEPTION,
78 };
79 
83 enum class DataSource : uint16_t
84 {
85  UNKNOWN,
86  ALL,
103  AUX_RAW,
105  COST_RAW,
106  IMU
107 };
108 
109 enum class ColorImageEncoding : uint16_t
110 {
111  NONE,
112  YCBCR420
113 };
114 
116 {
120  enum class DistortionType : uint8_t
121  {
122  NONE,
123  PLUMBBOB,
125  };
126 
130  std::array<std::array<float, 3>, 3> K{{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}}};
131 
136  std::array<std::array<float, 3>, 3> R{{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}}};
137 
142  std::array<std::array<float, 4>, 3> P{{{0.0f, 0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f, 0.0f}}};
143 
148 
152  std::vector<float> D = {};
153 
158  std::array<float, 3> rectified_translation() const
159  {
160  return std::array<float, 3>{(P[0][0] == 0.0f ? 0.0f : P[0][3] / P[0][0]),
161  (P[1][1] == 0.0f ? 0.0f : P[1][3] / P[1][1]),
162  P[2][3]};
163  }
164 };
165 
167 {
172 
177 
181  std::optional<CameraCalibration> aux = std::nullopt;
182 };
183 
187 struct Image
188 {
192  enum class PixelFormat : uint8_t
193  {
194  UNKNOWN,
195  MONO8,
196  BGR8,
197  MONO16,
198  FLOAT32,
199  JPEG,
200  H264
201  };
202 
206  std::shared_ptr<const std::vector<uint8_t>> raw_data = nullptr;
207 
211  int64_t image_data_offset = 0;
212 
216  size_t image_data_length = 0;
217 
222 
226  int width = -1;
227 
231  int height = -1;
232 
238 
244 
249 
254 
260  template <typename T>
261  std::optional<T> at(int w, int h) const
262  {
263  if (w < 0 || h < 0 || w >= width || h >= height ||
264  raw_data == nullptr ||
268  {
269  return std::nullopt;
270  }
271 
272  if ((sizeof(T) == 8 && format == PixelFormat::MONO8) ||
273  (sizeof(T) == 16 && format == PixelFormat::MONO16) ||
274  (sizeof(T) == 24 && format == PixelFormat::BGR8) ||
275  (sizeof(T) == 32 && format == PixelFormat::FLOAT32))
276  {
277  const size_t offset = sizeof(T) * ((width * h) + w);
278 
279  return *reinterpret_cast<const T*>(raw_data->data() + image_data_offset + offset);
280  }
281 
282  return std::nullopt;
283  }
284 
285 #ifdef HAVE_OPENCV
286  cv::Mat cv_mat() const;
294 #endif
295 };
296 
301 {
305  void add_image(const Image& image)
306  {
307  images[image.source] = image;
308  }
309 
313  const Image& get_image(const DataSource &source) const
314  {
315  auto it = images.find(source);
316  if (it == images.end())
317  {
318  throw std::runtime_error("No image found for requested DataSource");
319  }
320  return it->second;
321  }
322 
326  bool has_image(const DataSource &source) const
327  {
328  return (images.find(source) != images.end());
329  }
330 
334  int64_t frame_id = 0;
335 
339  std::map<DataSource, Image> images;
340 
345 
350 
355 
360 };
361 
365 struct ImuSample
366 {
370  struct Measurement
371  {
375  float x = 0.0f;
376 
380  float y = 0.0f;
381 
385  float z = 0.0f;
386  };
387 
392  std::optional<Measurement> accelerometer = std::nullopt;
397  std::optional<Measurement> gyroscope = std::nullopt;
402  std::optional<Measurement> magnetometer = std::nullopt;
403 
408 
413 };
414 
418 struct ImuFrame
419 {
423  std::vector<ImuSample> samples;
424 };
425 
429 struct ImuRate
430 {
434  float sample_rate = 0.0f;
435 
439  float bandwith_cutoff = 0.0f;
440 
444  bool operator==(const ImuRate &rhs) const
445  {
446  return sample_rate == rhs.sample_rate && bandwith_cutoff == rhs.bandwith_cutoff;
447  }
448 };
449 
453 struct ImuRange
454 {
458  float range = 0.0f;
459 
463  float resolution = 0.0f;
464 
468  bool operator==(const ImuRange &rhs) const
469  {
470  return range == rhs.range && resolution == rhs.resolution;
471  }
472 };
473 
474 
479 {
484  {
490  float postfilter_strength = 0.85f;
491 
495  bool operator==(const StereoConfig &rhs) const
496  {
498  }
499  };
500 
505  {
510  float gain = 1.68f;
511 
516  std::chrono::microseconds exposure_time{10000};
517 
521  bool operator==(const ManualExposureConfig &rhs) const
522  {
523  return gain == rhs.gain && exposure_time == rhs.exposure_time;
524  }
525  };
526 
531  {
536  uint16_t top_left_x_position = 0;
541  uint16_t top_left_y_position = 0;
545  uint16_t width = 0;
549  uint16_t height = 0;
550 
554  bool operator==(const AutoExposureRoiConfig &rhs) const
555  {
558  width == rhs.width &&
559  height == rhs.height;
560  }
561  };
562 
567  {
572  std::chrono::microseconds max_exposure_time{10000};
573 
579  uint32_t decay = 3;
580 
589  float target_intensity = 0.5f;
590 
595  float target_threshold = 0.85f;
596 
601  float max_gain = 2.0f;
602 
608 
612  bool operator==(const AutoExposureConfig &rhs) const
613  {
614  return max_exposure_time == rhs.max_exposure_time &&
615  decay == rhs.decay &&
618  max_gain == rhs.max_gain &&
619  roi == rhs.roi;
620  }
621  };
622 
627  {
632  float red = 1.0f;
633 
638  float blue = 1.0f;
639 
643  bool operator==(const ManualWhiteBalanceConfig &rhs) const
644  {
645  return red == rhs.red && blue == rhs.blue;
646  }
647  };
648 
653  {
658  uint32_t decay = 3;
659 
664  float threshold = 0.5f;
665 
669  bool operator==(const AutoWhiteBalanceConfig &rhs) const
670  {
671  return decay == rhs.decay && threshold == rhs.threshold;
672  }
673  };
674 
678  struct ImageConfig
679  {
684  float gamma = 2.2f;
685 
690 
694  std::optional<ManualExposureConfig> manual_exposure = std::nullopt;
695 
699  std::optional<AutoExposureConfig> auto_exposure = std::nullopt;
700 
705 
709  std::optional<ManualWhiteBalanceConfig> manual_white_balance = std::nullopt;
710 
714  std::optional<AutoWhiteBalanceConfig> auto_white_balance = std::nullopt;
715 
719  bool operator==(const ImageConfig& rhs) const
720  {
721  return gamma == rhs.gamma &&
724  auto_exposure == rhs.auto_exposure &&
728  }
729  };
730 
734  struct AuxConfig
735  {
740 
744  bool sharpening_enabled = false;
745 
750  float sharpening_percentage = 50.0f;
751 
758  uint8_t sharpening_limit = 100;
759 
763  bool operator==(const AuxConfig &rhs) const
764  {
765  return image_config == rhs.image_config &&
769  }
770  };
771 
776  enum class MaxDisparities : uint8_t
777  {
781  D64,
785  D128,
789  D256
790  };
791 
795  struct TimeConfig
796  {
800  bool ptp_enabled = false;
801 
805  bool operator==(const TimeConfig &rhs) const
806  {
807  return ptp_enabled == rhs.ptp_enabled;
808  }
809  };
810 
815  {
820  bool packet_delay_enabled = false;
821 
825  bool operator==(const NetworkTransmissionConfig &rhs) const
826  {
828  }
829  };
830 
834  struct ImuConfig
835  {
841  {
845  bool enabled = false;
846 
852 
857 
861  bool operator==(const OperatingMode &rhs) const
862  {
863  return enabled == rhs.enabled && rate == rhs.rate && range == rhs.range;
864  }
865  };
866 
870  uint32_t samples_per_frame = 0;
871 
875  std::optional<OperatingMode> accelerometer = std::nullopt;
876 
880  std::optional<OperatingMode> gyroscope = std::nullopt;
881 
885  std::optional<OperatingMode> magnetometer = std::nullopt;
886 
890  bool operator==(const ImuConfig &rhs) const
891  {
892  return samples_per_frame == rhs.samples_per_frame &&
893  accelerometer == rhs.accelerometer &&
894  gyroscope == rhs.gyroscope &&
895  magnetometer == rhs.magnetometer;
896  }
897  };
898 
903  {
908  {
912  float intensity = 0.0f;
913 
917  bool flash = false;
918 
922  bool operator==(const InternalConfig &rhs) const
923  {
924  return intensity == rhs.intensity && flash == rhs.flash;
925  }
926  };
927 
932  {
936  enum class FlashMode : uint8_t
937  {
938  NONE,
941  };
942 
946  float intensity = 0.0f;
947 
952 
960  uint32_t pulses_per_exposure = 1;
961 
966  std::chrono::microseconds startup_time{0};
967 
971  bool operator==(const ExternalConfig &rhs) const
972  {
973  return intensity == rhs.intensity &&
974  flash == rhs.flash &&
976  startup_time == rhs.startup_time;
977  }
978  };
979 
984  std::optional<InternalConfig> internal = std::nullopt;
985 
990  std::optional<ExternalConfig> external = std::nullopt;
991 
995  bool operator==(const LightingConfig &rhs) const
996  {
997  return internal == rhs.internal && external == rhs.external;
998  }
999  };
1000 
1005  uint32_t width = 0;
1006 
1011  uint32_t height = 0;
1012 
1017 
1021  float frames_per_second = 10.0f;
1022 
1027 
1032 
1036  std::optional<AuxConfig> aux_config = std::nullopt;
1037 
1041  std::optional<TimeConfig> time_config = std::nullopt;
1042 
1046  std::optional<NetworkTransmissionConfig> network_config = std::nullopt;
1047 
1051  std::optional<ImuConfig> imu_config = std::nullopt;
1052 
1057  std::optional<LightingConfig> lighting_config = std::nullopt;
1058 
1062  bool operator==(const MultiSenseConfig &rhs) const
1063  {
1064  return width == rhs.width &&
1065  height == rhs.height &&
1066  disparities == rhs.disparities &&
1068  stereo_config == rhs.stereo_config &&
1069  image_config == rhs.image_config &&
1070  aux_config == rhs.aux_config &&
1071  time_config == rhs.time_config &&
1072  network_config == rhs.network_config &&
1073  imu_config == rhs.imu_config &&
1075  }
1076 };
1077 
1083 {
1084  struct PtpStatus
1085  {
1090  bool grandmaster_present = false;
1091 
1095  std::array<uint8_t, 8> grandmaster_id{0, 0, 0, 0, 0, 0, 0, 0};
1096 
1100  std::chrono::nanoseconds grandmaster_offset{0};
1101 
1105  std::chrono::nanoseconds path_delay{0};
1106 
1111  };
1112 
1114  {
1118  bool cameras_ok = false;
1119 
1124  };
1125 
1127  {
1131  float fpga_temperature = 0.0f;
1132 
1137 
1142 
1147  };
1148 
1150  {
1154  float input_voltage = 0.0f;
1155 
1159  float input_current = 0.0f;
1160 
1164  float fpga_power = 0.0f;
1165  };
1166 
1168  {
1172  size_t received_messages = 0;
1173 
1177  size_t dropped_messages = 0;
1178 
1182  size_t invalid_packets = 0;
1183  };
1184 
1185  struct TimeStatus
1186  {
1190  std::chrono::nanoseconds camera_time{0};
1191 
1195  std::chrono::nanoseconds client_host_time{0};
1196 
1202  std::chrono::nanoseconds network_delay{0};
1203 
1208  std::chrono::nanoseconds offset_to_host() const
1209  {
1211  }
1212 
1217  TimeT apply_offset_to_host(const TimeT &input_camera_time) const
1218  {
1219  return input_camera_time + std::chrono::duration_cast<std::chrono::system_clock::duration>(offset_to_host());
1220  }
1221  };
1222 
1226  bool system_ok = false;
1227 
1231  std::optional<PtpStatus> ptp = std::nullopt;
1232 
1237 
1241  std::optional<TemperatureStatus> temperature = std::nullopt;
1242 
1246  std::optional<PowerStatus> power = std::nullopt;
1247 
1252 
1256  std::optional<TimeStatus> time = std::nullopt;
1257 };
1258 
1263 {
1268  {
1272  std::string ip_address = "10.66.171.21";
1273 
1277  std::string gateway = "10.66.171.1";
1278 
1282  std::string netmask = "255.255.255.0";
1283  };
1284 
1290  struct DeviceInfo
1291  {
1295  struct PcbInfo
1296  {
1300  std::string name;
1304  uint32_t revision;
1305  };
1306 
1310  enum class HardwareRevision : uint8_t
1311  {
1312  UNKNOWN,
1313  S7,
1314  S21,
1315  ST21,
1316  S27,
1317  S30,
1318  KS21,
1319  MONOCAM,
1320  KS21_SILVER,
1321  ST25,
1322  KS21i
1323  };
1324 
1328  enum class ImagerType : uint8_t
1329  {
1330  UNKNOWN,
1331  CMV2000_GREY,
1332  CMV2000_COLOR,
1333  CMV4000_GREY,
1334  CMV4000_COLOR,
1335  FLIR_TAU2,
1336  AR0234_GREY,
1337  AR0239_COLOR,
1338  TENUM1280
1339  };
1340 
1344  enum class LightingType : uint8_t
1345  {
1349  NONE,
1353  INTERNAL,
1357  EXTERNAL,
1370 
1371  };
1372 
1376  enum class LensType : uint8_t
1377  {
1378  UNKNOWN,
1379  STANDARD,
1380  FISHEYE
1381  };
1382 
1387  std::string camera_name{};
1388 
1393  std::string build_date{};
1394 
1399  std::string serial_number{};
1400 
1405 
1409  std::vector<PcbInfo> pcb_info{};
1410 
1416  std::string imager_name{};
1417 
1422 
1426  uint32_t imager_width = 0;
1427 
1431  uint32_t imager_height = 0;
1432 
1438  std::string lens_name{};
1439 
1444 
1449 
1453  float nominal_focal_length = 0.0f;
1454 
1459 
1464 
1468  uint32_t number_of_lights = 0;
1469 
1473  constexpr bool has_aux_camera() const
1474  {
1475  switch (hardware_revision)
1476  {
1477  case HardwareRevision::S27:
1478  case HardwareRevision::S30:
1481  return true;
1482  default:
1483  return false;
1484  }
1485  }
1486  };
1487 
1492  struct Version
1493  {
1497  uint32_t major = 0;
1498 
1502  uint32_t minor = 0;
1503 
1507  uint32_t patch = 0;
1508 
1512  std::string to_string() const
1513  {
1514  return std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(patch);
1515  }
1516 
1520  bool operator<(const Version& other) const
1521  {
1522  return major < other.major ||
1523  (major == other.major && minor < other.minor) ||
1524  (major == other.major && minor == other.minor && patch < other.patch);
1525  }
1526  };
1527 
1532  {
1536  std::string firmware_build_date{};
1537 
1542 
1546  uint64_t hardware_version = 0;
1547  };
1548 
1553  {
1557  uint32_t width = 0;
1558 
1562  uint32_t height = 0;
1563 
1568 
1572  std::vector<DataSource> supported_sources{};
1573  };
1574 
1578  struct ImuInfo
1579  {
1583  struct Source
1584  {
1588  std::string name{};
1589 
1593  std::string device{};
1594 
1598  std::vector<ImuRate> rates{};
1599 
1603  std::vector<ImuRange> ranges{};
1604  };
1605 
1609  std::optional<Source> accelerometer = std::nullopt;
1610 
1614  std::optional<Source> gyroscope = std::nullopt;
1615 
1619  std::optional<Source> magnetometer = std::nullopt;
1620  };
1621 
1626 
1631 
1635  std::vector<SupportedOperatingMode> operating_modes;
1636 
1641  std::optional<ImuInfo> imu;
1642 
1647 };
1648 
1649 }
multisense::MultiSenseInfo::ImuInfo::Source::rates
std::vector< ImuRate > rates
The available rates supported by this operating mode.
Definition: MultiSenseTypes.hh:1598
multisense::MultiSenseConfig::ImageConfig::manual_exposure
std::optional< ManualExposureConfig > manual_exposure
The exposure config to use if auto exposure is disabled.
Definition: MultiSenseTypes.hh:694
multisense::MultiSenseInfo::DeviceInfo::imager_type
ImagerType imager_type
The type of the imager.
Definition: MultiSenseTypes.hh:1421
multisense::DataSource::RIGHT_RECTIFIED_COMPRESSED
@ RIGHT_RECTIFIED_COMPRESSED
multisense::MultiSenseConfig::AuxConfig::sharpening_percentage
float sharpening_percentage
The percentage strength of the sharpening gain to apply to the aux image Valid range is [0,...
Definition: MultiSenseTypes.hh:750
multisense::MultiSenseConfig::LightingConfig::InternalConfig::intensity
float intensity
Lighting brightness ranging from 0 to 100.0.
Definition: MultiSenseTypes.hh:912
multisense::MultiSenseInfo::SensorVersion::hardware_version
uint64_t hardware_version
ID for the version of hardware.
Definition: MultiSenseTypes.hh:1546
multisense::MultiSenseInfo::NetworkInfo::ip_address
std::string ip_address
The ip address of the camera (i.e.
Definition: MultiSenseTypes.hh:1272
multisense::ImuFrame
A collection of IMU samples from the camera.
Definition: MultiSenseTypes.hh:418
multisense::Status::INCOMPLETE_APPLICATION
@ INCOMPLETE_APPLICATION
multisense::ColorImageEncoding
ColorImageEncoding
Definition: MultiSenseTypes.hh:109
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::MONOCAM
@ MONOCAM
multisense::DataSource::RIGHT_MONO_COMPRESSED
@ RIGHT_MONO_COMPRESSED
multisense::Image::format
PixelFormat format
The format of the image data stored in the raw_data stored in the raw_data buffer.
Definition: MultiSenseTypes.hh:221
multisense::ImuFrame::samples
std::vector< ImuSample > samples
A batched collection of IMU samples.
Definition: MultiSenseTypes.hh:423
multisense::MultiSenseConfig::NetworkTransmissionConfig::packet_delay_enabled
bool packet_delay_enabled
Add a small delay between the transmission of each packet to hopefully interact better with slower cl...
Definition: MultiSenseTypes.hh:820
multisense::StereoCalibration::aux
std::optional< CameraCalibration > aux
Calibration information for the aux camera (optional 3rd center camera)
Definition: MultiSenseTypes.hh:181
multisense::MultiSenseStatus::PowerStatus::input_current
float input_current
The current input current in Amperes.
Definition: MultiSenseTypes.hh:1159
multisense::ImageFrame
A frame containing multiple images (indexed by DataSource).
Definition: MultiSenseTypes.hh:300
multisense::ImageFrame::get_image
const Image & get_image(const DataSource &source) const
Retrieve image by DataSource.
Definition: MultiSenseTypes.hh:313
multisense::MultiSenseConfig::ImuConfig::accelerometer
std::optional< OperatingMode > accelerometer
Configuration for the onboard accelerometer.
Definition: MultiSenseTypes.hh:875
multisense::MultiSenseInfo::Version::operator<
bool operator<(const Version &other) const
Convenience operator for comparing versions.
Definition: MultiSenseTypes.hh:1520
multisense::MultiSenseConfig::AutoWhiteBalanceConfig::operator==
bool operator==(const AutoWhiteBalanceConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:669
multisense::Status::UNKNOWN
@ UNKNOWN
multisense::Image::PixelFormat::JPEG
@ JPEG
multisense::MultiSenseConfig::stereo_config
StereoConfig stereo_config
The stereo configuration to use.
Definition: MultiSenseTypes.hh:1026
multisense::MultiSenseInfo::DeviceInfo::LightingType::EXTERNAL
@ EXTERNAL
Drive lights via an external output.
multisense::MultiSenseInfo::SupportedOperatingMode::height
uint32_t height
The height of the output image in pixels.
Definition: MultiSenseTypes.hh:1562
multisense::MultiSenseConfig::AutoExposureConfig::max_gain
float max_gain
The auto exposure algorithm adjusts both exposure and gain.
Definition: MultiSenseTypes.hh:601
multisense::ImuRange::operator==
bool operator==(const ImuRange &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:468
multisense::DataSource::AUX_RECTIFIED_RAW
@ AUX_RECTIFIED_RAW
multisense::MultiSenseInfo::Version
Convenience wrapper for a version number See https://semver.org/.
Definition: MultiSenseTypes.hh:1492
multisense::MultiSenseInfo::DeviceInfo::camera_name
std::string camera_name
The name of the MultiSense variant.
Definition: MultiSenseTypes.hh:1387
multisense::MultiSenseInfo::DeviceInfo::ImagerType::CMV4000_COLOR
@ CMV4000_COLOR
multisense::MultiSenseInfo::DeviceInfo::ImagerType::UNKNOWN
@ UNKNOWN
multisense::MultiSenseConfig::ImuConfig
Config for the IMU sensor.
Definition: MultiSenseTypes.hh:834
multisense::Status::UNINITIALIZED
@ UNINITIALIZED
multisense::StereoCalibration::left
CameraCalibration left
Calibration information for the left camera.
Definition: MultiSenseTypes.hh:171
multisense::MultiSenseInfo::DeviceInfo::number_of_lights
uint32_t number_of_lights
The number of lights the MultiSense controls.
Definition: MultiSenseTypes.hh:1468
multisense::MultiSenseInfo::DeviceInfo::ImagerType::CMV4000_GREY
@ CMV4000_GREY
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::S7
@ S7
multisense::MultiSenseConfig::AutoExposureConfig::roi
AutoExposureRoiConfig roi
The auto exposure region-of-interest used to restrict the portion of the image which the auto exposur...
Definition: MultiSenseTypes.hh:607
multisense::MultiSenseInfo::NetworkInfo::gateway
std::string gateway
The gateway of the camera (i.e.
Definition: MultiSenseTypes.hh:1277
multisense::MultiSenseInfo::DeviceInfo::LightingType::INTERNAL
@ INTERNAL
Lights driven internally.
multisense::Status
Status
Definition: MultiSenseTypes.hh:67
multisense::MultiSenseInfo::ImuInfo::Source::device
std::string device
The name of the IMU chip.
Definition: MultiSenseTypes.hh:1593
multisense::MultiSenseConfig::frames_per_second
float frames_per_second
The target framerate the MultiSense should operate at.
Definition: MultiSenseTypes.hh:1021
multisense::CameraCalibration::distortion_type
DistortionType distortion_type
The type of the distortion model used for the unrectified camera.
Definition: MultiSenseTypes.hh:147
multisense::CameraCalibration::D
std::vector< float > D
Coefficients for the distortion model.
Definition: MultiSenseTypes.hh:152
multisense::MultiSenseInfo::SupportedOperatingMode::width
uint32_t width
The width of the output image in pixels.
Definition: MultiSenseTypes.hh:1557
multisense::MultiSenseConfig::AutoWhiteBalanceConfig::decay
uint32_t decay
The decay rate used for auto-white-balance Valid range [0, 20].
Definition: MultiSenseTypes.hh:658
multisense::CameraCalibration::DistortionType::NONE
@ NONE
multisense::ImuSample::gyroscope
std::optional< Measurement > gyroscope
The rotational velocity in degrees-per-second.
Definition: MultiSenseTypes.hh:397
multisense::DataSource::AUX_COMPRESSED
@ AUX_COMPRESSED
multisense::MultiSenseConfig::ManualWhiteBalanceConfig::red
float red
The manual red white-balance setting Valid range is [0.25, 4].
Definition: MultiSenseTypes.hh:632
multisense::MultiSenseInfo::DeviceInfo::ImagerType::FLIR_TAU2
@ FLIR_TAU2
multisense::MultiSenseInfo::DeviceInfo::nominal_relative_aperture
float nominal_relative_aperture
The nominal relative aperture for the primary camera modules in f-stop.
Definition: MultiSenseTypes.hh:1458
multisense::CameraCalibration::DistortionType::PLUMBBOB
@ PLUMBBOB
multisense::MultiSenseInfo::DeviceInfo::nominal_focal_length
float nominal_focal_length
The nominal focal length for the primary lens in meters.
Definition: MultiSenseTypes.hh:1453
multisense::MultiSenseConfig::ImageConfig
Image specific configuration.
Definition: MultiSenseTypes.hh:678
multisense::MultiSenseConfig::ManualExposureConfig::gain
float gain
The desired electrical and digital gain used to brighten the image.
Definition: MultiSenseTypes.hh:510
multisense::MultiSenseConfig::LightingConfig::ExternalConfig::pulses_per_exposure
uint32_t pulses_per_exposure
The number of pulses of the light per single exposure.
Definition: MultiSenseTypes.hh:960
multisense::MultiSenseInfo::NetworkInfo
The network configuration for the MultiSense.
Definition: MultiSenseTypes.hh:1267
multisense::MultiSenseInfo::DeviceInfo::hardware_revision
HardwareRevision hardware_revision
The hardware revision of the MultiSense.
Definition: MultiSenseTypes.hh:1404
multisense::MultiSenseConfig::ImageConfig::auto_white_balance_enabled
bool auto_white_balance_enabled
Enable or disable auto white balance.
Definition: MultiSenseTypes.hh:704
multisense::MultiSenseInfo
Static status info for the MultiSense.
Definition: MultiSenseTypes.hh:1262
multisense::MultiSenseInfo::SupportedOperatingMode::supported_sources
std::vector< DataSource > supported_sources
Data sources supported at that mode.
Definition: MultiSenseTypes.hh:1572
multisense::MultiSenseInfo::DeviceInfo::LensType::STANDARD
@ STANDARD
multisense::MultiSenseConfig::AutoExposureConfig::target_intensity
float target_intensity
The auto-exposure algorithm in digital imaging endeavors to achieve a specified target intensity,...
Definition: MultiSenseTypes.hh:589
multisense::TimeT
std::chrono::time_point< std::chrono::system_clock, std::chrono::nanoseconds > TimeT
Definition: MultiSenseTypes.hh:65
multisense::MultiSenseInfo::SupportedOperatingMode
A valid operating mode for the MultiSense.
Definition: MultiSenseTypes.hh:1552
multisense::MultiSenseConfig::LightingConfig::ExternalConfig::operator==
bool operator==(const ExternalConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:971
multisense::ImageFrame::ptp_frame_time
TimeT ptp_frame_time
The MultiSense ptp timestamp associated with the frame.
Definition: MultiSenseTypes.hh:354
multisense::MultiSenseInfo::DeviceInfo::nominal_stereo_baseline
float nominal_stereo_baseline
The nominal stereo baseline in meters.
Definition: MultiSenseTypes.hh:1448
multisense::MultiSenseConfig::AutoExposureConfig
Auto-exposure specific configuration.
Definition: MultiSenseTypes.hh:566
multisense::StereoCalibration::right
CameraCalibration right
Calibration information for the right camera.
Definition: MultiSenseTypes.hh:176
multisense::MultiSenseInfo::operating_modes
std::vector< SupportedOperatingMode > operating_modes
Supported operating modes.
Definition: MultiSenseTypes.hh:1635
multisense::MultiSenseConfig::AuxConfig::sharpening_limit
uint8_t sharpening_limit
The maximum difference in pixels that sharpening is is allowed to change between neighboring pixels.
Definition: MultiSenseTypes.hh:758
multisense::DataSource::LEFT_RECTIFIED_RAW
@ LEFT_RECTIFIED_RAW
multisense::MultiSenseInfo::DeviceInfo::LensType::FISHEYE
@ FISHEYE
multisense::ImageFrame::aux_color_encoding
ColorImageEncoding aux_color_encoding
The encoding of the aux color image(s) in the frame.
Definition: MultiSenseTypes.hh:359
multisense::Image::PixelFormat
PixelFormat
Pixel formats.
Definition: MultiSenseTypes.hh:192
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21
@ KS21
multisense::MultiSenseStatus::TemperatureStatus::right_imager_temperature
float right_imager_temperature
Temperature of the right imager in Celsius.
Definition: MultiSenseTypes.hh:1141
multisense::DataSource::AUX_LUMA_RAW
@ AUX_LUMA_RAW
multisense::MultiSenseConfig::MaxDisparities::D128
@ D128
128 pixels
multisense::ImageFrame::add_image
void add_image(const Image &image)
Add an image to the frame, keyed by the image's DataSource.
Definition: MultiSenseTypes.hh:305
multisense::DataSource::LEFT_DISPARITY_COMPRESSED
@ LEFT_DISPARITY_COMPRESSED
multisense::MultiSenseConfig::AutoExposureConfig::decay
uint32_t decay
The desired auto-exposure decay rate.
Definition: MultiSenseTypes.hh:579
multisense::DataSource::AUX_LUMA_RECTIFIED_RAW
@ AUX_LUMA_RECTIFIED_RAW
multisense::DataSource::RIGHT_MONO_RAW
@ RIGHT_MONO_RAW
multisense::MultiSenseConfig::operator==
bool operator==(const MultiSenseConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:1062
multisense::ImuRate::sample_rate
float sample_rate
The sample rate for the sensor in Hz.
Definition: MultiSenseTypes.hh:434
multisense::DataSource::LEFT_MONO_RAW
@ LEFT_MONO_RAW
multisense::MultiSenseConfig::NetworkTransmissionConfig::operator==
bool operator==(const NetworkTransmissionConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:825
multisense::MultiSenseInfo::DeviceInfo::PcbInfo::name
std::string name
The name of the PCB This value can store at most 32 characters.
Definition: MultiSenseTypes.hh:1300
multisense::MultiSenseInfo::DeviceInfo::has_aux_camera
constexpr bool has_aux_camera() const
Determine if the MultiSense has a Aux color camera based on the DeviceInfo.
Definition: MultiSenseTypes.hh:1473
multisense::MultiSenseInfo::NetworkInfo::netmask
std::string netmask
The netmask of the camera (i.e.
Definition: MultiSenseTypes.hh:1282
multisense::MultiSenseConfig::aux_config
std::optional< AuxConfig > aux_config
The image configuration to use for the aux camera if present.
Definition: MultiSenseTypes.hh:1036
multisense::MultiSenseStatus
Consolidated status information which can be queried on demand from the MultiSense.
Definition: MultiSenseTypes.hh:1082
multisense::MultiSenseInfo::DeviceInfo::ImagerType::AR0239_COLOR
@ AR0239_COLOR
multisense::MultiSenseConfig::LightingConfig::ExternalConfig::startup_time
std::chrono::microseconds startup_time
The time it takes for the light to reach full brightness.
Definition: MultiSenseTypes.hh:966
multisense::MultiSenseInfo::DeviceInfo::ImagerType::CMV2000_GREY
@ CMV2000_GREY
multisense::MultiSenseConfig::TimeConfig
Config for time-based controls.
Definition: MultiSenseTypes.hh:795
multisense::MultiSenseInfo::ImuInfo::gyroscope
std::optional< Source > gyroscope
Configuration specific to the gyroscope.
Definition: MultiSenseTypes.hh:1614
multisense::MultiSenseConfig::AutoExposureRoiConfig::operator==
bool operator==(const AutoExposureRoiConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:554
multisense::MultiSenseInfo::Version::to_string
std::string to_string() const
Convert a Version info to string for convenience.
Definition: MultiSenseTypes.hh:1512
multisense::MultiSenseStatus::ClientNetworkStatus::received_messages
size_t received_messages
The total number of valid messages received from the client.
Definition: MultiSenseTypes.hh:1172
multisense::MultiSenseStatus::PowerStatus::input_voltage
float input_voltage
The current input voltage in volts.
Definition: MultiSenseTypes.hh:1154
multisense::MultiSenseConfig::AutoExposureConfig::operator==
bool operator==(const AutoExposureConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:612
multisense::MultiSenseStatus::TimeStatus::offset_to_host
std::chrono::nanoseconds offset_to_host() const
Compute the time offset which can manually be added to all camera timestamps to change the camera tim...
Definition: MultiSenseTypes.hh:1208
multisense::MultiSenseConfig::MaxDisparities
MaxDisparities
Predefined disparity pixel search windows.
Definition: MultiSenseTypes.hh:776
multisense::MultiSenseConfig::LightingConfig::InternalConfig
Lighting config for lights integrated into the MultiSense.
Definition: MultiSenseTypes.hh:907
multisense::MultiSenseInfo::ImuInfo::Source::ranges
std::vector< ImuRange > ranges
The available ranges supported by this operating mode.
Definition: MultiSenseTypes.hh:1603
multisense::MultiSenseInfo::DeviceInfo::LightingType::OUTPUT_TRIGGER
@ OUTPUT_TRIGGER
A GPIO line is used to trigger an external light.
multisense::MultiSenseConfig::AutoWhiteBalanceConfig::threshold
float threshold
The auto white balance threshold Valid range [0.0, 1.0].
Definition: MultiSenseTypes.hh:664
multisense::ImuRange::resolution
float resolution
The min resolution the sensor can return.
Definition: MultiSenseTypes.hh:463
multisense::MultiSenseInfo::SensorVersion::firmware_build_date
std::string firmware_build_date
The date the firmware running on the camera was built.
Definition: MultiSenseTypes.hh:1536
multisense::MultiSenseConfig::imu_config
std::optional< ImuConfig > imu_config
The imu configuration to use for the camera.
Definition: MultiSenseTypes.hh:1051
multisense::MultiSenseInfo::ImuInfo::magnetometer
std::optional< Source > magnetometer
Configuration specific to the magnetometer.
Definition: MultiSenseTypes.hh:1619
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::S30
@ S30
multisense::MultiSenseConfig::AutoExposureConfig::max_exposure_time
std::chrono::microseconds max_exposure_time
The max exposure time auto exposure algorithm can set in microseconds Valid range is [0,...
Definition: MultiSenseTypes.hh:572
multisense::ImuSample
A single IMU sample from the camera.
Definition: MultiSenseTypes.hh:365
multisense::MultiSenseStatus::TemperatureStatus::power_supply_temperature
float power_supply_temperature
Temperature of the internal switching power supply in Celsius.
Definition: MultiSenseTypes.hh:1146
multisense::DataSource
DataSource
Identifies which camera or data source the image is from.
Definition: MultiSenseTypes.hh:83
multisense::Image::calibration
CameraCalibration calibration
The scaled calibration associated with the image.
Definition: MultiSenseTypes.hh:253
multisense::MultiSenseConfig::ImageConfig::auto_exposure_enabled
bool auto_exposure_enabled
Enable or disable auto exposure.
Definition: MultiSenseTypes.hh:689
multisense::MultiSenseInfo::DeviceInfo::imager_name
std::string imager_name
The name of the imager used by the primary camera.
Definition: MultiSenseTypes.hh:1416
multisense::MultiSenseConfig::AutoWhiteBalanceConfig
Auto white balance specific configuration.
Definition: MultiSenseTypes.hh:652
multisense::MultiSenseConfig::image_config
ImageConfig image_config
The image configuration to use for the main stereo pair.
Definition: MultiSenseTypes.hh:1031
multisense::MultiSenseConfig::LightingConfig::ExternalConfig::FlashMode::SYNC_WITH_AUX
@ SYNC_WITH_AUX
multisense::MultiSenseInfo::ImuInfo::Source
Info about the available IMU configurations.
Definition: MultiSenseTypes.hh:1583
multisense::MultiSenseInfo::DeviceInfo::lens_type
LensType lens_type
The type of the primary imager.
Definition: MultiSenseTypes.hh:1443
multisense::MultiSenseInfo::DeviceInfo::PcbInfo::revision
uint32_t revision
The revision number of the PCB.
Definition: MultiSenseTypes.hh:1304
multisense::DataSource::ALL
@ ALL
multisense::CameraCalibration::rectified_translation
std::array< float, 3 > rectified_translation() const
Get the translation vector in meters which translates points in the current CameraCalibration frame t...
Definition: MultiSenseTypes.hh:158
multisense::MultiSenseInfo::SensorVersion::firmware_version
MultiSenseInfo::Version firmware_version
The version of the firmware running on the camera.
Definition: MultiSenseTypes.hh:1541
multisense::ImuRate
A sample rate, and what impact it has on bandwidth.
Definition: MultiSenseTypes.hh:429
multisense::Image::width
int width
Width of the image in pixels.
Definition: MultiSenseTypes.hh:226
multisense::MultiSenseConfig::LightingConfig::InternalConfig::flash
bool flash
Enable flashing of the light.
Definition: MultiSenseTypes.hh:917
multisense::MultiSenseInfo::network
NetworkInfo network
The network configuration of the MultiSense.
Definition: MultiSenseTypes.hh:1646
multisense::MultiSenseConfig::disparities
MaxDisparities disparities
The max number of pixels the MultiSense searches when computing the disparity output.
Definition: MultiSenseTypes.hh:1016
multisense::ImuSample::Measurement
A generic measurement for a 3-axis IMU.
Definition: MultiSenseTypes.hh:370
multisense::MultiSenseConfig::network_config
std::optional< NetworkTransmissionConfig > network_config
Config to control network transmission settings.
Definition: MultiSenseTypes.hh:1046
multisense::MultiSenseConfig::ImuConfig::OperatingMode::rate
ImuRate rate
The specific IMU rate configuration specified in ImuInfo::Source table.
Definition: MultiSenseTypes.hh:851
multisense::MultiSenseInfo::DeviceInfo::imager_width
uint32_t imager_width
The native width of the primary imager.
Definition: MultiSenseTypes.hh:1426
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision
HardwareRevision
MultiSense Hardware revisions.
Definition: MultiSenseTypes.hh:1310
multisense::MultiSenseConfig::time_config
std::optional< TimeConfig > time_config
Config for the MultiSense time-sync options.
Definition: MultiSenseTypes.hh:1041
multisense::DataSource::COST_RAW
@ COST_RAW
multisense::MultiSenseInfo::DeviceInfo::serial_number
std::string serial_number
The unique serial number of the MultiSense This value can store at most 32 characters.
Definition: MultiSenseTypes.hh:1399
multisense::MultiSenseConfig::AuxConfig
Image specific configuration for the Aux imager.
Definition: MultiSenseTypes.hh:734
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::ST25
@ ST25
multisense::MultiSenseConfig::ImageConfig::manual_white_balance
std::optional< ManualWhiteBalanceConfig > manual_white_balance
The white balance parameters to use if auto white balance is disabled.
Definition: MultiSenseTypes.hh:709
multisense::MultiSenseInfo::DeviceInfo::LightingType
LightingType
MultiSense lighting types.
Definition: MultiSenseTypes.hh:1344
multisense::Image::at
std::optional< T > at(int w, int h) const
Get a pixel at a certain width/height location in the image.
Definition: MultiSenseTypes.hh:261
multisense::Image::PixelFormat::MONO16
@ MONO16
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::UNKNOWN
@ UNKNOWN
multisense::ImuRate::bandwith_cutoff
float bandwith_cutoff
The bandwith cutoff for a given IMU mode in Hz.
Definition: MultiSenseTypes.hh:439
multisense::MultiSenseStatus::TimeStatus::client_host_time
std::chrono::nanoseconds client_host_time
The time of the host machine running the client when the status request was sent.
Definition: MultiSenseTypes.hh:1195
multisense::MultiSenseStatus::camera
CameraStatus camera
The current camera status.
Definition: MultiSenseTypes.hh:1236
multisense::MultiSenseStatus::PowerStatus::fpga_power
float fpga_power
The current power draw of the FPGA in Watts.
Definition: MultiSenseTypes.hh:1164
multisense::MultiSenseStatus::TimeStatus::apply_offset_to_host
TimeT apply_offset_to_host(const TimeT &input_camera_time) const
Apply the time offset to a camera timestamps to camera timestamp from the reference clock of the came...
Definition: MultiSenseTypes.hh:1217
multisense::MultiSenseConfig::ImageConfig::operator==
bool operator==(const ImageConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:719
multisense::ImuSample::sample_time
TimeT sample_time
The MultiSense timestamp associated with the frame.
Definition: MultiSenseTypes.hh:407
multisense::ImuSample::magnetometer
std::optional< Measurement > magnetometer
The measured magnetic field in milligauss.
Definition: MultiSenseTypes.hh:402
multisense::MultiSenseStatus::ClientNetworkStatus
Definition: MultiSenseTypes.hh:1167
multisense::MultiSenseConfig::ManualExposureConfig
Manual exposure specific configuration.
Definition: MultiSenseTypes.hh:504
multisense::MultiSenseConfig::ImuConfig::magnetometer
std::optional< OperatingMode > magnetometer
Configuration for the onboard magnetometer.
Definition: MultiSenseTypes.hh:885
multisense::MultiSenseStatus::TemperatureStatus
Definition: MultiSenseTypes.hh:1126
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::ST21
@ ST21
multisense::Image::ptp_timestamp
TimeT ptp_timestamp
The timestamp associated with the image based using the camera's clock which is potentially PTP synch...
Definition: MultiSenseTypes.hh:243
multisense::StereoCalibration
Definition: MultiSenseTypes.hh:166
multisense::DataSource::LEFT_MONO_COMPRESSED
@ LEFT_MONO_COMPRESSED
multisense::CameraCalibration::R
std::array< std::array< float, 3 >, 3 > R
Rotation matrix which takes points in the unrectified camera frame and transform them in to the recti...
Definition: MultiSenseTypes.hh:136
multisense::MultiSenseInfo::DeviceInfo::pcb_info
std::vector< PcbInfo > pcb_info
Information about each PCB.
Definition: MultiSenseTypes.hh:1409
multisense::MultiSenseConfig::AutoExposureRoiConfig::top_left_x_position
uint16_t top_left_x_position
The x value of the top left corner of the ROI in the full resolution image.
Definition: MultiSenseTypes.hh:536
multisense::Status::EXCEPTION
@ EXCEPTION
multisense::CameraCalibration::DistortionType
DistortionType
Distortion type.
Definition: MultiSenseTypes.hh:120
multisense::Status::UNSUPPORTED
@ UNSUPPORTED
multisense::MultiSenseStatus::TemperatureStatus::fpga_temperature
float fpga_temperature
Temperature of the FPGA in Celsius.
Definition: MultiSenseTypes.hh:1131
multisense::MultiSenseStatus::PtpStatus::steps_from_local_to_grandmaster
uint16_t steps_from_local_to_grandmaster
The number of network hops from the grandmaster to the camera's clock.
Definition: MultiSenseTypes.hh:1110
multisense::MultiSenseConfig::ImuConfig::OperatingMode
Config for a specific IMU operating mode.
Definition: MultiSenseTypes.hh:840
multisense::MultiSenseInfo::DeviceInfo::imager_height
uint32_t imager_height
The native height of the primary imager.
Definition: MultiSenseTypes.hh:1431
multisense::MultiSenseInfo::ImuInfo::Source::name
std::string name
The name of the IMU sensor.
Definition: MultiSenseTypes.hh:1588
multisense::MultiSenseConfig::ImageConfig::auto_white_balance
std::optional< AutoWhiteBalanceConfig > auto_white_balance
The white balance parameters to use if auto white balance is enabled.
Definition: MultiSenseTypes.hh:714
multisense::MultiSenseConfig::ManualExposureConfig::exposure_time
std::chrono::microseconds exposure_time
The manual exposure time in microseconds Valid range is [0, 33000].
Definition: MultiSenseTypes.hh:516
multisense::MultiSenseInfo::imu
std::optional< ImuInfo > imu
Supported operating modes for the IMU sensors (accelerometer, gyroscope, magnetometer).
Definition: MultiSenseTypes.hh:1641
multisense::MultiSenseConfig::AutoExposureRoiConfig::height
uint16_t height
The height of the ROI in the full resolution image.
Definition: MultiSenseTypes.hh:549
multisense::Status::OK
@ OK
multisense::Image::PixelFormat::H264
@ H264
multisense::MultiSenseStatus::PtpStatus
Definition: MultiSenseTypes.hh:1084
multisense::MultiSenseInfo::DeviceInfo::build_date
std::string build_date
The date the MultiSense was manufactured This value can store at most 32 characters.
Definition: MultiSenseTypes.hh:1393
multisense::DataSource::AUX_CHROMA_RECTIFIED_RAW
@ AUX_CHROMA_RECTIFIED_RAW
multisense::MultiSenseInfo::DeviceInfo::lens_name
std::string lens_name
The name of the lens used for the primary camera For stereo cameras this is the Left/Right stereo pai...
Definition: MultiSenseTypes.hh:1438
multisense::MultiSenseStatus::CameraStatus::processing_pipeline_ok
bool processing_pipeline_ok
True if the onboard processing pipeline is ok and currently processing images.
Definition: MultiSenseTypes.hh:1123
multisense::MultiSenseInfo::DeviceInfo::LensType::UNKNOWN
@ UNKNOWN
multisense::MultiSenseConfig::LightingConfig::ExternalConfig::FlashMode::SYNC_WITH_MAIN_STEREO
@ SYNC_WITH_MAIN_STEREO
multisense::DataSource::AUX_RAW
@ AUX_RAW
multisense::Status::TIMEOUT
@ TIMEOUT
multisense::MultiSenseInfo::DeviceInfo
The Device information associated with the MultiSense.
Definition: MultiSenseTypes.hh:1290
multisense::MultiSenseConfig::ImuConfig::operator==
bool operator==(const ImuConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:890
multisense::MultiSenseInfo::DeviceInfo::PcbInfo
Info for the PCBs contained in the unit.
Definition: MultiSenseTypes.hh:1295
multisense::MultiSenseConfig::ImuConfig::gyroscope
std::optional< OperatingMode > gyroscope
Configuration for the onboard gyroscope.
Definition: MultiSenseTypes.hh:880
multisense::Image::raw_data
std::shared_ptr< const std::vector< uint8_t > > raw_data
A pointer to the raw image data sent from the camera.
Definition: MultiSenseTypes.hh:206
multisense::MultiSenseInfo::version
SensorVersion version
Sensor Version info.
Definition: MultiSenseTypes.hh:1630
multisense::MultiSenseConfig::StereoConfig
Stereo specific configuration.
Definition: MultiSenseTypes.hh:483
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::S27
@ S27
multisense::MultiSenseStatus::CameraStatus
Definition: MultiSenseTypes.hh:1113
multisense::MultiSenseConfig::LightingConfig::ExternalConfig::FlashMode
FlashMode
Different flash modes for the camera.
Definition: MultiSenseTypes.hh:936
multisense::MultiSenseStatus::TimeStatus
Definition: MultiSenseTypes.hh:1185
multisense::MultiSenseConfig::ManualWhiteBalanceConfig
Manual white balance specific configuration.
Definition: MultiSenseTypes.hh:626
multisense::Image::source
DataSource source
The camera data source which this image corresponds to.
Definition: MultiSenseTypes.hh:248
multisense::MultiSenseInfo::device
DeviceInfo device
Device info.
Definition: MultiSenseTypes.hh:1625
multisense::MultiSenseConfig::LightingConfig::ExternalConfig::FlashMode::NONE
@ NONE
multisense::MultiSenseConfig::LightingConfig::InternalConfig::operator==
bool operator==(const InternalConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:922
multisense::MultiSenseConfig::TimeConfig::ptp_enabled
bool ptp_enabled
Enable PTP sync on the camera.
Definition: MultiSenseTypes.hh:800
multisense::MultiSenseConfig::AutoExposureRoiConfig
Auto-exposure Region-of-Interest (ROI) specific configuration.
Definition: MultiSenseTypes.hh:530
multisense::Image::image_data_offset
int64_t image_data_offset
An offset into the raw_data pointer where the image data starts.
Definition: MultiSenseTypes.hh:211
multisense::ImuRate::operator==
bool operator==(const ImuRate &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:444
multisense::MultiSenseConfig::height
uint32_t height
The operating height of the MultiSense in pixels.
Definition: MultiSenseTypes.hh:1011
multisense::ImuSample::ptp_sample_time
TimeT ptp_sample_time
The MultiSense ptp timestamp associated with the frame.
Definition: MultiSenseTypes.hh:412
multisense::MultiSenseStatus::power
std::optional< PowerStatus > power
The current power status.
Definition: MultiSenseTypes.hh:1246
multisense::MultiSenseInfo::DeviceInfo::LightingType::PATTERN_PROJECTOR
@ PATTERN_PROJECTOR
A pattern projector.
multisense::MultiSenseConfig::ImageConfig::auto_exposure
std::optional< AutoExposureConfig > auto_exposure
The exposure config to use if auto exposure is enabled.
Definition: MultiSenseTypes.hh:699
multisense::MultiSenseConfig::ManualWhiteBalanceConfig::operator==
bool operator==(const ManualWhiteBalanceConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:643
multisense::MultiSenseInfo::DeviceInfo::ImagerType
ImagerType
Different imager types.
Definition: MultiSenseTypes.hh:1328
multisense
Definition: MultiSenseChannel.hh:44
multisense::ImuRange::range
float range
The max value the sensor can return.
Definition: MultiSenseTypes.hh:458
multisense::Status::FAILED
@ FAILED
multisense::ImuSample::Measurement::y
float y
Measurement on the y-axis of the sensor.
Definition: MultiSenseTypes.hh:380
multisense::MultiSenseInfo::DeviceInfo::lighting_type
LightingType lighting_type
The type of lighting used in the MultiSense.
Definition: MultiSenseTypes.hh:1463
multisense::MultiSenseConfig::ImuConfig::OperatingMode::enabled
bool enabled
Enable the current source.
Definition: MultiSenseTypes.hh:845
multisense::ColorImageEncoding::YCBCR420
@ YCBCR420
multisense::MultiSenseStatus::time
std::optional< TimeStatus > time
The current timing status information.
Definition: MultiSenseTypes.hh:1256
multisense::MultiSenseConfig::AuxConfig::sharpening_enabled
bool sharpening_enabled
Enable sharpening.
Definition: MultiSenseTypes.hh:744
multisense::MultiSenseStatus::temperature
std::optional< TemperatureStatus > temperature
The current temperature status.
Definition: MultiSenseTypes.hh:1241
multisense::MultiSenseConfig::NetworkTransmissionConfig
Config for transmitting packets from the MultiSense to the host.
Definition: MultiSenseTypes.hh:814
multisense::ColorImageEncoding::NONE
@ NONE
multisense::Image::height
int height
Height of the image in pixels.
Definition: MultiSenseTypes.hh:231
multisense::MultiSenseConfig::StereoConfig::operator==
bool operator==(const StereoConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:495
multisense::MultiSenseConfig::LightingConfig::external
std::optional< ExternalConfig > external
The external lighting config.
Definition: MultiSenseTypes.hh:990
multisense::MultiSenseInfo::DeviceInfo::ImagerType::CMV2000_COLOR
@ CMV2000_COLOR
multisense::MultiSenseStatus::PowerStatus
Definition: MultiSenseTypes.hh:1149
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21i
@ KS21i
multisense::MultiSenseInfo::SensorVersion
Version information for the MultiSense.
Definition: MultiSenseTypes.hh:1531
multisense::MultiSenseStatus::client_network
ClientNetworkStatus client_network
The current client network statistics.
Definition: MultiSenseTypes.hh:1251
multisense::Image::PixelFormat::UNKNOWN
@ UNKNOWN
multisense::MultiSenseConfig::ImageConfig::gamma
float gamma
Set the gamma correction for the image.
Definition: MultiSenseTypes.hh:684
multisense::ImuSample::Measurement::x
float x
Measurement on the x-axis of the sensor.
Definition: MultiSenseTypes.hh:375
multisense::DataSource::RIGHT_RECTIFIED_RAW
@ RIGHT_RECTIFIED_RAW
multisense::DataSource::AUX_CHROMA_RAW
@ AUX_CHROMA_RAW
multisense::MultiSenseInfo::DeviceInfo::LightingType::PATTERN_PROJECTOR_OUTPUT_TRIGGER
@ PATTERN_PROJECTOR_OUTPUT_TRIGGER
A pattern projector with a GPIO line used to trigger a external light.
multisense::DataSource::AUX_RECTIFIED_COMPRESSED
@ AUX_RECTIFIED_COMPRESSED
multisense::MultiSenseStatus::CameraStatus::cameras_ok
bool cameras_ok
True if the cameras are operating and currently streaming data.
Definition: MultiSenseTypes.hh:1118
multisense::ImageFrame::calibration
StereoCalibration calibration
The scaled calibration for the entire camera.
Definition: MultiSenseTypes.hh:344
multisense::MultiSenseInfo::Version::major
uint32_t major
Major version number.
Definition: MultiSenseTypes.hh:1497
multisense::MultiSenseStatus::PtpStatus::grandmaster_offset
std::chrono::nanoseconds grandmaster_offset
Offset between the camera's PTP Hardware Clock and the grandmaster clock.
Definition: MultiSenseTypes.hh:1100
multisense::CameraCalibration
Definition: MultiSenseTypes.hh:115
multisense::MultiSenseConfig::AutoExposureRoiConfig::top_left_y_position
uint16_t top_left_y_position
The y value of the top left corner of the ROI in the full resolution image.
Definition: MultiSenseTypes.hh:541
multisense::MultiSenseConfig::LightingConfig::ExternalConfig::flash
FlashMode flash
Configure flash mode.
Definition: MultiSenseTypes.hh:951
multisense::MultiSenseInfo::DeviceInfo::LightingType::NONE
@ NONE
No lights.
multisense::MultiSenseConfig::LightingConfig::ExternalConfig::intensity
float intensity
Lighting brightness ranging from 0 to 100.0.
Definition: MultiSenseTypes.hh:946
multisense::MultiSenseInfo::Version::patch
uint32_t patch
Patch version number.
Definition: MultiSenseTypes.hh:1507
multisense::Image::camera_timestamp
TimeT camera_timestamp
The timestamp associated with the image based on the camera's clock.
Definition: MultiSenseTypes.hh:237
multisense::Image::PixelFormat::BGR8
@ BGR8
multisense::MultiSenseConfig::lighting_config
std::optional< LightingConfig > lighting_config
The lighting configuration for the camera.
Definition: MultiSenseTypes.hh:1057
multisense::MultiSenseInfo::DeviceInfo::LensType
LensType
MultiSense lens types.
Definition: MultiSenseTypes.hh:1376
multisense::MultiSenseStatus::TimeStatus::network_delay
std::chrono::nanoseconds network_delay
The estimated network delay between when the status request was sent, and when the status request was...
Definition: MultiSenseTypes.hh:1202
multisense::MultiSenseConfig::ImuConfig::OperatingMode::range
ImuRange range
The specific IMU range configuration specified in ImuInfo::Source.
Definition: MultiSenseTypes.hh:856
multisense::MultiSenseStatus::PtpStatus::path_delay
std::chrono::nanoseconds path_delay
The estimate delay of the PTP synchronization messages from the grandmaster.
Definition: MultiSenseTypes.hh:1105
multisense::ImageFrame::frame_id
int64_t frame_id
The unique monotonically increasing ID for each frame populated by the MultiSense.
Definition: MultiSenseTypes.hh:334
multisense::MultiSenseConfig::width
uint32_t width
The operating width of the MultiSense in pixels.
Definition: MultiSenseTypes.hh:1005
multisense::MultiSenseConfig::LightingConfig
Lighting configuration for the camera.
Definition: MultiSenseTypes.hh:902
multisense::ImageFrame::images
std::map< DataSource, Image > images
The images assocated with each source in the frame.
Definition: MultiSenseTypes.hh:339
multisense::ImuSample::Measurement::z
float z
Measurement on the z-axis of the sensor.
Definition: MultiSenseTypes.hh:385
multisense::DataSource::IMU
@ IMU
multisense::CameraCalibration::DistortionType::RATIONAL_POLYNOMIAL
@ RATIONAL_POLYNOMIAL
multisense::MultiSenseConfig::MaxDisparities::D64
@ D64
64 pixels
multisense::Image::PixelFormat::FLOAT32
@ FLOAT32
multisense::MultiSenseConfig::LightingConfig::ExternalConfig
Lighting config for lights driven by GPIO outputs from the MultiSense.
Definition: MultiSenseTypes.hh:931
multisense::MultiSenseConfig::MaxDisparities::D256
@ D256
256 pixels
multisense::ImuRange
The range for each sensor along with the corresponding sampling resolution.
Definition: MultiSenseTypes.hh:453
multisense::MultiSenseConfig::AuxConfig::image_config
ImageConfig image_config
Image configuration for the Aux imager.
Definition: MultiSenseTypes.hh:739
multisense::MultiSenseInfo::ImuInfo::accelerometer
std::optional< Source > accelerometer
Configuration specific to the accelerometer.
Definition: MultiSenseTypes.hh:1609
multisense::MultiSenseStatus::TimeStatus::camera_time
std::chrono::nanoseconds camera_time
The camera's system time when the status message request was received.
Definition: MultiSenseTypes.hh:1190
multisense::ImageFrame::frame_time
TimeT frame_time
The MultiSense timestamp associated with the frame.
Definition: MultiSenseTypes.hh:349
multisense::MultiSenseStatus::PtpStatus::grandmaster_id
std::array< uint8_t, 8 > grandmaster_id
The id of the current grandmaster clock (8 bytes, 0xXXXXXX.XXXX.XXXXXX)
Definition: MultiSenseTypes.hh:1095
multisense::MultiSenseStatus::PtpStatus::grandmaster_present
bool grandmaster_present
Status of the grandmaster clock.
Definition: MultiSenseTypes.hh:1090
multisense::MultiSenseStatus::ClientNetworkStatus::dropped_messages
size_t dropped_messages
The total number of dropped messages on the client side.
Definition: MultiSenseTypes.hh:1177
multisense::MultiSenseConfig::ManualWhiteBalanceConfig::blue
float blue
The manual blue white-balance setting Valid range is [0.25, 4].
Definition: MultiSenseTypes.hh:638
multisense::MultiSenseInfo::SupportedOperatingMode::disparities
MultiSenseConfig::MaxDisparities disparities
Supported operating disparity.
Definition: MultiSenseTypes.hh:1567
multisense::MultiSenseConfig::ImuConfig::OperatingMode::operator==
bool operator==(const OperatingMode &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:861
multisense::Image
Represents a single image plus metadata.
Definition: MultiSenseTypes.hh:187
multisense::MultiSenseConfig::StereoConfig::postfilter_strength
float postfilter_strength
This is used to filter low confidence stereo data before it is sent to the host.
Definition: MultiSenseTypes.hh:490
multisense::CameraCalibration::K
std::array< std::array< float, 3 >, 3 > K
Unrectified camera projection matrix stored in row-major ordering.
Definition: MultiSenseTypes.hh:130
multisense::CameraCalibration::P
std::array< std::array< float, 4 >, 3 > P
Rectified projection matrix which takes points in the origin camera coordinate frame and projects the...
Definition: MultiSenseTypes.hh:142
multisense::Image::PixelFormat::MONO8
@ MONO8
multisense::MultiSenseConfig::AutoExposureRoiConfig::width
uint16_t width
The width of the ROI in the full resolution image.
Definition: MultiSenseTypes.hh:545
multisense::MultiSenseConfig::TimeConfig::operator==
bool operator==(const TimeConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:805
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::S21
@ S21
multisense::MultiSenseInfo::DeviceInfo::HardwareRevision::KS21_SILVER
@ KS21_SILVER
multisense::DataSource::UNKNOWN
@ UNKNOWN
multisense::to_string
MULTISENSE_API std::string to_string(const Status &status)
Convert a status object to a user readable string.
multisense::MultiSenseInfo::DeviceInfo::ImagerType::TENUM1280
@ TENUM1280
multisense::MultiSenseStatus::ptp
std::optional< PtpStatus > ptp
The current ptp status.
Definition: MultiSenseTypes.hh:1231
multisense::MultiSenseConfig::LightingConfig::internal
std::optional< InternalConfig > internal
The internal lighting config.
Definition: MultiSenseTypes.hh:984
multisense::Image::image_data_length
size_t image_data_length
The length of the image data after the image_data_offset has been applied.
Definition: MultiSenseTypes.hh:216
multisense::MultiSenseInfo::Version::minor
uint32_t minor
Minor version number.
Definition: MultiSenseTypes.hh:1502
multisense::ImuSample::accelerometer
std::optional< Measurement > accelerometer
The acceleration in units of Gs.
Definition: MultiSenseTypes.hh:392
multisense::MultiSenseStatus::TemperatureStatus::left_imager_temperature
float left_imager_temperature
Temperature of the left imager in Celsius.
Definition: MultiSenseTypes.hh:1136
multisense::MultiSenseInfo::ImuInfo
Information about the IMU onboard the MultiSense.
Definition: MultiSenseTypes.hh:1578
multisense::Status::INTERNAL_ERROR
@ INTERNAL_ERROR
multisense::MultiSenseConfig::LightingConfig::operator==
bool operator==(const LightingConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:995
multisense::MultiSenseConfig
Complete configuration object for configuring the MultiSense.
Definition: MultiSenseTypes.hh:478
multisense::MultiSenseStatus::ClientNetworkStatus::invalid_packets
size_t invalid_packets
The total number of invalid packets received on the client side.
Definition: MultiSenseTypes.hh:1182
multisense::MultiSenseConfig::AutoExposureConfig::target_threshold
float target_threshold
The fraction of pixels which must be equal or below the pixel value set by the target intensity pixel...
Definition: MultiSenseTypes.hh:595
multisense::ImageFrame::has_image
bool has_image(const DataSource &source) const
Check if we have an image for a given data source.
Definition: MultiSenseTypes.hh:326
multisense::MultiSenseStatus::system_ok
bool system_ok
Summary of the current MultiSense state.
Definition: MultiSenseTypes.hh:1226
multisense::MultiSenseConfig::ManualExposureConfig::operator==
bool operator==(const ManualExposureConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:521
multisense::DataSource::LEFT_RECTIFIED_COMPRESSED
@ LEFT_RECTIFIED_COMPRESSED
multisense::MultiSenseConfig::ImuConfig::samples_per_frame
uint32_t samples_per_frame
The number of IMU samples which should be included in a IMU frame.
Definition: MultiSenseTypes.hh:870
multisense::DataSource::LEFT_DISPARITY_RAW
@ LEFT_DISPARITY_RAW
multisense::MultiSenseInfo::DeviceInfo::ImagerType::AR0234_GREY
@ AR0234_GREY
multisense::MultiSenseConfig::AuxConfig::operator==
bool operator==(const AuxConfig &rhs) const
Equality operator.
Definition: MultiSenseTypes.hh:763