Welcome to the Software Team
This is where we actually try to make everything work.
Overview
The software team is in charge of all of the software necessary to complete the mission tasks for the competition. An overview of the rules can be found on the wiki home page, but a quick breakdown of the mission tasks that we tackle are:
- Object Detection, Classification, and Localization (ODCL)
- Path Planning
- Static Waypoints
- Dynamic Avoidance
- Search Area Coverage
- Airdrop Approach
In order to accomplish these tasks, we split up the Software team into various project teams. Project teams are not binding, and members are generally free to move around the different project teams, but we generally recommend that members work on one project at a time.
How to Contribute
There is no application, year, major, or classes requirement to start working in Triton UAS. The only thing needed is passion and the desire to learn a lot. With that being said, the process of literally contributing code is found here.
This is an incredibly important page, and is essentially required reading for all members, even if you are familiar with Git and Github, so please make sure you read and comprehend it.
Projects
Ground Control Station (GCS)
The Ground Control Station provides the main link between the human operators and the autonomous system in the sky. It is composed of two main parts: the frontend, dubbed Houston, an the backend, dubbed Hub.
The frontend provides the web-based user interface to monitor and modify mission parameters before, during, and after flight. The backend provides the behind-the-scenes networking code to receive and transmit information to the other nodes of our system, which includes the antenna tracker, onboard computer, and plane hardware itself.
The gcs repository contains all of the Ground Control Station code.
The actual physical hardware that the GCS runs on during test flights and competition is an Intel NUC.
Onboard Computer (OBC)
The Onboard Computer contains all of the critical software that runs on the plane during flight, including but not limited to camera, pathing, and airdrop software.
The obc repository contains the code for the onboard computer. This includes a lot of infrastructure work so that the necessary information gets sent to where it needs to be.
The actual physical hardware that the OBC runs on inside of the plane is currently a Jetson Orin Nano.
Target Detection
There are various target detection related projects which develop the models and algorithms necessary to detect, segment, and classify targets from images.
The garretts-new-lunchbox repository contains all the relevant saliency code. Saliency is a term used to describe the process of detecting targets in images, i.e. picking out a small target from a larger image.
The hutzler-571 repository contains all the code necessary for segmentation. Segmentation is a term used to describe the process of separating a target image into background, shape, and character. This prepares the images for classification.
The taxonomy-101 repository contains all of the code necessary for classification.
The fraternal-targets repository contains the code for an alternative approach for classification which we are currently researching.
Localization
Localization is necessary to detect the GPS locations of classified targets.
The localization repository contains all of the code necessary for localization.
Dataset Generation
Any sufficiently complex machine learning model requires a large amount of data to produce meaningful results. However, it can often be difficult to obtain real-world testing data, especially in large quantities. Therefore, we have various dataset generation-related projects to generate enough testing data for our Target Detection models.
The dataset generation team helps create all of the data that is needed to train our machine learning models. They also work with Blender to create more realistic three-dimensional renders.
The will-it-blend repository contains all of the blender scripts we use to create training data for dynamic avoidance and localization.
The not-stolen-israeli-code repository contains the code to generate training data for mannequin and regular target identification.
Systems and Hardware Overview
The following is a high level overview of our full software system. For a more detailed description, go to individual project pages.
Accounts and Resources
1. Discord
- Join the server here
- Join the software channel
- We are trying to transition towards Discord because Slack requires a paid plan to save messages that are more than 90 days old.
2. Slack
- Join the organization here
- Join the software channel, alongside other channels.
- Important messages will still be sent in the Slack, and it is a good resource to contact alumni, but we are trying to transition towards Discord so more day-to-day conversations should be done there.
3. Github
- Ask a Software Lead to be added to our Github team.
- We use Github Issues to track tasks on the Software team.
4. Google Drive
- If needed request access to the software portion of our Google Drive here