VOXL OpenVINS Server 0.7.0
Visual Inertial Odometry Server for VOXL Platform
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Enumerations | Variables
VoxlVars.h File Reference

Global variable declarations and constants for VOXL OpenVINS server. More...

#include <memory>
#include <atomic>
#include <string>
#include <vector>
#include <mutex>
#include <cstdint>
#include <condition_variable>
#include <core/VioManager.h>
#include <modal_flow/StereoMatcher.hpp>
#include <core/VioManagerOptions.h>
#include <modal_pipe.h>
#include <modal_json.h>
#include <voxl_common_config.h>
#include "VoxlCommon.h"
Include dependency graph for VoxlVars.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  voxl::img_ringbuf_packet
 Structure to hold image data packet for the ring buffer. More...
 
struct  voxl::FrameTransform
 Structure for handling IMU frame transformations. More...
 

Namespaces

namespace  voxl
 Main namespace for VOXL OpenVINS server components.
 

Macros

#define GYRO_VAR_THRESHOLD   0.09f
 Gyro variance threshold for motion detection.
 
#define ACC_VAR_THRESHOLD   0.09f
 Accelerometer variance threshold for motion detection.
 
#define EXTENDED_CH   0
 MPA server channel for extended VIO data output.
 
#define SIMPLE_CH   1
 MPA server channel for simple VIO data output.
 
#define OVSTATUS_CH   3
 MPA server channel for status information.
 
#define IMU_CH   0
 MPA client channel for IMU data input.
 
#define OV_VIO_CONTROL_COMMANDS   (RESET_VIO_SOFT "," RESET_VIO_HARD)
 Control commands available for VIO system.
 
#define OV_VIO_EXTENDED_NAME   "ov_extended"
 Name for extended VIO data pipe.
 
#define OV_VIO_EXTENDED_LOCATION   MODAL_PIPE_DEFAULT_BASE_DIR OV_VIO_EXTENDED_NAME "/"
 Location for extended VIO data pipe.
 
#define OV_VIO_SIMPLE_NAME   "ov"
 Name for simple VIO data pipe.
 
#define OV_VIO_SIMPLE_LOCATION   MODAL_PIPE_DEFAULT_BASE_DIR OV_VIO_SIMPLE_NAME "/"
 Location for simple VIO data pipe.
 
#define OV_STATUS_NAME   "ov_status"
 Name for status information pipe.
 
#define OV_STATUS_LOCATION   MODAL_PIPE_DEFAULT_BASE_DIR OV_STATUS_NAME "/"
 Location for status information pipe.
 
#define PROCESS_NAME   "voxl-open-vins-server"
 Process name for the VOXL OpenVINS server.
 
#define MAX_CAM_CNT   6
 Maximum number of cameras supported by VOXL2.
 
#define CHAR_BUF_SIZE   128
 Standard character buffer size.
 

Typedefs

typedef struct voxl::img_ringbuf_packet voxl::img_ringbuf_packet
 

Enumerations

enum class  ImageType { CV_MAT , CL_MEM }
 
enum  imu_model_t { IMU_MODEL_UNKNOWN = 0 , IMU_MODEL_ICM42688 , IMU_MODEL_BMI270 }
 Enumeration of supported IMU models. More...
 

Variables

ov_msckf::VioManagerOptions vio_manager_options
 VIO manager options.
 
std::unique_ptr< ov_msckf::VioManager > vio_manager
 Global VIO manager instance.
 
volatile int main_running
 Main server running state.
 
std::atomic< uint8_t > vio_state
 Current VIO system state.
 
std::atomic< uint32_t > vio_error_codes
 VIO error codes.
 
std::atomic< bool > reset_requested
 Should reset floag.
 
std::atomic< bool > soft_reset_requested
 Flag indicating that a front-end-preserving SOFT reset was requested.
 
std::atomic< bool > is_resetting
 VIO reset state flag.
 
std::atomic< uint32_t > reset_num_counter
 Counter which increments on resets.
 
std::atomic< uint32_t > soft_reset_num_counter
 Counter which increments only on SOFT (front-end-preserving) resets.
 
std::atomic< uint32_t > active_callbacks
 Number of callbacks inside the system.
 
std::mutex reset_mtx
 Mutex for reset.
 
