diff --git a/src/vi_estimator/sqrt_keypoint_vio.cpp b/src/vi_estimator/sqrt_keypoint_vio.cpp index ed7be7f..fd71628 100644 --- a/src/vi_estimator/sqrt_keypoint_vio.cpp +++ b/src/vi_estimator/sqrt_keypoint_vio.cpp @@ -159,12 +159,14 @@ void SqrtKeypointVioEstimator::initialize(const Eigen::Vector3d& bg_, const Vec3 gyro_cov = calib.dicrete_time_gyro_noise_std().array().square(); typename ImuData::Ptr data = popFromImuDataQueue(); - BASALT_ASSERT_MSG(data, "first IMU measurment is nullptr"); - data->accel = calib.calib_accel_bias.getCalibrated(data->accel); - data->gyro = calib.calib_gyro_bias.getCalibrated(data->gyro); + bool run = data != nullptr; // End VIO otherwise + if (run) { + data->accel = calib.calib_accel_bias.getCalibrated(data->accel); + data->gyro = calib.calib_gyro_bias.getCalibrated(data->gyro); + } - while (true) { + while (run) { vision_data_queue.pop(curr_frame); if (config.vio_enforce_realtime) {