VOXL OpenVINS Server 1.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 <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 VEL_MAG_JERK_THRESHOLD   0.02f
 Velocity magnitude threshold for jerk 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 OVERLAY_CH   2
 MPA server channel for overlay data output.
 
#define OVSTATUS_CH   3
 MPA server channel for status information.
 
#define IMU_CH   0
 MPA client channel for IMU data input.
 
#define FEAT_OVERLAY_CH   9
 MPA client channel for feature overlay data.
 
#define BARO_CH   10
 MPA client channel for barometer data input.
 
#define CPU_CH   11
 MPA client channel for CPU monitoring data.
 
#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_VIO_OVERLAY_NAME   "ov_overlay"
 Name for overlay data pipe.
 
#define OV_VIO_OVERLAY_LOCATION   MODAL_PIPE_DEFAULT_BASE_DIR OV_VIO_OVERLAY_NAME "/"
 Location for overlay 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 > is_resetting
 VIO reset state flag.
 
std::atomic< uint32_t > reset_num_counter
 Counter which increments on 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_armed
 System armed state.
 
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_instant
 Maximum instantaneous velocity covariance for auto-reset.
 
float auto_reset_max_v_cov
 Maximum velocity covariance 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 auto_fallback_timeout_s
 Timeout for auto-fallback mode.
 
float auto_fallback_min_v
 Minimum velocity for auto-fallback.
 
bool en_cont_yaw_checks
 Enable continuous yaw checks.
 
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.
 
float fusion_rate_dt_ms
 Fusion rate in milliseconds.
 
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::atomic< double > imu_rate_hz
 Estimated IMU sampling rate in Hz.
 
std::mutex imu_lock_mutex
 Mutex for IMU data access synchronization.
 
voxl::FrameTransform frame_transform
 Global frame transform instance.
 
std::atomic< bool > has_acc_jerk
 Flag indicating if accelerometer jerk is detected.
 
std::atomic< bool > has_gyro_jerk
 Flag indicating if gyroscope jerk is detected.
 
std::atomic< bool > non_static
 Non-static flag for jerk detection.
 
double window_size_s
 Window size in seconds for jerk detection.
 
int takeoff_cam
 Takeoff camera identifier.
 
int en_takeoff_cam
 Enable takeoff camera functionality.
 
std::vector< int > takeoff_cams
 Vector of takeoff camera identifiers.
 
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.
 
std::atomic< float > vel_mag
 Velocity Magnitude.
 
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.
 
voxl::img_ringbuf_packetimg_ringbuf
 Image ring buffer pointer.
 
bool sync_config
 Flag to indicate if configuration synchronization is enabled.
 

Detailed Description

Global variable declarations and constants for VOXL OpenVINS server.

Author
Zauberflote
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 45 of file VoxlVars.h.

◆ BARO_CH

#define BARO_CH   10

MPA client channel for barometer data input.

Channel used for receiving barometric pressure data for altitude estimation.

Definition at line 198 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 303 of file VoxlVars.h.

◆ CPU_CH

#define CPU_CH   11

MPA client channel for CPU monitoring data.

Channel used for receiving CPU usage and performance monitoring data.

Definition at line 206 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.

◆ FEAT_OVERLAY_CH

#define FEAT_OVERLAY_CH   9

MPA client channel for feature overlay data.

Channel used for receiving feature tracking overlay data for visualization and debugging.

Definition at line 190 of file VoxlVars.h.

◆ GYRO_VAR_THRESHOLD

#define GYRO_VAR_THRESHOLD   0.09f

Gyro variance threshold for motion detection.

Definition at line 44 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 182 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 296 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 277 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 270 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 218 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 233 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 226 of file VoxlVars.h.

◆ OV_VIO_OVERLAY_LOCATION

#define OV_VIO_OVERLAY_LOCATION   MODAL_PIPE_DEFAULT_BASE_DIR OV_VIO_OVERLAY_NAME "/"

Location for overlay data pipe.

Full path location for the overlay data pipe.

Definition at line 263 of file VoxlVars.h.

◆ OV_VIO_OVERLAY_NAME

#define OV_VIO_OVERLAY_NAME   "ov_overlay"

Name for overlay data pipe.

Pipe name for publishing visual overlay data for debugging and visualization.

Definition at line 256 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 248 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 241 of file VoxlVars.h.

◆ OVERLAY_CH

#define OVERLAY_CH   2

MPA server channel for overlay data output.

Channel used for publishing visual overlay data for debugging and visualization purposes.

Definition at line 162 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 170 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 288 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.

◆ VEL_MAG_JERK_THRESHOLD

#define VEL_MAG_JERK_THRESHOLD   0.02f

Velocity magnitude threshold for jerk detection.

Definition at line 46 of file VoxlVars.h.

Enumeration Type Documentation

◆ imu_model_t

Enumeration of supported IMU models.

Definition at line 666 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 56 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_fallback_min_v

float auto_fallback_min_v
extern

Minimum velocity for auto-fallback.