std::condition_variable reset_cv
 Reset conditional variable.
 
std::atomic< bool > is_cam_connected
 Camera connection state.
 
std::atomic< bool > is_imu_connected
 IMU connection state.
 
int en_auto_reset
 Enable automatic VIO reset.
 
float auto_reset_max_velocity
 Maximum velocity threshold for auto-reset.
 
float auto_reset_max_v_cov_timeout_s
 Timeout for velocity covariance auto-reset.
 
int auto_reset_min_features
 Minimum number of features for auto-reset.
 
float auto_reset_min_feature_timeout_s
 Timeout for minimum features auto-reset.
 
float ok_state_grace_timeout_s
 Grace period timeout after entering OK state.
 
float fast_yaw_thresh
 Fast yaw threshold.
 
float fast_yaw_timeout_s
 Fast yaw timeout.
 
int quality_low_thresh_initial
 Quality low threshold for INITIAL state.
 
int quality_low_thresh_good
 Quality low threshold for GOOD state.
 
int quality_high_thresh
 Quality high threshold for recovery.
 
int quality_initial_to_bad_count
 Consecutive samples for INITIAL→BAD transition.
 
int quality_initial_to_good_count
 Consecutive samples for INITIAL→GOOD transition.
 
int quality_bad_to_good_count
 Consecutive samples for BAD→GOOD transition.
 
int quality_good_to_bad_count
 Consecutive samples for GOOD→BAD transition.
 
int using_stereo
 Using stereo camera configuration.
 
char folder_base [CHAR_BUF_SIZE]
 Base folder for yaml configuration files.
 
int en_debug
 Enable debug output.
 
int en_verbose
 Enable verbose output.
 
int config_only
 Configuration only mode.
 
bool en_imu_body
 Enable IMU body measurements.
 
char imu_name [64]
 IMU service name.
 
imu_model_t imu_model
 Active IMU model detected from pipe info JSON.
 
std::vector< cam_infocam_info_vec
 Camera information vector.
 
volatile int64_t last_imu_timestamp_ns
 Last IMU timestamp in nanoseconds.
 
std::mutex imu_lock_mutex
 Mutex for IMU data access synchronization.
 
float imu_init_max_gravity_angle_deg
 Server-side IMU frame-transform bring-up gravity gate (degrees)
 
voxl::FrameTransform frame_transform
 Global frame transform instance.
 
std::atomic< bool > has_acc_jerk
 Flag indicating if accelerometer jerk is detected.
 
std::atomic< bool > non_static
 Non-static flag for jerk detection.
 
volatile int64_t last_cam_time
 Last camera timestamp.
 
int cameras_used
 Number of cameras currently in use.
 
std::atomic< float > alt_z
 Altitude z.
 
float takeoff_alt_threshold
 Takeoff altitude threshold.
 
bool occlude_stereo_left
 Occlude stereo left.
 
bool occlude_stereo_right
 Occlude stereo right.
 
int camera_pipe_channels [MAX_CAM_CNT]
 Camera pipe channel array.
 
bool sync_config
 Flag to indicate if configuration synchronization is enabled.
 
float stereo_z_min
 near depth bound for epipolar search (m)
 
float stereo_z_max
 far depth bound for epipolar search (m)
 
modal_flow::StereoCalib g_stereo_calib
 composed by VoxlConfigure
 
bool g_stereo_calib_valid
 

Detailed Description

Global variable declarations and constants for VOXL OpenVINS server.

Author
Joao Leonardo Silva Cotta (@zauberflote1)
Date
2025
Version
1.0

This header file declares all global variables, constants, and configuration parameters used throughout the VOXL OpenVINS server. It provides centralized management of system state, configuration, and operational parameters.

The file contains:

Definition in file VoxlVars.h.

Macro Definition Documentation

◆ ACC_VAR_THRESHOLD

#define ACC_VAR_THRESHOLD   0.09f

Accelerometer variance threshold for motion detection.

Definition at line 46 of file VoxlVars.h.

◆ CHAR_BUF_SIZE

#define CHAR_BUF_SIZE   128

Standard character buffer size.

Default buffer size for string operations and name storage.

Definition at line 256 of file VoxlVars.h.

◆ EXTENDED_CH

#define EXTENDED_CH   0

MPA server channel for extended VIO data output.

