Struct SurfaceNavConfig¶
Defined in File surface_rover_nav_app.h
Struct Documentation¶
-
struct SurfaceNavConfig¶
Scenario configuration for the surface-rover navigation application: a lunar-surface rover fusing a full IMU (accelerometer + gyroscope, Kalibr noise model), LCRNS (LANS) pseudoranges, and a DEM altitude constraint, with the IMU biases estimated online.
The rover truth path is defined in the local East-North-Up tangent plane centered on the
World’s DEM site; its Up coordinate follows the loaded DEM terrain. The body frame is x=forward (heading), y=left, z=up. LCRNS satellites are propagated as Keplerian orbits app-internally and their geometry is evaluated in the Moon-fixed frame. The site / DEM itself is owned by the sharedWorld(world:config block), not by this struct.Public Members
-
int seed = 42¶
-
std::string start_epoch_utc = "2027-03-01T00:00:00"¶
-
double duration_s = 1800.0¶
total arc [s].
-
double dt_s = 1.0¶
IMU / filter / measurement step [s].
-
double site_lat_deg = -89.45¶
query latitude [deg] (default Site01).
-
double site_lon_deg = 222.8¶
query east longitude [deg].
-
double dem_half_width_m = 4000.0¶
half-width of the DEM crop window [m].
-
double dem_max_res_m = 20.0¶
DEM downsample target spacing / slope FD step [m].
-
double rover_start_east_m = 0.0¶
start East offset from tile center [m].
-
double rover_start_north_m = -250.0¶
start North offset from tile center [m].
-
double rover_speed_mps = 2.0¶
horizontal ground speed [m/s].
-
double rover_heading_deg = 0.0¶
initial heading (0=E, 90=N) [deg].
-
double rover_turn_rate_dps = 0.6¶
constant heading rate [deg/s].
-
double rover_weave_amplitude_deg = 0.0¶
serpentine heading-weave amplitude [deg] (0=off).
-
double rover_weave_period_s = 300.0¶
serpentine heading-weave period [s].
-
double rover_clock_bias_s = 1.0e-6¶
truth rover clock bias at t0 [s].
-
double rover_clock_drift_sps = 1.0e-11¶
truth rover clock drift [s/s].
-
double accel_noise_density = 3.4e-4¶
accel white noise [m/s^2 / sqrt(Hz)].
-
double accel_bias_rw = 1.0e-4¶
accel bias random walk [m/s^3 / sqrt(Hz)].
-
double gyro_noise_density = 3.4e-6¶
gyro white noise [rad/s / sqrt(Hz)].
-
double gyro_bias_rw = 1.0e-6¶
gyro bias random walk [rad/s^2 / sqrt(Hz)].
-
double accel_bias0 = 1.0e-2¶
truth initial accel bias 1-sigma/axis [m/s^2].
-
double gyro_bias0 = 5.0e-4¶
truth initial gyro bias 1-sigma/axis [rad/s].
-
std::string constellation_name¶
Name of a
LunarNavConstellationagent in the scenario to source the relay-satellite truth states from. When set, the app queries that agent each epoch instead of propagating the relays itself (satellitesis then unused / a legacy fallback).
-
std::vector<LcrnsSatConfig> satellites¶
legacy in-app relay list (if no constellation).
-
double elevation_mask_deg = 5.0¶
local-horizon mask for visibility [deg].
-
double pseudorange_sigma_m = 1.0¶
receiver pseudorange noise 1-sigma [m].
-
double sise_m = 3.0¶
per-satellite signal-in-space error 1-sigma [m].
-
double init_pos_sigma_m = 50.0¶
-
double init_vel_sigma_mps = 0.1¶
-
double init_att_sigma_deg = 2.0¶
initial attitude uncertainty [deg].
-
double init_accel_bias_sigma = 2.0e-2¶
initial accel-bias uncertainty [m/s^2].
-
double init_gyro_bias_sigma = 1.0e-3¶
initial gyro-bias uncertainty [rad/s].
-
double init_clock_bias_sigma_s = 1.0e-6¶
-
double init_clock_drift_sigma_sps = 1.0e-9¶
-
double dem_sigma_m = 5.0¶
DEM constraint pseudo-measurement 1-sigma [m].
-
double filter_bias_rw_scale = 3.0¶
Scale applied to the filter’s IMU bias random-walk densities relative to the truth values (>= 1). A modest inflation keeps the EKF consistent in weakly-observable yaw / horizontal-accel-bias directions of a slow surface rover.
-
bool enable_dem_constraint = true¶
-
int seed = 42¶