Version2:Software

From Albatross

Jump to: navigation, search

Contents

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.

Architecture

  • Single main loop state machine
  • Configuration from XML files

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;

State Estimator

-----------------------------------
| Estimator                        |
|----------------------------------|
|- intitalize(config_manager)      |
|- predict()                       |
|- correct()                       |
|__________________________________|

---------------------- ----------------------
| UKF    : Estimator | | EKF    : Estimator |
|____________________| |____________________|

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 |
|______________________|

Navigation and Control

-----------------------------------
| Navigator                        |
|----------------------------------|
|- Navigator(Estimator)            |
|- intitalize(config_manager)      |
|- set_gps(GPS)                    |
|- set_imu(IMU)                    |
|__________________________________|