Channel used for publishing comprehensive VIO data including full state information, covariance matrices, and detailed tracking data.

Definition at line 146 of file VoxlVars.h.

◆ GYRO_VAR_THRESHOLD

#define GYRO_VAR_THRESHOLD   0.09f

Gyro variance threshold for motion detection.

Definition at line 45 of file VoxlVars.h.

◆ IMU_CH

#define IMU_CH   0

MPA client channel for IMU data input.

Channel used for receiving inertial measurement unit data from the IMU service.

Definition at line 174 of file VoxlVars.h.

◆ MAX_CAM_CNT

#define MAX_CAM_CNT   6

Maximum number of cameras supported by VOXL2.

Hardware limitation for the number of cameras that can be simultaneously processed by the VOXL2 platform.

Definition at line 249 of file VoxlVars.h.

◆ OV_STATUS_LOCATION

#define OV_STATUS_LOCATION   MODAL_PIPE_DEFAULT_BASE_DIR OV_STATUS_NAME "/"

Location for status information pipe.

Full path location for the status information pipe.

Definition at line 230 of file VoxlVars.h.

◆ OV_STATUS_NAME

#define OV_STATUS_NAME   "ov_status"

Name for status information pipe.

Pipe name for publishing system status and health information.

Definition at line 223 of file VoxlVars.h.

◆ OV_VIO_CONTROL_COMMANDS

#define OV_VIO_CONTROL_COMMANDS   (RESET_VIO_SOFT "," RESET_VIO_HARD)

Control commands available for VIO system.

Comma-separated list of control commands that can be sent to the VIO system for operational control.

Definition at line 186 of file VoxlVars.h.

◆ OV_VIO_EXTENDED_LOCATION

#define OV_VIO_EXTENDED_LOCATION   MODAL_PIPE_DEFAULT_BASE_DIR OV_VIO_EXTENDED_NAME "/"

Location for extended VIO data pipe.

Full path location for the extended VIO data pipe.

Definition at line 201 of file VoxlVars.h.

◆ OV_VIO_EXTENDED_NAME

#define OV_VIO_EXTENDED_NAME   "ov_extended"

Name for extended VIO data pipe.

Pipe name for publishing comprehensive VIO data including full state information and covariance matrices.

Definition at line 194 of file VoxlVars.h.

◆ OV_VIO_SIMPLE_LOCATION

#define OV_VIO_SIMPLE_LOCATION   MODAL_PIPE_DEFAULT_BASE_DIR OV_VIO_SIMPLE_NAME "/"

Location for simple VIO data pipe.

Full path location for the simple VIO data pipe.

Definition at line 216 of file VoxlVars.h.

◆ OV_VIO_SIMPLE_NAME

#define OV_VIO_SIMPLE_NAME   "ov"

Name for simple VIO data pipe.

Pipe name for publishing simplified VIO data with essential pose and velocity information.

Definition at line 209 of file VoxlVars.h.

◆ OVSTATUS_CH

#define OVSTATUS_CH   3

MPA server channel for status information.

Channel used for publishing system status, health information, and operational state data.

Definition at line 162 of file VoxlVars.h.

◆ PROCESS_NAME

#define PROCESS_NAME   "voxl-open-vins-server"

Process name for the VOXL OpenVINS server.

Used for process identification, logging, and system integration.

Definition at line 241 of file VoxlVars.h.

◆ SIMPLE_CH

#define SIMPLE_CH   1

MPA server channel for simple VIO data output.

Channel used for publishing simplified VIO data with essential pose and velocity information for basic applications.

Definition at line 154 of file VoxlVars.h.

Enumeration Type Documentation

◆ imu_model_t

Enumeration of supported IMU models.

Definition at line 574 of file VoxlVars.h.

Variable Documentation

◆ active_callbacks

std::atomic<uint32_t> active_callbacks
extern

Number of callbacks inside the system.

Atomic counter for tracking the number of in-flight callbacks or operations currently being processed that need to be accounted for during reset.

Definition at line 63 of file VoxlVars.cpp.

Referenced by _imu_data_handler_cb(), voxl::MonoCamera::process_image(), and voxl::StereoCamera::process_image().

◆ alt_z

std::atomic<float> alt_z
extern

Altitude z.

