UAS@UCLA 2019 Drone Code
Code used on our drone competing in the AUVSI SUAS competition.
| CI Tool | Status of master |
|---|---|
| Jenkins | |
| Travis.CI |
Contents
- Control code
- Mission planning & surveying
- Collision avoidance
- Flight simulation
- Failsafe
- Vision code
- Camera interface
- Target identification
- Shape/letter classification
- Determining GPS location of targets
- Gimbal control
- Synthetic image generation (for testing)
- Ground station
- Antenna tracker
- Telemetry multiplexer (from Wi-Fi and serial interface)
- Build and deployment scripts to drone
Continuous Integration and Tests
This project uses continuous integration to avoid breaking old code as new
features are introduced. Read more about the best practices of CI here:
These guidelines are also meant to make our code more portable and easier for
new developers to install. In addition, it allows for tests to be automatically
run on any new code that is checked into this repository, which evaluates
everything from target identification accuracy for the vision system to safety
and reliability for the control software.
Travis-CI is used to
automatically build every commit that is pushed to this Github repository.
Installation
Install docker, tmux, and python2.7. After that, ./uas will list all of the
possible commands that can be run. Use ./uas controls build to build the
controls code.
Platforms and Libraries Used
- PX4 Firmware as the flight controller software stack and simulator.
- Docker for containment of the development environment.
- OpenCV for image filtering and segmentation
- Darkflow for image classification
- MAVLink Common Messages for communicating between Ground Control Station and the UAV
- Bazel, a fast, scalable, multi-language and extensible build system
- Gazebo for 3D simulation
