Test Rig for Geolocation: Software Architecture

Goal: The goal of the geolocation test rig is to allow end-to-end testing and validation of our geolocation algorithm. The software exists to ingest data from the test rig and put it into our geolocation algorithm.

Architecture: The entire test rig will be contained in a program under main.py called TestGeolocationProgram (see flightProgram as an example). The diagram below shows how the program will be constructed. Each square box is a module and worker function for that module, each solid arrow is a pipeline. Note that the only new module being implemented is TestIMUInterface.

Implementing TestIMU Interface:

TestIMUInterface

TestIMUInterface

+getIMUData(): Function that reads 83 bits from a newline and returns IMU data as a dictionary:

{ x: 123, // bits 1-16 y: 123, //bits 18-33 z: 123, //bits 35-50 timestamp: 123123123 //bits 51-83 }

-arduinoSer: pySerial Serial object representing the endpoint where the arduino is connected.

Worker function: Every 5 seconds, call getIMUData(), create Timestamp object using timestamp from dictionary.