Version2:Software
From Albatross
Contents |
[edit]
Introduction
The onboard software will be a single binary this time, and not multiple daemons like Version1:Software. The ability for the onboard software to be driven by actual or simulated data will come from a more intelligent object orientated design.
[edit]
Architecture
- Single main loop state machine
- Configuration from XML files
[edit]
Hierarchy
Main Loop
typedef enum
{
INIT_STATE,
INS_STATE,
INS_VALID_STATE,
GPS_STATE,
KALMAN_STATE,
KALMAN_VALID_STATE,
CONTROL_STATE,
DRIVE_STATE,
COMMAND_STATE,
COMMUNICATION_STATE
} AlbatrossMainloopState;
[edit]
State Estimator
----------------------------------- | Estimator | |----------------------------------| |- intitalize(config_manager) | |- predict() | |- correct() | |__________________________________| ---------------------- ---------------------- | UKF : Estimator | | EKF : Estimator | |____________________| |____________________|
[edit]
INS & GPS
------------------------------------------------- | GPS | |------------------------------------------------| |- intitalize(config_manager) | |- int get_gps_reading(struct GPSData_t &GPSData)| |________________________________________________| ---------------------- | uBlox : GPS | |____________________| ------------------------------------------------- | INS | |------------------------------------------------| |- intitalize(config_manager) | |- int get_ins_reading(struct INSData_t &INSData)| |________________________________________________| ---------------------- | Snapper : INS | |____________________| ------------------------ | FGListener : GPS,INS | |______________________|
[edit]
Navigation and Control
----------------------------------- | Navigator | |----------------------------------| |- Navigator(Estimator) | |- intitalize(config_manager) | |- set_gps(GPS) | |- set_imu(IMU) | |__________________________________|
