ov_msckf::VioManagerOptions struct

Struct which stores all options needed for state estimation.

Contents

This is broken into a few different parts: estimator, trackers, and simulation. If you are going to add a parameter here you will need to add it to the parsers. You will also need to add it to the print statement at the bottom of each.

Public functions

void print_estimator()
This function will print out all estimator settings loaded. This allows for visual checking that everything was loaded properly from ROS/CMD parsers.
void print_noise()
This function will print out all noise parameters loaded. This allows for visual checking that everything was loaded properly from ROS/CMD parsers.
void print_state()
This function will print out all simulated parameters loaded. This allows for visual checking that everything was loaded properly from ROS/CMD parsers.
void print_trackers()
This function will print out all parameters releated to our visual trackers.
void print_simulation()
This function will print out all simulated parameters loaded. This allows for visual checking that everything was loaded properly from ROS/CMD parsers.

Public variables

StateOptions state_options
Core state options (e.g. number of cameras, use fej, stereo, what calibration to enable etc)
double dt_slam_delay
Delay, in seconds, that we should wait from init before we start estimating SLAM features.
double init_window_time
Amount of time we will initialize over (seconds)
double init_imu_thresh
Variance threshold on our acceleration to be classified as moving.
bool try_zupt
If we should try to use zero velocity update.
double zupt_max_velocity
Max velocity we will consider to try to do a zupt (i.e. if above this, don't do zupt)
double zupt_noise_multiplier
Multiplier of our zupt measurement IMU noise matrix (default should be 1.0)
bool record_timing_information
If we should record the timing performance to file.
std::string record_timing_filepath
The path to the file we will record the timing information into.
Propagator::NoiseManager imu_noises
IMU noise (gyroscope and accelerometer)
UpdaterOptions msckf_options
Update options for MSCKF features (pixel noise and chi2 multiplier)
UpdaterOptions slam_options
Update options for SLAM features (pixel noise and chi2 multiplier)
UpdaterOptions aruco_options
Update options for ARUCO features (pixel noise and chi2 multiplier)
UpdaterOptions zupt_options
Update options for zero velocity (chi2 multiplier)
Eigen::Vector3d gravity
Gravity in the global frame (i.e. should be [0, 0, 9.81] typically)
double calib_camimu_dt
Time offset between camera and IMU.
std::map<size_t, bool> camera_fisheye
Map between camid and camera model (true=fisheye, false=radtan)
std::map<size_t, Eigen::VectorXd> camera_intrinsics
Map between camid and intrinsics. Values depends on the model but each should be a 4x1 vector normally.
std::map<size_t, Eigen::VectorXd> camera_extrinsics
Map between camid and camera extrinsics (q_ItoC, p_IinC).
std::map<size_t, std::pair<int, int>> camera_wh
Map between camid and the dimensions of incoming images (width/cols, height/rows). This is normally only used during simulation.
bool use_stereo
If we should process two cameras are being stereo or binocular. If binocular, we do monocular feature tracking on each image.
bool use_klt
If we should use KLT tracking, or descriptor matcher.
bool use_aruco
If should extract aruco tags and estimate them.
bool downsize_aruco
Will half the resolution of the aruco tag image (will be faster)
bool downsample_cameras
Will half the resolution all tracking image (aruco will be 1/4 instead of halved if dowsize_aruoc also enabled)
int num_pts
The number of points we should extract and track in each image frame. This highly effects the computation required for tracking.
int fast_threshold
Fast extraction threshold.
int grid_x
Number of grids we should split column-wise to do feature extraction in.
int grid_y
Number of grids we should split row-wise to do feature extraction in.
int min_px_dist
Will check after doing KLT track and remove any features closer than this.
double knn_ratio
KNN ration between top two descriptor matcher which is required to be a good match.
FeatureInitializerOptions featinit_options
Parameters used by our feature initialize / triangulator.
string sim_traj_path
Path to the trajectory we will b-spline and simulate on. Should be time(s),pos(xyz),ori(xyzw) format.
double sim_distance_threshold
We will start simulating after we have moved this much along the b-spline. This prevents static starts as we init from groundtruth in simulation.
double sim_freq_cam
Frequency (Hz) that we will simulate our cameras.
double sim_freq_imu
Frequency (Hz) that we will simulate our inertial measurement unit.
int sim_seed_state_init
Seed for initial states (i.e. random feature 3d positions in the generated map)
int sim_seed_preturb
Seed for calibration perturbations. Change this to perturb by different random values if perturbations are enabled.
int sim_seed_measurements
Measurement noise seed. This should be incremented for each run in the Monte-Carlo simulation to generate the same true measurements, but diffferent noise values.
bool sim_do_perturbation
If we should perturb the calibration that the estimator starts with.