Skip to content
Miles Cobb edited this page Nov 5, 2019 · 5 revisions

Concept

  • Thread - Threads are a way for a program to divide (termed "split") itself into two or more simultaneously running tasks (taken from Wikipedia). In the case of Quick Scan, we divide autonomy and computer vision into two threads.

Hardware

  • VTOL - A Vertical Takeoff and Landing vehicle. A VTOL combines the functionality of a quadcopter with a fixed-wing airplane. It takes off vertically using rotors and then transitions to a fixed-wing plane once it reaches altitude.
  • Raspberry Pi - A cheap, low-power ARM computer carried on the VTOL. Has multiple USB ports and pins used to drive hardware. All of our software is developed with the intention of being run on a Raspberry Pi.
  • RasPiCam - The camera that connects to a Raspberry Pi. Comes along with an easy-to-use Python API.
  • Pixhawk - A microcontroller that controls the VTOL's sensors and actuators. Used to run autopilot software (ArduPilot). Our software communicates with the Pixhawk to control the vehicle at a high-level with limited aerospace knowledge.
  • Xbee - A programmable USB radio carried on VTOL used to communicate with Mission Control.

Autonomy

  • DroneKit - A third party library used to communicate with the Pixhawk.
  • MAVlink - The communication protocol for messages sent to/from the Pixhawk. DroneKit is used to send and receive these MAVlink messages.
  • ArduPilot - The firmware running on the Pixhawk. Each type of aerial vehicle (quadcopter, quadplane, tricopter, etc.) has its own firmware.
  • Vehicle simulation - Rather than connecting to a Pixhawk and controlling a vehicle, the program connects to a fake vehicle to simulate the functionality of the program without the manual labor involved with a flight test.

Computer Vision

  • OpenCV - Open Source Computer Vision Library. Comes with plenty of useful computer vision methods in a Python API.
  • Image stiching - The process of combining multiple photographic images with overlapping fields of view to produce a segmented panorama or high-resolution image (copied from Wikipedia).
  • Point of interest (POI) - Something that looks like a target, payload, or obstacle. POIs can be false positives and need to be verified via a detailed search.
  • CV simulation - Rather than connecting to a RasPiCam and taking pictures, the program uses predefined images and processes them to simulate the functionality of the program's CV without the manual labor involved with a flight test.

Communications

  • Xbee Python Library - Third party library used to control the Xbee radio. Contains methods for sending messages and also allows us to link a callback function to the radio for receiving messages.
  • Callback function - A function that is triggered later at some other point. In the case of VTOL, the callback function is triggered whenever the Xbee radio receives a message.
  • Mission Control - A web application developed by another team in NGCP. Used as a central hub of communication between all vehicles (both Pomona and SLO), displays realtime information about the vehicles, and sends some messages that controls vehicles (e.g. "start" and "stop").
  • Comms simulation - Rather than connecting to an Xbee and sending/receiving messages, the program reads from predefined messages to be received, specified in an input file and does not send any messages. This simulates the functionality of the program without the manual labor involved with a flight test.

Tools

  • XCTU - Tool used for configuring Xbee radios. Can also be used to manually send/receive messages with the radios, which can be used for some tests.
  • QGroundControl - Tool used to configure Pixhawk flight controller. Can be used to load ArduPilot firmware onto the Pixhawk and calibrate the vehicle's sensors/motors.