Atomic variable for the altitude z

Referenced by voxl::Publisher::publish().

◆ auto_reset_max_v_cov_timeout_s

float auto_reset_max_v_cov_timeout_s
extern

Timeout for velocity covariance auto-reset.

Duration in seconds that the velocity covariance must exceed the threshold before triggering an auto-reset.

Timeout for velocity covariance auto-reset.

Maximum velocity covariance for timeout reset

Timeout duration for velocity covariance reset (seconds)

Definition at line 94 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), voxl::read_server_config(), and voxl::Publisher::should_auto_reset().

◆ auto_reset_max_velocity

float auto_reset_max_velocity
extern

Maximum velocity threshold for auto-reset.

Velocity threshold above which the system will trigger an automatic reset if other conditions are met.

Maximum velocity threshold for auto-reset.

Definition at line 87 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), voxl::read_server_config(), and voxl::Publisher::should_auto_reset().

◆ auto_reset_min_feature_timeout_s

float auto_reset_min_feature_timeout_s
extern

Timeout for minimum features auto-reset.

Duration in seconds that the feature count must be below the minimum before triggering an auto-reset.

Timeout for minimum features auto-reset.

Definition at line 100 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), voxl::read_server_config(), and voxl::Publisher::should_auto_reset().

◆ auto_reset_min_features

int auto_reset_min_features
extern

Minimum number of features for auto-reset.

Minimum number of tracked features required to avoid triggering an automatic reset.

Minimum number of features for auto-reset.

Definition at line 97 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), voxl::read_server_config(), and voxl::Publisher::should_auto_reset().

◆ cam_info_vec

std::vector<cam_info> cam_info_vec
extern

Camera information vector.

Vector containing configuration and calibration information for all cameras in the system.

Camera information vector.

Definition at line 171 of file VoxlVars.cpp.

Referenced by voxl::sync_cam_config().

◆ camera_pipe_channels

int camera_pipe_channels[MAX_CAM_CNT]
extern

Camera pipe channel array.

Array containing the pipe channel numbers for each camera. Used for managing camera data connections.

Camera pipe channel array.

Camera pipe channels array

Definition at line 212 of file VoxlVars.cpp.

◆ cameras_used

int cameras_used
extern

Number of cameras currently in use.

Count of cameras that are currently active and providing data to the VIO system.

Definition at line 191 of file VoxlVars.cpp.

◆ config_only

int config_only
extern

Configuration only mode.

Flag to enable configuration-only mode where the server only loads and validates configuration without starting the main processing loop.

Definition at line 155 of file VoxlVars.cpp.

Referenced by main().

◆ en_auto_reset

int en_auto_reset
extern

Enable automatic VIO reset.

Flag to enable automatic reset of the VIO system when certain error conditions are detected.

Enable automatic VIO reset.

Definition at line 84 of file VoxlVars.cpp.

Referenced by voxl::read_server_config(), and voxl::Publisher::should_auto_reset().

◆ en_debug

int en_debug
extern

Enable debug output.

Flag to enable detailed debug output and logging for development and troubleshooting.

Definition at line 149 of file VoxlVars.cpp.

Referenced by _imu_data_handler_cb(), voxl::HealthCheck::clearErrorCodes(), voxl::CameraBase::connect(), voxl::CameraBase::disconnect(), main(), voxl::MonoCamera::process_image(), voxl::Publisher::publish(), and voxl::Publisher::should_auto_reset().

◆ en_imu_body

bool en_imu_body
extern

Enable IMU body measurements.

Flag to enable the use of IMU body measurements in the VIO system for enhanced state estimation.

Definition at line 158 of file VoxlVars.cpp.

Referenced by main(), voxl::read_server_config(), and voxl::sync_cam_config().

◆ en_verbose

int en_verbose
extern

Enable verbose output.

Flag to enable verbose logging and detailed status information for monitoring and debugging purposes.

Definition at line 152 of file VoxlVars.cpp.

Referenced by main(), and voxl::sync_cam_config().

◆ fast_yaw_thresh

float fast_yaw_thresh
extern

Fast yaw threshold.

Threshold for detecting rapid yaw changes that may indicate tracking issues.

Fast yaw threshold.

Minimum velocity for auto fallback

Enable continuous yaw checks

Fast yaw threshold

