Example of how to use the SensorCapture class to get the raw sensors data at the maximum available frequency.
 
 
#include <unistd.h> 
#include <iostream>
#include <iomanip>
 
int main(
int argc, 
char *argv[])
 
{
    
    (void)argc;
    (void)argv;
    
 
    
 
    
 
    
 
    if( devs.size()==0 )
    {
        std::cerr << "No available ZED Mini or ZED2 cameras" << std::endl;
        return EXIT_FAILURE;
    }
    
 
    
    {
        std::cerr << "Connection failed" << std::endl;
        return EXIT_FAILURE;
    }
 
    std::cout << 
"Sensor Capture connected to camera sn: " << sens.
getSerialNumber() << std::endl;
 
    
 
    
    uint16_t fw_maior;
    uint16_t fw_minor;
 
 
    std::cout << " * Firmware version: " << std::to_string(fw_maior) << "." << std::to_string(fw_minor) << std::endl;
    
 
    
    uint64_t last_imu_ts = 0;
    uint64_t last_mag_ts = 0;
    uint64_t last_env_ts = 0;
    uint64_t last_cam_temp_ts = 0;
    
 
    
    int count = 0;
    while(++count<4000)
    {
        
        {
            std::cout << "**** New IMU data ****" << std::endl;
            std::cout << 
" * Timestamp: " << imuData.
timestamp << 
" nsec" << std::endl;
 
            if(last_imu_ts!=0)
            {
                std::cout << 
" * Frequency: " << 1e9/
static_cast<float>(imuData.
timestamp-last_imu_ts) << 
" Hz" << std::endl;
 
            }
            std::cout << 
" * Accelerations [m/s²]: " << imuData.
aX << 
" " << imuData.
aY << 
" " << imuData.
aZ << std::endl;
 
            std::cout << 
" * Angular Velocities [°/s]: " << imuData.
gX << 
" " << imuData.
gY << 
" " << imuData.
gZ << std::endl;
 
        }
        
 
        
        {
            std::cout << "**** New Magnetometer data ****" << std::endl;
            std::cout << 
" * Timestamp: " << magData.
timestamp << 
" nsec" << std::endl;
 
            if(last_mag_ts!=0)
            {
                std::cout << 
" * Frequency: " << 1e9/
static_cast<float>(magData.
timestamp-last_mag_ts) << 
" Hz" << std::endl;
 
            }
            std::cout << 
" * Magnetic field [uT]: " << magData.
mX << 
" " << magData.
mY << 
" " << magData.
mZ << std::endl;
 
        }
        
 
        
        {
            std::cout << "**** New Environment data ****" << std::endl;
            std::cout << 
" * Timestamp: " << envData.
timestamp << 
" nsec" << std::endl;
 
            if(last_env_ts!=0)
            {
                std::cout << 
" * Frequency: " << 1e9/
static_cast<float>(envData.
timestamp-last_env_ts) << 
" Hz" << std::endl;
 
            }
            std::cout << 
" * Pressure [hPa]: " << envData.
press << std::endl;
 
            std::cout << 
" * Temperature [°C]: " << envData.
temp << std::endl;
 
            std::cout << 
" * Relative Humidity [%rH]: " << envData.
humid << std::endl;
 
        }
        
 
        
        {
            std::cout << "**** New Camera Sensors Temperature data ****" << std::endl;
            std::cout << 
" * Timestamp: " << tempData.
timestamp << 
" nsec" << std::endl;
 
            if(last_cam_temp_ts!=0)
            {
                std::cout << 
" * Frequency: " << 1e9/
static_cast<float>(tempData.
timestamp-last_cam_temp_ts) << 
" Hz" << std::endl;
 
            }
            std::cout << 
" * Left Camera [°C]: " << tempData.
temp_left << std::endl;
 
            std::cout << 
" * Right Camera [°C]: " << tempData.
temp_right << std::endl;
 
        }
        
    }
 
    return EXIT_SUCCESS;
}
The SensorCapture class provides sensor grabbing functions for the Stereolabs ZED Mini and ZED2 camer...
 
int getSerialNumber()
Retrieve the serial number of the connected camera.
 
std::vector< int > getDeviceList(bool refresh=false)
Get the list of the serial number of all the available devices.
 
bool initializeSensors(int sn=-1)
Open a connection to the MCU of a ZED Mini or a ZED2 camera using the specified serial number or sear...
 
void getFirmwareVersion(uint16_t &fw_major, uint16_t &fw_minor)
Get the MCU firmware version in form [fw_major].[fw_minor].
 
const data::Imu & getLastIMUData(uint64_t timeout_usec=1500)
Get the last received IMU data.
 
const data::Magnetometer & getLastMagnetometerData(uint64_t timeout_usec=100)
Get the last received Magnetometer data.
 
const data::Temperature & getLastCameraTemperatureData(uint64_t timeout_usec=100)
Get the last received camera sensors temperature data.
 
const data::Environment & getLastEnvironmentData(uint64_t timeout_usec=100)
Get the last received Environment data.
 
Contains the acquired Environment data.
 
float press
Atmospheric pressure in hPa.
 
float temp
Sensor temperature in °C.
 
EnvStatus valid
Indicates if Environmental data are valid.
 
float humid
Humidity in rH.
 
uint64_t timestamp
Timestamp in nanoseconds.
 
Contains the acquired Imu data.
 
float gX
Angular velocity around X axis in °/s.
 
float aX
Acceleration along X axis in m/s²
 
ImuStatus valid
Indicates if IMU data are valid.
 
uint64_t timestamp
Timestamp in nanoseconds.
 
float gZ
Angular velocity around > axis in °/s.
 
float gY
Angular velocity around Y axis in °/s.
 
float aY
Acceleration along Y axis in m/s²
 
float aZ
Acceleration along Z axis in m/s²
 
Contains the acquired Magnetometer data.
 
float mY
Acceleration along Y axis in uT.
 
float mX
Acceleration along X axis in uT.
 
MagStatus valid
Indicates if Magnetometer data are valid.
 
uint64_t timestamp
Timestamp in nanoseconds.
 
float mZ
Acceleration along Z axis in uT.
 
Contains the acquired Camera Temperature data.
 
float temp_right
Temperature of the right CMOS camera sensor.
 
uint64_t timestamp
Timestamp in nanoseconds.
 
float temp_left
Temperature of the left CMOS camera sensor.
 
TempStatus valid
Indicates if camera temperature data are valid.
 
int main(int argc, char *argv[])