GCS Intro
The ground control station (GCS) is the interface between the operator and the plane when the plane is flying. Our primary use for the GCS is to send commands, monitor telemetry, and provide manual verification of computer vision results.
This project will introduce you to commands and manual verification. You will be writing a typescript frontend that interacts with a go server. Specifically, the operator will
- Request an image from the camera
- Manually verify the image (i.e. classification)
while the OBC is running. This will change the state of the OBC, and progress the OBC through its ticks.
Before Starting to Code
Like the OBC, make sure you follow the README.md
to setup the project.
Run make protos
to compile/build the project.
Run make run-dev
to run the project. You should be able to now see the front-end running on localhost:5173 on your browser.
Try clicking the status button on the GCS. Does it return the state of the OBC?
If you can't get the button working
The two project are communicating over HTTP. This also means that both projects need to be running in order for the button to successfully send out a request, and the OBC to send back a response. Make sure the OBC is running. You might notice that the OBC times out quickly. Which tick can you modify so that the OBC runs for a longer time? > Make sure you run `make clean` if you are having build/compiler issues.File Structure:
GCS
├── backend-go (Go)
│ ├── internal
│ │ ├── obc
│ │ │ └── client.go
│ │ └── server
│ │ └── server.go
│ └── main.go
├── frontend-react (Typescript + React)
│ ├── src
│ │ ├── App.css
│ │ ├── App.tsx
│ │ ├── pages
│ │ │ ├── HomePage.tsx
│ │ │ ├── PlaygroundPage.tsx
│ │ │ └── StatusPage.tsx
│ │ └── tabs.css
├── Makefile
├── protos
│ └── onboarding.proto
└── README.md