Definition at line 112 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), voxl::read_server_config(), and voxl::Publisher::should_auto_reset().

◆ fast_yaw_timeout_s

float fast_yaw_timeout_s
extern

Fast yaw timeout.

Duration in seconds for fast yaw change detection before triggering corrective actions.

Fast yaw timeout.

Definition at line 115 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), voxl::read_server_config(), and voxl::Publisher::should_auto_reset().

◆ folder_base

char folder_base[CHAR_BUF_SIZE]
extern

Base folder for yaml configuration files.

Base folder for storing YAML configuration files for the VINS.

Definition at line 146 of file VoxlVars.cpp.

Referenced by main(), voxl::read_server_config(), and voxl::sync_cam_config().

◆ frame_transform

voxl::FrameTransform frame_transform
extern

Global frame transform instance.

Global instance of the frame transform structure used for handling IMU frame transformations across the system.

Definition at line 181 of file VoxlVars.cpp.

Referenced by _imu_data_handler_cb(), and voxl::Publisher::publish().

◆ g_stereo_calib

modal_flow::StereoCalib g_stereo_calib
extern

composed by VoxlConfigure

Definition at line 223 of file VoxlVars.cpp.

Referenced by main(), and voxl::sync_cam_config().

◆ g_stereo_calib_valid

bool g_stereo_calib_valid
extern

Definition at line 224 of file VoxlVars.cpp.

◆ has_acc_jerk

std::atomic<bool> has_acc_jerk
extern

Flag indicating if accelerometer jerk is detected.

Referenced by voxl::MonoCamera::process_image(), and voxl::Publisher::publish().

◆ imu_init_max_gravity_angle_deg

float imu_init_max_gravity_angle_deg
extern

Server-side IMU frame-transform bring-up gravity gate (degrees)

If >= 0, the server holds the sensor feed to the estimator until the measured gravity tilt is within this angle (opt-in "must be level" boot gate). Default -1 => any attitude (feed immediately), which is required for the ceres-free S2 dynamic initializer to (re)init/reset at any attitude. Keep in sync with (and generally >=) the estimator's init_gravity_max_angle.

Definition at line 230 of file VoxlVars.cpp.

Referenced by voxl::read_server_config().

◆ imu_lock_mutex

std::mutex imu_lock_mutex
extern

Mutex for IMU data access synchronization.

Mutex used to synchronize access to IMU data between multiple threads.

Definition at line 27 of file ImuMinimal.cpp.

◆ imu_model

imu_model_t imu_model
extern

Active IMU model detected from pipe info JSON.

Active IMU model detected from pipe info JSON.

Definition at line 168 of file VoxlVars.cpp.

Referenced by _imu_data_handler_cb(), and voxl::sync_cam_config().

◆ imu_name

char imu_name[64]
extern

IMU service name.

Name of the IMU service to connect to for inertial measurement data.

IMU service name.

Definition at line 165 of file VoxlVars.cpp.

Referenced by connect_imu_service(), and voxl::sync_cam_config().

◆ is_cam_connected

std::atomic<bool> is_cam_connected
extern

Camera connection state.

Atomic flag indicating whether camera services are connected and providing data.

Referenced by voxl::MonoCamera::process_image(), and voxl::StereoCamera::process_image().

◆ is_imu_connected

std::atomic<bool> is_imu_connected
extern

IMU connection state.

Atomic flag indicating whether the IMU service is connected and providing data.

Referenced by _imu_data_handler_cb(), _imu_disconnect_cb(), and connect_imu_service().

◆ is_resetting

std::atomic<bool> is_resetting
extern

VIO reset state flag.

Atomic flag indicating whether the VIO system is currently undergoing a reset operation.

Referenced by _imu_data_handler_cb(), voxl::Publisher::ov_vio_control_pipe_cb(), voxl::MonoCamera::process_image(), voxl::StereoCamera::process_image(), voxl::Publisher::publish(), and voxl::register_vio_camera_callback().

◆ last_cam_time

volatile int64_t last_cam_time
extern

Last camera timestamp.

Timestamp of the most recent camera measurement. Used for synchronization and timing validation.

Last camera timestamp.

Definition at line 188 of file VoxlVars.cpp.

Referenced by voxl::MonoCamera::process_image(), and voxl::StereoCamera::process_image().