Minimum velocity threshold required to trigger auto-fallback mode.

Minimum velocity for auto-fallback.

Definition at line 105 of file VoxlVars.cpp.

Referenced by voxl::read_server_config().

◆ auto_fallback_timeout_s

float auto_fallback_timeout_s
extern

Timeout for auto-fallback mode.

Duration in seconds before the system falls back to a simpler tracking mode.

Timeout for auto-fallback mode.

Definition at line 102 of file VoxlVars.cpp.

Referenced by voxl::read_server_config().

◆ auto_reset_max_v_cov

float auto_reset_max_v_cov
extern

Maximum velocity covariance for auto-reset.

Threshold for the average velocity covariance that triggers an automatic reset.

Maximum velocity covariance for auto-reset.

Definition at line 87 of file VoxlVars.cpp.

Referenced by voxl::read_server_config().

◆ auto_reset_max_v_cov_instant

float auto_reset_max_v_cov_instant
extern

Maximum instantaneous velocity covariance for auto-reset.

Threshold for the instantaneous velocity covariance that triggers an automatic reset.

Maximum instantaneous velocity covariance for auto-reset.

Definition at line 84 of file VoxlVars.cpp.

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

◆ 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.

Definition at line 90 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 81 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 96 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 93 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 170 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.

Definition at line 224 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 202 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 154 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 78 of file VoxlVars.cpp.

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

◆ en_cont_yaw_checks

bool en_cont_yaw_checks
extern

Enable continuous yaw checks.

Flag to enable continuous monitoring of yaw angle for stability and accuracy validation.

Definition at line 108 of file VoxlVars.cpp.

Referenced by voxl::read_server_config().

◆ en_debug

int en_debug
extern

Enable debug output.

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

Definition at line 148 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 157 of file VoxlVars.cpp.

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

◆ en_takeoff_cam

int en_takeoff_cam
extern

Enable takeoff camera functionality.

Flag to enable special handling for the takeoff camera, including different processing parameters.

Definition at line 193 of file VoxlVars.cpp.

◆ 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 151 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.

Definition at line 111 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 114 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 145 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 183 of file VoxlVars.cpp.

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

◆ fusion_rate_dt_ms

float fusion_rate_dt_ms
extern

Fusion rate in milliseconds.

Time interval in milliseconds for the main fusion loop that processes and integrates sensor data.

Definition at line 217 of file VoxlVars.cpp.

Referenced by voxl::read_server_config().

◆ 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().

◆ has_gyro_jerk

std::atomic<bool> has_gyro_jerk
extern

Flag indicating if gyroscope jerk is detected.

◆ img_ringbuf

voxl::img_ringbuf_packet* img_ringbuf
extern

Image ring buffer pointer.

Pointer to the image ring buffer used for efficient image data management and processing.

Image ring buffer pointer.

Definition at line 231 of file VoxlVars.cpp.

◆ 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 80 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 167 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 164 of file VoxlVars.cpp.

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

◆ imu_rate_hz

std::atomic<double> imu_rate_hz
extern

Estimated IMU sampling rate in Hz.

Exponentially-smoothed estimate of the IMU sampling frequency used to compute the expected number of samples in the jerk detection window.

◆ is_armed

std::atomic<bool> is_armed
extern

System armed state.

Atomic flag indicating whether the system is armed and ready for operation (typically used in drone applications).

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

◆ 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(), and voxl::Publisher::publish().

◆ 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 199 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 177 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 211 of file VoxlVars.cpp.

Referenced by voxl::read_server_config().

◆ occlude_stereo_right

bool occlude_stereo_right
extern

Occlude stereo right.

Definition at line 214 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 99 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 136 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 139 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 127 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 130 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 133 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 124 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 121 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 62 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 59 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.

Definition at line 53 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().

◆ sync_config

bool sync_config
extern

Flag to indicate if configuration synchronization is enabled.

Definition at line 233 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 208 of file VoxlVars.cpp.

Referenced by voxl::read_server_config().

◆ takeoff_cam

int takeoff_cam
extern

Takeoff camera identifier.

Identifier for the camera used during takeoff and initial flight phases.

Definition at line 190 of file VoxlVars.cpp.

Referenced by voxl::sync_cam_config().

◆ takeoff_cams

std::vector<int> takeoff_cams
extern

Vector of takeoff camera identifiers.

Vector containing identifiers for all cameras that should be used during takeoff.

Definition at line 196 of file VoxlVars.cpp.

Referenced by voxl::sync_cam_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 142 of file VoxlVars.cpp.

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

◆ vel_mag

std::atomic<float> vel_mag
extern

Velocity Magnitude.

◆ 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(), and voxl::Publisher::publish().

◆ 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(), main(), voxl::MonoCamera::process_image(), and voxl::Publisher::publish().

◆ 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().

◆ 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().

◆ window_size_s

double window_size_s
extern

Window size in seconds for jerk detection.

Time window in seconds used for detecting jerks in accelerometer and gyroscope data.

Definition at line 437 of file VoxlVars.cpp.