<!-- TITLE: Ground --> <!-- SUBTITLE: Systems for interfacing with the drone and the competition objectives --> # Quick Links For UAS members: [OpenProject](https://uasatucla.org/project/projects/uasatucla-technical-groundstation/work_packages) | [Google Drive](https://drive.google.com/drive/folders/1eGa8u-qGwwk6eqemyniKMH3XKEoWomV4) # Description The ground team on UAS@UCLA develops a versatile user experience for monitoring and triggering actions on the drone, as well as interfacing with the competition objectives. This includes planning a detailed mission and processing drone imagery. A central ground computer communicates with the drone over a wireless network. The central computer acts as a server for our ground station web app and other ground subsystems, such as a control box and an antenna tracker. # Concept Images ### Web App (2018 UAS@UCLA Ground Station) <img src="/uploads/ground/groundcontrols-2018.jpg" width="400"/> ### Antenna Tracker (ArduPilot website) <img src="/uploads/ground/antennatracker-concept.jpg" width="400"/> ### Control Box (Google Images) <img src="/uploads/ground/control-box-concept.jpg" width="400"/> # Training ## How do I get involved with ground systems? Much of the UAS ground station involves communications software and UI design, but as you can see, we are also introducing electrical and mechanical engineering projects. Join if you are interested in building apps, managing data, and/or creating some cool, non-airborne electromechanical contraptions. Read on for tutorials to get familiar with the software used. ## Environment Setup See the [Software Setup Guide](/fields/software/setup) If you have trouble with software setup or are short on time, all you need for now is [Node.js](https://nodejs.org/en/). Install the "Current" version, and you can get started with learning right away. ## Tutorials & Resources 0. [Prerequisite: JavaScript Basics](/subsystems/ground/javascript) 1. [Socket.IO with React and Node.js](/subsystems/ground/socketio) 2. [Interfacing with the Interoperability System (Judge's Server) (in progess)](/subsystems/ground/interop) 3. [Google Protocol Buffers in JavaScript (not here yet)](/subsystems/ground/protobufs) [Complete Ground Station framework (in progress)](/subsystems/ground/code-framework) Feel free to ask me questions on Slack @Ryan Nemiroff. ### More Resources * [Communications Crash Course](/subsystems/ground/communications) * [2017-2018 Documentation](/subsystems/ground/2017-2018-docs) * [React Development Resources](/subsystems/ground/react-tutorial) ### Past Workshops * [Git, Comms, and Web Dev Workshop (Fall 2018)](/fields/workshops/ground) # Antenna Tracker * [Antenna Tracker Page (WIP)](/subsystems/ground/atenna-tracker) # Platforms and Libraries Used * [Socket.IO](https://socket.io/) for communicating between ground subsystems. * [Protocol Buffers](https://developers.google.com/protocol-buffers/) for maintaining a structured data format between drone & ground platforms. * [ZeroMQ](http://zeromq.org/) for some communications between the ground and the drone? (hasn't been implemented yet) * [Node.js & npm](https://nodejs.org/en/) for building the front-end and back-end of the ground station interface. * [React](https://reactjs.org/) for making the front end UI.