I found that both vo and gnss only ensure the alignment of imu with vo or gnss during initialization, and then completely depend on whether ros nodes receive data for processing
'''
if (!ekf_ptr_->inited_) {
if (!ekf_ptr_->init(gps_data_ptr->timestamp)) return;
std::dynamic_pointer_cast<GNSS>(ekf_ptr_->observer_ptr_)->set_params(gps_data_ptr);
printf("[cggos %s] System initialized.\n", __FUNCTION__);
return;
}
'''