◆ last_imu_timestamp_ns

volatile int64_t last_imu_timestamp_ns
extern

Last IMU timestamp in nanoseconds.

Timestamp of the most recent IMU measurement. Used for synchronization and timing validation.

Last IMU timestamp in nanoseconds.

Definition at line 178 of file VoxlVars.cpp.

Referenced by _imu_data_handler_cb().

◆ main_running

volatile int main_running
extern

Main server running state.

Volatile flag indicating whether the main server loop is running. Used for graceful shutdown and state management.

Main server running state.

Definition at line 38 of file VoxlVars.cpp.

Referenced by voxl::CameraBase::camera_callback(), and main().

◆ non_static

std::atomic<bool> non_static
extern

Non-static flag for jerk detection.

Referenced by voxl::MonoCamera::process_image(), and voxl::Publisher::publish().

◆ occlude_stereo_left

bool occlude_stereo_left
extern

Occlude stereo left.

Definition at line 200 of file VoxlVars.cpp.

Referenced by voxl::read_server_config().

◆ occlude_stereo_right

bool occlude_stereo_right
extern

Occlude stereo right.

Definition at line 203 of file VoxlVars.cpp.

Referenced by voxl::read_server_config().

◆ ok_state_grace_timeout_s

float ok_state_grace_timeout_s
extern

Grace period timeout after entering OK state.

Duration in seconds after entering the OK state during which quality is held low to avoid bad initialization.

Grace period timeout after entering OK state.

Definition at line 103 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), and voxl::read_server_config().

◆ quality_bad_to_good_count

int quality_bad_to_good_count
extern

Consecutive samples for BAD→GOOD transition.

Number of consecutive samples with quality above high threshold required to transition from BAD to GOOD state.

Definition at line 137 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), and voxl::read_server_config().

◆ quality_good_to_bad_count

int quality_good_to_bad_count
extern

Consecutive samples for GOOD→BAD transition.

Number of consecutive samples with quality below low threshold required to transition from GOOD to BAD state.

Definition at line 140 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), and voxl::read_server_config().

◆ quality_high_thresh

int quality_high_thresh
extern

Quality high threshold for recovery.

Quality threshold above which recovery is detected. Used for transitions from INITIAL→GOOD and BAD→GOOD states.

Definition at line 128 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), and voxl::read_server_config().

◆ quality_initial_to_bad_count

int quality_initial_to_bad_count
extern

Consecutive samples for INITIAL→BAD transition.

Number of consecutive samples with quality below low threshold required to transition from INITIAL to BAD state.

Definition at line 131 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), and voxl::read_server_config().

◆ quality_initial_to_good_count

int quality_initial_to_good_count
extern

Consecutive samples for INITIAL→GOOD transition.

Number of consecutive samples with quality above high threshold required to transition from INITIAL to GOOD state.

Definition at line 134 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), and voxl::read_server_config().

◆ quality_low_thresh_good

int quality_low_thresh_good
extern

Quality low threshold for GOOD state.

Quality threshold below which degradation is detected in GOOD state. When quality drops to or below this value, consecutive sample counter increments.

Definition at line 125 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), and voxl::read_server_config().

◆ quality_low_thresh_initial

int quality_low_thresh_initial
extern

Quality low threshold for INITIAL state.

Quality threshold below which degradation is detected in INITIAL state. When quality drops to or below this value, consecutive sample counter increments.

Definition at line 122 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), and voxl::read_server_config().

◆ reset_cv

std::condition_variable reset_cv
extern

Reset conditional variable.

Condition variable used to synchronize reset operations, the reset thread will wait on active_callbacks to reach zero before proceeding.

Definition at line 69 of file VoxlVars.cpp.

Referenced by _imu_data_handler_cb(), voxl::MonoCamera::process_image(), and voxl::StereoCamera::process_image().

◆ reset_mtx

std::mutex reset_mtx
extern

Mutex for reset.

Synchronisation mutex used only for the reset hand-off

Mutex for reset.

Definition at line 66 of file VoxlVars.cpp.

Referenced by _imu_data_handler_cb(), voxl::MonoCamera::process_image(), and voxl::StereoCamera::process_image().

◆ reset_num_counter

std::atomic<uint32_t> reset_num_counter
extern

