Intern Space Program began in 2018, but the Avionics group has struggled consistently due to:
- Poor hardware/software documentation
- Primary goals left incomplete and/or problems unsolved
- Inconsistent handover of work to future tours
This repo is an effort to resolve those issues. Why rebuild from scratch when previous tours have done some of the dirty work? Make use of what's been done and develop new features that you'd like to see. Please see the CONTRIBUTING guide for more information.
The intention of this project was to create hardware and software to enable real-time streaming of telemetry and video data from within a medium sized rocket. The system was built and developed from the ground up. There were two main goals for the system:
- Live Stream Video and Inertial Data to the World
- Employ navigation and sensor fusion techniques to localize the payload (and hence rocket) in real time
This project has pushed the bounds in both live streaming video and telemetry data over LTE Cat M-1 and functionality given the limited amount of space in the nosecone. The hope is that future teams will be able to build off of this platform and further the success of the intern space program as a whole.
- Teensy:The Teensy folder contains the Arduino file that allows the co-processor to go through the initiation and calibration procedure and to sample data from the sensor suite, serializing this data via a JSON packet to be sent to the Pi for distribution.
- Raspi: The raspi folder is dedicated to developing the tools necessary to operate the on-board raspberry pi zero, which is responsible for:
- reading/compressing video data
- reading in raw telemetry from the teensy
- storing video and telemetry data
- sending video and telemetry data over the LTE network to the ground server
- Nav: The navigation capability keeps us updated on where the vehicle is, its velocity, and its attitude. It incorporates data from all the sensors on board to come up with an estimated state, then does some light filtering to smooth out the data before it gets transmitted to the ground.
- Ground_station: The ground_station folder contains scripts to operate the ground server and client, and also scripts to create and display the telemetry display GUI
- Simulation: the simulation folder contains scripts to generate random, but realistic trajectories and generate varying degress of sensor data from the trajectories to test and flesh out the navigation algorithms.
- Packetizer: the packetizer folder contains a C-style implementation of payloading and de-payloading the raw telemetry data in a highly efficient structure and byte format.
- Install anaconda: https://www.anaconda.com/distribution/
- Be sure to download the Python 3 version
- From the command line, run:
conda create env -f condaenv.yml
- Activate the conda environment:
conda activate avionics
If you need additional packages installed, or packages that can't be installed with Conda, let the group lead know and document the requirement in your capability's README.