pylupnt.SurfaceRoverNavApp

class pylupnt.SurfaceRoverNavApp

Strapdown-INS error-state EKF for a lunar surface rover, fusing a full IMU, LCRNS (LANS) pseudoranges, and a DEM altitude constraint, with the IMU biases estimated online. Hosted on a Rover agent as its Application.

accel_bias_err(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

[N x 3] (truth - est) accelerometer bias [m/s^2]

accel_bias_sigma(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

[N x 3] accelerometer-bias 1-sigma [m/s^2]

att_err_deg(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

[N x 3] attitude error (rotation vector) [deg]

att_sigma_deg(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

[N x 3] attitude 1-sigma [deg]

clock_bias_err(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']

[N] clock-bias error [s]

clock_bias_sigma(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']

[N] clock-bias 1-sigma [s]

dem_elevation(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

Terrain DEM elevation grid [m]

dem_x(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

Terrain DEM grid x coordinates (native projected meters)

dem_y(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

Terrain DEM grid y coordinates (native projected meters)

get_agent(self: pylupnt._pylupnt.Application) lupnt::Agent

The Agent that hosts this application (set by the simulation before Setup()).

get_frequency(self: pylupnt._pylupnt.Application) float

Step() call frequency [Hz]

get_name(self: pylupnt._pylupnt.Application) str

This application’s name

gyro_bias_err(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

[N x 3] (truth - est) gyroscope bias [rad/s]

gyro_bias_sigma(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

[N x 3] gyroscope-bias 1-sigma [rad/s]

log(self: pylupnt._pylupnt.Application, t: Real) None

Base Log at simulation time t [s] (emits a debug message; override in a subclass).

n_visible(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.int32], '[m, 1]']

[N] number of visible LCRNS satellites

pos_err_enu(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

[N x 3] (truth - est) position error in ENU [m]

pos_err_norm(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']

[N] 3D position error magnitude [m]

pos_sigma_enu(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

[N x 3] 1-sigma position uncertainty in ENU [m]

rover_alt_truth(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']

[N] truth rover Up / elevation [m]

rover_track_enu_est(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

[N x 2] estimated rover track (East, North) [m]

rover_track_enu_truth(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

[N x 2] truth rover track (East, North) [m]

satellite_names(self: pylupnt._pylupnt.SurfaceRoverNavApp) list[str]

Names of the LCRNS relay satellites

set_frequency(self: pylupnt._pylupnt.Application, frequency: SupportsFloat | SupportsIndex) None

Set the Step() call frequency [Hz] used by setup() to schedule steps

set_name(self: pylupnt._pylupnt.Application, name: str) None

Set this application’s name

setup(self: pylupnt._pylupnt.Application) None

Base Setup: schedules Step() at get_frequency() Hz. Call via super().setup() from a Python subclass to keep that scheduling.

site_id(self: pylupnt._pylupnt.SurfaceRoverNavApp) str

Rover-site identifier

site_name(self: pylupnt._pylupnt.SurfaceRoverNavApp) str

Rover-site name

time_s(self: pylupnt._pylupnt.SurfaceRoverNavApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']

[N] epoch times [s]