Counter which increments on resets.

The counter is used to track the number of resets that have occurred. This can be useful for debugging, logging, and ensuring that reset operations are being performed as expected.

Counter which increments on resets.

Definition at line 56 of file VoxlVars.cpp.

Referenced by voxl::Publisher::publish(), and voxl::Publisher::should_auto_reset().

◆ reset_requested

std::atomic<bool> reset_requested
extern

Should reset floag.

Flag indicating that system should reset

Referenced by voxl::Publisher::ov_vio_control_pipe_cb(), and voxl::Publisher::publish().

◆ soft_reset_num_counter

std::atomic<uint32_t> soft_reset_num_counter
extern

Counter which increments only on SOFT (front-end-preserving) resets.

Lets field logs distinguish soft resets from hard ones (hard count = reset_num_counter - soft_reset_num_counter) without a packet-ABI change.

Counter which increments only on SOFT (front-end-preserving) resets.

Definition at line 60 of file VoxlVars.cpp.

◆ soft_reset_requested

std::atomic<bool> soft_reset_requested
extern

Flag indicating that a front-end-preserving SOFT reset was requested.

Referenced by voxl::Publisher::ov_vio_control_pipe_cb().

◆ stereo_z_max

float stereo_z_max
extern

far depth bound for epipolar search (m)

Definition at line 222 of file VoxlVars.cpp.

Referenced by main(), voxl::read_server_config(), and voxl::sync_cam_config().

◆ stereo_z_min

float stereo_z_min
extern

near depth bound for epipolar search (m)

Definition at line 221 of file VoxlVars.cpp.

Referenced by main(), voxl::read_server_config(), and voxl::sync_cam_config().

◆ sync_config

bool sync_config
extern

Flag to indicate if configuration synchronization is enabled.

Definition at line 218 of file VoxlVars.cpp.

Referenced by voxl::read_server_config(), and voxl::sync_cam_config().

◆ takeoff_alt_threshold

float takeoff_alt_threshold
extern

Takeoff altitude threshold.

Definition at line 197 of file VoxlVars.cpp.

Referenced by voxl::read_server_config().

◆ using_stereo

int using_stereo
extern

Using stereo camera configuration.

Flag to indicate whether the system is configured to use stereo cameras for depth estimation.

Using stereo camera configuration.

Definition at line 143 of file VoxlVars.cpp.

Referenced by voxl::read_server_config(), and voxl::sync_cam_config().

◆ vio_error_codes

std::atomic<uint32_t> vio_error_codes
extern

VIO error codes.

Atomic variable containing error codes and flags for various VIO system errors and warnings. Uses uint32_t to accommodate all error codes (up to bit 21).

Referenced by _imu_data_handler_cb(), voxl::CameraBase::camera_callback(), voxl::HealthCheck::clearErrorCodes(), voxl::CameraBase::connect(), connect_imu_service(), voxl::CameraManager::initialize(), main(), voxl::MonoCamera::process_image(), voxl::StereoCamera::process_image(), voxl::Publisher::publish(), and voxl::register_vio_camera_callback().

◆ vio_manager

std::unique_ptr<ov_msckf::VioManager> vio_manager
extern

Global VIO manager instance.

Main VIO manager that handles the complete visual-inertial odometry pipeline. This is the central component that processes camera and IMU data to estimate pose and velocity.

Global VIO manager instance.

Definition at line 31 of file VoxlVars.cpp.

Referenced by _imu_data_handler_cb(), voxl::Publisher::calcQuality(), main(), voxl::MonoCamera::process_image(), voxl::Publisher::publish(), and voxl::register_vio_camera_callback().

◆ vio_manager_options

ov_msckf::VioManagerOptions vio_manager_options
extern

VIO manager options.

Options for configuring the VIO manager instance. This includes settings for state initialization, estimator options, and other operational parameters.

Definition at line 28 of file VoxlVars.cpp.

Referenced by main(), and voxl::MonoCamera::process_image().

◆ vio_state

std::atomic<uint8_t> vio_state
extern

Current VIO system state.

Atomic variable representing the current operational state of the VIO system (initializing, running, error, etc.).

Referenced by main(), voxl::MonoCamera::process_image(), voxl::Publisher::publish(), and voxl::Publisher::start().